adam 參數解釋


adam 參數解析

參考

https://zhuanlan.zhihu.com/p/91166049
https://zhuanlan.zhihu.com/p/32626442

偽代碼

參數解釋

  1. Mt
    • Mt 提供了需要增大學習率的參數加速訓練的能力.
      *. 累計的一階動量(梯度)越大 代表在這個方向上歷史向單一方向更新的越多. 越需要收斂.
  2. Vt
    • vt提供了需要減小學習率衰減的能力.
    • vt越大代表歷史累計的二階動量(梯度平方)越大, 代表這個參數更新越頻繁,震盪越嚴重. 所以需要衰減學習率.
  3. t
    • 代表時間步, 每個epoch更新一次.
    • 所以在每個epoch開始時loss可能會有震盪.
  4. ß1, ß2,
    • 起到了對一二階動量指數衰減的作用. 避免vt 累計過大, 導致參數學習率太小無法更新. 克服了adagrad 累計梯度導致分母過大參數無法更新的問題.
    • 下圖展示出時間步1~20時,各個時間步的梯度隨着時間的累積占比情況。(ß1,ß2的作用, 指數衰減 )
  5. epsilon
    • 避免gt除數(vt+epsilon) 為0. 注意如果vt過小會導致學習率過大, 這時可以調大epsilon值, 避免震盪.

adam的參數學習率理解

  1. 由於引入了一階&二階動量. adam的每個參數學習率都是不同的.
  2. 狹義上的學習率是固定的. 即alpha本身不會改變.
  3. 但梯度的系數等於 $ alpha * \frac{m_t}{\sqrt{v_t} + epsilon} $ 即通過累計的一二階動量對梯度做更新.
    • 所以打印adam的learning rate 會發現並沒有變化.
  4. 有必要也可以為adam引入學習率衰減, 以保證不過擬合, 二者並不矛盾.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM