深入理解L1、L2正則化
轉自:【面試看這篇就夠了】L1、L2正則化理解
一、概述
正則化(Regularization)是機器學習中一種常用的技術,其主要目的是控制模型復雜度,減小過擬合。正則化技術已經成為模型訓練中的常用技術,在面試中,經常會遇到面試官問此題。由于正則化已經成為一種標準的技術,日常使用中往往都是直接用,而沒有特別了解背后的原理。而如果面試中回答得不夠好,或者沒回答清楚,就會非常影響面試結果。因此非常有必要將此題弄清楚。本文便是秉承著這樣的一種目的,給大家詳盡而又徹底地講解這個問題。遇到面試的時候,看這篇文章就夠用了。
最基本的正則化方法是在原目標(代價)函數 中添加懲罰項,對復雜度高的模型進行“懲罰”。其數學表達形式為
J~(ω;X,y)=J(ω;X,y)+αΩ(ω)\widetilde{J}(\omega;X,y)={J}(\omega;X,y)+\alpha\Omega(\omega) J(ω;X,y)=J(ω;X,y)+αΩ(ω)
式中 XXX,yyy 為訓練樣本和對應標簽,ω\omegaω 為權重系數的向量,J(?)J(\cdot)J(?) 為目標函數,Ω(ω)\Omega(\omega)Ω(ω) 即為懲罰項,可理解為模型“規模”的某種度量,參數 α\alphaα 用于控制正則化的強弱。不同的 Ω(?)\Omega(\cdot)Ω(?) 函數對權重 ω\omegaω 的最優解有不同的偏好,因而會產生不同的正則化效果。最常用的 Ω\OmegaΩ 函數有兩種,即 L1L_1L1? 范數和 L2L_2L2? 范數,相應稱之為 L1L_1L1? / L2L_2L2? 正則化。
L1L_1L1? 正則化是指權重向量 ω\omegaω 中各個元素絕對值之和:
Ω(ω)=∣∣ω∣∣1=∑i∣ωi∣\Omega(\omega)=||\omega||_1=\sum_i|\omega_i| Ω(ω)=∣∣ω∣∣1?=i∑?∣ωi?∣
L2L_2L2? 正則化是指權重向量 ω\omegaω 中各個元素的平方和:
Ω(w)=∣∣ω∣∣2=∑iωi2\Omega(w)=||\omega||_2=\sum_i\omega^2_i Ω(w)=∣∣ω∣∣2?=i∑?ωi2?
二、對 L1L_1L1? 、L2L_2L2? 的理解方式
本小節將從不同的方式對 L1L_1L1? 和 L2L_2L2? 進行講解,方便讀者對 L1L_1L1?、L2L_2L2? 的作用有一個更深的理解。同時在面試的時候,也可以更加從容地回答面試官的問題。本人通過閱讀、總結網絡上的各種文章,提供5種理解方式:
- 正則化理解之最大后驗概率估計
- 正則化理解之梯度
- 正則化理解之等高線圖
- 正則化理解之數學公式解析
- 正則化理解之結構風險最小化
1 正則化理解之最大后驗概率估計
在最大似然估計中,假設權重 ω\omegaω 是位置的參數,有對數似然函數:
L(ω)=ln[P(y∣X;ω)]=ln∏iP(yi∣xi;ω)L(\omega)=ln[P(y|X;\omega)]=ln\prod_iP(y^{i}|x^i;\omega) L(ω)=ln[P(y∣X;ω)]=lni∏?P(yi∣xi;ω)
通過假設 yiy^iyi 不同的概率分布,可得到不同的模型。例如假設 yi~N(ωTxi,σ2)y^i\sim N(\omega^Tx^i,\sigma^2)yi~N(ωTxi,σ2) 的高斯分布,則有:
L(ω)=ln∏12πσe?(yi?ωTxi)22σ2=?12σ2∑i(yi?ωTxi)2+CL(\omega)=ln\prod \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\omega^Tx^i)^2}{2\sigma^2}}=-\frac{1}{2\sigma^2}\sum_i(y^i-\omega^Tx^i)^2+C L(ω)=ln∏2π?σ1?e?2σ2(yi?ωTxi)2?=?2σ21?i∑?(yi?ωTxi)2+C
式中 CCC 為常數項,由于常數項和系數項不影響 maxL(ω)maxL(\omega)maxL(ω) 的解,因而可令 J(ω;X,y)=?L(ω)J(\omega;X,y)=-L(\omega)J(ω;X,y)=?L(ω) 即可得到線性回歸的代價函數。
在最大后驗概率估計中,則將權重 ω\omegaω 看做隨機變量,也具有某種分布,從而有:
P(ω∣X,y)=P(ω,X,y)P(X,y)=P(X,y∣ω)P(ω)P(X,y)∝P(y∣X,ω)P(ω)P(\omega|X,y)=\frac{P(\omega,X,y)}{P(X,y)}=\frac{P(X,y|\omega)P(\omega)}{P(X,y)}\propto P(y|X,\omega)P(\omega) P(ω∣X,y)=P(X,y)P(ω,X,y)?=P(X,y)P(X,y∣ω)P(ω)?∝P(y∣X,ω)P(ω)
同樣取對數有:
MAP=lnP(y∣X,ω)P(ω)=lnP(y∣X,ω)+lnP(ω)MAP=lnP(y|X,\omega)P(\omega)=lnP(y|X,\omega)+lnP(\omega) MAP=lnP(y∣X,ω)P(ω)=lnP(y∣X,ω)+lnP(ω)
可以看出后驗概率函數未在似然函數的基礎上增加了一項 lnP(ω)lnP(\omega)lnP(ω)。 P(ω)P(\omega)P(ω) 的意義是對權重系數 ω\omegaω 的概率分布的先驗假設,在收集到訓練樣本 {X,y}\{X,y\}{X,y} 之后,則根據 ω\omegaω 在 {X,y}\{X,y\}{X,y} 下的后驗概率對 ω\omegaω 進行修正,從而對 ω\omegaω 做出更好的估計。
若假設 ωj\omega_jωj? 的先驗分布為 0 均值的高斯分布,即 ωj~N(0,σ2)\omega_j\sim N(0,\sigma^2)ωj?~N(0,σ2) ,則有:
lnP(ω)=ln∏jP(ωj)=ln∏j12πσe?ωj22σ2=?12σ2∑jωj2+C′lnP(\omega)=ln\prod_jP(\omega_j)=ln\prod_j\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{\omega_j^2}{2\sigma^2}}=-\frac{1}{2\sigma^2}\sum_j\omega_j^2+C' lnP(ω)=lnj∏?P(ωj?)=lnj∏?2π?σ1?e?2σ2ωj2??=?2σ21?j∑?ωj2?+C′
可以看到,在高斯分布下 lnP(ω)lnP(\omega)lnP(ω) 的效果等價于在代價函數中增加 L2L_2L2? 正則項。
若假設 ωj\omega_jωj? 服從均值為 0、參數為 aaa 的拉普拉斯分布,即:
P(ωj)=12ae?∣ωj∣aP(\omega_j)=\frac{1}{\sqrt{2a}}e^{\frac{-|\omega_j|}{a}} P(ωj?)=2a?1?ea?∣ωj?∣?
則有:
logP(ω)=log∏j12ae?∣ωj∣a=?1a∑j∣wj∣+C′logP(\omega)=log\prod_j\frac{1}{\sqrt{2a}}e^\frac{-|\omega_j|}{a}=-\frac{1}{a}\sum_j|w_j|+C' logP(ω)=logj∏?2a?1?ea?∣ωj?∣?=?a1?j∑?∣wj?∣+C′
可以看到,在拉普拉斯分布下 lnP(ω)lnP(\omega)lnP(ω) 的效果等價于在代價函數中增加 L1L_1L1? 正則項。
故此,我們得到對于 L1L_1L1?、L2L_2L2? 正則化的第一種理解:
- L1L_1L1? 正則化可通過假設權重 ω\omegaω 的先驗分布為拉普拉斯分布im,由最大后驗概率估計導出;
- L2L_2L2? 正則化可通過假設權重 ω\omegaω 的先驗分布為高斯分布,由最大后驗概率估計導出。
2 正則化理解之梯度
L1L_1L1? 是 ω\omegaω 絕對值之和。當 ω\omegaω 大于 0 時,梯度式中為正常數,更新的參數 ω\omegaω 變小;當 ω\omegaω 小于 0 時,梯度始終為負常數,更新的參數 ω\omegaω 變大;所以,L1L_1L1? 正則化容易使參數變為 0 ,即特征稀疏化。
L2L_2L2? 是 ω\omegaω 平方和。當 ω\omegaω 趨向于 0 時,參數減小得非常緩慢,因此 L2L_2L2? 正則化是參數減小到很小的范圍,但不為 0 。
3 正則化理解值等值線圖
易得,略。
4 正則化理解之數學公式解析
假設原目標函數 J(ω)J(\omega)J(ω) 的最優解 ω?\omega^*ω? ,并假設其為二階可導,將 J(ω)J(\omega)J(ω) 在 ω?\omega^*ω? 處進行二階泰勒展開:
J~(ω)=J(ω?)=12(ω?ω?)TH(ω?ω?)\widetilde{J}(\omega)=J(\omega^*)=\frac{1}{2}(\omega-\omega^*)^TH(\omega-\omega^*) J(ω)=J(ω?)=21?(ω?ω?)TH(ω?ω?)
式中 HHH 為 J(ω)J(\omega)J(ω) 在 ω?\omega^*ω? 處的 Hessian 矩陣,注意 ω?\omega^*ω? 為 J(ω)J(\omega)J(ω) 的最優解,其一階導數為 0,因而式中無一階導數項。J~(ω)\widetilde{J}(\omega)J(ω) 取得最小值時有:
?ωJ~(ω)=H(ω?ω?)=0\nabla_\omega\widetilde{J}(\omega)=H(\omega-\omega^*)=0 ?ω?J(ω)=H(ω?ω?)=0
由于 L2L_2L2? 正則化的目標函數為在 J(ω)J(\omega)J(ω) 中添加 Ω(ω)=12α∣∣ω∣∣22=12αωTω\Omega(\omega)=\frac{1}{2}\alpha||\omega||^2_2=\frac{1}{2}\alpha\omega^T\omegaΩ(ω)=21?α∣∣ω∣∣22?=21?αωTω ,因而有:
?ωJ~(ω)=?ωJ^(ω)+?ωΩω=H(ω?ω?)+αω\nabla_\omega\widetilde{J}(\omega)=\nabla_{\omega}\hat{J}(\omega)+\nabla_\omega\Omega_\omega=H(\omega-\omega^*)+\alpha\omega ?ω?J(ω)=?ω?J^(ω)+?ω?Ωω?=H(ω?ω?)+αω
設其最優解為 ω~\widetilde{\omega}ω ,則有:
H(ω~?ω?)+αω~=0H(\widetilde{\omega}-\omega^*)+\alpha\widetilde{\omega}=0 H(ω?ω?)+αω=0
ω~=(H+αI)?1Hω?\widetilde{\omega}=(H+\alpha I)^{-1}H\omega^* ω=(H+αI)?1Hω?
由于 HHH 是對稱矩陣,可對其做特征值分解,即 H=QΛQ?1H=Q\Lambda Q^{-1}H=QΛQ?1 ,其中 QQQ 為正交矩陣,且每一列為 HHH 的特征向量,代入上式有:
ω~=Q(Λ+αI)?1ΛQTω?\widetilde{\omega}=Q(\Lambda+\alpha I)^{-1}\Lambda Q^T\omega^* ω=Q(Λ+αI)?1ΛQTω?
其中 Λ\LambdaΛ 為對角矩陣,其對角線元素為 HHH 的特征值 λj\lambda_jλj? 。
ω?\omega^*ω? 可以 QQQ 為正交基上做線性展開,由上式可知 ω~\widetilde{\omega}ω 為 ω?\omega^*ω? 在 HHH 的每個特征向量上的分量以 λjλj+α\frac{\lambda_j}{\lambda_j+\alpha}λj?+αλj?? 比例縮放得到。若 λj?α\lambda_j\gg\alphaλj??α ,則 ωj\omega_jωj? 受正則化的影響較小;若 λ?α\lambda\ll\alphaλ?α ,則 ωj?\omega_j^*ωj?? 受正則化的影響較大,將收縮到接近于 0 的值。同時,若 ωj?≠0\omega^*_j\ne0ωj??=0 ,則 ω~j≠0\widetilde{\omega}_j\ne0ωj?=0 ,因而 L2L_2L2? 正則化不會產生稀疏性的效果。
對于 L1L_1L1? 正則化,只需將 Ω(ω)\Omega(\omega)Ω(ω) 替換為 ω\omegaω 的 L1L_1L1? 范數,同理可以得到:
?ωJ~(ω)=?J^(ω)+?ωΩ(ω)=H(ω?ω?)+αsign(ω)\nabla_\omega\widetilde{J}(\omega)=\nabla\hat{J}(\omega)+\nabla_\omega\Omega(\omega)=H(\omega-\omega^*)+\alpha sign(\omega) ?ω?J(ω)=?J^(ω)+?ω?Ω(ω)=H(ω?ω?)+αsign(ω)
其最優解滿足:
H(ω~?ω?)+αsign(ω~)=0H(\widetilde{\omega}-\omega^*)+\alpha sign(\widetilde{\omega})=0 H(ω?ω?)+αsign(ω)=0
為了簡化討論,我們假設 HHH 為對角陣,即 H=diag[H11,H22,…,Hnn]H=diag[H_{11},H_{22},\dots,H_{nn}]H=diag[H11?,H22?,…,Hnn?],Hjj>0H_{jj}>0Hjj?>0 。此時 ω\omegaω 的不同分量之間沒有相關性,該假設可通過對輸入特征進行預處理(如使用 PCA)得到,此時 ω~\widetilde{\omega}ω 的解為:
ω~=sign(ωj?)max{∣ωj?∣?αHjj,0}\widetilde{\omega}=sign(\omega_j^*)max\{|\omega_j^*|-\frac{\alpha}{H_{jj}},0\} ω=sign(ωj??)max{∣ωj??∣?Hjj?α?,0}
當 ∣ωj?∣≤αHjj|\omega^*_j|\le \frac{\alpha}{H_{jj}}∣ωj??∣≤Hjj?α? 時,可知 ω~j=0\widetilde{\omega}_j=0ωj?=0 ,因而 L1L_1L1? 正則化會使得最優解的某些元素為 0,從而產生稀疏性;∣ωj?∣≥αHjj|\omega^*_j|\ge \frac{\alpha}{H_{jj}}∣ωj??∣≥Hjj?α? 時,ω~j\widetilde{\omega}_jωj? 會在原有最優解上偏移一個常數值。
綜上,L2L_2L2? 正則化的效果是對原最優解的每個元素進行不同比例的放縮;L1L_1L1? 正則化則會使原最優解的元素產生不同量的偏移,并使得某些元素為 0,從而產生稀疏性。
5 正則化理解之結構風險最小化
在經驗風險最小化(也就是訓練誤差最小化)的基礎上,盡可能采用簡單的模型(奧卡姆剃刀理論),以此提高泛化預測精度。
- L1L_1L1? 從參數個數的角度去衡量模型的復雜度
- L2L_2L2? 從參數值的大小的角度去衡量模型的復雜度
三、L1L_1L1?、L2L_2L2? 的適用場景
由于 L1L_1L1? 、L2L_2L2? 的特點,因此他們有各自不同的適用場景。
- L1L_1L1? :使模型中盡可能多的參數值為 0,是一種從改變模型結構的角度(減少模型參數的數量)解決過擬合的方式。因此適用于:模型剪枝、模型壓縮、特征選擇。
- L2L_2L2? :使模型中所有的參數值盡可能小,是的模型盡量不依賴于某幾個特殊的特征,而是使得每個特征得到盡量均衡的權重,即從參數分布(讓分布盡可能地均勻)的角度,解決過擬合問題,這也是常用的解決過擬合的方式。因此適用于解決一般的過擬合問題,
引用
MrLi:深入理解L1、L2正則化
bingo醬:L1正則化與L2正則化
落落大方的發卡:拉普拉斯分布
張小磊:極大似然估計與最大后驗概率估計