精华内容
下载资源
问答
  • 模型优化方法

    万次阅读 2018-07-12 12:08:38
    先进行训练,得到一个初始的结果结果分析:首先我们观察训练 loss(目标函数值)变化,刚开始 loss 从 200 不断减小到接近 0,但是在 100 轮左右开始出现震荡,并且随着训练幅度越来越大,说明模型不稳定。...

    转载链接:https://zhuanlan.zhihu.com/p/29534841


    第一步:先进行训练,得到一个初始的结果



    结果分析:首先我们观察训练 loss(目标函数值)变化,刚开始 loss 从 200 不断减小到接近 0,但是在 100 轮左右开始出现震荡,并且随着训练幅度越来越大,说明模型不稳定。然后观察训练集和验证集的准确率,发现训练集准确率接近于 1,验证集准确率稳定在 70% 左右,说明模型的泛化能力不强并且出现了过拟合情况。最后评估测试集,发现准确率为 69.36%,也没有达到很满意的程度,说明我们对模型需要进行很大的改进,接下来进行漫长的调参之旅吧!


    第二步:进行数据增强


    使用数据增强技术(data augmentation),主要是在训练数据上增加微小的扰动或者变化,一方面可以增加训练数据,从而提升模型的泛化能力,另一方面可以增加噪声数据,从而增强模型的鲁棒性。主要的数据增强方法有:翻转变换 flip、随机修剪(random crop)、色彩抖动(color jittering)、平移变换(shift)、尺度变换(scale)、对比度变换(contrast)、噪声扰动(noise)、旋转变换 / 反射变换 (rotation/reflection)等,可以参考 Keras 的官方文档 [2] 。获取一个 batch 的训练数据,进行数据增强步骤之后再送入网络进行训练。

    ---------------------------------------------------------------------------------------------------------

    数据增强具体做的方面:一共从如下三个方面:

    我主要做的数据增强操作有如下方面:

    1. 图像切割:生成比图像尺寸小一些的矩形框,对图像进行随机的切割,最终以矩形框内的图像作为训练数据。

    2. 图像翻转:对图像进行左右翻转。

    3. 图像白化:对图像进行白化操作,即将图像本身归一化成 Gaussian(0,1) 分布。


    结果分析:我们观察训练曲线和验证曲线,很明显地发现图像白化的效果好,其次是图像切割,再次是图像翻转,而如果同时使用这三种数据增强技术,不仅能使训练过程的 loss 更稳定,而且能使验证集的准确率提升至 82% 左右,提升效果十分明显。而对于测试集,准确率也提升至 80.42%。说明图像增强确实通过增加训练集数据量达到了提升模型泛化能力以及鲁棒性的效果,从准确率上看也带来了将近 10% 左右的提升,因此,数据增强确实有很大的作用。但是对于 80% 左右的识别准确率我们还是不够满意,接下来继续调参。

    ---------------------------------------------------------------------------------------------------------


    第三步:从模型入手,使用一些改进方法


    接下来的步骤是从模型角度进行一些改进,这方面的改进是诞生论文的重要区域,由于某一个特定问题对某一个模型的改进千变万化,没有办法全部去尝试,因此一般会实验一些 general 的方法,比如批正则化(batch normalization)、权重衰减(weight decay)。我这里实验了 4 种改进方法,接下来依次介绍。

    1. 权重衰减(weight decay):对于目标函数加入正则化项,限制权重参数的个数,这是一种防止过拟合的方法,这个方法其实就是机器学习中的 l2 正则化方法,只不过在神经网络中旧瓶装新酒改名为 weight decay [3]。

    2. dropout:在每次训练的时候,让某些的特征检测器停过工作,即让神经元以一定的概率不被激活,这样可以防止过拟合,提高泛化能力 [4]。

    3. 批正则化(batch normalization):batch normalization 对神经网络的每一层的输入数据都进行正则化处理,这样有利于让数据的分布更加均匀,不会出现所有数据都会导致神经元的激活,或者所有数据都不会导致神经元的激活,这是一种数据标准化方法,能够提升模型的拟合能力 [5]。

    4. LRN:LRN 层模仿生物神经系统的侧抑制机制,对局部神经元的活动创建竞争机制,使得响应比较大的值相对更大,提高模型泛化能力。


    结果分析:我们观察训练曲线和验证曲线,随着每一个模型提升的方法,都会使训练集误差和验证集准确率有所提升,其中,批正则化技术和 dropout 技术带来的提升非常明显,而如果同时使用这些模型提升技术,会使验证集的准确率从 82% 左右提升至 88% 左右,提升效果十分明显。而对于测试集,准确率也提升至 85.72%。我们再注意看左图,使用 batch normalization 之后,loss 曲线不再像之前会出现先下降后上升的情况,而是一直下降,这说明 batch normalization 技术可以加强模型训练的稳定性,并且能够很大程度地提升模型泛化能力。所以,如果能提出一种模型改进技术并且从原理上解释同时也使其适用于各种模型,那么就是非常好的创新点,也是我想挑战的方向。现在测试集准确率提升至 85% 左右,接下来我们从其他的角度进行调参。


    第四步:变化的学习率,进一步提升模型性能


    在很多关于神经网络的论文中,都采用了变化学习率的技术来提升模型性能,大致的想法是这样的:

    1. 首先使用较大的学习率进行训练,观察目标函数值和验证集准确率的收敛曲线。

    2. 如果目标函数值下降速度和验证集准确率上升速度出现减缓时,减小学习率。

    3. 循环步骤 2,直到减小学习率也不会影响目标函数下降或验证集准确率上升为止。



    结果分析:我们观察到,当 10000 个 batch 时,学习率从 0.01 降到 0.001 时,目标函数值有明显的下降,验证集准确率有明显的提升,而当 20000 个 batch 时,学习率从 0.001 降到 0.0005 时,目标函数值没有明显的下降,但是验证集准确率有一定的提升,而对于测试集,准确率也提升至 86.24%。这说明,学习率的变化确实能够提升模型的拟合能力,从而提升准确率。学习率在什么时候进行衰减、率减多少也需要进行多次尝试。一般在模型基本成型之后,使用这种变化的学习率的方法,以获取一定的改进,精益求精。



    第五步:加深网络层数,会发生什么事情?

    并不是网络层数越深,准确率越高,训练效果越好


    结果分析:我们惊讶的发现,加深了网络层数之后,性能反而下降了,达不到原来的验证集准确率,网络层数从 8 层增加到 14 层,准确率有所上升,但从 14 层增加到 20 层再增加到 32 层,准确率不升反降,这说明如果网络层数过大,由于梯度衰减的原因,导致网络性能下降,因此,需要使用其他方法解决梯度衰减问题,使得深度神经网络能够正常 work。



    第六步:利用参差网络,当做终极武器

    这个残差网络就很好地解决了梯度衰减的问题,使得深度神经网络能够正常 work。由于网络层数加深,误差反传的过程中会使梯度不断地衰减,而通过跨层的直连边,可以使误差在反传的过程中减少衰减,使得深层次的网络可以成功训练。


    结果分析:我们观察到,网络从 20 层增加到 56 层,训练 loss 在稳步降低,验证集准确率在稳步提升,并且当网络层数是 56 层时能够在验证集上达到 91.55% 的准确率。这说明,使用了残差网络的技术,可以解决梯度衰减问题,发挥深层网络的特征提取能力,使模型获得很强的拟合能力和泛化能力。当我们训练深度网络的时候,残差网络很有可能作为终极武器发挥至关重要的作用。


    --------------------------------------------------------------------------------------------------------------

    总结:

    对于 CIFAR-10 图像分类问题,我们从最简单的卷积神经网络开始,分类准确率只能达到 70% 左右,通过不断地增加提升模型性能的方法,最终将分类准确里提升到了 90% 左右,这 20% 的准确率的提升来自于对数据的改进、对模型的改进、对训练过程的改进等,具体每一项提升如下表所示。

    • 改进方法                           获得准确率                          提升

    • 基本神经网络                    69.36%                                -

    • + 数据增强                         80.42%                                11.06%

    • + 模型改进                         85.72%                                16.36%

    • + 变化学习率                     86.24%                                 16.88%  

    • + 深度残差网络                  91.55%                                 22.19%

    其中,数据增强技术使用翻转图像、切割图像、白化图像等方法增加数据量,增加模型的拟合能力。模型改进技术包括 batch normalization、weight decay、dropout 等防止过拟合,增加模型的泛化能力。变化学习率通过在训练过程中递减学习率,使得模型能够更好的收敛,增加模型的拟合能力。加深网络层数和残差网络技术通过加深模型层数和解决梯度衰减问题,增加模型的拟合能力。这些改进方法的一步步堆叠,一步步递进,使得网络的拟合能力和泛化能力越来越强,最终获得更高的分类准确率。
    展开全文
  • 模型优化方法小结

    千次阅读 2018-07-18 11:48:13
    最近的研究设计并建立了一些优化模型,其中的一些优化方法值得总结。比如,当遇到如下模型: minUTU=I∥X−UTP∥2FminUTU=I⁡‖X−UTP‖F2\mathop{min}_{U^TU=I}\|X-U^TP\|_F^2 上述模型中UUU为正交矩阵,如何优化...

    最近的研究设计并建立了一些优化模型,其中的一些优化方法值得总结。比如,当遇到如下模型:

    minUTU=IXUTP2F m i n U T U = I ⁡ ‖ X − U T P ‖ F 2

    上述模型中 U U 为正交矩阵,如何优化求解U呢?我们将优化的目标函数进行trace展开:

    XUTP2F=Tr(XTX)+Tr(PTP)2Tr(XTUTP) ‖ X − U T P ‖ F 2 = T r ( X T X ) + T r ( P T P ) − 2 T r ( X T U T P )

    那么最小化原始的目标函数,则等价为最大化如下目标函数:

    maxUTU=ITr(XTUTP) m a x U T U = I ⁡ T r ( X T U T P )

    新的目标函数有如下性质:

    Tr(XTUTP)=Tr(UTPXT)i=1nσi(UT)σi(PXT)=i=1nσi(PXT) T r ( X T U T P ) = T r ( U T P X T ) ≤ ∑ i = 1 n σ i ( U T ) ∗ σ i ( P X T ) = ∑ i = 1 n σ i ( P X T )

    其中 σi σ i 表示矩阵的第 i i 大的奇异值。现在对PXT进行奇异值分解,得到 PXT=ASBT P X T = A S B T (SVD分解);那么当 U=ABT U = A B T 时, Tr(UTPXT) T r ( U T P X T ) 取最大值。因为如下:

    Tr(UTPXT)=Tr(BATASBT)=Tr(S)=i=1nσi(PXT) T r ( U T P X T ) = T r ( B A T ∗ A S B T ) = T r ( S ) = ∑ i = 1 n σ i ( P X T )

    所以最终的 U=ABT U = A B T ,其中的 A,B A , B PXT P X T 的奇异值分解。

    有时我们建立的数据模型有如下形式,其中数据 X=[x1,,xN]Rm×N X = [ x 1 , ⋯ , x N ] ∈ R m × N B=[b1,,bN]Rm×N B = [ b 1 , ⋯ , b N ] ∈ R m × N

    minB,Wμ2XB2F+λn=1Nbn+1Wbn22 m i n B , W ⁡ μ 2 ‖ X − B ‖ F 2 + λ ∑ n = 1 N ‖ b n + 1 − W b n ‖ 2 2

    为了更好的优化求解上式,我们需要对第二项进行简单变形得到关于 B B 的形式,由此我们引入矩阵H,h,如下:

    H=0100000000010000RN×N H = [ 0 0 ⋯ 0 0 1 0 ⋯ 0 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 0 0 0 0 ⋯ 1 0 ] ∈ R N × N

    h=[0,0,,0,1]TRN h = [ 0 , 0 , ⋯ , 0 , 1 ] T ∈ R N

    有了 H,h H , h ,上述的目标函数可改写为:

    minB,Wμ2XB2F+λBHWB2FλWBh22 m i n B , W ⁡ μ 2 ‖ X − B ‖ F 2 + λ ‖ B H − W B ‖ F 2 − λ ‖ W B h ‖ 2 2

    针对 B B 的优化,可以采取一种比较简便的变形。我们引入vec堆叠操作符,将矩阵拉为向量;目标函数则变为:(这里使用了堆叠操作符的性质:vec(ASB)=(BTA)vec(S) 为克罗内克积)

    minαμ2xα22+λPα22λQα22 m i n α ⁡ μ 2 ‖ x − α ‖ 2 2 + λ ‖ P α ‖ 2 2 − λ ‖ Q α ‖ 2 2

    其中 vec(X)=x,vec(B)=α,P=(HTIm)(INW),Q=hTW v e c ( X ) = x , v e c ( B ) = α , P = ( H T ⊗ I m ) − ( I N ⊗ W ) , Q = h T ⊗ W 。上述目标函数优化转换为对 α α 的优化求解。其实上述目标函数中虽然有 λQα22 − λ ‖ Q α ‖ 2 2 项的存在,但是此目标函数关于 α α 是凸的,因为可以证明 PTPQTQ P T P − Q T Q 正定。则 α α 有闭合解:

    α=μ(μI+2λPTP2λQTQ)+x α = μ ( μ I + 2 λ P T P − 2 λ Q T Q ) + x

    而对 W W 的优化也有闭合解,最简单做法便是优化原始目标函数中的第二项,实质为一个线性问题:

    [b2,b3,,bN]=W[b1,b2,,bN1]

    W=[b2,b3,,bN][b1,b2,,bN1]+ W = [ b 2 , b 3 , ⋯ , b N ] ∗ [ b 1 , b 2 , ⋯ , b N − 1 ] + 。当然 W W <script type="math/tex" id="MathJax-Element-59">W</script>的优化也可直接对变换后的目标函数直接求导求解。

    展开全文
  • 作者:桔子 ...在模型导入SuperMap平台之后,在应用过程中必然会遇到性能问题,随之而来的就是如何优化模型。本文将总结个人使用经验和理解,从实际出发介绍几种优化方法和...模型优化方法 1、导出设置模型精细度 B...

    作者:桔子

    本文同步更新于简书文章https://www.jianshu.com/p/e39412f6f287
    在模型导入SuperMap平台之后,在应用过程中必然会遇到性能问题,随之而来的就是如何优化模型。本文将总结个人使用经验和理解,从实际出发介绍几种优化方法和缓存策略。以下操作均在SuperMap iDesktop 9D(2019)sp1中进行。

    模型优化方法

    1、导出设置模型精细度

    BIM模型的一个特征就是比较精细,特别是管子、圆弧状等构件,三角面较多,在导出过程中进行适当的简化可以很好的提高性能。通常默认模型精细度为100%,可进行调整,例如设置精细度为80%。
    在这里插入图片描述

    导出设置模型精细度
    2、模型拆分子对象

        部分模型在建模时,创建的族类型较为复杂,在最终的模型中单个对象存在较多对象,且三角面过多,导致场景性能较差,此时可以使用拆分子对象的方式,将单个对象拆分为多个小对象。
    

    子对象过多
    拆分子对象

    拆分子对象
    3、模型切分

    在管道模型中,常存在单个管道对象非常长,长度能达到几千米以上,三角面数几十万,此时模型就相对非常复杂,不利于使用。对此类型数据的优化通常采用模型切分的方式,将长的模型切分成多段小模型。
    模型切分

    4、移除重复顶点和重复面

        导出的模型通常存在一些重复顶点和重复面,这些重复顶点和重复面在渲染过程中是不必要的,会造成资源的消耗。
    

    移除重复点
    移除重复面
    重复点示例

    5、三角网简化

    在导出模型设置简化之后发现三角面任然较多,性能较差,可使用三角网简化功能对模型进行再次简化,简化过程可以预览,不断尝试简化率以达到比较理想的效果。
    三角网简化

    6、子对象操作

    在以上操作之后发现个别对象的子对象仍然比较大,可单独选中对象,对该对象的子对象进行简化和编辑。
    子对象操作

    模型缓存策略

    BIM模型和传统的Max模型区别非常明显,BIM模型对象通常尺寸较小,对象非常多,模型复杂切三角面比较多。如果再使用传统的Max切片边长值,必然会出现单个.s3m文件过大,加载慢的情况,不利于web端应用。根据BIM模型的特征,需要适当的减小切片边长,个人推荐50或者100,视具体的数据情况可适当的做调整。

    切片边长

    小结

    不同类型的模型具有独特的数据特征,需要根据具体的数据特征具体分析,同时注重理论的应用和操作方法。尤其在Web端应用的过程中,数据存在下载和渲染的过程,下载过程中要求数据碎片化,单文件不宜过大,渲染过程中,三角面越少渲染越快。以上就是我个人对于Revit模型的理解和应用经验,欢迎讨论。

    展开全文
  •   在深度学习和机器学习的各种模型训练过程中,在训练数据不够多时,自己常常会遇到的问题就是过拟合(overfitting),过拟合的意思就是模型过度接近训练的数据,使得模型的泛化能力降低,泛化能力降低表现为模型...

    转自:https://blog.csdn.net/chenyukuai6625/article/details/76922840

    一、背景简介 
      在深度学习和机器学习的各种模型训练过程中,在训练数据不够多时,自己常常会遇到的问题就是过拟合(overfitting),过拟合的意思就是模型过度接近训练的数据,使得模型的泛化能力降低,泛化能力降低表现为模型在训练集上测试的误差很低,但是真正在验证集上测试时却发现error很大,如下图所示。所以此时得到的过拟合的模型不是我们想要的模型,我们需要对模型进行优化,从而提高其泛化性能,使其在测试时模型表现更好。 

    这里写图片描述

     

      如今常用的神经网络优化方法(避免过拟合,提高模型泛化性)有以下几种:early stopping、数据集扩增、正则化(Regularization)包括L1、L2(L2 regularization也叫权重衰减),dropout。下面将分别对这几种优化方法进行介绍。 
      在进行优化方法之前先介绍一下一个知识点,在深度学习的模型训练中,我们用于训练的原始数据集常常分为3部分:训练集(training data)、验证集(validation data)和测试集(testing data)。这三个数据集分别有各自的功能,其中训练集是用于模型的训练的,验证集的作用为确定网络结构或者控制模型复杂程度的参数,测试集是用于评估训练模型的好坏和精确度。 
      这三个数据集最不好理解的就是验证集,现在我们单独来理解这个数据集的作用。假设建立一个BP神经网络,对于隐含层的节点数目,我们并没有很好的方法去确定。此时,一般将节点数设定为某一具体的值,通过训练集训练出相应的参数后,再由交叉验证集去检测该模型的误差;然后再改变节点数,重复上述过程,直到交叉验证误差最小。此时的节点数可以认为是最优节点数,即该节点数(这个参数)是通过交叉验证集得到的。所以由上面可以发现交叉验证集是用于确定网络结构或者控制模型复杂程度的参数。

    二、early stopping 
      Early stopping方法的具体做法是,在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算验证集(validation data)的精确率(accuracy),当accuracy不再提高时,就停止训练,及早的停止训练也可以在一定程度上避免训练模型对于训练数据的过拟合。 
      我们可以很好理解这种做法,因为当accurary不再提高,再继续训练也是无益的,这只会提高训练的时间。但是现在的问题就是如何评判验证集的精确率不再提高了呢?这里并不是认为validation accuracy一降下来便认为不再提高了,这是因为一个epoch精确率降低了,随后的epoch有可能它又升高上去了。所以在实际中我们不能仅根据一两次的epoch来判定验证集的精确率的变化。这里我们一般采用的方法是多看几个epoch(例如10、20、30等),这种方法也非常好理解,就是当我们经过一定的epoch之后发现验证集精确率还是没有达到最佳,我们就认为精确率不再提高。此时停止迭代(Early Stopping)。这种策略我们也称为“No-improvement-in-n”,n即Epoch的次数,可以设定n为10、20、30等,具体情况具体分析。

    三、L2 正则化(权重衰减) 
    3.1 公式推导说明核心思想 
      L2正则化所做的改变就是在原代价函数后面加上一个正则化项,如下所示: 

    这里写图片描述

     

      其中C0为原始的代价函数,后面的一项就是L2正则化项,它的值为所有权重w的平方的和除以训练集的样本大小n。λ为正则项系数,用于权衡正则项与C0项的比重。另外还有一个系数1/2,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好为1。 
      那么L2正则项是如何避免overfitting的呢?我们可以通过推导来发现原因,对C进行求导得: 

    这里写图片描述

     

      由上图可以发现L2正则项对b的更新没有任何影响,但对于w的更新有些影响,影响如下: 

    这里写图片描述

     

      由上图可以发现,当λ=0时即为没有L2正则化情况,但当加入L2正则化时,因为η、λ、n都是正的,所以 1−ηλ/n肯定小于1,所以L2正则化的效果就是减小w,这也就是权重衰减(weight decay)的由来。但是这里需要说明的是权重衰减并不是说权重w会减小,我们这里的权重衰减讲的是相比于没加入L2正则化的情况权重w会减小,在加入L2正则化时,权重w的增加或减小极大程度取决于后面的导数项,所以w最终的值可能增大也可能减小。 
      现在,我们通过公式推导解释了L2正则化项会有让w“变小”的效果,但是还没解释为什么w“变小”可以防止overfitting? 
    3.2 权重衰减如何防止overfitting? 
      一个所谓“显而易见”的解释就是:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀),还没达到过拟合,而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。当然,这个解释没有那么有说服力,没办法直观理解,现在我们通过数学知识来理解这个问题。 
      过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。 而正则化是通过约束参数的范数使其不要太大,所以它可以在一定程度上减少过拟合情况。 

    这里写图片描述

     

    四、L1正则化 
      在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n。 

    这里写图片描述

     

      同样先计算导数: 

    这里写图片描述

     

      上式中sgn(w)表示w的符号,当w>0时,sgn(w)=1,当w<0时,sgn(w)=-1,sgn(0)=0。那么权重w的更新公式为: 

    这里写图片描述

     

      上式比原始的更新规则多出了η * λ * sgn(w)/n这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。

    五、Dropout 
      L1、L2正则化是通过修改代价函数来实现的,而Dropout则是通过修改神经网络本身来实现的,它直接使一些神经节点失活,它在训练神经网络模型时常常采用的提高模型泛化性的方法。假设dropout的概率为0.5,我们要训练的神经网络结构如下: 

    这里写图片描述

     

      在训练时,我们采用的dropout的方法就是使得上面的某些神经元节点失效,将这些节点视为不存在,网络如下: 

    这里写图片描述

     

      保持输入输出层不变,按照BP算法更新上图神经网络中的权值(虚线连接的单元不更新,因为它们被“临时失活”了)。以上就是一次迭代的过程,在第二次迭代中,也用同样的方法,只不过这次失活的那一半隐层单元,跟上一次失活的神经节点是不一样的,因为我们每一次迭代都是“随机”地去失活一半。第三次、第四次……都是这样,直至训练结束。 
      上面的过程就是Dropout,但是它为什么有助于防止过拟合呢?可以简单地这样解释,运用了dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络(以dropout的概率为0.5为例),每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误的。随着训练的进行,大部分半数网络都可以给出正确的分类结果,那么少数的错误分类结果就不会对最终结果造成大的影响。

    六、数据集的扩增 
      数据集在模型训练的时候显得非常重要,没有好的数据没有更多的数据好的模型无从谈起。在深度学习中,更多的训练数据,意味着可以用更深的网络,训练出更好的模型。 
      我们了解到数据对于模型的重要性,但是数据的获取常常需要耗费更多的人力物力。之前在做图像检测的项目时就干过这件事,特别麻烦,效率特别低。不过在做图像相关的模型时,获取数据还有一个很好的途径,就是在原始数据上做改动,从而可得到更多的数据,做各种变换。如:将原始图片旋转一个小角度;在图像上添加噪声;做一些有弹性的畸变;截取原始图像的一部分。通过这种方式可以在数据集不足的情况下对数据进行扩增,极大的增加数据集。

    展开全文
  • SWA(随机权重平均)——一种全新的模型优化方法

    千次阅读 多人点赞 2018-11-13 23:33:56
    这两天被朋友推荐看了一篇热乎的新型优化器的文章,文章目前还只挂在arxiv上,还没发表到顶会上。本着探索的目的,把这个论文给复现了一下,顺便弥补自己在优化器方面鲜有探索的不足。 论文标题:Averaging Weights...
  • 如何优化深度学习模型

    千次阅读 2019-05-01 09:48:34
    在本文中,我们讨论了超参数和一些优化它们的方法。但这一切意味着什么? 随着人们越来越努力地使AI技术民主化,自动超参数调整可能是朝着正确方向迈出的一步。它允许像你我这样的普通人在没有数学博士学位的情况...
  • 1、增加(减少)隐藏层的复杂度,如增加隐藏层数,调整隐藏层的神经元个数,或者在隐藏层使用更加复杂的网络结构,如CNN、RNN、LSTM、GRU或者增加Attention...4、增加迭代次数,一般为了快速检验模型效果训练次数比...
  • 模型参数优化方法

    千次阅读 2019-07-17 18:31:09
    • 坐标轴下降优化方法是一种非梯度优化算法。在整个过程中依次循环使用不同的坐标 方向进行迭代,一个周期的一维搜索迭代过 程相当于一个梯度下降的迭代; • 梯度下降是利用目标函数的导数来确定搜索方向的,该...
  • 深度学习模型的调优,首先需要对各方面进行评估,主要包括定义函数、模型在训练集和测试集拟合效果、交叉验证、激活函数和优化算法的选择等。 那如何对我们自己的模型进行判断呢?请看详细解析以及案例实战!
  • 数学建模-线性优化模型

    千次阅读 2020-02-24 12:12:15
    线性优化模型中包含线性函数 f(x) 与 g(x) ,在一个或多个约束条件 g(x) 所限制的条件下,需求得目标函数 f(x) 的最优值。 线性优化的基本算法 一般线性规划问题中当线性方程组的变量数大于方程个数,这时会有不定...
  • 机器学习中常见的几种优化方法

    万次阅读 2016-06-08 15:11:36
    机器学习中常见的几种优化方法 声明:本文为转载,原文作者为:Poll的笔记,原文链接为:http://www.cnblogs.com/maybe2030/p/4751804.html#rd,尊重原创 阅读目录 1. 梯度下降法(Gradient ...
  • 机器学习中常见的几种最优化方法

    万次阅读 2016-06-07 10:02:17
    1. 梯度下降法(Gradient Descent) ...4. 启发式优化方法  5. 解决约束优化问题——拉格朗日乘数法 我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题
  • 前言 多元线性回归模型非常常见,是大多数...Python多元线性回归的模型的实战案例有非常多,这里虽然选用的经典的房价预测,但贵在的流程简洁完整,其中用到的精度优化方法效果拔群,能提供比较好的参考价值。 数据探索
  • 优化,老生常谈。游戏的优化和网站、软件优化没有任何不同,除了编码质量和使用技巧以外,都是那些空间<>时间、效果<>性能的老套路。 Debug工具介绍 Statistics Profile 内存优化 【适当的GC(Garbage ...
  • 三、模型欠拟合与过拟合的优化方法 1、模型欠拟合 2、模型过拟合 一、模型欠拟合及过拟合简介 模型应用时发现效果不理想,有多种优化方法,包含:   添加新特征 增加模型复杂度 减小正则项权重 获取...
  • 3dsMax的模型优化技巧

    千次阅读 2013-04-11 13:34:23
    3dsMax的模型优化技巧 影响VR—DEMO最终运行速度的三大因素为:VR场景模型的总面数、VR场景模型的总个数、VR场景模型的总贴图量。本章将着重介绍如何控制VR场景模型的总面数和VR场景模型的总个数? 在掌握了...
  • 特征工程与模型优化特训

    千人学习 2021-11-05 11:15:09
    [特征工程与模型优化特训],,从数据采集到数据处理、到特征选择、再到模型调优,带你掌握一套完整的机器学习流程,对于不同类型的数据,不同场景下的问题,选择合适的特征工程方法和模型优化方法进行处理尤为重要,...
  • 常见的几种最优化方法

    千次阅读 2016-12-03 13:36:30
    阅读目录 1. 梯度下降法(Gradient Descent) ...2. 牛顿法和拟牛顿法(Newton's method...4. 启发式优化方法  我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都
  • 深度学习模型优化+模型蒸馏+模型压缩 、https://blog.csdn.net/shentanyue/article/details/83539382 经典论文: (1)Distilling the Knowledge in a Neural Network 地址:...
  • 为了让MNIST数字识别模型更准确,学习几种常用的模型优化手段: 学习率的优化 学习率的设置一定程度上也会影响模型的训练,如果学习率过小,那么将会经过很长时间才会收敛到想要的结果,反之,学习率过大则可能会...
  • 然而,手机、车载等移动端应用对深度神经网络的需求越来越多,因而深度神经网络模型的压缩、加速、优化变的越来越重要。这也是本届VALSE的热点之一。 深度学习算法是计算密集型和存储密集型的,这使得它难以被...
  • 机器学习模型应用以及模型优化的一些思路

    万次阅读 多人点赞 2017-03-09 19:55:45
    包括问题界定和定义、 label标注的定义、 数据样本的筛选和构造、 选择机器学习算法、 确定模型性能的度量方式、模型优化、(包括数据分析可视化、特征工程、算法调参、bad case 分析)、设计模型应用的策略、 ...
  • MPC模型预测控制

    万次阅读 多人点赞 2018-12-17 17:02:00
    这篇主要讲一下模型预测控制,如果对PID控制了解的同学,那效果更好。...我想到两点解决方法: 1. 文献上去找别人已经建好的,公认的模型; 2. 首先进行系统辨识,再进行建模。(难度太大,不建议) 下面给上经...
  • 数学建模之常见的优化模型

    千次阅读 多人点赞 2020-07-24 16:40:55
    建立模型: ai:第i个水库供水量 bi:第i个小区基本用水量 ci:第i个小区额外用水量 dij:从第i歌水库运到第j个小区的管理费 决策变量:xij:从第i个水库运到第j个小区的水量 maxZ=∑i=13∑j=14xijstd:{x34=0,∑j=14xij...
  • 模型调优方法

    千次阅读 2018-12-03 10:06:03
    模型调优方法 参数调整 效果优化 过拟合 欠拟合 权重分析 Bad-Case 分析
  • 深度学习优化算法有哪些??SGD,Adagrad,Adam,LazyAdam,Madam,适用场景以及优缺点。
  • 贝叶斯优化: 一种更好的超参数调优方式

    万次阅读 多人点赞 2018-10-08 13:24:03
    目前人工智能和深度学习越趋普及,大家可以使用开源的Scikit-learn、TensorFlow来实现机器学习模型,甚至参加Kaggle这样的建模比赛。那么要想模型效果好,手动调参少不了,机器学习算法如SVM就有gamma、kernel、ceo....
  • &nbsp; &nbsp; &nbsp; &nbsp;... 最优化赛题是数学建模大赛中最常见的问题...一般说来,凡是寻求最大、最小、最远、最近、最经济、最丰富、最高效、最耗时的目标,都可以划入优化问题的范畴。MATLAB ...
  • 模型优化-提高准确率

    千次阅读 2018-10-25 15:42:52
    如何提高训练模型准确率 ...提升一个模型的表现有时很困难,尝试所有曾学习过的策略和算法,但模型正确率并没有改善。...本文将分享 8 个经过证实的方法,使用这些方法可以建立稳健的机器学习模型。 导语 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 542,678
精华内容 217,071
关键字:

模型优化方法