天天看點

Adam優化器的直覺

作者:新缸中之腦

Adam是一種梯度下降優化技術的算法。 當處理涉及大量資料或參數的大問題時,該方法非常有效。 它需要更少的記憶體并且效率更高。 直覺上,它是“動量梯度下降”算法和“RMSP”算法的結合。

Adam優化器的直覺
推薦:用 NSDT設計器 快速搭建可程式設計3D場景。

1、Adam優化器簡介

Adam 優化器涉及兩種梯度下降方法的組合:

1、Momentum

該算法通過考慮梯度的“指數權重平均值”來加速梯度下降算法。 使用平均值可以使算法以更快的速度收斂到最小值。

Adam優化器的直覺

其中:

Adam優化器的直覺
  • mt = 時間 t [目前] 時的梯度聚合(最初,mt = 0)
  • mt-1 = 時間 t-1 時的梯度總和 [previous]
  • Wt = 時間 t 時的權重
  • Wt+1 = 時間 t+1 時的權重
  • αt = 時間 t 時的學習率
  • ∂L = 損失函數的導數
  • ∂Wt = 時間 t 時權重的導數
  • β = 移動平均參數(常量,0.9)

2、均方根傳播 (RMSP)

均方根 prop 或 RMSprop 是一種試圖改進 AdaGrad 的自适應學習算法。 它不像 AdaGrad 那樣采用梯度平方的累積和,而是采用“指數移動平均值”。

Adam優化器的直覺

其中:

Adam優化器的直覺
  • Wt = 時間 t 時的權重
  • Wt+1 = 時間 t+1 時的權重
  • αt = 時間 t 時的學習率
  • ∂L = 損失函數的導數
  • ∂Wt = 時間 t 時權重的導數
  • Vt = 過去梯度的平方和。 [即 sum(∂L/∂Wt-1)](最初,Vt = 0)
  • β = 移動平均參數(常量,0.9)
  • ϵ = 一個小的正常數 (10-8)

Adam Optimizer 繼承了上述兩種方法的優點或積極屬性,并在此基礎上建構了更優化的梯度下降。

Adam優化器的直覺

在這裡,我們控制梯度下降的速率,使其達到全局最小值時振蕩最小,同時采取足夠大的步長(步長),以便一路通過局部最小值障礙。 是以,結合上述方法的特點可以有效地達到全局最小值。

2、Adam優化算法的數學

代入上述兩種方法中使用的公式,我們得到

Adam優化器的直覺
  • ϵ = 一個小的 +ve 常數,以避免 (vt -> 0) 時出現“除以 0”錯誤。 (10-8)
  • β1 & β2 = 上述兩種方法中梯度平均值的衰減率。 (β1 = 0.9 & β2 = 0.999)
  • α——步長參數/學習率(0.001)

由于 mt 和 vt 都初始化為 0(基于上述方法),是以觀察到它們有“偏向 0”的趨勢,因為 β1 和 β2 ≈ 1。此優化器通過計算“偏向”來解決此問題 更正' mt 和 vt。 這樣做也是為了在達到全局最小值時控制權重,以防止接近它時出現高振蕩。 使用的公式是:

Adam優化器的直覺

直覺上,我們在每次疊代後适應梯度下降,使其在整個過程中保持受控且無偏差,是以得名 Adam。

現在,我們采用偏差校正權重參數 (m_hat)t 和 (v_hat)t,而不是正常的權重參數 mt 和 vt 。 将它們代入我們的一般方程,我們得到

Adam優化器的直覺

3、Adam優化器的性能

基于先前模型的優勢,Adam 優化器提供了比先前使用的模型更高的性能,并且在提供優化的梯度下降方面大幅優于它們。 下圖清楚地描繪了 Adam 優化器如何在訓練成本(低)和性能(高)方面大幅優于其他優化器。

Adam優化器的直覺

原文連結:http://www.bimant.com/blog/adam-optimizer-intuition/