梯度更新公式 |
W←W−η∂W∂L————————————— |
v←αv−η∂W∂L—————————————W←W+v |
h←h+∂W∂L2—————————————W←W−ηh1∂W∂L |
Adam融合了Momentum和AdaGrad————————————— |
代碼 |
|
|
|
|
f(x,y)=201x2+y2的更新路徑 |
|
|
|
|
造成原因 |
比單純朝梯度方向,但梯度的方向並沒有指向最小值的方向,如果函數的形狀非均向,比如呈延伸狀,搜索的路徑就會非常低效 |
這是因爲雖然x軸方向上受到的力非常小,但是一直在同一方向上受力,所以朝同一個方向會有一定的加速。反過來,雖然y軸方向上受到的力很大,但是因爲交互地受到正方向和反方向的力,它們會互相抵消,所以y軸方向上的速度不穩定 |
AdaGrad會爲參數的每個元素適當地調整學習率,會記錄過去所有梯度的平方和。在更新參數時,通過乘以 h1,就可以調整學習的尺度。這意味着,參數的元素中變動較大(被大幅更新)的元素的學習率將變小。也就是說,可以按參數的元素進行學習率衰減,使變動大的參數的學習率逐漸減小 |
|