一、概况
(一)、范数
由于正则化的定义需要使用到**范数(norm)**的概念,这里简单介绍一下范数的概念1。
1.物理意义
范数是对函数、向量和矩阵定义的一种度量形式,可以用来测量两个函数、向量或者矩阵之间的距离。
2.数学定义
想要成为范数,需要满足一下三个性质:
- 非负性
∀ X ∈ R n , 有 ∥ w ∥ ≥ 0 , 当 且 仅 当 X = 0 时 , ∥ w ∥ = 0 \forall X\in R^n,有\lVert w \rVert\geq0,当且仅当X=0时,\lVert w \rVert=0 ∀X∈Rn,有∥w∥≥0,当且仅当X=0时,∥w∥=0 - 齐次性
∀ X ∈ R n , α ∈ R , 有 ∥ α w ∥ = ∣ α ∣ ∥ w ∥ \forall X\in R^n,\alpha\in R,有\lVert \alpha w \rVert=|\alpha|\lVert w \rVert ∀X∈Rn,α∈R,有∥αw∥=∣α∣∥w∥ - 三角不等式
∀ X , Y ∈ R n , 有 ∥ X + Y ∥ ≤ ∥ X ∥ + ∥ Y ∥ \forall X,Y\in R^n,有\lVert X+Y \rVert \leq \lVert X \rVert+\lVert Y \rVert ∀X,Y∈Rn,有∥X+Y∥≤∥X∥+∥Y∥
3.范数分类
-
向量范数
向量 X = ( x 1 , x 2 , . . . , x n ) T X=(x_1,x_2,...,x_n)^T X=(x1,x2,...,xn)T的 L P L_P LP范数定义为:
∥ X ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p , 1 ≤ p ≤ + ∞ \lVert X \rVert_p=(\sum_{i=1}^n|x_i|^p)^{1/p}, 1\leq p\leq+\infty ∥X∥p=(i=1∑n∣xi∣p)1/p,1≤p≤+∞
我们经常使用的是 p = 1 , 2 , ∞ p=1,2,\infty p=1,2,∞三种向量范数:
∥ X ∥ 1 = ∑ i = 1 n ∣ x i ∣ \lVert X \rVert_1=\sum_{i=1}^{n}|x_i| ∥X∥1=i=1∑n∣xi∣
∥ X ∥ 2 = ∑ i = 1 n ∣ x i ∣ 2 \lVert X \rVert_2=\sqrt{\sum_{i=1}^{n}|x_i|^2} ∥X∥2=i=1∑n∣xi∣2
∥ X ∥ ∞ = max 1 ≤ i ≤ n ∣ x i ∣ \lVert X \rVert_{\infty}=\max_{1\leq i\leq n}{|x_i|} ∥X∥∞=1≤i≤nmax∣xi∣ -
矩阵范数
对于方阵 A A A,常用的矩阵范数有三种
∥ A ∥ 1 = max 1 ≤ j ≤ n ∑ i = 1 n ∣ a i j ∣ \lVert A \rVert_1=\max_{1\leq j\leq n}{\sum_{i=1}^{n}|a_{ij}|} ∥A∥1=1≤j≤nmaxi=1∑n∣aij∣
∥ A ∥ ∞ = max 1 ≤ i ≤ n ∑ j = 1 n ∣ a i j ∣ \lVert A \rVert_{\infty}=\max_{1\leq i\leq n}{\sum_{j=1}^{n}|a_{ij}|} ∥A∥∞=1≤i≤nmaxj=1∑n∣aij∣
∥ A ∥ 2 = λ 1 ( λ 1 是 A T A 的 最 大 特 征 值 ) \lVert A \rVert_2=\sqrt{\lambda_1}(\lambda_1是A^TA的最大特征值) ∥A∥2=λ1(λ1是ATA的最大特征值)
(二)、正则化
正则化2是为了解决过拟合问题而引入的一种策略,包括L1 regularization和L2 regularization。
假设损失函数为
E
(
X
,
Y
)
E(X,Y)
E(X,Y),权重矩阵为
w
w
w,为了避免过拟合问题,将损失函数更正为:
E
(
X
,
Y
)
+
α
∥
w
∥
E(X,Y)+\alpha \lVert w \rVert
E(X,Y)+α∥w∥
上式中的
∥
w
∥
\lVert w \rVert
∥w∥表示L1范数或者L2范数,
α
\alpha
α是由交叉验证得到的经验参数。
上面的过程称为正则化。
二、L2 regularization
在神经网络训练中,经常使用的是L2正则化3。L2正则化以后的损失函数形式如下:
C
=
C
0
+
λ
2
n
∑
w
w
2
C=C_0+\frac{\lambda}{2n}\sum_ww^2
C=C0+2nλw∑w2
其中
C
0
C_0
C0表示原始的损失函数,
n
n
n表示训练样本的个数,
λ
\lambda
λ称为regularization parameter。
那么,偏导数变为:
∂
C
∂
w
=
∂
C
0
∂
w
+
λ
n
w
\frac{\partial C}{\partial w}=\frac{\partial C_0}{\partial w}+\frac{\lambda}{n}w
∂w∂C=∂w∂C0+nλw
∂
C
∂
b
=
∂
C
0
∂
b
\frac{\partial C}{\partial b}=\frac{\partial C_0}{\partial b}
∂b∂C=∂b∂C0
由上式可知,正则化的引入只对权重w有影响,对偏置b没有影响。
设学习率为
η
\eta
η,权重更新公式变为:
w
=
w
−
η
∂
C
0
∂
w
−
η
λ
n
w
=
(
1
−
η
λ
n
)
w
−
η
∂
C
0
∂
w
w=w-\eta\frac{\partial C_0}{\partial w}-\frac{\eta \lambda}{n}w=(1-\frac{\eta \lambda}{n})w-\eta\frac{\partial C_0}{\partial w}
w=w−η∂w∂C0−nηλw=(1−nηλ)w−η∂w∂C0
b
=
b
−
η
∂
C
0
∂
b
b=b-\eta\frac{\partial C_0}{\partial b}
b=b−η∂b∂C0
由上式可以看到权重w的系数变为了
1
−
η
λ
n
1-\frac{\eta \lambda}{n}
1−nηλ,这种
∣
w
∣
|w|
∣w∣的减小称为weight decay。
w为正,正则化使得w变小;w为负,正则化是得w变大。整体上会使得网络的权重w趋向于0。为什么趋近于0,会减弱过拟合呢?
直观上的解释是:当过拟合发生的时候,模型过度匹配训练数据,导致模型变得更为复杂,变化更为剧烈。而正则化可以对权重施加一种额外的约束,降低了模型的复杂性。
举个例子简单说明一下,假设模型为
y
=
w
1
x
+
w
2
x
2
+
w
3
x
3
y=w_1x+w_2x^2+w_3x^3
y=w1x+w2x2+w3x3
模型的梯度可以表示为
∣
∂
y
∂
x
∣
=
∣
w
1
∣
+
2
∗
∣
w
2
∣
∗
∣
x
∣
+
3
∗
w
3
∗
∣
x
∣
2
|\frac{\partial y}{\partial x}|=|w_1|+2*|w_2|*|x|+3*w_3*|x|^2
∣∂x∂y∣=∣w1∣+2∗∣w2∣∗∣x∣+3∗w3∗∣x∣2
过拟合意味着y随着x的变化更为剧烈,即上式变大。
而正则化的作用是减小
∣
w
1
∣
|w_1|
∣w1∣和
∣
w
2
∣
|w_2|
∣w2∣,会使得上式变小,故正则化可以减弱过拟合。
三、L1 regularization
在神经网络训练中,也可以使用L1正则化。L1正则化以后的损失函数形式如下:
C
=
C
0
+
λ
n
∑
w
∣
w
∣
C=C_0+\frac{\lambda}{n}\sum_w|w|
C=C0+nλw∑∣w∣
同理,权重的更新公式可以表示如下:
w
=
w
−
η
∂
C
0
∂
w
−
η
λ
n
s
g
n
(
w
)
w=w-\eta\frac{\partial C_0}{\partial w}-\frac{\eta \lambda}{n}sgn(w)
w=w−η∂w∂C0−nηλsgn(w)
和L2类似,L1的作用也是减小权重的绝对值,使得权重趋近于0。
四、L1和L2比较
(一)、速度
根据以上讨论,当|w|很大的时候,L2的权重衰减速度更快,当|w|很小的时候,L2的速度更慢。
(二)、稀疏性
模型中为0的参数越多,稀疏性约高。一方面,稀疏性可以带来计算上的方便;另一方面,稀疏性越高,模型越容易解释(因为输出只和部分参数有关)。
根据4,L1相比于L2具有更好的稀疏特性。