深入理解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πσ1e−2σ2(yi−ωTxi)2=−2σ21i∑(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πσ1e−2σ2ωj2=−2σ21j∑ω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)=2a1ea−∣ω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∏2a1ea−∣ωj∣=−a1j∑∣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正则化
落落大方的发卡:拉普拉斯分布
张小磊:极大似然估计与最大后验概率估计