1. 范数
在深度学习中常见
L
1
L_1
L1范数、
L
2
L_2
L2范数,那么关于范数的数学形式定义:
几种常见的范数:
- L 1 L_1 L1范数,即 p = 1 p=1 p=1时,此时 ∣ ∣ x ∣ ∣ = Σ ∣ x i ∣ ||x||=Σ|x_i| ∣∣x∣∣=Σ∣xi∣,直观上就是 x x x的绝对值和
- L 2 L_2 L2范数,即 p = 2 p=2 p=2时,此时 ∣ ∣ x ∣ ∣ = ( Σ ∣ x i ∣ 2 ) 1 / 2 ||x||=(Σ|x_i|^2)^{1/2} ∣∣x∣∣=(Σ∣xi∣2)1/2,也称欧几里得范数,直观上就是 x x x的平方和的开方,几何意义为从原点出发到向量 x x x的欧几里得距离。那么这是数学定义,在实际使用 L 2 L_2 L2范数我们更多使用平方 L 2 L_2 L2范数,因为是否开平方不影响其性质,但是不开平方对计算机运算却十分友好。
平方 L 2 L_2 L2范数 | L 1 L_1 L1范数 | |
---|---|---|
求导 | 对 x i x_i xi求导时,只与 x i x_i xi有关,十分简便 | 线性,对任意 x i x_i xi求导,结果=1 |
增长(0<x<1) | 增长缓慢(此时对x平方只会更小) | 增长块(因为是线性的) |
增长(1<x) | 增长快 | 增长缓慢 |
综上,当我们区分0元素和非零但值很小的元素是是很重要时,往往选择 L 1 L_1 L1范数,当其中某元素变化▲c时,结果也变化▲c。
- L ∞ L^∞ L∞范数,也称最大范数,定义为: ∣ ∣ x ∣ ∣ ∞ = m a x ∣ x i ∣ ||x||_∞=max|x_i| ∣∣x∣∣∞=max∣xi∣,即向量 x x x中最大幅值元素的绝对值
- Frobenius范数,通常用来衡量矩阵的大小,公式表示为: ∣ ∣ A ∣ ∣ F = ( Σ i , j A i , j 2 ) 1 / 2 ||A||_F=(Σ_{i,j}A^2_{i,j})^{1/2} ∣∣A∣∣F=(Σi,jAi,j2)1/2,即所有元素平方和的开放,你会发现这个定义其实和 L 2 L_2 L2范数一样,只是一个是针对向量的,一个是针对矩阵的
2. 正则化
正则化从名字来看有些难以理解,正则化英文为:regularization,翻译为“规则化”,这样好理解一点。规则化就是制定规则,添加限制。我们说权重正则化,就是给权重添加限制;dropout正则化,就是给dropout添加限制;范数正则化不是给范数添加限制,而是说给网络添加的限制是范数。比如
L
2
L_2
L2正则化,这是一个网络的成本函数:
添加
L
2
L_2
L2范数正则化,也即添加
L
2
L_2
L2范数限制:
- ∣ ∣ W ∣ ∣ 2 ||W||^2 ∣∣W∣∣2就是平方 L 2 L_2 L2范数,是m个元素的平方和,所以公式中除以m,进行均值化(不均值化那么m=100和m=50,平方和差异很大;均值化后无论m=x,差异都不算大)
- 分母中的2显然是为了对Cost求导后,消除 ∣ ∣ W ∣ ∣ ||W|| ∣∣W∣∣的平方;所以任何看似无头脑的公式设计都有其原因
- λ超参数,可以理解为对这个范数限制进行权重的控制,否则你无法控制这个范数对Cost的影响
3. 为什么正则化可以解决过拟合问题?
接着上面的Cost来看,现在我们尝试更新权重W,我们假设开始cost为cost1,加了范数正则化的cost为cost2,那么:
对于cost1:
d
W
=
A
dW=A
dW=A
更新w:
W
1
=
W
−
l
r
∗
d
W
W1=W-lr*dW
W1=W−lr∗dW
对于cost2:
d
W
=
A
+
λ
m
∣
∣
W
∣
∣
dW=A+\frac{λ}{m}||W||
dW=A+mλ∣∣W∣∣
更新w:
W
2
=
W
−
l
r
∗
d
W
W2=W-lr*dW
W2=W−lr∗dW
明显加了正则化的
d
W
dW
dW更大,更新w时下降更快,所以
L
2
正
则
化
L_2正则化
L2正则化也称为权重衰减,是
L
2
正
则
化
L_2正则化
L2正则化的独特buff。
那么为什么加了正则化,可以结果过拟合问题?
我们知道
L
2
正
则
化
L_2正则化
L2正则化可以使权重变得更小,更小意味这神经元的作用更小,那么把网络比作一个大脑,加了
L
2
正
则
化
L_2正则化
L2正则化的大脑中的神经细胞更傻了,那么网络变得更没用了,当然就解决了过拟合的问题
4. λ的选择问题
我们知道λ是 L 2 L_2 L2正则化的超参数,决定 L 2 L_2 L2范数正则化的影响力。
- 那么当λ比较大时,从3中可以看出,每次 d W dW dW会下降很快,这样网路会变得很傻,这将面临欠拟合问题。
- 当λ比较小的,假设极端情况λ接近0,从3中可以看出, L 2 L_2 L2正则化对Cost没有影响了,其作用被忽视了,那么无法使得网络变傻,网络回到最初的状态,变得可能陷入过拟合。