天天看點

深度學習優化器中的變形金剛:Ranger21

論文題目:RANGER21: A SYNERGISTIC DEEP LEARNING OPTIMIZER

論文連結:https://arxiv.org/pdf/2106.13731.pdf

1 Ranger21 - 将最新的深度學習元件內建到單個優化器中

由于

優化器

對神經網絡的性能至關重要,是以每年都會發表大量關于該主題的創新論文。 然而,雖然這些發表論文中的大多數都提供了對現有優化算法的增量改進,它們傾向于作為新的優化器而不是可組合算法呈現。 是以,許多有價值的改進在最初的論文中很少見。 利用這一未開發的潛力(之前論文都沒有對現有優化器進行組合),這篇論文引入了 Ranger21,這是一種新的優化器,它結合了 AdamW 和八個元件,這些元件由作者在審查和測試論文思想和效果後後精心挑選的。論文實驗發現發現由此産生的優化器顯着提高了驗證準确性和訓練速度、更平滑的訓練曲線,甚至能夠在沒有批量歸一化層的情況下在 ImageNet2012 上訓練 ResNet50,解決 AdamW 系統地停留在糟糕的初始狀态的問題。

2 核心元件

Ranger 21深度學習優化器整合了以下優化思想,尤其是:

  • 使用 AdamW 優化器作為其核心(或者,可選的 MadGrad)
  • Adaptive gradient clipping:自适應梯度裁剪
  • Gradient centralization:梯度中心化
  • Positive-Negative momentum:正負動量
  • Norm loss:權重軟正則化
  • Stable weight decay:穩定權重衰減
  • Linear learning rate warm-up:線性學習率預熱
  • Explore-exploit learning rate schedule:搜尋性的學習率規劃器
  • Lookahead
  • Softplus transformation:激活函數
  • Gradient Normalization:梯度歸一化

2.1 AdamW (adaptive moment estimation):核心優化器

由于 Adam(W) 是最常用的優化器之一,許多發表論文提供了各種增量以及對改算法的創新改進,因為這些單獨的改進 通常是可組合的,這也是作者選其作為核心基礎的原因。

深度學習優化器中的變形金剛:Ranger21

AdamW通常會給模型帶來更低的訓練loss和測試誤差。除此之外,在固定相同的訓練loss的情況下,AdamW也有更好的泛化性能。具體對比解釋可以參考該筆記;https://zhuanlan.zhihu.com/p/329877052

2.2 Adaptive Gradient Clipping:自适應梯度裁剪

由于過多梯度的反向傳播,小批量零星的“高損失”可能會破壞随機梯度下降的穩定性。 這是較小批量和較高學習率的常見問題。 為了解決這個問題,可以使用梯度裁剪,確定梯度保持在給定門檻值以下:

深度學習優化器中的變形金剛:Ranger21

理論研究表明,梯度裁剪有助于優化器平緩過渡損失的非平滑區域并加速收斂。 但是,原始梯度裁剪會影響訓練的穩定性,并且找到一個好的門檻值需要根據模型深度、批量大小和學習率進行精心調整。

Ranger21使用自适應梯度裁剪來克服這些缺點。 在自适應梯度裁剪中,裁剪門檻值會動态更新,保證梯度範數與參數範數的機關比率成正比。公式如下:

深度學習優化器中的變形金剛:Ranger21

\epsilon是一個常數,預設值為10^{-3} ,避免當機零的初始化參數,T 預設情況下為 10−2 并且 r 表示我們正在處理層的某個次元參數而不是整個層的參數。

2.3 Gradient Centralization

高性能網絡優化算法梯度中心化(GC, gradient centralization),能夠加速網絡訓練,提高泛化能力以及相容模型fine-tune。

深度學習優化器中的變形金剛:Ranger21

梯度中心化對損失函數施加了限制,并充當正則化器,據作者說,該算法使訓練更加平滑。 在實驗中,當在包含全連接配接層和/或卷積層的網絡上使用它時,我們觀察到改進的泛化、更平滑的訓練曲線和更快的收斂。

2.4 Positive-Negative Momentum:正負動量

Momentum 用于現代深度學習優化器,既可以消除訓練噪聲,又可以降低優化器卡在損失圖的鞍點和梯度消失部分的風險。 Positive-Negative Momentum 算法如下:

深度學習優化器中的變形金剛:Ranger21

正負動量的關鍵思想是保留兩組一階矩估計,一組用于奇數疊代,一組用于偶數疊代。 優化過程中應用的矩是兩組的平均值,一個為目前動量估計配置設定正權重,一個為前一個動量估計配置設定負步長。根據 原論文,這模拟了将參數相關的各向異性噪聲添加到梯度中,有助于逃避鞍點并将優化器推向更平坦的最小值,理論上可以産生更好的泛化。

在本篇論文的測試中,作者能夠通過實驗驗證正負動量确實可以提高各種資料集的性能,并以互補的方式與 Ranger21 中使用的其他算法進行內建。

2.5 Norm loss:權重軟正則化

在 AdamW 風格的優化器中,權重衰減按照下面公式計算(其中 η 是學習率,λ 是縮放權重衰減的參數,θ 是我們正在優化的參數)并在更新步驟期間從參數中減去

深度學習優化器中的變形金剛:Ranger21

Norm Loss來自今ICPR 2020論文Preprint: Norm Loss: An efficient yet effective regularization method for deep neural networks,核心公式如下。給定權重矩陣\||c_{o}\|| ,它考慮了權重矩陣的歐幾裡德範數,使得權重矩陣被推向一個機關範數,這與傳統的權重衰減不同,傳統的權重衰減一直将權重推向零。

