TensorFlow深度學習筆記 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吧~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容