L1正則化和L2正則化可以看做是損失函數(shù)的懲罰項(xiàng)。所謂『懲罰』是指對損失函數(shù)中的某些參數(shù)做一些限制。對于線性回歸模型,使用L1正則化的模型建叫做Lasso回歸,使用L2正則化的模型叫做Ridge回歸(嶺回歸)。
L1正則化是指權(quán)值向量www中各個(gè)元素的絕對值之和
L2正則化是指權(quán)值向量www中各個(gè)元素的平方和然后再求平方根
L1正則化可以產(chǎn)生稀疏權(quán)值矩陣,即產(chǎn)生一個(gè)稀疏模型,可以用于特征選擇
L2正則化可以防止模型過擬合(overfitting);一定程度上,L1也可以防止過擬合
稀疏模型與特征選擇的關(guān)系
上面提到L1正則化有助于生成一個(gè)稀疏權(quán)值矩陣,進(jìn)而可以用于特征選擇。為什么要生成一個(gè)稀疏矩陣?
稀疏矩陣指的是很多元素為0,只有少數(shù)元素是非零值的矩陣,即得到的線性回歸模型的大部分系數(shù)都是0.在預(yù)測或分類時(shí),那么多特征顯然難以選擇,但是如果代入這些特征得到的模型是一個(gè)稀疏模型,表示只有少數(shù)特征對這個(gè)模型有貢獻(xiàn),絕大部分特征是沒有貢獻(xiàn)的,或者貢獻(xiàn)微小(因?yàn)樗鼈兦懊娴南禂?shù)是0或者是很小的值,即使去掉對模型也沒有什么影響),此時(shí)我們就可以只關(guān)注系數(shù)是非零值的特征。這就是稀疏模型與特征選擇的關(guān)系。
L1正則化,考慮二維情況:
其中J0J_0J
0
?
是原始的損失函數(shù),加號后面的一項(xiàng)是L1正則化項(xiàng),
是正則化系數(shù)
彩色曲線是求解 的過程,黑色方框是正則化函數(shù),可以看到在圖中,當(dāng)?shù)戎稻€與L圖形首次相交的地方就是最優(yōu)解。上圖中與L在L的一個(gè)頂點(diǎn)處相交,這個(gè)頂點(diǎn)就是最優(yōu)解。注意到這個(gè)頂點(diǎn)的值是(w1,w2)=(0,w)可以直觀想象,因?yàn)長函數(shù)有很多『突出的角』(二維情況下四個(gè),多維情況下更多),與這些角接觸的機(jī)率會遠(yuǎn)大于與L其它部位接觸的機(jī)率(這是很直覺的想象,突出的角比直線的邊離等值線更近寫),而在這些角上,會有很多權(quán)值等于0(因?yàn)榻蔷驮谧鴺?biāo)軸上),這就是為什么L1正則化可以產(chǎn)生稀疏模型,進(jìn)而可以用于特征選擇。
而正則化前面的系數(shù),可以控制L圖形的大小。
越小,L的圖形越大(上圖中的黑色方框);
越大,L的圖形就越小,可以小到黑色方框只超出原點(diǎn)范圍一點(diǎn)點(diǎn),這時(shí)最優(yōu)點(diǎn)的值(w1,w2)=(0,w)中的w可以取到很小的值。
L2正則化
二維平面下L2正則化的函數(shù)圖形是個(gè)圓(絕對值的平方和,是個(gè)圓),與方形相比,被磨去了棱角。因此與L相交時(shí)使得或 等于零的機(jī)率小了許多(這個(gè)也是一個(gè)很直觀的想象),這就是為什么L2正則化不具有稀疏性的原因,因?yàn)椴惶赡艹霈F(xiàn)多數(shù)w都為0的情況。
L2正則化和過擬合的關(guān)系
擬合過程中通常都傾向于讓權(quán)值盡可能小,最后構(gòu)造一個(gè)所有參數(shù)都比較小的模型。因?yàn)橐话阏J(rèn)為參數(shù)值小的模型比較簡單,能適應(yīng)不同的數(shù)據(jù)集,也在一定程度上避免了過擬合現(xiàn)象。可以設(shè)想一下對于一個(gè)線性回歸方程,若參數(shù)很大,那么只要數(shù)據(jù)偏移一點(diǎn)點(diǎn),就會對結(jié)果造成很大的影響;但如果參數(shù)足夠小,數(shù)據(jù)偏移得多一點(diǎn)也不會對結(jié)果造成什么影響,專業(yè)一點(diǎn)的說法是『抗擾動能力強(qiáng)』。
為什么L2正則化可以獲得值很小的參數(shù)
以線性回歸中的梯度下降法為例,假設(shè)要求解的參數(shù)為,
是我們的假設(shè)函數(shù)。線性回歸一般使用平方差損失函數(shù)。假設(shè)有m個(gè)樣本,線性回歸的代價(jià)函數(shù)如下,為了后續(xù)處理方便,乘以一個(gè)常數(shù)
:
(3)
在梯度下降算法中,需要先對參數(shù)求導(dǎo),得到梯度。梯度本身是上升最快的方向,為了讓損失盡可能小,沿梯度的負(fù)反向更新參數(shù)即可。
對于單個(gè)樣本,先對某個(gè)參數(shù)求導(dǎo):
(3.1)
注意到的表達(dá)式是
。單個(gè)樣本對某個(gè)參數(shù)
求導(dǎo),
,上式的結(jié)果為:
(3.2)
在考慮所有樣本的情況,將每個(gè)樣本對的導(dǎo)數(shù)求和即可,得到下式:
(3.3)
梯度下降算法中,為了盡快收斂,會沿梯度的負(fù)方向更新參數(shù),因此在(3.3)前面添加一個(gè)負(fù)號,并乘以一個(gè)系數(shù)(學(xué)習(xí)率),得到最終用于迭代計(jì)算參數(shù)
的形式:
(4)
在原始代價(jià)函數(shù)之后添加L2正則化,則迭代公式會變成下面的樣子:
(5)
其中就是正則化參數(shù)。從上式可以看到,與未添加l2正則化的迭代公式相比,每一次迭代,
都要先乘以一個(gè)小于1的因子(即(
)),從而使得
不斷減小,因此總得來看,
是不斷減小的。
L1正則化一定程度上也可以防止過擬合。當(dāng)L1的正則化系數(shù)很小時(shí),得到的最優(yōu)解會很小,可以達(dá)到和L2正則化類似的效果。
正則化 參數(shù)的選擇
通常越大的可以讓代價(jià)函數(shù)在參數(shù)為0時(shí)取到最小值。因?yàn)檎齽t化系數(shù)越大,正則化的函數(shù)圖形就會向坐標(biāo)軸原點(diǎn)收縮得厲害,這個(gè)現(xiàn)象稱為shrinkage,過程可以稱為shrink to zero。
原文地址https://blog.csdn.net/jinping_shi/article/details/52433975