優化算子adam——爲什麼說adam融合了momentum和RMSprop(均方根傳播)的優點

準備知識(可選擇跳過)


momentum


參數初始化:m:momentum 係數;lr:learning rate 學習率;權重w

 計算梯度和更新數度:g(t);v(t) = m*v(t-1)+lr*g(t)

更新參數:w(t) = w(t-1) - v(t)

備註:優點是學習速度快。避免sgd算法梯度更新幅度擺動大的問題。缺點是依賴全局的學習率。


adagrade和RMSprop


adagrade適應性梯度算法(adagrade、adadelta、RMSprop都是梯度自適應算法)

參數初始化:防止分母爲0的很小的數(m);學習率lr;權重w

計算梯度:g(t)

計算累計梯度平方和:G(t) = G(t-1) + g(t)*g(t)

更新參數:w(t) = w(t-1) - lr*g(t)/sqrt(G(t)+m)

備註:累計梯度平方和,使得學習速度具有自適應性。出現頻率高的特徵學習率較小,出現頻率低的學習率較大。缺點是累計梯度平方和最後容易過大,導致訓練提前結束

RMSprop是adagrade的變體:採用歷史累計梯度平方和當前梯度平方的加權平均

參數初始化:防止分母爲0的很小的數(m);學習率lr;權重w;加權係數p;

梯度計算:g(t)

累計梯度:G(t) = (1-p)*G(t-1) +p*g(t)*g(t)

權重更新:w(t) = w(t-1) - lr*g(t)/sqrt(G(t)+m)

備註:善於處理非平穩目標


adam(adaptive moment estimation 自適應矩估計)

G(t) = beta2*G(t-1) + (1-beta2) * g(t)

初始化參數:學習率lr;beta1;beta2;權重w;防止分母爲0的很小的數(e)

計算梯度:g(t)

計算有偏的一階矩估計:m(t) = beta1*m(t-1) +(1-beta1)*g(t)(敲黑板,看看這是不是和momentum一樣)

計算有偏的二階矩估計:G(t) = beta2*G(t-1) +(1-beta2)*g(t)*g(t)(敲黑板,看看這是不是和RMSprop一樣)

一階矩的無偏估計:m'(t)  = m(t)/(1-beta1)

二階矩的無偏估計:G'(t) = G(t)/(1-beta2)

參數更新:w(t) =w(t-1) - lr*m'(t)/sqrt(G'(t)+)

備註:結合了Adagrad善於處理稀疏梯度和RMSprop善於處理非平穩目標的優點

 

參考鏈接:

https://zhuanlan.zhihu.com/p/22252270

https://www.zhihu.com/question/325651810

 

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