L1和L2正則化

L1正則化和L2正則化可以看做是損失函數(shù)的懲罰項。所謂『懲罰』是指對損失函數(shù)中的某些參數(shù)做一些限制。對于線性回歸模型,使用L1正則化的模型建叫做Lasso回歸,使用L2正則化的模型叫做Ridge回歸(嶺回歸)。

L1正則化是指權(quán)值向量www中各個元素的絕對值之和
L2正則化是指權(quán)值向量www中各個元素的平方和然后再求平方根

L1正則化可以產(chǎn)生稀疏權(quán)值矩陣,即產(chǎn)生一個稀疏模型,可以用于特征選擇
L2正則化可以防止模型過擬合(overfitting);一定程度上,L1也可以防止過擬合

稀疏模型與特征選擇的關(guān)系
上面提到L1正則化有助于生成一個稀疏權(quán)值矩陣,進而可以用于特征選擇。為什么要生成一個稀疏矩陣?

稀疏矩陣指的是很多元素為0,只有少數(shù)元素是非零值的矩陣,即得到的線性回歸模型的大部分系數(shù)都是0.在預(yù)測或分類時,那么多特征顯然難以選擇,但是如果代入這些特征得到的模型是一個稀疏模型,表示只有少數(shù)特征對這個模型有貢獻,絕大部分特征是沒有貢獻的,或者貢獻微?。ㄒ驗樗鼈兦懊娴南禂?shù)是0或者是很小的值,即使去掉對模型也沒有什么影響),此時我們就可以只關(guān)注系數(shù)是非零值的特征。這就是稀疏模型與特征選擇的關(guān)系。

L1正則化,考慮二維情況:
J = J_0+\alpha\sum_w|w|
其中J0J_0J
0
?
J_0是原始的損失函數(shù),加號后面的一項是L1正則化項,\alpha是正則化系數(shù)

image.png

彩色曲線是求解 的過程,黑色方框是正則化函數(shù),可以看到在圖中,當(dāng)?shù)戎稻€與L圖形首次相交的地方就是最優(yōu)解。上圖中與L在L的一個頂點處相交,這個頂點就是最優(yōu)解。注意到這個頂點的值是(w1,w2)=(0,w)可以直觀想象,因為L函數(shù)有很多『突出的角』(二維情況下四個,多維情況下更多),與這些角接觸的機率會遠(yuǎn)大于與L其它部位接觸的機率(這是很直覺的想象,突出的角比直線的邊離等值線更近寫),而在這些角上,會有很多權(quán)值等于0(因為角就在坐標(biāo)軸上),這就是為什么L1正則化可以產(chǎn)生稀疏模型,進而可以用于特征選擇。

而正則化前面的系數(shù)\alpha,可以控制L圖形的大小。\alpha越小,L的圖形越大(上圖中的黑色方框);\alpha越大,L的圖形就越小,可以小到黑色方框只超出原點范圍一點點,這時最優(yōu)點的值(w1,w2)=(0,w)中的w可以取到很小的值。

L2正則化
J=J_0+\alpha\sum_ww^2

image.png

二維平面下L2正則化的函數(shù)圖形是個圓(絕對值的平方和,是個圓),與方形相比,被磨去了棱角。因此與L相交時使得或 等于零的機率小了許多(這個也是一個很直觀的想象),這就是為什么L2正則化不具有稀疏性的原因,因為不太可能出現(xiàn)多數(shù)w都為0的情況。

L2正則化和過擬合的關(guān)系

擬合過程中通常都傾向于讓權(quán)值盡可能小,最后構(gòu)造一個所有參數(shù)都比較小的模型。因為一般認(rèn)為參數(shù)值小的模型比較簡單,能適應(yīng)不同的數(shù)據(jù)集,也在一定程度上避免了過擬合現(xiàn)象??梢栽O(shè)想一下對于一個線性回歸方程,若參數(shù)很大,那么只要數(shù)據(jù)偏移一點點,就會對結(jié)果造成很大的影響;但如果參數(shù)足夠小,數(shù)據(jù)偏移得多一點也不會對結(jié)果造成什么影響,專業(yè)一點的說法是『抗擾動能力強』。

為什么L2正則化可以獲得值很小的參數(shù)

以線性回歸中的梯度下降法為例,假設(shè)要求解的參數(shù)為\theta,h_\theta(x)是我們的假設(shè)函數(shù)。線性回歸一般使用平方差損失函數(shù)。假設(shè)有m個樣本,線性回歸的代價函數(shù)如下,為了后續(xù)處理方便,乘以一個常數(shù)\frac{1}{2m}

J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2(3)

在梯度下降算法中,需要先對參數(shù)求導(dǎo),得到梯度。梯度本身是上升最快的方向,為了讓損失盡可能小,沿梯度的負(fù)反向更新參數(shù)即可。

對于單個樣本,先對某個參數(shù)\theta_j求導(dǎo):

\frac{\partial}{\partial\theta_j}J(\theta)=\frac{1}{m}(h_\theta(x)-y)\frac{\partial}{\partial\theta_j}h_\theta(x) (3.1)

注意到h_\theta(x)的表達式是h_\theta(x)=\theta_0x_0+\theta_1x_1+...+\theta_nx_n。單個樣本對某個參數(shù)\theta_j求導(dǎo),\frac{\partial}{\partial\theta_j}h_\theta(x)=x_j,上式的結(jié)果為:

\frac{\partial}{\partial\theta_j}J(\theta)=\frac{1}{m}(h_\theta(x)-y)x_j (3.2)

在考慮所有樣本的情況,將每個樣本對\theta_j的導(dǎo)數(shù)求和即可,得到下式:

\frac{\partial}{\partial\theta_j}J(\theta)=\frac{1}{m}\sum_{i=1}^m(h_\theta(x)^{(i)}-y^{(i)})x_j^{(i)} (3.3)

梯度下降算法中,為了盡快收斂,會沿梯度的負(fù)方向更新參數(shù),因此在(3.3)前面添加一個負(fù)號,并乘以一個系數(shù)\alpha(學(xué)習(xí)率),得到最終用于迭代計算參數(shù)\theta_j的形式:

\theta_j: = \theta_j-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} (4)

在原始代價函數(shù)之后添加L2正則化,則迭代公式會變成下面的樣子:

\theta_j:=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} (5)

其中\lambda就是正則化參數(shù)。從上式可以看到,與未添加l2正則化的迭代公式相比,每一次迭代,\theta_j都要先乘以一個小于1的因子(即(1-\alpha\frac{1}{m})),從而使得\theta_j不斷減小,因此總得來看,\theta是不斷減小的。

L1正則化一定程度上也可以防止過擬合。當(dāng)L1的正則化系數(shù)很小時,得到的最優(yōu)解會很小,可以達到和L2正則化類似的效果。

正則化 參數(shù)的選擇

通常越大的\lambda可以讓代價函數(shù)在參數(shù)為0時取到最小值。因為正則化系數(shù)越大,正則化的函數(shù)圖形就會向坐標(biāo)軸原點收縮得厲害,這個現(xiàn)象稱為shrinkage,過程可以稱為shrink to zero。

原文地址https://blog.csdn.net/jinping_shi/article/details/52433975

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容