一、向量和矩阵的范数
范数是一个函数,常用来表示某个向量空间里(或矩阵)中的每个向量的长度或大小。
1.1 向量的范数
对于一个向量
x
=
(
x
1
,
x
2
,
.
.
.
x
n
)
\boldsymbol{x}=(x_1,x_2,...x_n)
x=(x1,x2,...xn),给出如下的范数定义:
0-范数:
∣
∣
x
∣
∣
0
=
∑
i
I
(
x
i
≠
0
)
||\boldsymbol{x}||_0=\sum_i I(x_i \neq 0)
∣∣x∣∣0=∑iI(xi̸=0),表示向量中非零元素的个数,反映了向量元素的稀疏性
1-范数:
∣
∣
x
∣
∣
1
=
∑
i
∣
x
i
∣
||\boldsymbol{x}||_1=\sum_i|x_i|
∣∣x∣∣1=∑i∣xi∣,即向量各元素的绝对值之和
2-范数:
∣
∣
x
∣
∣
2
=
(
∑
i
x
i
2
)
1
/
2
||\boldsymbol{x}||_2=(\sum_ix_i^2)^{1/2}
∣∣x∣∣2=(∑ixi2)1/2,即向量各元素的根号平方和
∞
\infty
∞-范数:
∣
∣
x
∣
∣
∞
=
m
a
x
(
x
i
)
||\boldsymbol{x}||_\infty=max(x_i)
∣∣x∣∣∞=max(xi),即向量各元素中的最大值
−
∞
-\infty
−∞-范数:
∣
∣
x
∣
∣
−
∞
=
m
i
n
(
x
i
)
||\boldsymbol{x}||_{-\infty}=min(x_i)
∣∣x∣∣−∞=min(xi),即向量各元素中的最小值
p
p
p-范数:
∣
∣
x
∣
∣
p
=
(
∑
i
x
i
p
)
1
/
p
||\boldsymbol{x}||_p=(\sum_ix_i^p)^{1/p}
∣∣x∣∣p=(∑ixip)1/p
不难发现,
p
p
p数越大,越容易倾向于倾向大值,而忽略小值,导致对异常值的更加敏感(比如MSE比MAE对异常值更敏感)。随着
p
p
p的变化,范数的变化特点可通过下图直观体现出来:
1.2 矩阵的范数
对于矩阵
A
A
A,其
i
i
i行
j
j
j列元素为
a
i
j
a_{ij}
aij,给出如下的范数定义
1-范数:
∣
∣
A
∣
∣
1
=
max
j
∑
i
∣
a
i
j
∣
||A||_1=\max\limits_{j}\sum\limits_i|a_{ij}|
∣∣A∣∣1=jmaxi∑∣aij∣,也称列和范数,即矩阵各列中元素绝对值之和最大的值
2-范数:
∣
∣
A
∣
∣
2
=
max
λ
i
||A||_2=\max\lambda_i
∣∣A∣∣2=maxλi,
λ
i
\lambda_i
λi为矩阵特征值,即矩阵的最大特征值,几何意义上表示矩阵主特征方向的拉伸比例,也称谱范数
∞
\infty
∞-范数:
∣
∣
A
∣
∣
∞
=
max
i
∑
j
∣
a
i
j
∣
||A||_\infty=\max\limits_{i}\sum\limits_j|a_{ij}|
∣∣A∣∣∞=imaxj∑∣aij∣,也称行和范数,即矩阵各行中元素绝对值之和最大的值
F-范数:
∣
∣
A
∣
∣
F
=
(
∑
i
,
j
a
i
j
2
)
1
/
2
||A||_F=(\sum\limits_{i,j}a_{ij}^2)^{1/2}
∣∣A∣∣F=(i,j∑aij2)1/2,即矩阵各元素根号平方和
核-范数:
∣
∣
A
∣
∣
∗
=
∑
i
λ
i
||A||_*=\sum\limits_i\lambda_i
∣∣A∣∣∗=i∑λi,即矩阵各奇异值之和
二、正则化的初衷
设某个参数模型在训练样本上的经验损失函数为
J
(
f
(
ω
)
)
J(f(\boldsymbol\omega))
J(f(ω)),当模型的复杂度超过数据真实的特征空间时,会发生过拟合问题。解决过拟合问题的一种重要手段为正则化(regularize),即通过限制
ω
\boldsymbol\omega
ω的取值范围来简化模型,降低模型的复杂度。
通过在经验损失函数中加入
ω
\boldsymbol\omega
ω限制函数的损失函数又被称为结构损失函数:
L
(
ω
,
λ
)
=
J
(
f
(
ω
)
)
+
Ω
(
ω
,
λ
)
L(\boldsymbol\omega,\lambda)=J(f(\boldsymbol\omega))+\Omega(\boldsymbol\omega,\lambda)
L(ω,λ)=J(f(ω))+Ω(ω,λ)
一种直观上的方法是减少
ω
\boldsymbol\omega
ω的个数,即添加参数的0-范数约束,但考虑到其不能求导,所以常采用参数的1-范数约束或/和2-范数约束,在取得类似效果的同时,保证损失函数求导的便利性,这两种约束形式被分别称为L1正则化和L2正则化。
L1正则化的损失函数:
L
(
ω
,
λ
)
=
J
(
f
(
ω
)
)
+
λ
∑
i
∣
w
i
∣
L(\boldsymbol\omega,\lambda)=J(f(\boldsymbol\omega))+\lambda\sum\limits_i|w_i|
L(ω,λ)=J(f(ω))+λi∑∣wi∣
L2正则化的损失函数:
L
(
ω
,
λ
)
=
J
(
f
(
ω
)
)
+
λ
∑
i
w
i
2
L(\boldsymbol\omega,\lambda)=J(f(\boldsymbol\omega))+\lambda\sum\limits_iw_i^2
L(ω,λ)=J(f(ω))+λi∑wi2
此外,还经常使用L1正则和L2正则的加权结果,即弹性网络:
α
∑
i
∣
w
i
∣
+
β
∑
i
w
i
2
\alpha\sum\limits_i|w_i|+\beta\sum\limits_iw_i^2
αi∑∣wi∣+βi∑wi2
三、从带约束的优化问题角度理解正则化
为什么通过添加合理的参数约束函数,就可以达到简化模型的目的?
一种直观的解释(见下图)是:训练样本中存在各类噪声值,导致数据波动很大,如果单纯的降低经验损失,很容易让模型计入噪声信息,表现在参数上即参数数量的增加和参数值的增大。通过L1正则化和L2正则化等正则化方法,可以对过多的参数和过大的参数达到惩罚,从而在经验损失值和模型的复杂度得到折中,而较简单的模型往往泛化能力更好。
上面的解释从数学上来看,可以表示为带约束的优化问题:
m
i
n
J
(
f
(
ω
)
)
s
.
t
.
Ω
(
ω
)
)
<
=
C
min\quad J(f(\boldsymbol\omega))\\s.t. \quad \Omega(\boldsymbol\omega))<=C
minJ(f(ω))s.t.Ω(ω))<=C
其中
C
C
C取决于对参数惩罚的权重,惩罚越大,
C
C
C越小。对于线性模型,可以将
C
C
C进行归一化,并不影响最后模型的效果。
3.1 L1正则化的最优化问题
L1正则对应的优化问题为:
m
i
n
J
(
f
(
ω
)
)
s
.
t
.
∑
∣
w
i
∣
<
=
C
min\quad J(f(\boldsymbol\omega))\\s.t. \quad \sum|w_i|<=C
minJ(f(ω))s.t.∑∣wi∣<=C
当
J
J
J为凸函数时,等效于求解如下的最优化问题:
m
i
n
J
(
f
(
ω
)
)
+
λ
(
∑
∣
w
i
∣
−
C
)
min\quad J(f(\boldsymbol \omega)) + \lambda(\sum|w_i|-C)
minJ(f(ω))+λ(∑∣wi∣−C)
其中
λ
>
0
\lambda>0
λ>0
其梯度为
∂
J
∂
w
i
+
λ
s
i
g
n
(
w
i
)
\frac{\partial J}{\partial w_i}+\lambda sign(w_i)
∂wi∂J+λsign(wi),因此参数迭代公式为:
w
i
:
=
w
i
−
μ
(
∂
J
∂
w
i
+
λ
s
i
g
n
(
w
i
)
)
w_i:=w_i-\mu(\frac{\partial J}{\partial w_i}+\lambda sign(w_i))
wi:=wi−μ(∂wi∂J+λsign(wi))
注意到当
w
i
>
0
w_i>0
wi>0时,
w
i
w_i
wi随着迭代值减小;而当
w
i
<
0
w_i<0
wi<0时,
w
i
w_i
wi随着迭代值增大。即参数趋向于0,意味着特征趋向于稀疏化。
从二维几何的角度来看(见下图),原型表示损失函数
J
J
J的等值线,而四边形为L1正则项。通过限制参数
w
1
,
w
2
w_1,w_2
w1,w2在四边形边和内部变动,最优解
w
∗
w^*
w∗更趋向于取四边形的顶点(即
s
i
g
n
w
i
signw_i
signwi的不可导处),从而导致某些参数取0。所以L1正则会是特征稀疏化,在一定程度上天然的有着特征选择(嵌入式)的功能。
3.2 L2正则化的最优化问题
L2正则对应的优化问题为:
m
i
n
J
(
f
(
ω
)
)
s
.
t
.
∑
w
i
2
<
=
C
min\quad J(f(\boldsymbol\omega))\\s.t. \quad \sum w_i^2<=C
minJ(f(ω))s.t.∑wi2<=C
当
J
J
J为凸函数时,等效于求解如下的最优化问题:
m
i
n
J
(
f
(
ω
)
)
+
λ
(
∑
w
i
2
−
C
)
min\quad J(f(\boldsymbol \omega)) + \lambda(\sum w_i^2-C)
minJ(f(ω))+λ(∑wi2−C)
其中
λ
>
0
\lambda>0
λ>0
其梯度为
∂
J
∂
w
i
+
λ
s
i
g
n
(
w
i
)
\frac{\partial J}{\partial w_i}+\lambda sign(w_i)
∂wi∂J+λsign(wi),因此参数迭代公式为:
w
i
:
=
w
i
−
μ
(
∂
J
∂
w
i
+
2
λ
w
i
)
w_i:=w_i-\mu(\frac{\partial J}{\partial w_i}+2\lambda w_i)
wi:=wi−μ(∂wi∂J+2λwi)
可见参数在迭代过程中,由于考虑了L2正则化项
2
μ
λ
w
i
2\mu \lambda w_i
2μλwi,所以下降速度更快。即L2正则化会使得参数更加光滑。
从二维几何的角度来看(见下图),原型表示损失函数
J
J
J的等值线,而圆形为L2正则项。通过限制参数
w
1
,
w
2
w_1,w_2
w1,w2在圆形边和内部变动,最优解
w
∗
w^*
w∗更趋向于正则化边界圆形处切线与损失函数
J
J
J等值线切线同方向的区域,使得
w
1
,
w
2
w_1,w_2
w1,w2取值更小、更均衡。
四、从最大后验概率角度理解正则化
对正则化的另一种理解来源于贝叶斯框架的参数最大后验概率,所谓的贝叶斯框架即“后验=先验+证据/数据”。在后面的朴素贝叶斯方法中会做详细介绍,这里做直接的使用。
在贝叶斯框架下,机器学习模型参数的后验概率可表示成:
P
(
ω
∣
D
)
=
P
(
ω
)
P
(
D
∣
ω
)
P
(
D
)
P(\boldsymbol \omega|D)= \frac{P(\boldsymbol \omega)P(D|\boldsymbol \omega)}{P(D)}
P(ω∣D)=P(D)P(ω)P(D∣ω)
其中
P
(
D
)
P(D)
P(D)为数据的固有属性(与参数无关的定值),可不考虑,即:
P
(
ω
∣
D
)
∼
P
(
ω
)
P
(
D
∣
ω
)
P(\boldsymbol \omega|D) \sim P(\boldsymbol \omega)P(D|\boldsymbol \omega)
P(ω∣D)∼P(ω)P(D∣ω)
其中
P
(
D
∣
ω
)
P(D|\boldsymbol \omega)
P(D∣ω)反映了模型的能力,与模型切身相关(可参见线性回归(一)基础理论中的相关论述),而
P
(
ω
)
P(\boldsymbol \omega)
P(ω)则是关于参数本身的先验概率,即对参数的某种约束。
4.1 L1正则化的贝叶斯视角
在L1正则中,先验假设参数符合拉普拉斯分布。
先简单介绍下拉普拉斯分布。如果随机变量的概率密度函数分布为:
f
(
x
∣
μ
,
b
)
=
1
2
b
e
x
p
(
−
∣
x
−
μ
∣
b
)
f(x|\mu, b)=\frac{1}{2b}exp{(-\frac{|x-\mu|}{b})}
f(x∣μ,b)=2b1exp(−b∣x−μ∣)
则称为拉普拉斯分布。其中
μ
\mu
μ为期望,
b
b
b为振幅。
假设各参数独立,并满足Laplace(0,1)的先验概率,则参数的最大后验似然函数可表示成:
L
(
ω
∣
D
)
=
P
(
D
∣
ω
)
∏
P
(
w
i
)
=
P
(
D
∣
ω
)
∏
i
e
x
p
−
∣
w
i
∣
L(\boldsymbol \omega|D)=P(D|\boldsymbol \omega)\prod P(w_i)=P(D|\boldsymbol \omega)\prod\limits_{i}exp^{-|w_i|}
L(ω∣D)=P(D∣ω)∏P(wi)=P(D∣ω)i∏exp−∣wi∣
对应的对数似然函数为:
l
n
L
(
ω
∣
D
)
=
l
n
P
(
D
∣
ω
)
+
∑
i
−
∣
w
i
∣
lnL(\boldsymbol \omega|D)=lnP(D|\boldsymbol \omega)+\sum\limits_i-|w_i|
lnL(ω∣D)=lnP(D∣ω)+i∑−∣wi∣
右端第二项即为L1正则项。
4.2 L2正则化的贝叶斯视角
在L2正则中,先验假设参数符合高斯分布。
假设各参数独立,并满足标准正态分布
N
(
0
,
1
)
N(0,1)
N(0,1)的先验概率,则参数的最大后验似然函数可表示成:
L
(
ω
∣
D
)
=
P
(
D
∣
ω
)
∏
P
(
w
i
)
=
P
(
D
∣
ω
)
∏
i
e
x
p
−
w
i
2
L(\boldsymbol \omega|D)=P(D|\boldsymbol \omega)\prod P(w_i)=P(D|\boldsymbol \omega)\prod\limits_{i}exp^{-w_i^2}
L(ω∣D)=P(D∣ω)∏P(wi)=P(D∣ω)i∏exp−wi2
对应的对数似然函数为:
l
n
L
(
ω
∣
D
)
=
l
n
P
(
D
∣
ω
)
+
∑
i
w
i
2
lnL(\boldsymbol \omega|D)=lnP(D|\boldsymbol \omega)+\sum\limits_iw_i^2
lnL(ω∣D)=lnP(D∣ω)+i∑wi2
右端第二项即为L2正则项。
五、总结
正则化通过在原始损失函数的基础上添加参数的约束函数,将参数估计朝零的方向进行约束、调整或缩小。通过正则化可以在学习过程中,有效降低模型复杂度和不稳定程度,从而避免过拟合的危险。