神經(jīng)網(wǎng)絡優(yōu)化算法的選擇

SGD:隨機梯度下降

SGD+Momentum: 基于動量的SGD(在SGD基礎上做過優(yōu)化)

SGD+Nesterov+Momentum:基于動量,兩步更新的SGD(在SGD+Momentum基礎上做過優(yōu)化)

Adagrad:自適應地為各個參數(shù)分配不同學習速率

Adadelta: 針對Adagrad問題,優(yōu)化過的算法(在Adagrad基礎上做過優(yōu)化)

RMSprop:對于循環(huán)神經(jīng)網(wǎng)絡(RNNs)是最好的優(yōu)化器(在Adadelta基礎上做過優(yōu)化)

Adam:對每個權值都計算自適應的學習速率(在RMSprop基礎上做過優(yōu)化)

Adamax:針對Adam做過優(yōu)化的算法(在Adam基礎上做過優(yōu)化)

那么,我們應該選擇使用哪種優(yōu)化算法呢?

如果輸入數(shù)據(jù)是稀疏的,選擇任一自適應學習率算法可能會得到最好的結果。選用這類算法的另一個好處是無需調整學習率,選用默認值就可能達到最好的結果。

如果你的數(shù)據(jù)輸入量很小,那就選一種自適應學習速率的方法。這樣你就不用對學習速率進行調優(yōu),因為你的數(shù)據(jù)本來就小,NN學習耗時也小。這種情況你更應該關心網(wǎng)絡分類的準確率。

RMSprop, Adadelta, 和 Adam 非常相似,在相同的情況下表現(xiàn)都很好。

偏置校驗讓Adam的效果稍微比RMSprop好一點

進行過很好的參數(shù)調優(yōu)的SGD+Momentum算法效果好于Adagrad/Adadelta

如果你關心的是快速收斂和訓練一個深層的或者復雜的神經(jīng)網(wǎng)絡,你應該選擇一個自適應學習率的方法。

結論:到目前(2016.04)為止,如果你不知道為你的神經(jīng)網(wǎng)絡選擇哪種優(yōu)化算法,就直接選Adam吧?。↖nsofar, Adam might be the best overall choice.[2])

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容