梯度下降算法
目錄
Adagrad
與梯度下降不同的是,更新規則中,對於學習率不在設置固定的值,每次迭代過程中,每個參數優化時使用不同的學習率。
假設 某次迭代時刻t,
而在Adagrad的更新規則中,學習率
Adadelta
爲了避免前文提到的問題,削弱單調猛烈下降的減少學習率,Adadelta產生了1。Adadelta限制把歷史梯度累積窗口限制到固定的尺寸
Adagrad的一大優勢時可以避免手動調節學習率,比如設置初始的缺省學習率爲0.01,然後就不管它,另其在學習的過程中自己變化。當然它也有缺點,就是它計算時要在分母上計算梯度平方的和,由於所有的參數平法必爲正數,這樣就造成在訓練的過程中,分母累積的和會越來越大。這樣學習到後來的階段,網絡的更新能力會越來越弱,能學到的更多知識的能力也越來越弱,因爲學習率會變得極其小,爲了解決這樣的問題又提出了Adadelta算法。
梯度和是遞歸的定義成歷史梯度平方的衰減平均值。動態平均值
在Adagrad中,
將分母簡記爲RMS,表示梯度的均方根誤差的意思。
[6]作者說,更新中,定義指數衰減均值,代替梯度平方,二用參數平方來更新:
由此看出,甚至不需要設定缺省學習率,因爲更新規則已經不受它影響了
1: Duchi et al. give this matrix as an alternative to the full matrix containing the outer products of all previous gradients, as the computation of the matrix square root is infeasible even for a moderate number of parameters dd. http://sebastianruder.com/optimizing-gradient-descent/index.html#fnref:24
2: Zeiler, M. D. (2012). ADADELTA: An Adaptive Learning Rate Method. Retrieved from http://arxiv.org/abs/1212.5701