正則化是抑制模型過擬合的重要方法。它的原理到底是啥,今天我來分析一下。

首先,以線性回歸為例,沒有正則化的情況,它的損失函數是平方損失函數。

損失是越小越好,如果擬合函數h越複雜,就越可能把損失擬合到0。那麼很顯然,就會發生過擬合。

熟悉吧,我們的模型因為太逼近訓練樣本,反而損失了泛化能力,這個對於模型是致命的哦。

那麼怎麼從損失函數的角度解決這個問題呢,這就要請出正則化方法,也就是在損失函數中加入另一個由模型參數構造的函數來抑制過於逼近的問題

以L2正則方法為例,我們加入了L2_function=lambda*theta的平方項。

要理解這個L2,我們先看一下不用正則項時,損失函數的優化過程。以僅有兩個參數為例。

損失函數為了到達最優解,theta1和2是沿著梯度下降的方向,向全局最優點(碗底)進發。

為了避免過擬合,也就是說,平方差項不是想拚命變小嗎,我給你加一個函數,你越變小,我越變大

左下方以原點為心的圓就是L2正則的函數空間。這時,優化方法的目標就變成了這兩者同時兼顧的問題,也就是說,在這兩個函數空間的交匯處(切點),損失最低。直觀上說,正則就是不讓theta過分的大。

這時候就好解釋L1正則,L1正則的函數形狀是菱形。

那麼,切點如果靠近某些theta的軸,也就是說,其他正交的theta會趨向於0。這也就是為什麼L1有特徵選擇的能力。


推薦閱讀:
相关文章