其中 E 的計算公式如下,t 時刻的依賴于前一時刻的平均和當前的梯度:
梯度更新規(guī)則:
此外,還將學(xué)習率 η 換成了 RMS[Δθ],這樣的話,我們甚至都不需要提前設(shè)定學(xué)習率了:
超參數(shù)設(shè)定值:
γ 一般設(shè)定為 0.9,
8. RMSprop
RMSprop 是 Geoff Hinton 提出的一種自適應(yīng)學(xué)習率方法。
RMSprop 和 Adadelta 都是為了解決 Adagrad 學(xué)習率急劇下降問題的,
梯度更新規(guī)則:
RMSprop 與 Adadelta 的第一種形式相同:
超參數(shù)設(shè)定值:
Hinton 建議設(shè)定 γ 為 0.9, 學(xué)習率 η 為 0.001。
9. Adam
這個算法是另一種計算每個參數(shù)的自適應(yīng)學(xué)習率的方法。
除了像 Adadelta 和 RMSprop 一樣存儲了過去梯度的平方 vt 的指數(shù)衰減平均值 ,也像 momentum 一樣保持了過去梯度 mt 的指數(shù)衰減平均值:
如果 mt 和 vt 被初始化為 0 向量,那它們就會向 0 偏置,所以做了偏差校正, 通過計算偏差校正后的 mt 和 vt 來抵消這些偏差:
梯度更新規(guī)則:
超參數(shù)設(shè)定值:
建議 β1 = 0.9,β2 = 0.999,? = 10e?8
實踐表明,Adam 比其他適應(yīng)性學(xué)習方法效果要好。
效果比較
下面看一下幾種算法在鞍點和等高線上的表現(xiàn):
上面兩種情況都可以看出,Adagrad, Adadelta, RMSprop 幾乎很快就找到了正確的方向并前進,收斂速度也相當快,而其它方法要么很慢,要么走了很多彎路才找到。
由圖可知自適應(yīng)學(xué)習率方法即 Adagrad, Adadelta, RMSprop, Adam 在這種情景下會更合適而且收斂性更好。
如何選擇
如果數(shù)據(jù)是稀疏的,就用自適用方法,即 Adagrad, Adadelta, RMSprop, Adam。
RMSprop, Adadelta, Adam 在很多情況下的效果是相似的。
Adam 就是在 RMSprop 的基礎(chǔ)上加了 bias-correction 和 momentum,
隨著梯度變的稀疏,Adam 比 RMSprop 效果會好。
整體來講,Adam 是最好的選擇。
很多論文里都會用 SGD,沒有 momentum 等。SGD 雖然能達到極小值,但是比其它算法用的時間長,而且可能會被困在鞍點。
如果需要更快的收斂,或者是訓(xùn)練更深更復(fù)雜的神經(jīng)網(wǎng)絡(luò),需要用一種自適應(yīng)的算法。
評論
查看更多