深度學習優化器中的變形金剛:Ranger21

2.6 Stable Weight Decay

AdamW 風格的權重衰減使用優化器的學習率來對衰減進行權重。然而,實際步長不僅是學習率的函數,也是 \hat{v}_{t} 的函數,它代表了梯度大小。 是以,實際步長在疊代過程中發生變化,并且當 v^︁t 下降到零時,為訓練的第一次疊代校準的權重衰減對于以後的疊代來說太大了。

為了解決這個問題,ICLR 2021 公開論文:Stable Weight Decay Regularization提出了 Stable Weight Decay。

深度學習優化器中的變形金剛:Ranger21

在論文的測試中,作者發現穩定權重衰減為我們在視覺任務上提供了顯着的泛化改進,即穩定權重衰減允許自适應優化器在視覺任務上比對并超過 SGD 效果。此外,論文觀察到它可以與 Norm Loss 無縫內建,并且這兩種方法的好處是相加的,因為它們從不同的角度處理權重正則化。

深度學習優化器中的變形金剛:Ranger21

2.6 Linear learning rate warm-up

最初的 Ranger 優化器基于 Rectified Adam 優化器 ,該優化器試圖修複 Adam 在第一次疊代中由于大量更新而遇到的一些不穩定問題。 本篇論文引入了一個更簡單的替代方案,僅依賴于學習率的預熱,β2是第二動量參數,由于此規劃器可以産生對于較短的訓練疊代次數來說太大的預熱,我們另外将其重置為第一次t_{warmup} 熱身疊代

深度學習優化器中的變形金剛:Ranger21

在論文測試中,我們發現這種預熱政策與 Rectified Adam 相似,避免了第一階段的步長過大

疊代,同時實作起來要簡單得多。

2.8 Explore-Exploit learning rate schedule

Wide-minima Density Hypothesis and the Explore-Exploit Learning Rate Schedule:論文指出寬最小值比窄最小值更好地泛化。 在本文中,通過詳細的實驗,不僅證明了寬極小值的泛化特性,我們還為寬極小值的密度可能低于窄極小值的密度的新假設提供了經驗證據。 此外,在這一假設的推動下設計了一個新穎的探索-利用學習率計劃。 在各種圖像和自然語言資料集上,與其原始手動調整的學習率基線相比,同時表明我們的探索-利用計劃可以使用原始訓練預算将絕對準确度提高 0.84% 或高達 57% 減少訓練時間,同時達到原始論文的準确性。

2.9 Lookahead

Lookahead2,一種由保持權重的指數移動平均值組成的技術,每 k 步(預設為 5)更新并替換為目前權重。 為了實作 Lookahead,可以在通常的優化步驟結束時應用算法 3(其中 βlookahead 是移動平均線的動量,預設為 0.5)。

深度學習優化器中的變形金剛:Ranger21

3 Ranger21

Ranger21 是上述所有元件的組合:

深度學習優化器中的變形金剛:Ranger21

由于內建了各種算法于一體,官方實作代碼篇幅還是很長的,大家可以直接打開連結檢視;

https://github.com/lessw2020/Ranger21/blob/main/ranger21/ranger21.py

class Ranger21(TO.Optimizer):
    def __init__(
        self,
        params,
        lr,
        lookahead_active=True,
        lookahead_mergetime=5,
        lookahead_blending_alpha=0.5,
        lookahead_load_at_validation=False,
        use_madgrad=False,
        use_adabelief=False,
        softplus=True,
        beta_softplus=50,
        using_gc=True,
        using_normgc=True,
        gc_conv_only=False,
        normloss_active=True,
        normloss_factor=1e-4,
        use_adaptive_gradient_clipping=True,
        agc_clipping_value=1e-2,
        agc_eps=1e-3,
        betas=(0.9, 0.999),  # temp for checking tuned warmups
        momentum_type="pnm",
        pnm_momentum_factor=1.0,
        momentum=0.9,
        eps=1e-8,
        num_batches_per_epoch=None,
        num_epochs=None,
        use_cheb=False,
        use_warmup=True,
        num_warmup_iterations=None,
        warmdown_active=True,
        warmdown_start_pct=0.72,
        warmdown_min_lr=3e-5,
        weight_decay=1e-4,
        decay_type="stable",
        warmup_type="linear",
        warmup_pct_default=0.22,
        logging_active=True,
    ):           

複制

4 實驗結果與總結

許多論文對現有優化器進行了增量改進,将它們呈現為新的優化器,而不是可以組合的子產品。 本篇論文為了充分利用正在進行的深度學習優化研究,意識到這種子產品化很重要,是以設計 Ranger21 是為了突出從這種組合中獲得的好處:測試并将多個獨立的改進組合成一個明顯優于其單個部分的單一優化器。

通過結合許多子領域(例如動量、損失和重量衰減)的改進,論文發現 Ranger21 能夠訓練其他優化器根本無法訓練的模型,例如 Normalizer-Free Resnet50。 更重要的是,對于給定的模型,Ranger21 通常能夠在不影響泛化的情況下加速學習并實作更高的驗證精度

深度學習優化器中的變形金剛:Ranger21

5 參考資料

  • 蘑菇街增量學習番外篇二:優化器設計理論篇(AdamW、AdaDeltaW、FTRL)
  • Gradient Centralization: 一行代碼加速訓練并提升泛化能力 | ECCV 2020 Oral
  • 深度學習——激活函數總結