深度學習基礎知識之正則化

背景知識

1 訓練誤差與泛化誤差

訓練誤差,顧名思義,就是在訓練集上表現出的誤差,而後者是通過訓練得到的模型在任意一個測試集上表現出的誤差的期望,但通常直接通過測試集上的誤差即(測試誤差)來近似。

假設學習到的模型是 Y=f^(X)Y = \hat{f}(X),則
訓練誤差 是模型關於訓練數據集的平均損失:
Remp(f^)=1Ni=1NL(yi,f^(xi)),NR_{emp}(\hat{f}) = \frac{1}{N}\sum_{i=1}^NL(y_i, \hat{f}(x_i)) , N爲訓練樣本容量
測試誤差 是模型關於測試數據集的平均誤差:
etest=1Ni=1NL(yi,f^(xi)),Ne_{test} = \frac{1}{N'}\sum_{i=1}^{N'} L(y_i, \hat{f}(x_i)) , N'爲測試樣本容量

訓練誤差小不代表泛化誤差也小,我們評判一個模型的好壞一般不以訓練誤差小來評判,主要以測試誤差小來評判,因爲測試誤差小的方法具有更好的預測能力,從而模型的泛化能力要更好。

2 欠擬合和過擬合

模型訓練中通常會出現兩個問題:

  • 欠擬合:模型的訓練誤差較高
  • 過擬合:模型的訓練誤差遠小於模型的測試誤差

其中欠擬合問題是比較好解決的,比如修改模型,或者增加訓練迭代次數,調整學習率等超參數,都可以慢慢訓練出較低訓練誤差的模型,但是過擬合問題是比較難解決的。最簡單的解決方法就是增加數據集大小,但是數據集是很昂貴的,所以獲取更多數據集不是很簡單。

那麼,正則化就是解決模型過擬合的方法。


正則化

1、奧卡姆剃刀思想

在同樣能夠解釋已知觀測現象的假設中,我們應該挑選“最簡單”的那一個。

2、正則化原理

正則化是結構風險最小化策略的實現,若要正則化一個學習函數f(x;θ)f(x;\theta)的模型,則可以給代價函數添加一個稱爲正則化項的懲罰。
一般具有如下形式:minck\min_{c_k}
minfF1Ni=1NL(yi,f(xi))+λJ(f)\min_{f \in F}\frac{1}{N}\sum_{i=1}^NL(y_i, f(x_i)) + \lambda J(f)
,其中第 1 項爲 經驗風險,第 2 項是正則化項λ0\lambda \geq 0爲調整兩者之間關係的係數。

正則化的作用就是選擇經驗風險與模型複雜度同時較小的模型。

3、L1L_1 正則化

正則化項可以取不同的形式,比如在迴歸問題中,損失函數就是平方損失。
正則化項爲參數向量的 L1L_1 範數:
L(w)=1Ni=1N(f(xi;w)yi)2+λw1L(w) = \frac{1}{N}\sum_{i=1}^N(f(x_i; w) - y_i)^2 + \lambda \parallel w \parallel _1

4、L2L_2 正則化

正則化項爲參數向量的 L2L_2 範數:
L(w)=1Ni=1N(f(xi;w)yi)2+λ2w2L(w) = \frac{1}{N}\sum_{i=1}^N(f(x_i; w) - y_i)^2 + \frac{\lambda}{2} {\parallel w \parallel}^2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章