zoukankan      html  css  js  c++  java
  • deeplearning 重要调参参数分析

    reference: https://blog.csdn.net/jningwei/article/details/79243800

    learning rate:学习率,控制模型的学习进度,决定权值更新的速度。也叫做步长,即反向传播算法的 

                                           

      学习率的设置

         在训练开始时,根据迭代次数动态设置学习率。

         刚开始时,学习率以0.01~0.001 为宜,一定轮数后,开始下降,在快结束时学习率的衰减应该在100倍以上。由于迁移学习,模型已在原始数据上收敛,应设置较小的学习率(<= 0.00001),

    在新数据上进行微调。

     学习率缓解机制

       

    目标函数损失值看lr

     理想情况下的损失曲线应该是滑梯式的,绿线所示:

    分析 :红线一开始就上扬,说明初始学习率过大,从而导致震荡,应该减小学习率。

                黄线初始学习率较小,loss曲线收敛缓慢,易过拟合,应增大初始学习率。

                紫线初始学习率过大,导致无法过拟合,应减小学习率。

    权重衰减 

                为了避免网络的过拟合,对cost function引入正则项,作用是减小不重要参数对最后结果的影响,有用的权重不会受到weight decay的影响。过拟合时权重值逐渐变大,在loss function增加一个惩罚项。不是为了提高收敛速度或是收敛精度,正则项指示模型的复杂度,权重衰减调节模型复杂度对损失函数的影响。

                                 

         

    Momentum

               基本思想是为了找到最优加入“惯性”的影响,当误差曲面中存在平坦区域时,SGD可以更快的学习。

                                 

    Learning Rate Decay

               目的是为了提高SGD的寻优化能力,每次迭代的时候减小学习率的大小。

    BN的好处:BN在NeuralNetwork 的激活函数之前,将wx+b按照特征进行标准化处理。

                       1.Normalization可以使特征缩放至【0,1】,在反向传播时梯度在1左右,避免梯度消失。

                       2.提高学习速率,标准化后更快达到收敛。

                       3.减少模型对初始化的依赖。

     batch大小的作用

                batch决定梯度下降的方向。如果batch size为全体数据集,则确定的方向可以更好的代表样本总体,更加准确的朝向极值的方向。缺点是内存的限制。

       如果设置为1,即为在线学习,每次修正方向都以各自样本的梯度方向修正,难以收敛。

                在合理的范围内增大batch_size可以提高内存利用率,减少跑完整个数据集的所需要的迭代次数,加快了相对于相同数据量的处理速度。一般设置为8的倍数。

               

  • 相关阅读:
    Javascript高级程序设计笔记(很重要尤其是对象的设计模式与继承)
    javascript面向对象技术基础总结
    cURL范例(包括错误输出和详情输出)
    javascript知识点总结
    php memcache知识点总结
    php mcrypt加密实例
    spl处理文件(文件详细信息、文件遍历、查询指定行、写入CSV文件)
    table-layout 属性
    backface-visibility 属性 :隐藏被旋转的 div 元素的背面
    HTML 5 全局 contenteditable 属性
  • 原文地址:https://www.cnblogs.com/fourmi/p/9828489.html
Copyright © 2011-2022 走看看