Introduction 在目前的 optimizer 分為兩個主要發展方向:
Adaptive learning rate, such as AdaGrad and Adam Accelerated schema (momentum), such as Polyak heavyball and Nesterov momentum 以上都是透過累積過往梯度下降所得到的結果來達到收斂,然而要獲得好的結果,都需要一些超參數的調整。
Lookahead method:
是一種新的優化方法,採用兩個不同的權重,分別為 fast weights 與 slow weights。fast weights 是使用一般常見的 optimizer 當作 inner optimizer 先進行 k 次的計算後得到的結果與預先保留的 slow weights 進行線性插值(linearly interpolating)來更新權重 ,更新後的 wieight 為新的 slow weights 並推動之前的 fast weights 往前探索,以這樣的方式進行迭代。
在使用不同的 inner optimizer 下,像是 SGD 或是 Adam,減少了對超參數調整的需求,並且可以以最小的計算需求確保在不同的深度學習任務中加快收斂速度。
演算過程 :
Step 1 : 先設定 $\phi$ 的初始值,以及選定 objective function $L$ Step 2 : 確定更新週期 $k$ 值、slow weight 的更新步伐 $\alpha $ 以及 optimizer $A$ Step 3 : 更新 fast weight $\theta$ ,$ \space \theta_{t,0} \leftarrow \phi_{t-1}, t=1,2,\dots $ Step 4 : 利用 optimizer $A$ 迭代 $k$ 次更新,由 $\theta_{t, i}$ 更新到 $\theta_{t, k}, i=1, 2, \dots, k$ Step 5 : 更新 slow weight $\phi_{k} \leftarrow \phi_{k-1} + \alpha\left(\theta_{t, k} - \phi_{t-1}\right)$ 重複 Step 3 - Step 5 直至收斂。