動量梯度下降(momentum)

2021-10-09 05:11:06 字數 2680 閱讀 2053

動量梯度下降法是對梯度下降法的改良版本,通常來說優化效果好於梯度下降法。對梯度下降法不熟悉的可以參考梯度下降法,理解梯度下降法是理解動量梯度下降法的前提,除此之外要搞懂動量梯度下降法需要知道原始方法在實際應用中的不足之處,動量梯度下降法怎樣改善了原來方法的不足以及其具體的實現演算法。依次從以下幾個方面進行說明:

總結一下他們之間的關係:每次梯度下降都遍歷整個資料集會耗費大量計算能力,而mini-batch梯度下降法通過從資料集抽取小批量的資料進行小批度梯度下降解決了這一問題。使用mini-batch會產生下降過程中左右振盪的現象。而動量梯度下降法通過減小振盪對演算法進行優化。動量梯度下降法的核心便是對一系列梯度進行指數加權平均,下面時詳細介紹。

在實際應用中,由於樣本數量龐大,訓練資料上百萬是很常見的事。如果每執行一次梯度下降就遍歷整個訓練樣本將會耗費大量的計算機資源。在所有樣本中隨機抽取一部分(mini-batch)樣本,抽取的樣本的分布規律與原樣本基本相同,事實發現,實際訓練中使用mini-batch梯度下降法可以大大加快訓練速度。

mini-batch梯度下降法的思想很簡單,將樣本總體分成多個mini-batch。例如100萬的資料,分成10000份,每份包含100個資料的mini-batch-1到mini-batch-10000,每次梯度下降使用其中乙個mini-batch進行訓練,除此之外和梯度下降法沒有任何區別。

由於mini-batch每次僅使用資料集中的一部分進行梯度下降,所以每次下降並不是嚴格按照朝最小方向下降,但是總體下降趨勢是朝著最小方向,上圖可以明顯看出兩者之間的區別。

對右邊的圖來說,動量梯度下降法並沒有什麼用處。梯度批量下降法主要是針對mini-batch梯度下降法進行優化,優化之後左右的擺動減小,從而提高效率。優化前後的對比如下圖,可見動量梯度下降法的擺動明顯減弱。

指數加權平均值又稱指數加權移動平均值,區域性平均值,移動平均值。加權平均這個概念都很熟悉,即根據各個元素所佔權重計算平均值。指數加權平均中的指數表示各個元素所佔權重呈指數分布。假設存在數列q1,

q2,q

3,q4

....

....

...q1

​,q2

​,q3

​,q4

​...

....

....

令:v 0=

0v_0=0

v0​=0v1=

βv0+

(1−β

)q1v_1=βv_0+(1−β)q_1

v1​=βv

0​+(

1−β)

q1​v2=

βv1+

(1−β

)q2v_2=βv_1+(1−β)q_2

v2​=βv

1​+(

1−β)

q2​v3=

βv2+

(1−β

)q3v_3=βv_2+(1−β)q_3

v3​=βv

2​+(

1−β)

q3​…

…其中的v1,

v2,v

3v_1,v_2,v_3

v1​,v2

​,v3

​便稱為該數列的指數加權平均。為了更好地理解指數兩個字,我們展開v

100v_

v100

​中的所有v(為了方便書寫,令β=0.9,則1−β=0.1)得到:v

100=

0.1q

100+

0.1∗

0.9q99+

0.1∗

0.92q98

+0.1

∗0.93q97

+...

...+

0.1∗

0.999q1

v_=0.1q_+0.1∗0.9q_+0.1∗0.92q_+0.1∗0.93q_+......+0.1∗0.999q_1

v100​=

0.1q

100​

+0.1

∗0.9

q99​

+0.1

∗0.9

2q98

​+0.

1∗0.

93q9

7​+.

....

.+0.

1∗0.

999q

1​​觀察各項前面的係數不難得到從q

1q_1

q1​到q

100q_

q100

​各數權重呈指數分布。其權重大小如下圖:

可以看出指數加權平均是有記憶平均,每乙個v都包含了之前所有資料的資訊。

使用指數加權平均之後梯度代替原梯度進行引數更新。因為每個指數加權平均後的梯度含有之前梯度的資訊,動量梯度下降法因此得名。

如上圖所示,黑色量和綠色量沿著上下方向的分量便可以部分抵消(我們想往右邊的加號走),就能減小下一步的振盪幅度。

動量梯度下降法 Momentum

動量梯度下降法是對梯度下降法的一種優化演算法,該方法學習率可以選擇更大的值,函式的收斂速度也更快。梯度下降法就像下面這張圖,通過不斷的更新 w與b,從而讓函式移動到紅點,但是要到達最優解,需要我們不斷的迭代或者調整學習率來達到最後到達最優解的目的。但是調大學習率會導致每一次迭代的步長過大,也就是擺動...

線性回歸之動量梯度下降(momentum)

如果嫌隨機梯度下降的方法還不夠快,沒事,總會有大神跳出來說還有動量梯度下降。隨機下降在這裡 普通梯度下降,每次調整權重的方法就是梯度乘以學習速率 g g 而動量梯度下降,不僅考慮了當前的梯度,還用到了之前的梯度 lg lg disc ount gl g lg d isco unt g l g l g...

基於動量 momentum 的梯度下降法

批梯度下降 1 採用所有資料來梯度下降,在樣本量很大的時,學習速度較慢,因為處理完全部資料,我們僅執行了一次引數的更新。2 在學習過程中,我們會陷入損失函式的區域性最小值,而永遠無法達到神經網路獲得最佳結果的全域性最優值。這是因為我們計算的梯度大致相同。所以,我們實際上需要的是一些嘈雜的漸變。方向值...