某猪场的笔试题问到了深度学习中的优化算法,由于准备不足扑街了,后来补了一下这方面的知识,整理如下:

基本算法

随机梯度下降(SGD)

深度模型中的优化算法

实践中,一般会线性衰减学习率直到第τ次迭代:

ϵk=(1α)ϵ0+αϵτ

其中,α=kτ。在τ布迭代之后,一般使ϵ保持常数。

动量(momentum)

深度模型中的优化算法

如果动量算法总是观测到梯度g,那么它会在方向g上不停加速,直到达到最终速度,其中步长大小为:

ϵ||g||1α

因此,α=0.9对应着最大速度10倍于梯度下降算法。

Nesterov动量

深度模型中的优化算法

Nesterov 动量中,梯度计算在施加当前速度之后。因此,Nesterov 动量可以解释为往标准动量方法中添加了一个校正因子。

在凸批量梯度下有改进,但是在随机梯度下没有改进收敛率。

参数初始化策略

Gaussian initialization

Xavier initialization

He initialization

Batch Normlization

参数初始化部分可以参考知乎的这篇文章

自适应学习率算法

AdaGrad

深度模型中的优化算法

在凸优化背景下,AdaGrad算法具有一些令人满意的理论性质。

RMSProp

深度模型中的优化算法

RMSProp 算法(Hinton, 2012) 修改AdaGrad 以在非凸设定下效果更好,改变梯度积累为指数加权的移动平均。

深度模型中的优化算法

Adam

深度模型中的优化算法

Adam通常被认为对超参数的选择相当鲁棒。

以上截图出自“花书”——Goodfellow的《深度学习》。

相关文章:

  • 2021-09-05
  • 2021-12-23
  • 2021-05-10
  • 2022-12-23
  • 2021-08-17
  • 2021-04-05
  • 2021-06-02
猜你喜欢
  • 2021-09-15
  • 2021-07-11
  • 2022-12-23
  • 2021-09-15
  • 2021-11-13
相关资源
相似解决方案