深入理解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)+αΩ(ω)
式中
X
X
X,
y
y
y 为训练样本和对应标签,
ω
\omega
ω 为权重系数的向量,
J
(
⋅
)
J(\cdot)
J(⋅) 为目标函数,
Ω
(
ω
)
\Omega(\omega)
Ω(ω) 即为惩罚项,可理解为模型“规模”的某种度量,参数
α
\alpha
α 用于控制正则化的强弱。不同的
Ω
(
⋅
)
\Omega(\cdot)
Ω(⋅) 函数对权重
ω
\omega
ω 的最优解有不同的偏好,因而会产生不同的正则化效果。最常用的
Ω
\Omega
Ω 函数有两种,即
L
1
L_1
L1 范数和
L
2
L_2
L2 范数,相应称之为
L
1
L_1
L1 /
L
2
L_2
L2 正则化。
L
1
L_1
L1 正则化是指权重向量
ω
\omega
ω 中各个元素绝对值之和:
Ω
(
ω
)
=
∣
∣
ω
∣
∣
1
=
∑
i
∣
ω
i
∣
\Omega(\omega)=||\omega||_1=\sum_i|\omega_i|
Ω(ω)=∣∣ω∣∣1=i∑∣ωi∣
L
2
L_2
L2 正则化是指权重向量
ω
\omega
ω 中各个元素的平方和:
Ω
(
w
)
=
∣
∣
ω
∣
∣
2
=
∑
i
ω
i
2
\Omega(w)=||\omega||_2=\sum_i\omega^2_i
Ω(w)=∣∣ω∣∣2=i∑ωi2
二、对 L 1 L_1 L1 、 L 2 L_2 L2 的理解方式
本小节将从不同的方式对 L 1 L_1 L1 和 L 2 L_2 L2 进行讲解,方便读者对 L 1 L_1 L1、 L 2 L_2 L2 的作用有一个更深的理解。同时在面试的时候,也可以更加从容地回答面试官的问题。本人通过阅读、总结网络上的各种文章,提供5种理解方式:
- 正则化理解之最大后验概率估计
- 正则化理解之梯度
- 正则化理解之等高线图
- 正则化理解之数学公式解析
- 正则化理解之结构风险最小化
1 正则化理解之最大后验概率估计
在最大似然估计中,假设权重
ω
\omega
ω 是位置的参数,有对数似然函数:
L
(
ω
)
=
l
n
[
P
(
y
∣
X
;
ω
)
]
=
l
n
∏
i
P
(
y
i
∣
x
i
;
ω
)
L(\omega)=ln[P(y|X;\omega)]=ln\prod_iP(y^{i}|x^i;\omega)
L(ω)=ln[P(y∣X;ω)]=lni∏P(yi∣xi;ω)
通过假设
y
i
y^i
yi 不同的概率分布,可得到不同的模型。例如假设
y
i
∼
N
(
ω
T
x
i
,
σ
2
)
y^i\sim N(\omega^Tx^i,\sigma^2)
yi∼N(ωTxi,σ2) 的高斯分布,则有:
L
(
ω
)
=
l
n
∏
1
2
π
σ
e
−
(
y
i
−
ω
T
x
i
)
2
2
σ
2
=
−
1
2
σ
2
∑
i
(
y
i
−
ω
T
x
i
)
2
+
C
L(\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
式中
C
C
C 为常数项,由于常数项和系数项不影响
m
a
x
L
(
ω
)
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(ω)
同样取对数有:
M
A
P
=
l
n
P
(
y
∣
X
,
ω
)
P
(
ω
)
=
l
n
P
(
y
∣
X
,
ω
)
+
l
n
P
(
ω
)
MAP=lnP(y|X,\omega)P(\omega)=lnP(y|X,\omega)+lnP(\omega)
MAP=lnP(y∣X,ω)P(ω)=lnP(y∣X,ω)+lnP(ω)
可以看出后验概率函数未在似然函数的基础上增加了一项
l
n
P
(
ω
)
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) ,则有:
l
n
P
(
ω
)
=
l
n
∏
j
P
(
ω
j
)
=
l
n
∏
j
1
2
π
σ
e
−
ω
j
2
2
σ
2
=
−
1
2
σ
2
∑
j
ω
j
2
+
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′
可以看到,在高斯分布下
l
n
P
(
ω
)
lnP(\omega)
lnP(ω) 的效果等价于在代价函数中增加
L
2
L_2
L2 正则项。
若假设
ω
j
\omega_j
ωj 服从均值为 0、参数为
a
a
a 的拉普拉斯分布,即:
P
(
ω
j
)
=
1
2
a
e
−
∣
ω
j
∣
a
P(\omega_j)=\frac{1}{\sqrt{2a}}e^{\frac{-|\omega_j|}{a}}
P(ωj)=2a1ea−∣ωj∣
则有:
l
o
g
P
(
ω
)
=
l
o
g
∏
j
1
2
a
e
−
∣
ω
j
∣
a
=
−
1
a
∑
j
∣
w
j
∣
+
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′
可以看到,在拉普拉斯分布下
l
n
P
(
ω
)
lnP(\omega)
lnP(ω) 的效果等价于在代价函数中增加
L
1
L_1
L1 正则项。
故此,我们得到对于 L 1 L_1 L1、 L 2 L_2 L2 正则化的第一种理解:
- L 1 L_1 L1 正则化可通过假设权重 ω \omega ω 的先验分布为拉普拉斯分布im,由最大后验概率估计导出;
- L 2 L_2 L2 正则化可通过假设权重 ω \omega ω 的先验分布为高斯分布,由最大后验概率估计导出。
2 正则化理解之梯度
L 1 L_1 L1 是 ω \omega ω 绝对值之和。当 ω \omega ω 大于 0 时,梯度式中为正常数,更新的参数 ω \omega ω 变小;当 ω \omega ω 小于 0 时,梯度始终为负常数,更新的参数 ω \omega ω 变大;所以, L 1 L_1 L1 正则化容易使参数变为 0 ,即特征稀疏化。
L 2 L_2 L2 是 ω \omega ω 平方和。当 ω \omega ω 趋向于 0 时,参数减小得非常缓慢,因此 L 2 L_2 L2 正则化是参数减小到很小的范围,但不为 0 。
3 正则化理解值等值线图
易得,略。
4 正则化理解之数学公式解析
假设原目标函数
J
(
ω
)
J(\omega)
J(ω) 的最优解
ω
∗
\omega^*
ω∗ ,并假设其为二阶可导,将
J
(
ω
)
J(\omega)
J(ω) 在
ω
∗
\omega^*
ω∗ 处进行二阶泰勒展开:
J
~
(
ω
)
=
J
(
ω
∗
)
=
1
2
(
ω
−
ω
∗
)
T
H
(
ω
−
ω
∗
)
\widetilde{J}(\omega)=J(\omega^*)=\frac{1}{2}(\omega-\omega^*)^TH(\omega-\omega^*)
J
(ω)=J(ω∗)=21(ω−ω∗)TH(ω−ω∗)
式中
H
H
H 为
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
由于
L
2
L_2
L2 正则化的目标函数为在
J
(
ω
)
J(\omega)
J(ω) 中添加
Ω
(
ω
)
=
1
2
α
∣
∣
ω
∣
∣
2
2
=
1
2
α
ω
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
(
ω
~
−
ω
∗
)
+
α
ω
~
=
0
H(\widetilde{\omega}-\omega^*)+\alpha\widetilde{\omega}=0
H(ω
−ω∗)+αω
=0
ω ~ = ( H + α I ) − 1 H ω ∗ \widetilde{\omega}=(H+\alpha I)^{-1}H\omega^* ω =(H+αI)−1Hω∗
由于
H
H
H 是对称矩阵,可对其做特征值分解,即
H
=
Q
Λ
Q
−
1
H=Q\Lambda Q^{-1}
H=QΛQ−1 ,其中
Q
Q
Q 为正交矩阵,且每一列为
H
H
H 的特征向量,代入上式有:
ω
~
=
Q
(
Λ
+
α
I
)
−
1
Λ
Q
T
ω
∗
\widetilde{\omega}=Q(\Lambda+\alpha I)^{-1}\Lambda Q^T\omega^*
ω
=Q(Λ+αI)−1ΛQTω∗
其中
Λ
\Lambda
Λ 为对角矩阵,其对角线元素为
H
H
H 的特征值
λ
j
\lambda_j
λj 。
ω ∗ \omega^* ω∗ 可以 Q Q Q 为正交基上做线性展开,由上式可知 ω ~ \widetilde{\omega} ω 为 ω ∗ \omega^* ω∗ 在 H H H 的每个特征向量上的分量以 λ 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 ,因而 L 2 L_2 L2 正则化不会产生稀疏性的效果。
对于
L
1
L_1
L1 正则化,只需将
Ω
(
ω
)
\Omega(\omega)
Ω(ω) 替换为
ω
\omega
ω 的
L
1
L_1
L1 范数,同理可以得到:
∇
ω
J
~
(
ω
)
=
∇
J
^
(
ω
)
+
∇
ω
Ω
(
ω
)
=
H
(
ω
−
ω
∗
)
+
α
s
i
g
n
(
ω
)
\nabla_\omega\widetilde{J}(\omega)=\nabla\hat{J}(\omega)+\nabla_\omega\Omega(\omega)=H(\omega-\omega^*)+\alpha sign(\omega)
∇ωJ
(ω)=∇J^(ω)+∇ωΩ(ω)=H(ω−ω∗)+αsign(ω)
其最优解满足:
H
(
ω
~
−
ω
∗
)
+
α
s
i
g
n
(
ω
~
)
=
0
H(\widetilde{\omega}-\omega^*)+\alpha sign(\widetilde{\omega})=0
H(ω
−ω∗)+αsign(ω
)=0
为了简化讨论,我们假设
H
H
H 为对角阵,即
H
=
d
i
a
g
[
H
11
,
H
22
,
…
,
H
n
n
]
H=diag[H_{11},H_{22},\dots,H_{nn}]
H=diag[H11,H22,…,Hnn],
H
j
j
>
0
H_{jj}>0
Hjj>0 。此时
ω
\omega
ω 的不同分量之间没有相关性,该假设可通过对输入特征进行预处理(如使用 PCA)得到,此时
ω
~
\widetilde{\omega}
ω
的解为:
ω
~
=
s
i
g
n
(
ω
j
∗
)
m
a
x
{
∣
ω
j
∗
∣
−
α
H
j
j
,
0
}
\widetilde{\omega}=sign(\omega_j^*)max\{|\omega_j^*|-\frac{\alpha}{H_{jj}},0\}
ω
=sign(ωj∗)max{∣ωj∗∣−Hjjα,0}
当
∣
ω
j
∗
∣
≤
α
H
j
j
|\omega^*_j|\le \frac{\alpha}{H_{jj}}
∣ωj∗∣≤Hjjα 时,可知
ω
~
j
=
0
\widetilde{\omega}_j=0
ω
j=0 ,因而
L
1
L_1
L1 正则化会使得最优解的某些元素为 0,从而产生稀疏性;
∣
ω
j
∗
∣
≥
α
H
j
j
|\omega^*_j|\ge \frac{\alpha}{H_{jj}}
∣ωj∗∣≥Hjjα 时,
ω
~
j
\widetilde{\omega}_j
ω
j 会在原有最优解上偏移一个常数值。
综上, L 2 L_2 L2 正则化的效果是对原最优解的每个元素进行不同比例的放缩; L 1 L_1 L1 正则化则会使原最优解的元素产生不同量的偏移,并使得某些元素为 0,从而产生稀疏性。
5 正则化理解之结构风险最小化
在经验风险最小化(也就是训练误差最小化)的基础上,尽可能采用简单的模型(奥卡姆剃刀理论),以此提高泛化预测精度。
- L 1 L_1 L1 从参数个数的角度去衡量模型的复杂度
- L 2 L_2 L2 从参数值的大小的角度去衡量模型的复杂度
三、 L 1 L_1 L1、 L 2 L_2 L2 的适用场景
由于 L 1 L_1 L1 、 L 2 L_2 L2 的特点,因此他们有各自不同的适用场景。
- L 1 L_1 L1 :使模型中尽可能多的参数值为 0,是一种从改变模型结构的角度(减少模型参数的数量)解决过拟合的方式。因此适用于:模型剪枝、模型压缩、特征选择。
- L 2 L_2 L2 :使模型中所有的参数值尽可能小,是的模型尽量不依赖于某几个特殊的特征,而是使得每个特征得到尽量均衡的权重,即从参数分布(让分布尽可能地均匀)的角度,解决过拟合问题,这也是常用的解决过拟合的方式。因此适用于解决一般的过拟合问题,