1. 程式人生 > >為什麼正則化(Regularization)可以減少過擬合風險

為什麼正則化(Regularization)可以減少過擬合風險

在解決實際問題的過程中,我們會傾向於用複雜的模型來擬合複雜的資料,但是使用複雜模型會產生過擬合的風險,而正則化就是常用的減少過擬合風險的工具之一。

過擬合

過擬合是指模型在訓練集上誤差很小,但是在測試集上表現很差(即泛化能力差),過擬合的原因一般是由於資料中存在噪聲或者用了過於複雜的模型擬合數據。如下圖所示,下圖中的訓練樣本是三次多項式加了點噪聲得到的,然後用不同的多次項擬合,M代表最高次項次數,下面四個圖中M=0和M=1由於使用的過於簡單的模型,沒有能夠很好地擬合訓練資料,屬於欠擬合。但是在M=3和M=4兩個模型中,M=3有一點點的訓練誤差,但是在測試集上會取得不錯的效果;而M=9則完全沒有訓練誤差,但是訓練出來的模型大大偏離了他的實際模型,這就是所謂的過擬合。 
這裡寫圖片描述

奧卡姆剃刀原理說,在所有能解釋資料的模型中,越簡單的越靠譜。但是為了擬合複雜的資料,不得不採用更復雜的模型,那麼有沒有一種辦法,能以一種相對比較簡單的模型來擬合複雜資料,答案是有,這就是正則化方法。

正則化假設

拿多項式迴歸舉例,在多項式迴歸中,我們的目標是最優化的最小二乘誤差(least square error ),但是通常在優化目標後面會看到一個w的平方項,或者w的絕對值的表示式,這個就是正則化項。其中,w的二次方迴歸叫做ridge regression,w的絕對值項叫做lasso regression。 

RidgeRegression:Ein=i=1N(wTxiyi)2+λwTwRidgeRegression:Ein=∑i=1N(wTxi−yi)2+λwTw

LassoRegression:Ein=i=1N(wTxiyi)2+λ|wi|LassoRegression:Ein=∑i=1N(wTxi−yi)2+λ∑|wi|
這兩個多項式目的都是用於減少過擬合的風險,但是也有細微差別。Ridge Regression得到的w長度比較小,而Lasso Regression得到的w是稀疏的,下面來看下對這兩種方法為什麼可以使得模型變簡單並且減小過擬合的風險的分析。

正則化原理及推導

先來看下面兩個圖,第一個使用了最高十次項的多項式擬合,第一個圖中可以看出紅色的線很好的擬合了樣本中的所有點,但是並不是理想的擬合,似乎泛化能力很弱。第二個圖在第一個圖的基礎上加了L2正則項(Ridge Regression),得到了一個相對理想的模型。 
這裡寫圖片描述

這裡寫圖片描述

這裡先寫下十次項多項式和target的二次項多項式的hypothesis 

H10=w0+w1x+w2x2+...+w10x10H10=w0+w1x+w2x2+...+w10x10
H2=w0+w1x+w2x2H2=w0+w1x+w2x2
從上面兩個式子中可以看出,H_10的假設集合是包含H_2的假設集合的,因為,如果在H_10中把w_3…w_10都設為0,得到的就是H_2的集合,所以可以理解為二次多項式就是十次多項式對w加上一些限制得到的。也就是說,我們的目標是從十次多項式中,找出w_3到w_10都為0的假設,就可以得到我們的目標二次多項式。如果條件放寬鬆點,把w的長度規定在C以內,即wTw<CwTw<C,則會有更大的可能找出w_3..w_10都為0的假設。這應該就是這個正則化名詞的由來吧,就是說把w限制在一定的範圍之內。

我們求解的問題就是 

L2Regularization:mwinEin;s.t.wTw<CL2Regularization:mwinEin;s.t.wTw<C
L1Regularization:mwinEin;s.t.|wi|<CL1Regularization:mwinEin;s.t.∑|wi|<C
把上面兩個帶約束的假設化成圖就是如下圖所示(假設w是二維的),L2就是在一個w空間中加了一個球星區域的約束,所有在這個球形區域內找最優解,而L1就是在這個菱形區域找最優解。 
這裡寫圖片描述

如果沒有約束,對於凸函式,我們常用梯度下降法,每次往梯度方向走一小步,直到不能走為止,現在在這裡加上了限制,先來看L2正則,想象一個球往山谷裡滾下去,現在只能滾在這個圓形區域內,如果谷底在這個圓形區域內,那麼沒什麼問題。如果谷底在圓形區域外,則小球最後肯定會落在圓形邊界上,而且小球最後停著的點的梯度方向,和w的方向肯定是平行的(如果不平行,肯定會有一個垂直w的分量,把小球往另一側拉,如下圖的綠色箭頭)。 
這裡寫圖片描述 
由於梯度和w平行,那麼最後優化的結果是 

E