機器學習中幾乎都可以看到損失函式後面會新增乙個額外項,常用的額外項一般有兩種,一般英文稱作
ℓ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...