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的倍数。

               

  • 相关阅读:
    智器SmartQ T7实体店试用体验
    BI笔记之SSAS库Process的几种方案
    PowerTip of the Day from powershell.com上周汇总(八)
    PowerTip of the Day2010071420100716 summary
    PowerTip of the Day from powershell.com上周汇总(十)
    PowerTip of the Day from powershell.com上周汇总(六)
    重新整理Cellset转Datatable
    自动加密web.config配置节批处理
    与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable
    在VS2003中以ClassLibrary工程的方式管理Web工程.
  • 原文地址:https://www.cnblogs.com/fourmi/p/9828489.html
Copyright © 2011-2022 走看看