L1正則化與L2正則化
在騰訊互娛的兩面,和百度的一面中,都問到了這個問題:
講講正則化為什麼能降低過擬合程度,並且說明下下L1正則化和L2正則化。
(要想看答案請直接看文章結尾)
L1和L2正則化:
我們所說的正則化,就是在原來的loss function的基礎上,加上了一些正則化項或者稱為模型複雜度懲罰項。現在我們還是以最熟悉的線性回歸為例子。
優化目標:
min 式子(1)
加上L1正則項(lasso回歸):
min 式子(2)加上L2正則項(嶺回歸):
min 式子(3)
結構風險最小化角度:
結構風險最小化: 在經驗風險最小化的基礎上(也就是訓練誤差最小化),儘可能採用簡單的模型,以此提高泛化預測精度。
那現在我們就看看加了L1正則化和L2正則化之後,目標函數求解的時候,最終解有什麼變化。
圖像解釋(假設X為一個二維樣本,那麼要求解參數 也是二維):
- 原函數曲線等高線(同顏色曲線上,每一組 , 帶入值都相同)
- L1和L2加入後的函數圖像:
從上邊兩幅圖中我們可以看出:
- 如果不加L1和L2正則化的時候,對於線性回歸這種目標函數凸函數的話,我們最終的結果就是最裡邊的紫色的小圈圈等高線上的點。
- 當加入L1正則化的時候,我們先畫出 的圖像,也就是一個菱形,代表這些曲線上的點算出來的 1範數 都為F。那我們現在的目標是不僅是原曲線算得值要小(越來越接近中心的紫色圈圈),還要使得這個菱形越小越好(F越小越好)。那麼還和原來一樣的話,過中心紫色圈圈的那個菱形明顯很大,因此我們要取到一個恰好的值。那麼如何求值呢?
1. 以同一條原曲線目標等高線來說,現在以最外圈的紅色等高線為
例,我們看到,對於紅色曲線上的每個點都可以做一個菱形,根據
上圖可知,當這個菱形與某條等高線相切(僅有一個交點)的時候,
這個菱形最小,上圖相割對比較大的兩個菱形對應的1範數更大。
用公式說這個時候能使得在相同的 下,
由於相切的時候的 小,即 小,所以:
能夠使得 更小。
2. 有了1.的說明,我們可以看出,最終加入L1範數得到的解,一定是某個
菱形和某條原函數等高線的切點。現在有個比較重要的結論來了,我們
經過觀察可以看到,幾乎對於很多原函數等高曲線,和某個菱形相交的
時候及其容易相交在坐標軸(比如上圖),也就是說最終的結果,解的 某些維度及其容易是0,比如上圖最終解是 ,這也就 是我們所說的L1更容易得到稀疏解(解向量中0比較多)的原因。3. 當然了,光看著圖說,L1的菱形更容易和等高線相交在坐標軸,一點都沒
說服力,只是個感性的認識,不過不要緊,其實是很嚴謹的,我們直接用
求導來證明,具體的證明這裡有一個很好的答案了,簡而言之就是假設現在我們是一維的情況下 ,其中 是目標函數,
是沒加L1正則化項前的目標函數, 是L1正則項,那麼要使得0點
成為最值可能的點,雖然在0點不可導,但是我們只需要讓0點左右的導數
異號,即 即可
也就是 的情況下,0點都是可能的最值點。
l1 相比於 l2 為什麼容易獲得稀疏解?- 當加入L2正則化的時候,分析和L1正則化是類似的,也就是說我們僅僅是從菱形變成了圓形而已,同樣還是求原曲線和圓形的切點作為最終解。當然與L1範數比,我們這樣求的L2範數的從圖上來看,不容易交在坐標軸上,但是仍然比較靠近坐標軸。因此這也就是我們老說的,L2範數能讓解比較小(靠近0),但是比較平滑(不等於0)。
綜上所述,我們可以看見,加入正則化項,在最小化經驗誤差的情況下,可以讓我們選擇解更簡單(趨向於0)的解。
結構風險最小化: 在經驗風險最小化的基礎上(也就是訓練誤差最小化),儘可能採用簡單的模型,以此提高泛化預測精度。
因此,加正則化項就是結構風險最小化的一種實現。
貝葉斯先驗概率的角度:
現在再從貝葉斯學派的觀點來看看正則化,即是我們先假設要求的參數服從某種先驗分布,以線性回歸為例子,我們之前講過,用高斯分布的極大似然估計求線性回歸。
bingo醬:線性回歸求解的兩種表示(最小化均方誤差和基於高斯分布的極大似然估計)1. 在我們求解的時候,我們假設Y|X; 服從 的正太分布 ,即概率密度函數 ,然後利用極大似然估計求解參數 :
max 式子(4)
或者表示成常用的求極小值:
min 式子(5)
2. 在貝葉斯學派的觀點看來,如果我們先假設參數 服從一種先驗分布 ,那麼根據貝葉斯公式 ,那我們利用極大似然估計求參數 的時候,現在我們的極大似然函數就變成了:
max 式子(6)
表示成求極小的情況就是:
min 式(7)
對比式子(5)和式子(7),我們看到,式子(7)比式子(5)多了最後的一個求和項。
L1範數:
假設我們讓 服從的分布為標準拉普拉斯分布,即概率密度函數為 ,那麼式子(7)多出的項就變成了 ,其中C為常數了,重寫式子(7):
min 式子(8)
熟悉吧,這不就是加了L1範數的優化目標函數么。假設 服從拉普拉斯分布的話,從下圖可以看出 的值取到0的概率特別大。也就是說我們提前先假設了 的解更容易取到0。
L2範數:
假設我們讓 服從的分布為標準正太分布,即概率密度為 ,那麼式子(7)多出的項就成了 ,其中C為常數,重寫式子(7):
min 式子(9)
熟悉吧,這不就是加了L2範數的優化目標函數么。假設 服從標準正太分布的話,根據圖我們可以看出,其實我們就是預先假設了 的最終值可能取到0附近的概率特別大。
因此最後來回答問題:
降低過擬合程度:
正則化之所以能夠降低過擬合的原因在於,正則化是結構風險最小化的一種策略實現。
給loss function加上正則化項,能使得新得到的優化目標函數h = f+normal,需要在f和normal中做一個權衡(trade-off),如果還像原來只優化f的情況下,那可能得到一組解比較複雜,使得正則項normal比較大,那麼h就不是最優的,因此可以看出加正則項能讓解更加簡單,符合奧卡姆剃刀理論,同時也比較符合在偏差和方差(方差表示模型的複雜度)分析中,通過降低模型複雜度,得到更小的泛化誤差,降低過擬合程度。
L1正則化和L2正則化:
L1正則化就是在loss function後邊所加正則項為L1範數,加上L1範數容易得到稀疏解(0比較多)。L2正則化就是loss function後邊所加正則項為L2範數的平方,加上L2正則相比於L1正則來說,得到的解比較平滑(不是稀疏),但是同樣能夠保證解中接近於0(但不是等於0,所以相對平滑)的維度比較多,降低模型的複雜度。
推薦閱讀: