機器學習中正則化項L1和L2的直觀理解

2021-08-21 03:03:22 字數 4213 閱讀 3373

機器學習中幾乎都可以看到損失函式後面會新增乙個額外項,常用的額外項一般有兩種,一般英文稱作

ℓ1」 role=」presentation」>ℓ1ℓ1

-norm,中文稱作l1正則化l2正則化,或者l1範數l2範數

l1正則化和l2正則化可以看做是損失函式的懲罰項。所謂『懲罰』是指對損失函式中的某些引數做一些限制。對於線性回歸模型,使用l1正則化的模型建叫做lasso回歸,使用l2正則化的模型叫做ridge回歸(嶺回歸)。下圖是python中lasso回歸的損失函式,式中加號後面一項

α||w||1」 role=」presentation」>α||

w||1

α||w||1

即為l1正則化項。

下圖是python中ridge回歸的損失函式,式中加號後面一項

α||w||22」 role=」presentation」>α||

w||2

2α||w||22

即為l2正則化項。

一般回歸分析中回歸

w」 role=」presentation」>w

w表示特徵的係數,從上式可以看到正則化項是對係數做了處理(限制)。l1正則化和l2正則化的說明如下:

一般都會在正則化項之前新增乙個係數,python中用

α」 role=」presentation」>α

α表示。這個係數需要使用者指定。

那新增l1和l2正則化有什麼用?下面是l1正則化和l2正則化的作用,這些表述可以在很多文章中找到。

上面提到l1正則化有助於生成乙個稀疏權值矩陣,進而可以用於特徵選擇。為什麼要生成乙個稀疏矩陣?

稀疏矩陣指的是很多元素為0,只有少數元素是非零值的矩陣,即得到的線性回歸模型的大部分係數都是0. 通常機器學習中特徵數量很多,例如文字處理時,如果將乙個片語(term)作為乙個特徵,那麼特徵數量會達到上萬個(bigram)。在**或分類時,那麼多特徵顯然難以選擇,但是如果代入這些特徵得到的模型是乙個稀疏模型,表示只有少數特徵對這個模型有貢獻,絕大部分特徵是沒有貢獻的,或者貢獻微小(因為它們前面的係數是0或者是很小的值,即使去掉對模型也沒有什麼影響),此時我們就可以只關注係數是非零值的特徵。這就是稀疏模型與特徵選擇的關係。

這部分內容將解釋為什麼l1正則化可以產生稀疏模型(l1是怎麼讓係數等於零的),以及為什麼l2正則化可以防止過擬合

假設有如下帶l1正則化的損失函式:

(1)j=j0+α∑w|w|」 role=」presentation」>j=j

0+α∑

w|w|

(1)(1)j=j0+α∑w|w|

其中j0」 role=」presentation」>j0j0

的二維平面上畫出來。如下圖:

圖1 l1正則化

圖中等值線是

j0」 role=」presentation」>j0j0

其它部位接觸的機率,而在這些角上,會有很多權值等於0,這就是為什麼l1正則化可以產生稀疏模型,進而可以用於特徵選擇。

而正則化前面的係數

α」 role=」presentation」>α

α可以取到很小的值。

類似,假設有如下帶l2正則化的損失函式:

(2)j=j0+α∑ww2」 role=」presentation」>j=j

0+α∑

ww2(2)

(2)j=j0+α∑ww2

同樣可以畫出他們在二維平面上的圖形,如下:

圖2 l2正則化

二維平面下l2正則化的函式圖形是個圓,與方形相比,被磨去了稜角。因此

j0」 role=」presentation」>j0j0

等於零的機率小了許多,這就是為什麼l2正則化不具有稀疏性的原因。

擬合過程中通常都傾向於讓權值盡可能小,最後構造乙個所有引數都比較小的模型。因為一般認為引數值小的模型比較簡單,能適應不同的資料集,也在一定程度上避免了過擬合現象。可以設想一下對於乙個線性回歸方程,若引數很大,那麼只要資料偏移一點點,就會對結果造成很大的影響;但如果引數足夠小,資料偏移得多一點也不會對結果造成什麼影響,專業一點的說法是『抗擾動能力強』。

那為什麼l2正則化可以獲得值很小的引數?

以線性回歸中的梯度下降法為例。假設要求的引數為

θ」 role=」presentation」>θ

θ是我們的假設函式,那麼線性回歸的代價函式如下:

(3)j(θ)=12m∑i=1m(hθ(x(i))−y(i))2」 role=」presentation」>j(θ

)=12

m∑i=

1m(h

θ(x(

i))−

y(i)

)2(3)(3)j(θ)=12m∑i=1m(hθ(x(i))−y(i))2

那麼在梯度下降法中,最終用於迭代計算引數

θ」 role=」presentation」>θ

θ的迭代式為:

(4)θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))xj(i)」 role=」presentation」>θj:=

θj−α

1m∑i

=1m(

hθ(x

(i))

−y(i

))x(

i)j(4)

(4)θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))xj(i)

其中α」 role=」presentation」>α

α是learning rate. 上式是沒有新增l2正則化項的迭代公式,如果在原始代價函式之後新增l2正則化,則迭代公式會變成下面的樣子:

(5)θj:=θj(1−αλm)−α1m∑i=1m(hθ(x(i))−y(i))xj(i)」 role=」presentation」>θj:=

θj(1

−αλm

)−α1

m∑i=

1m(h

θ(x(

i))−

y(i)

)x(i

)j(5)(5)θj:=θj(1−αλm)−α1m∑i=1m(hθ(x(i))−y(i))xj(i)

其中

λ」 role=」presentation」>λ

λ是不斷減小的。

最開始也提到l1正則化一定程度上也可以防止過擬合。之前做了解釋,當l1的正則化係數很小時,得到的最優解會很小,可以達到和l2正則化類似的效果。

通常越大的

λ」 role=」presentation」>λ

λ可以讓代價函式在引數為0時取到最小值。下面是乙個簡單的例子,這個例子來自quora上的問答。為了方便敘述,一些符號跟這篇帖子的符號保持一致。

假設有如下帶l1正則化項的代價函式:

f(x)=f(x)+λ||x||1」 role=」presentation」>f(x

)=f(

x)+λ

||x|

|1f(x)=f(x)+λ||x||1

其中x」 role=」presentation」>x

x時取到最小值。如下圖:

圖3 l1正則化引數的選擇

分別取λ=0.5」 role=」presentation」>λ

=0.5

λ=0.5

時取到最小值。

從公式5可以看到,

λ」 role=」presentation」>λ

λ越大,l2圓的半徑越小,最後求得代價函式最值時各引數也會變得很小。

過擬合的解釋:

正則化的解釋:

正則化的解釋:

正則化的數學解釋(一些圖**於這裡):

**:

機器學習中正則化項L1和L2的直觀理解

1 1 norm和 2 2 norm,中文稱作l1正則化和l2正則化,或者l1範數和l2範數。w 1 w 1 即為l1正則化項。w 2 2 w 22 即為l2正則化項。w表示特徵的係數,從上式可以看到正則化項是對係數做了處理 限制 l1正則化和l2正則化的說明如下 w中各個元素的絕對值之和,通常表示...

機器學習中正則化項L1和L2的直觀理解

在機器學習中,我們非常關心模型的 能力,即模型在新資料上的表現,而不希望過擬合現象的的發生,我們通常使用正則化 regularization 技術來防止過擬合情況。正則化是機器學習中通過顯式的控制模型複雜度來避免模型過擬合 確保泛化能力的一種有效方式。如果將模型原始的假設空間比作 天空 那麼天空飛翔...

機器學習 L1與L2正則化項

題目 關於支援向量機svm,下列說法錯誤的是 a.l2正則項,作用是最大化分類間隔,使得分類器擁有更強的泛化能力 b.hinge 損失函式,作用是最小化經驗分類錯誤 c.分類間隔為1 w w 代表向量的模 d.當引數c越小時,分類間隔越大,分類錯誤越多,趨於欠學習 錯誤 在logistic regr...