ADAGRAD
接續第一篇,接著是ADAGRAD[1],這個方法則是把過往的權重變化的平方都記錄下來,儲存在G這個變數裡頭.
這邊也是用相同的函數做展示.
f(x,y)=-x²sin(x)+y²
計算如下:
以及在不同學習速率時表現:
由於ADAGRAD在權重更新時,分母是過往的偏微分變化量的平方和開根號,因此分母非常容易變得非常大,導致幾輪後權重更新的量變得非常小,變得跑不動.但好處是不容易發散,即使學習速率拉到超過1,也可收斂回local minimum.
ADADELTA
為了解ADAGRAD分母過大跑不動的問題,ADADELTA[2]加了分子的項目和ratio 𝛄作為調整參數.分子的部分記錄過往偏微分的平方和*𝛄,加上現在的偏微分量平方*(1-𝛄),分母則是過往的權重變化量平方*𝛄,加上現在的權重變化量平方*(1-𝛄)
計算如下:
以下是一些參數的範例
它可以求到很接近local minimum,但在local minimum附近就會產生震盪效應,但是比起SGD系列的方法來說,可以在前幾輪就快速到達local minimum附近.
RMSPROP
方法和ADADELTA類似,但是並沒有出論文,只是在上課投影片[3]提到.
計算如下:
以下是一些範例:
這個方法和ADADELTA表現並沒有這麼類似,反而比較像是改良版的SGD.但震盪的模式不像SGD這麼厲害,大致是這樣.
參考資料
[1]:https://stanford.edu/~jduchi/projects/DuchiHaSi10_colt.pdf
[2]:https://arxiv.org/pdf/1212.5701.pdf
[3]:https://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf