4.1 卷积神经网络调参-adagrad_adam
4.3.1 adagrad_adam
我們之前將了隨機梯度下降和動量梯度下降,不過,還有很多其他的優化算法可以使得模型穩定。
先來回顧隨機梯度下降和動量梯度下降
隨機梯度下降有兩個問題:局部極值問題和saddle point 問題,動量梯度下降可以一定程度上解決這兩個問題
因為他可以使用之前積累的梯度方向。
不過這兩個方法還有其他的兩個問題:
-
受初始學習率影響太大
初始化的學習率比較大,不管用哪種梯度下降,都會導致梯度爆炸,模型不收斂
-
每一個梯度的學習率都是一樣的
α是針對全局的,而不是每一個維度定制的。
這個在圖像上應用還不是特別明顯,如果是針對稀疏的問題來說,就比較明顯了,會使得我們丟失很多稀疏數據上的信息。
因為對w求導數的時候,根據鏈式求導法則,最終都會到w對x的偏導,這時候如果x=0,那么他的參數更新也是0,對于稀疏數據來說,因為他很稀疏,所以很多值都是0,很多時候是得不到梯度的更新的。
但是
但是其他維度的數據是很多的,這時候如果統一把學習率調小,會使得稀疏數據學習不到足夠的信息
最好的解決方法是給每一個維度都設置不同的學習率
針對這兩個問題,還有哪些其他的算法呢?
AdaGrad
學習率是逐漸衰減的,用以往梯度的平方和作為學習率的分母,從而使得整個學習率隨著訓練次數的增加而越來越小,這樣也擺脫了學習率對初始值的依賴
RMSProp
-
AdaGrad 的變種
-
由累積平方梯度變為平均平方梯度
-
解決了后期提前結束訓練的問題
Adam
-
所有的上述算法都會用learning_ rate來做參數,但是Adam和上面講的幾種算法會在后期給每個維度一個定制的學習率
-
Adam在以下場景比較有效
-
Beta1 = 0.9
-
Beta2 = 0.999
-
Learning_rate = 1e-3 or 5e-4(初始值比較小,可以通過沖量和累積梯度去放大他)
-
Adam結合了Momentum(動量梯度下降)(學習穩定)和Adagrad(可以隨著訓練次數和維度的變化而變化)的優點
[圖片上傳失敗...(image-9a19d6-1538918434302)]
校準的意義在于通過這種方式使得開始的時候first_moment和second_moent變的相對大一些來加速訓練
總結
以上是生活随笔為你收集整理的4.1 卷积神经网络调参-adagrad_adam的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读书笔记《Spring Boot实战 —
- 下一篇: 正则表达式 - - - 补(爬虫正则之基