RAdam Oprimizer: Rectified Adam. 自動warmup版的Adam優化器

Patty Wu
Nov 18, 2020

--

RAdam

全名是Rectified Adam,是一種改進Adam的方法,更精確來說,就是自動warmup版的Adam。

這是一篇ICLR 2020的論文:ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND: https://arxiv.org/pdf/1908.03265.pdf

要解決的問題:

Adam是一種常用的自適應學習率 (adaptive learning rate) 優化器,但這種方法在訓練的初期,adaptive learning rate的變異非常大,然後在少量的數據進行過度跳躍,下了錯誤決策,就容易收斂在local minimum。

我們知道adptive learning rate是根據gradient算出來的,下圖秀出gradient的分布,x軸是log scale的gradient,y軸是frequency,然後它把每個iteration的分布圖由上到下 (初期到後期) 堆疊在一起。我們先看左邊兩張圖,一般的Adam,前幾次迭代的gradient分布劇烈變化,之後訓練就容易收斂在local minimum。

但如果我們設定前幾個iteration的learning rate很小,之後再讓它自適應成長,也就是熱身(warmup)的技巧,gradient的分布就會一直是比較穩定的狀態,見右邊兩張圖。

作法

基於這個論點,所以作者希望可以做出一個自動熱身版的Adam:RAdam,那它就面臨兩個問題:

  1. 要在前幾個iteration熱身?
  2. 熱身完後,要怎麼對adaptive learning rate做修正?

RAdam的概念是這樣的,如果有個開關,閥值為rho,這個rho跟看過的樣本數量成正比:

  1. 樣本數很小(rho很小) → 要熱身 → 關閉開關 → 耍廢
  2. 樣本數夠大(rho很大) → 熱身完 → 打開開關 → 修正adaptive learning rate
RAdam

這個rho怎麼來的呢?看下圖,我們知道Adam的adaptive learning rate是用gradient的平方開根號算來的。

Adam

假設gradient服從N(0, sigma²)分配,adaptive learning rate經由公式推導會服從Scaled-inv chi-square(rho, 1/sigma²)分配,rho就是這個Scale-inv chi-square分配的自由度,自由度你可以簡單想像就是樣本數的概念,樣本數越大,自由度越大。

下圖的x軸就是rho,y軸是變異數,可以發現變異會隨著rho增加而遞減,而且剛開始變化會比較劇烈,這點也反映了:

  1. 剛開始訓練時,資料量少 → rho(自由度)很小 → adaptive learning rate變異非常大
  2. 後期訓練時,資料量大 → rho(自由度)大 → adaptive learning rate變異小

到這邊我們介紹完了rho與adaptive learning rate的關係,我們知道了開關的概念。剩下就是如何修正adptive learning rate:

修正項rt是用adptive learning rate的變異數推導而來,你可以直覺地想成,因為rho會影響變異大小,所以把有rho的項目做運算抵銷回去,就可以保持樣本數對adptive learning rate的穩定性了。然後rho>4可以以當作熱身的開關。

另一種思路是,當t→無限大時,rho_t很大,t越小時rho_t越小,所以基本上在rho>4時,t 增加 → rt 減少。也就是說,當t、rho_t越小,變異越大時,adaptive learning rate 就必須乘上較大的rt做修正。

優點

  1. RAdam根據adaptive rate的變異程度去修正learning rate,讓Adam可以自動熱身,不需再手動調整避免模型收斂在local minimum。
  2. 讓它可以享有Adam快速收斂優勢的同時,又達到跟SGD差不多好的收斂結果。
  3. 增加訓練的穩定性:看下圖可知,用不同的learning rate對於RAdam最後的收斂結果沒有差很多,反觀Adam和SGD對於learning rate設定比較敏感。

適用範圍:RAdam不只是對於CNN:RAdam在Billion Word Dataset上的表現優於LSTM。

作法回顧與總結

RAdam就是自動熱身版的Adam

概念:開關閥值為rho,這個rho代表adpative learning rate分配的自由度:

  1. 樣本數很小(rho很小) → 要熱身 → 關閉開關 → 耍廢
  2. 樣本數夠大(rho很大) → 熱身完 → 打開開關 → 根據變異程度修正adaptive learning rate
RAdam

參考文獻

  1. ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND: https://arxiv.org/pdf/1908.03265.pdf

--

--

No responses yet