卧龙-卧龙娱乐-卧龙注册站
全国免费预订热线

400-123-4567

站内公告:

诚信为本:市场永远在变,诚信永远不变。
卧龙资讯

当前位置: 首页 > 卧龙资讯

【9】各種優化器(Optimizer) 大車拼實驗

2024-07-11 18:26:53

Colab連結

今天的主題是要探討優化器(Optimizer)對模型學習的影響,有關優化器該用哪個好,也是一個蠻令人頭痛的問題,大部分的時候優化器都可以讓你成功收斂,但有小部份時候優化器直接讓你訓練nan。

我們這次要比較的優化器從古早的SGD、Momentum、Adagrad、RMSProp、Adam,到較新的Range都有,要注意因為比較的優化器很多,很有可能會超出 Colab 使用時間上限,為了降低訓練時間,我們會做遷移式學習,鎖住模型142層以前的權重值,只專注訓後面的幾層作為觀察。

另外有關各個優化器的介紹,我在之前有寫過一篇介紹文可以看看。

實驗一: SGD

全稱 Stochastic gradient descent,即最基本的 gradient。


產出:


https://ithelp.ithome.com.tw/upload/images/20210923/20107299lxdpxV69Ab.png

實驗二:Momentum

在SGD中多加了動量的概念。


產出:


https://ithelp.ithome.com.tw/upload/images/20210923/20107299XmMy0T8A4H.png

實驗三:Adagrad

在SGD多加了快取的概念


產出:


https://ithelp.ithome.com.tw/upload/images/20210923/20107299UKn5zo9rt7.png

實驗四:RMSProp

在 Adagrad 中多加了 decay 的概念。這邊由於我自己測試時,發現LR=0.1時,模型非常不穩定,所以此處LR改成0.001。


產出:


https://ithelp.ithome.com.tw/upload/images/20210923/20107299TVmf7wCc27.png

圖表上產生了有鋸齒狀的線,我認為應該是模型仍在多個 local minima 跳躍。

實驗五:Adam

帶入mean和var兩個概念。同樣發現LR=0.1時,模型不穩定,LR改成0.001。


產出:


https://ithelp.ithome.com.tw/upload/images/20210923/20107299Cah38RPGaC.png

第六個實驗:Ranger

這個比較特別,這是一個結合RAdam和LookAhead(另外兩個新型優化器)的優化器,原作Repo

只是這東西目前要使用的話,用 tensorflow addons 會比較方便。


一樣測試後,發現LR=0.001比較正常。


產出:


https://ithelp.ithome.com.tw/upload/images/20210923/20107299x59c2WVytT.png

以上就是我們針對六種不同的優化器訓練同一個模型的實驗,以我自己實務經驗,我其實也是個跟風仔,會先嘗試使用比較新型的優化器,但如果訓練過程中發生 loss 不斷增大的狀況,我會再切成 SGD 來 debug 模型或調整 learning rate 來檢查有沒有問題。


Copyright © 2012-2018 卧龙-卧龙娱乐-卧龙注册站

ICP备案编号:琼ICP备xxxxxxxx号

电话:400-123-4567 地址:广东省广州市天河区88号

平台注册入口