概念
l0正則化的值是模型引數中非零引數的個數。
l1正則化表示各個引數絕對值之和。
l2正則化標識各個引數的平方的和的開方值。
先討論幾個問題:
1)實現引數的稀疏有什麼好處嗎?
乙個好處是可以簡化模型,避免過擬合。因為乙個模型中真正重要的引數可能並不多,如果考慮所有的引數起作用,那麼可以對訓練資料可以**的很好,但是對測試資料就只能呵呵了。另乙個好處是引數變少可以使整個模型獲得更好的可解釋性。
2)引數值越小代表模型越簡單嗎?
是的。為什麼引數越小,說明模型越簡單呢,這是因為越複雜的模型,越是會嘗試對所有的樣本進行擬合,甚至包括一些異常樣本點,這就容易造成在較小的區間裡**值產生較大的波動,這種較大的波動也反映了在這個區間裡的導數很大,而只有較大的引數值才能產生較大的導數。因此複雜的模型,其引數值會比較大。
l0正則化
根據上面的討論,稀疏的引數可以防止過擬合,因此用l0範數(非零引數的個數)來做正則化項是可以防止過擬合的。
從直觀上看,利用非零引數的個數,可以很好的來選擇特徵,實現特徵稀疏的效果,具體操作時選擇引數非零的特徵即可。但因為l0正則化很難求解,是個np難問題,因此一般採用l1正則化。l1正則化是l0正則化的最優凸近似,比l0容易求解,並且也可以實現稀疏的效果。
l1正則化
l1正則化在實際中往往替代l0正則化,來防止過擬合。在江湖中也人稱lasso。
l1正則化之所以可以防止過擬合,是因為l1範數就是各個引數的絕對值相加得到的,我們前面討論了,引數值大小和模型複雜度是成正比的。因此複雜的模型,其l1範數就大,最終導致損失函式就大,說明這個模型就不夠好。
l2正則化
l2正則化可以防止過擬合的原因和l1正則化一樣,只是形式不太一樣。
l2範數是各引數的平方和再求平方根,我們讓l2範數的正則項
最小,可以使w的每個元素都很小,都接近於0。但與l1範數不一樣的是,它不會是每個元素為0,而只是接近於0。越小的引數說明模型越簡單,越簡單的模型越不容易產生過擬合現象。
l2正則化江湖人稱ridge,也稱「嶺回歸」
l1正則化可以產生稀疏權值矩陣,即產生乙個稀疏模型,可以用於特徵選擇
l2正則化可以防止模型過擬合(overfitting);一定程度上,l1也可以防止過擬合
假設有如下帶l1正則化的損失函式:
其中j0
'>j
0'>
j0是原始的損失函式,加號後面的一項是l1正則化項,α
'>α
是正則化係數。注意到l1正則化是權值的絕對值之和,j
'>j
是帶有絕對值符號的函式,因此j
'>j
是不完全可微的。機器學習的任務就是要通過一些方法(比如梯度下降)求出損失函式的最小值。當我們在原始損失函式j
0'>j0
後新增l1正則化項時,相當於對j
0'>j0
做了乙個約束。令l等於正則化項,則j
=j0+
l'>j=j0+l
,此時我們的任務變成在l
'>l
約束下求出j
0'>j0
取最小值的解。考慮二維的情況,即只有兩個權值w
1'>w1和w2
'>w2
,此時l=|
w1|+
|w2|
'>l=|w1|+|w2|
對於梯度下降法,求解j
0'>j0
的過程可以畫出等值線,同時l1正則化的函式l
'>l
也可以在w1w
2'>w1w2
的二維平面上畫出來。如下圖:
圖1 l1正則化
圖中等值線是j
0'>j0
的等值線,黑色方形是l
'>l
函式的圖形。在圖中,當j
0'>j0
等值線與l
'>l
圖形首次相交的地方就是最優解。上圖中j
0'>j0
與l'>l
在l'>l
的乙個頂點處相交,這個頂點就是最優解。注意到這個頂點的值是(w1
,w2)
=(0,
w)'>(w1,w2)=(0,w)
(w1,w2)=(0,w)。可以直觀想象,因為l
'>l
l函式有很多『突出的角』(二維情況下四個,多維情況下更多),j
0'>j0
j0與這些角接觸的機率會遠大於與l
'>l
l其它部位接觸的機率,而在這些角上,會有很多權值等於0,這就是為什麼l1正則化可以產生稀疏模型,進而可以用於特徵選擇。
而正則化前面的係數α
'>α
α,可以控制l
'>l
l圖形的大小。α
'>α
α越小,l
'>l
l的圖形越大(上圖中的黑色方框);α
'>α
α越大,l
'>l
l的圖形就越小,可以小到黑色方框只超出原點範圍一點點,這是最優點的值(w1
,w2)
=(0,
w)'>(w1,w2)=(0,w)
中的w'>
w可以取到很小的值。
類似,假設有如下帶l2正則化的損失函式:
同樣可以畫出他們在二維平面上的圖形,如下:
圖2 l2正則化
二維平面下l2正則化的函式圖形是個圓,與方形相比,被磨去了稜角。因此j
0'>j0
與l'>l
相交時使得w
1'>w1或w2
'>w2
等於零的機率小了許多,這就是為什麼l2正則化不具有稀疏性的原因。
L0,L1,L2正則,lasso,嶺回歸
我們要討論的第乙個規範是l0規範。根據定義,x的l0範數是 嚴格來說,l0範數實際上不是乙個範數。它是基數函式,其定義形式為l0 norm,儘管許多人稱其為範數。使用它有點棘手,因為其中存在零次冪和零次方。顯然,任何x 0都將變為1,但是零次冪 尤其是零次冪 的定義問題使這裡變得混亂。因此,實際上,...
機器學習中L0, L1, L2正則項介紹
l0,l1,l2正則項是機器學習中常用的正則項,本文主要對這三種正則項做乙個簡單的介紹。l0 l0主要是指引數中0的個數,希望引數中的大部分元素是0,希望引數是稀疏的,但是l0有乙個缺點就是難以優化,所以就引出了l1正則項。l1 l1正則項是指向量中各個元素絕對值之和,l0正則項的最優凸近似,它比l...
面試L0,L1,L2範數
在深度學習中,監督類學習問題其實就是在規則化引數同時最小化誤差。最小化誤差目的是讓模型擬合訓練資料,而規則化引數的目的是防止模型過分擬合訓練資料。引數太多,會導致模型複雜度上公升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的引數才能...