正則化是指,在損失函式的基礎上加上了正則化項,即原來的loss function$ \frac\sum_^n(y_i-\hat y)^2$ 變為$ \frac\sum_^n(y_i-\hat y)^2+\frac \sum_n||w||2$
**正則化的目的是為了防止過擬合 **
正則化可以防止過擬合的原因,從直觀意義上講,我們需要最小化損失函式,由於加了正則化項,所以在最小化損失函式的基礎上引數值也越小越好,引數值 $ \theta $ 小的好處是:
1、因為引數值很小,接近於0,可以讓減少多項式的項數。
2、引數值很小,可以讓函式更平滑,比如帶入兩個樣本點,由於引數值很小,所以**值波動不大,因此函式更平滑。
在談正則化之前我們需要先看看為什麼需要正則化,先看下面三張圖。
第一張圖可以看出欠擬合,因為擬合的分界線過於簡單,有很多叉形和圓形無法分類正確。
第二張圖擬合正常,基本分類正確
第三張圖為過擬合,雖然每個點都分類正確,但是分界線過於複雜。過擬合會帶來什麼問題呢?假如下方代表我們的訓練集,因為我們擬合的邊界完美的區分了圓跟叉,所以在訓練集上的誤差是極小的。但是用在測試集上效果就會很差。對比第二張圖處於圓形中的叉應該為異常點,所以應該歸為圓。那又是什麼帶來了過擬合呢,我們知道根據泰勒公式,所有的函式多可以用多項式函式進行近似,所以如果我們假設的邊界函式的項數過多,就會擬合出非常複雜的線,造成過擬合。比如第一張的假設函式(決策邊界)為$ f(x_1,x_2) = \theta_0+\theta_1 x_1+\theta_2 x_2 $ ,而第三張的假設函式為\(f(x_1,x_2)=\theta_0 + \theta_1 x_1 +\theta_2 x^2_1+\theta_3 x^2_1 x_2+\theta_4 x^2_1 x^2_2+\theta_5 x^2_1 x^3_2+...\)
由於過擬合問題的存在我們提出了正則化的概念,正則化的目的就是為了防止過擬合。正則化有l1正則化與l2正則化兩種。這裡主要說l2正則化
l1正則化即在損失函式上加上l1正則化項(l1範數),l2正則化即在損失函式上加上l2正則化項(l2範數)。那麼什麼是範數?
範數是具有「長度」概念的函式,每個向量都對應乙個長度,不過不同的範數求出的向量的長度是不同的。比如我們平時求得向量的長度即歐式距離就是l2範數。
知道什麼是範數後,我們可以**為什麼l2範數可以防止過擬合。l2範數是指向量個元素的平方和然後求平方根, 我們讓l2範數的規則項\(||w||^2\)最小,可以使\(w\)的每個元素都很小,都接近於0。但與l1範數不同,l2範數的每一項不會等於0。\(w\)越小,模型越簡單,因此擬合的函式就不會太複雜,防止了過擬合。
下圖直觀解釋了為什麼l1範數會使引數等於0而l2範數不會使引數等於0,圖1為l1範數,圖2為l2範數
$ l( \theta )=\frac\sum_^n(y_i-\hat y)^2+\frac \sum_n||w||2$
菱形或表示l1約束條件即損失函式後面那一項,等高線表示沒有正則化的損失函式即損失函式前面那一項,等高線越接近中心,損失函式前面那一項值越小。
我們的目標是等高線很接近中心(損失函式前面那一項很小),同時菱形也很小。這樣我們可以看出當菱形與等高線只有乙個焦點的時候兩個會同時比較小,而因為菱形的原因,交點一般在座標上,因此\(||w^2||\)的值一般會等於0。
同理圖二為l2範數,因為交點不會交在座標軸上,而會交在附近,因此l2範數可以讓解比較小,而不會等於0.
我們對上述公式\(w\)的偏導即梯度
\(\frac = (未加正則化的損失函式對w的偏導)+\fracw_i\)
所以進行梯度下降更新引數時
\(w_i = w_i-\alpha[(未加正則化的損失函式對w的偏導)+\fracw_i]\)
\(w_i = w_i(1-\alpha\frac)-\alpha(未加正則化的損失函式對w的偏導)\)
發現跟沒有加正則化項的梯度下降\(w_i = w_i-\alpha(未加正則化的損失函式對w的偏導)\)相比,因為\((1-\alpha\frac)<1\),\(w_i\)會強制變小,因為乘了乙個比1小的數,所以權重在不停的衰減。
我們平時的正則化是指加了l2範數,由於l2範數的性質,會使引數\(w\)(\(\theta\))的值接近0,因此使假設函式(決策邊界)或者說模型變得簡單,防止過擬合,在**的時候就不會波動特別大。因此在測試集上就會表現的比表好。這就是正則。
方差跟偏差也是在談論模型擬合程度的時候經常說到的問題。
偏差:模型整體的**值與真實值的偏離程度
方差:模型的**值之間的離散程度
可以看到偏差是模型與真實值之間的比較,方差是模型自身的比較。下圖形象展示了偏差跟方差。
可以看到偏差是指里資料的平均值離靶心的程度,而方差是指資料間的離散程度。
我們平時說模型過於簡單欠擬合,是高偏差,低方差。因為**總是偏離真實值,造成高偏差,但又因為函式簡單,**的值波動不大,聚到一起。因此是低方差。
過擬合相反是高方差,低偏差。因為函式複雜雖然**也偏離真實值但是是在真實值上下波動,因此低偏差,函式複雜度高,**值離散程度高,所以高方差
我們在對資料集進行測試的時候要保證,完全不能通過測試集來調整引數跟超引數。因此我們對資料集進行劃分的時候可以將資料集劃分為訓練集,驗證集跟測試集。訓練集來訓練模型引數,驗證集來尋找模型超引數,比如正則化引數\(\lambda\)。最後在測試集上進行測試。切記不能通過測試集來調整任何引數。
l1正則化與l2正則化 - bingo醬的文章 - 知乎
偏差和方差有什麼區別? - jason gu的回答 - 知乎
l1範數與l2範數的區別 - 魚濤之歡的文章 - 知乎
偏差 方差分解 損失函式和正則化
一 偏差 方差分解 以回歸演算法為例 偏差 方差分解是解釋學習演算法泛化效能的一種重要工具。誤差是測量值與真實值之間的差值。偏差度量了學習演算法的期望 與真實結果的偏離程度。方差度量了同樣大小的訓練集的變動所導致的學習效能的變化,刻畫了資料擾動所造成的影響。雜訊則表達了在當前任務上任何學習演算法所能...
偏差 方差權衡 正則化 過擬合問題
偏差 方差權衡就是通過正則化調整模型的複雜度,正則化是解決共線性 特徵間高度相關 的乙個很有用的方法,它可以過濾掉資料中的雜訊,並最終防止過擬合。正則化背後的概念是引入額外的資訊 偏差 來對極端引數權重做出懲罰。最常用 的正則化形式成為l2正則化 l2 regularization 它有時也稱作l2...
通俗理解偏差和方差 過擬合 正則化
1.解釋一下偏差和方差?在統計學中,偏差和方差是用來衡量模型的好壞的。偏差是指模型的 值的期望和真實值之間的差距。偏差越大,值越偏離真實資料。方差是指 值的分布範圍。方差越大,分布越分散。2.為什麼會出現過擬合的現象?過擬合是指模型在訓練集上達到了非常高甚至是100 的準確率,但是在測試集上的結果確...