Please enable JavaScript.
Coggle requires JavaScript to display documents.
optimization for deep training deep models - Coggle Diagram
optimization for deep training deep models
learning rate
太大
速度太快
太小
收斂很慢
遇到問題
有些區域是盤坦有些是陡峭的
平坦
平坦移大推error function變動很小
陡峭
移一點error就會下降很多
影響優化速度和效果,因此可以使用
動量
適應性學習
輸出應該接近目標值
調整權重
梯度
SGD
SGD
隨機梯度下降
一次跑一個樣本或小批次然後算算出一個梯度或一個小批次梯度平均就更新一次
M是隨機的
m=1代表每筆都更新一次
如果M=N那SGD=GD
如果沒有saddle point or local minima
發生原因
在一側進行初始化而且無法越過
如果局部表面不指向全局解,則基於下坡運動的優化可能會失敗。
更高維度空間可以超過但軌跡可能會很長並導致訓練時間過長
with momentum
with nesterov momentum
差異
評估梯度的地方
在標準動量中添加一個校正因子
Momentum helps to escape local minimum.
with momentum
目的
poor conditioning of the Hessian matrix
variance in the stochastic gradient
計算參數更新方向前會考慮前一次參數更新的方向(v(t-1))
當下梯度方向和歷史參數更新的方向一致,則會增強這個方向的梯度
當下梯度方向和歷史參數更新的方向不一致,則梯度會衰退。然後每一次對梯度作方向微調
增加學習上的穩定性
擺脫局部最佳解
AdaGrad
SGD在更新參數時學習率不會改變,AdaGrid會在學習過程中對學習率不斷的調整
用所有模型參數的學習率與他們所有歷史平方值之和的評分根成反比的縮放,來調整學習率
偏微分
大
學習率快速下降
小
學習率下降相對小
梯度
大
調整量小
小
調整量大
RMSProp
with momentum
在移動平均值加入一個超參數,控制移動平均值的長度範圍
深度神經網路常使用方法之一
在比較平坦的地方加上動量
將梯度累積更改為為指數加權移動平均
解決AdaGrad使用平方梯度調整學習率在達到convex structure之前可能會使學習率太小
找到一個convex bowl迅速收斂
Adam
RMSProp+momentum
在2階可能跟早期有很大的偏差
創新演算法
batch normalization
對每一個minibatch進行正規化到平均值為0標準差為1的常態分佈
可以應用於網絡中的任何輸入層或隱藏層
通過調整和縮放激活來標準化輸入層