SGD、Momentum、AdaGrad、Adam

注:《深度學習應用》

  1. WW 表示需要更新的參數

  2. LW\frac{\partial L}{\partial W} 表示損失函數關於W的梯度

  3. η\eta 表示學習率

SGD Momentum AdaGrad Adam
梯度更新公式 WWηLWW \leftarrow W -\eta\frac{\partial L}{\partial W} \\ —————————————\\ vαvηLWWW+vv \leftarrow \alpha v -\eta\frac{\partial L}{\partial W}\\ —————————————\\W \leftarrow W+v hh+LW2WWη1hLWh \leftarrow h +\frac{\partial L}{\partial W} ^2 \\ —————————————\\ W \leftarrow W-\eta \frac{1}{\sqrt{h}}\frac{\partial L}{\partial W} Adam融合了Momentum和AdaGrad \\ —————————————\\
代碼 W 在這裏插入圖片描述 在這裏插入圖片描述
f(x,y)=120x2+y2f(x,y)=\frac{1}{20}x^2+y^2的更新路徑 在這裏插入圖片描述 在這裏插入圖片描述 在這裏插入圖片描述 在這裏插入圖片描述
造成原因 比單純朝梯度方向,但梯度的方向並沒有指向最小值的方向,如果函數的形狀非均向,比如呈延伸狀,搜索的路徑就會非常低效 這是因爲雖然x軸方向上受到的力非常小,但是一直在同一方向上受力,所以朝同一個方向會有一定的加速。反過來,雖然y軸方向上受到的力很大,但是因爲交互地受到正方向和反方向的力,它們會互相抵消,所以y軸方向上的速度不穩定 AdaGrad會爲參數的每個元素適當地調整學習率,會記錄過去所有梯度的平方和。在更新參數時,通過乘以 1h\frac{1}{\sqrt{h}},就可以調整學習的尺度。這意味着,參數的元素中變動較大(被大幅更新)的元素的學習率將變小。也就是說,可以按參數的元素進行學習率衰減,使變動大的參數的學習率逐漸減小
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章