深度學習_深度學習基礎知識_Adagrad

Adagrad介紹

Adagrad是一種基於梯度的優化算法:它將學習速率與參數相適應,對不同的變量提供不同的學習率(它增加了罕見但信息豐富的特徵的影響)。因此,它非常適合處理稀疏數據。

在基本的梯度下降法優化中,有個一個常見問題是,要優化的變量對於目標函數的依賴是各不相同的。對於某些變量,已經優化到了極小值附近,但是有的變量仍然在梯度很大的地方,這時候一個統一的全局學習率是可能出現問題的。如果學習率太小,則梯度很大的變量會收斂很慢,如果學習率太大,已經趨於收斂的變量可能會不穩定。下圖就是原始SGD更新參數的方式:

在這裏插入圖片描述

針對上面的問題,Adagrad(Adaptive Gradient)優化方法出現了,字面上理解就是自適應學習率。AdaGrad的基本思想是對每個變量用不同的學習率,這個學習率在一開始比較大,用於快速梯度下降。隨着優化過程的進行,對於已經下降很多的變量,則減緩學習率,對於還沒怎麼下降的變量,則保持一個較大的學習率:

在這裏插入圖片描述

上式中tt代表迭代的次數。ϵϵ一般是一個極小值,作用是防止分母爲0 。Gi,tG_i,t表示了前tt 步參數θiθ_i梯度的平方累加.把沿路的Gradient的平方根,作爲Regularizer。分母作爲Regularizer項的工作機制如下:

  1. 訓練前期,梯度較小,使得Regularizer項很大,放大梯度。[激勵階段]

  2. 訓練後期,梯度較大,使得Regularizer項很小,縮小梯度。[懲罰階段]

Adagrad的缺點

AdaGrad的缺點是雖然不同變量有了各自的學習率,但是初始的全局學習率還是需要手工指定。如果全局學習率過大,優化同樣不穩定;而如果全局學習率過小,因爲AdaGrad的特性,隨着優化的進行,學習率會越來越小,很可能還沒有到極值就停滯不前了。

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