Gradient Descent with Momentum

Posted rhyswang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradient Descent with Momentum相关的知识,希望对你有一定的参考价值。

在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的主要内容,如果未能解决你的问题,请参考以下文章

flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )

Gradient Descent 和 Stochastic Gradient Descent(随机梯度下降法)

Meta learning paper:Learning to learn by gradient descent by gradient descent (Nips2016)

随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比

随机梯度下降(stochastic gradient descent),批梯度下降(batch gradient descent),正规方程组(The normal equations)

随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比实现对比