A. Stochastic Gradient Descent 随机梯度下降

随机梯度下降,每一次迭代计算数据集的mini-batch的梯度,然后对参数进行跟新。θ=θαθJ(θ)\theta = \theta - \alpha\bigtriangledown_{\theta}J(\theta)
Batchsize是算法设计中需要调节的参数,较小的值让学习过程收敛更快,但是产生更多噪声;较大的值让学习过程收敛较慢,但是可以更准确的估计误差梯度的方向。

B. Momentum 动量梯度下降

SGD方法的一个缺点是,其更新方向完全依赖于当前的batch,因而其更新十分不稳定。解决这一问题的一个简单的做法便是引入momentum。momentum即动量,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上增加稳定性,从而学习地更快,并且还有一定摆脱局部最优的能力
v=βv+(1β)θJ(θ)v=\beta v+(1-\beta)\bigtriangledown_{\theta}J(\theta)θ=θαv\theta = \theta - \alpha v
β\beta为0时,算法收敛为标准的梯度下降算法,一般取大一点比较好,比如0.9,总而言之,Momentum 是对SGD梯度上面的优化

C. Adagrad

上述方法中,对于每一个参数θi\theta_{i}的训练都使用了相同的学习率α\alpha。Adagrad算法能够在训练中自动的对learning rate进行调整,对于出现频率较低参数采用较大的α\alpha更新;相反,对于出现频率较高的参数采用较小的α\alpha更新。因此,Adagrad非常适合处理稀疏数据。θi=θiαGii+ϵθJ(θ)\theta_{i}=\theta_{i}-\frac{\alpha}{\sqrt{G_{ii}}+\epsilon}\bigtriangledown_{\theta}J(\theta)
其中,G_ii为对角矩阵,每个对角线位置ii为对应参数θ_i从第1轮到第t轮的平方和,ϵ是平滑项,用于避免分母为0,一般取值为1e-8,Adagrad的缺点在于训练的中后期,分母上梯度平方的累加将会越来越大,从而使梯度趋近于0,使得训练提前结束

D. RMSprop 均方根传播

RMSprop是Geoff Hinton提出的一种自适应学习率方法。Adagrad会累加之前所有的梯度平方,而RMSprop仅仅是计算对应的平均值,因此可缓解Adagrad算法学习率下降较快的问题。
E[v2]=βE[v2]+(1β)[θiJ(θi)]2E[v^{2}]=\beta E[v^{2}]+(1-\beta) [\bigtriangledown_{\theta_{i}}J(\theta_{i})]^{2}θi=θiαE[v2]+ϵθiJ(θi)\theta_{i}=\theta_{i}-\frac{\alpha}{\sqrt{E[v^{2}]}+\epsilon}\bigtriangledown_{\theta_{i}}J(\theta_{i})

E. Adaptive Moment Estimation (Adam)

Adam(Adaptive Moment Estimation)是另一种自适应学习率的方法。它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。
E[v]=β1E[v]+(1β1)θiJ(θi)E[v]=\beta_{1}E[v]+(1-\beta_{1})\bigtriangledown_{\theta_{i}}J(\theta_{i})E[v2]=β2E[v2]+(1β2)[θiJ(θi)]2E[v^{2}]=\beta_{2} E[v^{2}]+(1-\beta_{2}) [\bigtriangledown_{\theta_{i}}J(\theta_{i})]^{2}E[v]^=E[v]1β1t\hat{E[v]}=\frac{E[v]}{1-\beta^{t}_{1}}E[v2]^=E[v2]1β2t\hat{E[v^{2}]}=\frac{E[v^{2}]}{1-\beta^{t}_{2}}θi=θiαE[v2]^+ϵE[v]\theta_{i}=\theta_{i}-\frac{\alpha}{\sqrt{\hat{E[v^{2}]}}+\epsilon}E[v]这里E[v]^\hat{E[v]}E[v2]^\hat{E[v^{2}]}是对期望的矫正,这样可以近似为对期望的无偏估计。Adam算法的提出者建议β1\beta_{1}的默认值为0.9,β2\beta_{2}的默认值为0.999,ϵ\epsilon的默认值为1e-8,另外,在数据比较稀疏的时候,adaptive的方法能得到更好的效果,例如Adagrad,RMSprop, Adam 等。Adam 方法也会比 RMSprop方法收敛的结果要好一些, 所以在实际应用中 ,Adam为最常用的方法,可以比较快地得到一个预估结果。

F. 更多资源下载

机器学习算法岗面经 | 优化方法总结对比:SGD、Momentum、AdaGrad、RMSProp、Adam

有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。
微信搜索“老和山算法指南”获取下载链接与技术交流群

相关文章:

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