1. 程式人生 > >Gradient Descent with Momentum

Gradient Descent with Momentum

一個 ast image spl lock bubuko 梯度 moment 之前

在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