Google深度學習筆記 Stochastic Optimization

轉載請註明作者:夢裏風林
Github工程地址:https://github.com/ahangchen/GDLnotes
歡迎star,有問題可以到Issue區討論
官方教程地址
視頻/字幕下載

  • 實踐中大量機器學習都是通過梯度算子來求優化的
  • 但有一些問題,最大的問題就是,梯度很難計算
  • 我們要計算train loss,這需要基於整個數據集的數據做一個計算
  • 而計算使 train loss 下降最快的調整方向需要的時間是計算train loss本身的三倍

  • 因此有了SGD:Stochastic Gradient Descent
    • 計算train loss時,只隨機取一小部分數據集做爲輸入
    • 調整W和b時,調整的大小step需要比較小,因爲數據集小,我們找到的不一定是對的方向
    • 這樣也就增加了調整的次數
    • 但可觀地減小了計算量

SGD的優化

實際上SGD會使得每次尋找的方向都不是很準,因此有了這些優化

  • 隨機的初始值

  • Momentum

考慮以前的平均調整方向來決定每一步的調整方向

  • Learning Rate Decay

    • 訓練越靠近目標,步長應該越小
  • Parameter Hyperspace

    • Learning Rate(即調整的step)不是越大越好,可能有瓶頸
    • SGD有許多參數可以調整,所以被稱爲黑魔法

    • AdaGurad
    • 自動執行momentum和learning rate decay
    • 使得SGD對參數不像原來那樣敏感
    • 自動調整效果不如原來的好,但仍然是一個option

覺得得我的文章對您有幫助的話,就給個star吧~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章