Gradient Descent with Momentum

匿名 (未验证) 提交于 2019-12-03 00:40:02

在Batch Gradient Descent及Mini-batch Gradient Descent, Stochastic Gradient Descent(SGD)算法中,每一步优化相对于之前的操作,都是独立的。每一次迭代开始,算法都要根据更新后的Cost Function来计算梯度,并用该梯度来做Gradient Descent。

Momentum Gradient Descent相较于前三种算法,虽然也会根据Cost Function来计算当前的梯度,但是却不直接用此梯度去做Gradient Descent。而是赋予该梯度一个权值,并综合考虑之前N次优化的梯度,得到一个加权平均的移动平均值(Weighted Moving Average),并以此来作为Gradient Descent的参数。

这里使用Exponential Moving Average(EMA)来计算该加权平均值,公式为:

dW为本次计算出的梯度值,beta是衰减因子。如果将上式展开,可以得到:

根据β值的大小,可以得出大致纳入考虑范围的步数为1/(1-β),β值越大,步数约多,反之则窗口约窄。

EMA算法的优点:

1.EMA会减小算法的震荡

2.在实现上也非常有效率,比起Simple Moving Average,EMA所用的存储空间小,并且每次迭代中使用一行代码即可实现。

不过,β成为了除α外的又一个Hyperparameter,调参要更难了。

Gradient Descent with Momentum

原文:https://www.cnblogs.com/rhyswang/p/9284171.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!