雖然我們不斷追求更好的模型泛化力,但是因為未知資料無法**,所以又期望模型可以充分利用訓練資料,避免欠擬合。
這就要求在增加模型複雜度、提高在可觀測資料上的效能表現得同時,又需要兼顧模型的泛化力,防止過擬合。
為了平衡這兩難的選擇,提出了正則化。
由此可以總結出,正則化的概念:
在模型中改善過擬合,降低結構風險,提高模型的泛化能力的新增項。
直譯應該是:規則化
本質(what):約束(限制)要優化的引數。
目的(why):防止過擬合!
方法(how):在原模型優化目標的基礎上,增加對引數的懲罰項。
常見方法(how):l1範數正則化,l2範數正則化。
假設 x 是乙個向量,它的lp範數定義:
在目標函式後面新增乙個係數的「懲罰項」,是正則化的常用方式,為了防止係數過大從而讓模型變得複雜。
在加了正則化項之後的目標函式為:
即:目標函式(評價函式)= 誤差函式(損失函式) + 正則化項
λ 被稱為正則化係數,用於控制正則化程度。λ 越大,這個限制越強。
l1正則化時,對應懲罰項為 l1 範數 :
l2正則化時,對應懲罰項為 l2 範數:
從上式可以看出,l1正則化通過讓原目標函式加上了所有特徵係數絕對值的和來實現正則化,而l2 正則化通過讓原目標函式加上了所有特徵係數的平方和來實現正則化。
兩者都是通過加上乙個和項來限制引數大小,那麼兩者由什麼區別呢?
結論:l1正則化更適用於特徵選擇,而l2正則化更適用於防止模型過擬合。
推導:
讓我們從梯度下降的角度入手,**兩者的區別。
對於l1範數,新增了懲罰項的模型函式為:
每次更新 w1 時
若w1為正數,則每次更新會減去乙個常數;
若w1為負數,則每次更新會加上乙個常數,
所以很容易產生特徵的係數為 0 的情況,特徵係數為 0 表示該特徵不會對結果有任何影響,
因此l1正則化會讓特徵變得稀疏,起到特徵選擇的作用。
對於l2範數,新增了懲罰項的模型函式為:
每次更新 w1 時
從上式可以看出每次更新時,會對特徵係數進行乙個比例縮放而不是像l1 正則化減去乙個固定值,這會讓係數趨向變小而不會變為 0。因此l2正則化會讓模型變得更簡單,防止過擬合,而不會起到特徵選擇的作用。
以上就是 l1, l2正則化的作用以及區別。
什麼?太抽象?
那麼,直觀在二維座標系中的體現就是:
圖中的橢圓是損失函式的變化曲線,左邊的圖為 l1 正則化,右圖為 l2 正則化。
對於 l1 正則化而言,在圖中表示乙個菱形區域。
對於 l2 正則化而言,在圖中表示乙個圓形區域。
不同的維度係數一般都是不一樣的,因此常見的損失函式影象是乙個橢圓形。
調整引數λ 的值,橢圓形和菱形的交接處很大可能性會落在座標軸附近。λ 越大,菱形和圓形越小,求得的模型引數越小。;實際使用的特徵維度是高維的,正常情況下就是在某些維度上不會交於座標軸上,在某些維度上交於座標軸或座標軸附近,所以才有稀疏解;
與l2正則化相比,l1正則化更容易得到稀疏解,而不是一定會得到稀疏解,畢竟還是有特例的(比如恰好橢圓與座標原點相交)。
**l2正則化更加常用。**l2 正則化的約束邊界光滑且可導,便於採用梯度下降法,而l1正則化不可導,只能採用座標軸下降法或最小角回歸法,計算量大。而且,l1 正則化的效果並不會比 l2 正則化好
L1和L2正則化的直觀理解
這部分內容將解釋 為什麼l1正則化可以產生稀疏模型 l1是怎麼讓係數等於零的 以及為什麼l2正則化可以防止過擬合 假設有如下帶l1正則化的損失函式 j j0 w w 1 j0 是原始的損失函式,加號後面的一項是l1正則化項,是正則化係數。注意到l1正則化是權值的 絕對值之和 j 是帶有絕對值符號的函...
對於正則化項L1,L2範數的理解
之前講到了利用正則化項降低過擬合,這裡再總結一下l1,l2這兩種範數作為正則化項各自的特點及區別 在深度學習一書中,帶有l2範數的正則化項的目標函式如下 其中 wtw wwtw w 2 2 w 2 即為l2範數,其實運用仔細一看這個就是帶有不等式約束的拉格朗日函式最優化問題即 minj w x,y ...
機器學習 L1和L2正則化的直觀理解
l2 norm ridge回歸 l1 norm lasso回歸 l1 norm 和 l2 norm都能防止過擬合,一般l2 norm的效能更好一些。l1 norm能夠進行特選擇對資料進行降維 產生稀疏模型,能夠幫助我們去除某些特徵,因此可以用於特徵選擇。l1 norm 和 l2 norm都能防止過擬...