回歸|深度學習(李宏毅)(一)
1. 偏差和方差
-
欠擬合的loss主要來自偏差
-
過擬合的loss主要來自方差
-
應對大的偏差的方法:
- 增加更多特徵作為輸入
- 使用更複雜的模型
-
應對大的方差的方法:
- 更多數據
- 正則化
-
k折交叉驗證
2. 梯度下降
- Adagrad
二次微分大的點梯度雖然大但是可能會比梯度小的點離極值點更近,因此學習率需要考慮二次微分的影響,除以所有梯度的均方根是為了近似表示二次微分。
- RMSProp
類比Adagrad的一種優化方法,與Adagrad不同的是學習率所除的分母。Adagrad學習率所除的分母會無限累加,導致後期參數更新幅度很小,RMSProp避免了這個問題。然而RMSProp無法解決卡在鞍點的問題。
-
SGD(隨機梯度下降)
-
SGDM
為梯度下降加入一個衝量,每次迭代移動的方向為梯度的反方向向量加上上次移動的方向向量,向量前面可能會有係數。
- Adam
結合RMSProp和SGDM兩種演算法優點的一種優化演算法。m和v需要除上1-β是為了前期的糾偏。分母加上一個ε是為了防止分母下溢到0導致學習率是未定義的。
- Adam vs SGDM
Adam:訓練速度快但是泛化誤差大、不穩定。
SGDM:穩定、泛化誤差小、更好的收斂性。
- 改善Adam
(1). AMSGrad
(2). AdaBound
- 改善SGD
(1). Cyclical LR
(2). SGDR
(3). One-cycle LR
- 特徵縮放
- 泰勒級數解釋梯度下降
將loss函數在當前θ處進行泰勒展開,當參數位於當前θ處附近時,泰勒級數的二階及以上的項可以忽略不計,由此可以解釋當將參數沿梯度反方向調整的時候可以使得loss減小。注意一定保證學習率足夠小,否則泰勒展開的高階項是不可以忽略的。