轉載請注明作者:夢里風林
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吧~