adadelta算法_神经网络中常用的优化算法
生活随笔
收集整理的這篇文章主要介紹了
adadelta算法_神经网络中常用的优化算法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
優(yōu)化算法的目的:1. 跳出局部極值點或鞍點,尋找全局最小值;2.使訓(xùn)練過程更加穩(wěn)定,更加容易收斂。
優(yōu)化算法的改進無非兩方面:1.方向--加動量,2.學(xué)習(xí)速率--加衰減
1.SGD
2.[Momentum](https://zh.d2l.ai/chapter_optimization/momentum.html)
常取0.9. 從學(xué)習(xí)率的角度理解動量法:指數(shù)加權(quán)移動平均,也可以理解為滑動窗口。在動量法中,自變量在各個方向上的移動幅度不僅取決于當(dāng)前梯度,還取決于過去的各個梯度在各個方向上是否一致。也就是說,若某個緯度的歷史梯度震蕩比較大,則在該維度上學(xué)習(xí)會更加慎重。3.[Nesterov(NAG)](https://blog.csdn.net/tsyccnh/article/details/76673073)
這個想法太巧妙了,動量法可以重寫為:
而
是與當(dāng)前時刻 無關(guān)的,所以不管方向為何, 都一定會在的方向上走上一段距離的。那為何不先在方向上走一步后,再算梯度呢。藍線為動量法,棕線為t-1時刻的動量方向,紅線為
方向上走一步后梯度,綠線為兩者之和。4.Adagrad
為所有緯度設(shè)置相同的學(xué)習(xí)率是訓(xùn)練更加容易震蕩。AdaGrad算法,它根據(jù)自變量在每個維度的梯度值的大小來調(diào)整各個維度上的學(xué)習(xí)率,從而避免統(tǒng)一的學(xué)習(xí)率難以適應(yīng)所有維度的問題。
這里說一下
的計算 : 是 對應(yīng)元素相乘,是一個和 相同尺寸的向量, 所以Adagrad不同維度的學(xué)習(xí)率是不一樣的。5.Adadelta
Adagrad有個明顯的缺點,沒有對過往的
進行衰減,導(dǎo)致迭代一定次數(shù)后, 必然趨近于0。Adadelta就是為了解決 Adagrad 學(xué)習(xí)率急劇下降問題的。
他們管在
前面乘一個1-v叫指數(shù)加權(quán)平均。Adadelta會對過去的
有個v的指數(shù)倍的衰減,有了這個衰減,就可以把Adadelta算法理解為一個滑動的窗,對窗內(nèi)的進行指數(shù)加權(quán)平均。(為什么要在
前面乘個1-v的系數(shù)?歸一化就這么重要么?)6.Adam
Adadelta+動量
他們管
叫偏差修正。因為u, v一般取0.9以上,且 一般初始化為0,所以在t較小時, 只有 ,所以引入偏差修正。隨著t的增大, 越來越接近 。總結(jié)
以上是生活随笔為你收集整理的adadelta算法_神经网络中常用的优化算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 申万一级行业日指数_申万一级行业指数一周
- 下一篇: 开发板_Hi3516DV300核心板/开