版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yinyu19950811/article/details/90476956

 

 

优化方法概述

模型优化方法的选择直接关系到最终模型的性能。有时候效果不好,未必是特征的问题或者模型设计的问题,很可能是优化算法的问题,而且好的优化算法还能够帮助加速训练模型。

深度学习模型的发展进程:
SGD -> SGDM ->NAG -> AdaGrad -> AdaDelta -> Adam -> Nadam

1.整体框架

首先定义:
待优化参数α
每次迭代:

  1. 计算目标函数关于参数的梯度:)
  2. 根据历史梯度计算一阶动量和二阶动量:)
  3. 计算当前时刻的下降梯度:
  4. 根据下降梯度对参数进行更新:

步骤3、4对于各个算法都是一致的,主要的差别就体现在1和2上。

1.1 SGD

没有动量的概念,第三步中 n。
缺点:

  • 有可能会陷入局部最小值;
  • 不会收敛,最终会一直在最小值附近波动,并不会达到最小值并停留在此;
  • 下降速度慢;
  • 选择合适的learning rate比较困难;
  • 在所有方向上统一的缩放梯度,不适用于稀疏数据

1.2 Momentum

SGD下降方法的缺点是参数更新方向只依赖于当前batch计算出的梯度,因此十分的不稳定。为了抑制SGD的震荡,动量认为梯度下降的过程中可以加入惯性。动量梯度下降法运行速度总是快于标准的梯度下降法,其基本思想是在SGD的基础上引入了一阶动量:
β的经验值一般为0.9,也就是意味着下降方向主要是此前累积的下降方向,并略微偏向当前时刻的下降方向。并利用当前batch微调最终的更新方向。如果当前梯度方向与历史梯度一致,会增强该方向的梯度。如果不一致,能够减少更新。
优点:

  • 增加了稳定性;
  • 收敛速度更快;
  • 还有一定摆脱局部最优的能力。

1.2.1 理解指数加权平均

使得=

相关文章:

  • 2022-01-11
  • 2021-09-24
  • 2021-12-24
  • 2022-01-29
  • 2021-12-03
  • 2021-12-30
  • 2021-05-21
猜你喜欢
  • 2021-04-28
  • 2021-11-02
  • 2022-12-23
  • 2022-01-29
相关资源
相似解决方案