回歸|深度學習(李宏毅)(一)

1. 偏差和方差

  • 欠擬合的loss主要來自偏差

  • 過擬合的loss主要來自方差

  • 應對大的偏差的方法:

    1. 增加更多特徵作為輸入
    2. 使用更複雜的模型
  • 應對大的方差的方法:

    1. 更多數據
    2. 正則化
  • k折交叉驗證

2. 梯度下降

  • Adagrad

二次微分大的點梯度雖然大但是可能會比梯度小的點離極值點更近,因此學習率需要考慮二次微分的影響,除以所有梯度的均方根是為了近似表示二次微分。

Adagrad

  • RMSProp

類比Adagrad的一種優化方法,與Adagrad不同的是學習率所除的分母。Adagrad學習率所除的分母會無限累加,導致後期參數更新幅度很小,RMSProp避免了這個問題。然而RMSProp無法解決卡在鞍點的問題。

RMSProp

  • SGD(隨機梯度下降)

  • SGDM

為梯度下降加入一個衝量,每次迭代移動的方向為梯度的反方向向量加上上次移動的方向向量,向量前面可能會有係數。

SGDM

  • Adam

結合RMSProp和SGDM兩種演算法優點的一種優化演算法。m和v需要除上1-β是為了前期的糾偏。分母加上一個ε是為了防止分母下溢到0導致學習率是未定義的。

Adam

  • Adam vs SGDM

Adam:訓練速度快但是泛化誤差大、不穩定。
SGDM:穩定、泛化誤差小、更好的收斂性。

訓練函數和測試函數

  • 改善Adam

   (1). AMSGrad

AMSGrad

   (2). AdaBound

AdaBound

  • 改善SGD

   (1). Cyclical LR

Cyclical LR

   (2). SGDR

SGDR

   (3). One-cycle LR

One-cycle LR

  • 特徵縮放

特徵縮放

  • 泰勒級數解釋梯度下降

將loss函數在當前θ處進行泰勒展開,當參數位於當前θ處附近時,泰勒級數的二階及以上的項可以忽略不計,由此可以解釋當將參數沿梯度反方向調整的時候可以使得loss減小。注意一定保證學習率足夠小,否則泰勒展開的高階項是不可以忽略的。