正则化其实就是给目标函数增加一个惩罚项,使得模型更倾向于使用更加简单的模型,防止过拟合。
1. L 2 L_2 L2正则化项的导出
正则化是机器学习中一个防止过拟合的一个重要手段通常,过拟合一个显著地表现是能够很好地拟合当前数据,但是泛化能力不强。首先假设模型学到了多项式:H 10 : w 0 0 + w 1 x 1 + ⋯ + w 10 x 10 H_{10}:w_0^0+w_1x^1+\cdots+w_{10}x^{10} H10:w00+w1x1+⋯+w10x10
即
H
10
≡
{
w
∈
R
10
+
1
}
H_{10}\equiv\{ w\in R^{10+1}\}
H10≡{w∈R10+1}但实际的模型可能并没有那么复杂,这个只是在训练数据上表现的结果可能会比较好。所用的特征过多,样本较少时就很容易陷入过拟合。那么我们就需要把它转化成为更为简单的模型。假如我们令
w
3
=
w
4
=
⋯
=
w
10
=
0
w_3=w_4=\cdots=w_{10}=0
w3=w4=⋯=w10=0那么上述的多项式就可已变成一个二次的多项式。其中,
E
r
r
(
w
)
Err(w)
Err(w)为损失函数。
H
2
≡
{
min
w
∈
R
10
+
1
E
r
r
(
w
)
,
s
.
t
.
w
3
=
w
4
=
⋯
=
w
10
=
0
}
H_2\equiv\{ \min\limits_{w\in R^{10+1}}\ \ Err(w),\ s.t. w_3=w_4=\cdots=w_{10}=0\}
H2≡{w∈R10+1min Err(w), s.t.w3=w4=⋯=w10=0}
但因为我们并不能保证每次都选择前几个特征所以我们可以更加宽松一点:
H
2
≡
{
min
w
∈
R
10
+
1
E
r
r
(
w
)
,
s
.
t
.
∑
q
=
0
10
[
w
q
≠
0
]
≤
3
}
H_2\equiv\{ \min\limits_{w\in R^{10+1}}\ \ Err(w),\ s.t.\sum_{q=0}^{10}[w_q\neq0]\leq3\}
H2≡{w∈R10+1min Err(w), s.t.q=0∑10[wq=0]≤3}
[
w
q
≠
0
]
[w_q\neq0]
[wq=0]表示当
w
q
≠
0
w_q\neq0
wq=0是为1,即要求模型最多为二次项表达式。这个式子比
H
2
H_2
H2更加灵活,应为他只要求有三个不为零而并没有要求哪三个。但是很遗憾上述式子是一个NP-hard的问题。于是我们就想能不能改成一个凸函数,进一步改写:
H
(
C
)
≡
{
min
w
∈
R
10
+
1
E
r
r
(
w
)
,
s
.
t
.
∑
q
=
0
10
w
q
2
≤
C
}
H{(C)}\equiv\{ \min\limits_{w\in R^{10+1}}\ \ Err(w),\ s.t.\sum_{q=0}^{10}w_q^2\leq C\}
H(C)≡{w∈R10+1min Err(w), s.t.q=0∑10wq2≤C}
这个式子可以包含
H
2
′
H_2^{'}
H2′,但不等价。实际上,当
C
C
C趋向于无穷大时,约束条件基本形如空设,于是就等价于
H
10
H_{10}
H10。于是由拉格朗日乘子法有:
min
w
∈
R
10
+
1
E
r
r
(
w
)
+
λ
(
∑
q
=
0
10
w
q
2
−
C
)
,
λ
>
0
\min\limits_{w\in R^{10+1}}\ \ Err(w)+\lambda( \sum_{q=0}^{10}w_q^2- C),\lambda>0
w∈R10+1min Err(w)+λ(q=0∑10wq2−C),λ>0
由于优化的是
w
w
w的函数,所以和
C
C
C没有关系,再把相加写成向量乘积的形式,并从
R
10
+
1
R^{10+1}
R10+1拓展到
R
Q
R^{Q}
RQ最终我们就有了:
min
w
∈
R
Q
E
r
r
(
w
)
+
λ
w
T
w
\min\limits_{w\in R^{Q}}\ \ Err(w)+\lambda w^Tw
w∈RQmin Err(w)+λwTw
后面的那一项就是我们通常所说的
L
2
L_2
L2正则化项,
L
1
L_1
L1正则化用
L
1
L_1
L1范数替换后面的即可。
PS:
L2 norm在回归问题中称作岭回归(Ridge Regression)或权值衰减(Weight-decay)
L1 norm称作LASSO(Least Absolute Shrinkage and Selection Operator)
2. 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正则化项更适合作稀疏化,即得到更少的
w
w
w为非零的解。
正则化其实就是给目标函数增加一个惩罚项,使得模型更倾向于使用低维的模型,以防止过拟合。
一种贝叶斯角度理解正则,加了先验知识就相当于一种正则,可以做到防止过拟合(如我们抛硬币十次但只有一次正面,加了先验知识之后,如果使用贝叶斯估计的话,参数估计的结果会朝着先验的方向矫正,具体具体可参考Parameter estimation for text analysis. Gregor Heinrich.):
L
1
L_1
L1正则化项为先验为拉普拉斯分布,
L
2
L_2
L2正则化项先验为高斯分布,将其分别取对数之后分别留下了绝对值项和平方项。领关于L1的稀疏性以及其它的一些问题,可参考问题:l1 相比于 l2 为什么容易获得稀疏解?。
特征选择通常有三种方法,即过滤式选择(Filter)、包裹式选择(Wrapper)和嵌入式选择(Embedded),本文提到的L1正则化和L2正则化是属于第三种,即在模型训练的时候同时做特征选择。
如有纰漏,欢迎指正。
参考资料:
- 周志华《机器学习》ch. 11.4
- 林轩田. 机器学习基石课程 Lecture 14