什么是正则化
凡是减少泛化误差(而不是训练误差)的方法都可以称作正则化
换句话说,也就是减小过拟合的方法
范数 Norm
L1范数:\(||W||_1={|w_1|+|w_2|+\cdots+|w_n|}\)
把权重\(W\)看作空间中的向量,如果\(W\)到原点的距离是欧式距离的话,那么这个范数就是L2范数:\(||W||_2=\sqrt {|w_1|^2+|w_2|^2+\cdots+|w_n|^2}\)
其他范数
\[||W||_p=\sqrt[p] {|w_1|^p+|w_2|^p+\cdots+|w_n|^p} \]从图中可以看出,在\(p\ge 1\)时构成的集合才是个凸集
为何要正则化
从三个不同的角度来理解正则化的作用
拉格朗日乘数法
训练神经网络时,权重的初始值会影响最后的结果,经过不同的模型,权重的结果或大或小,这个结果在训练集上不会有什么影响,但如果输入新的数据集,这个影响就显现出来了。因为如果权重过大,误差和噪声也会被放大。为了解决这个问题,我们使用正则化来控制参数。
从拉格朗日乘数法的角度来理解,就是人为的给参数范围加一个约束(可行域),在可行域范围之内求最值。如果超出可行域范围,即使损失函数取值再小也不被采纳
这里只用约束\(W\)即可,因为\(W\)是最后决定曲线形状的,而\(b\)只是一个偏置
因为是对于\(W\)找最值,只要算出\(W\)即可,所以一般的正则化都是如下公式
\[L(W,\lambda)=J(W)+\lambda ||W||_2 \]从二维图像上直观感受一下
L1正则化的稀疏性:可以调整\(\lambda\)使得某些\(w_i\)有值,也就是某些特征起作用,从图像上看就是在某些数轴上有值
权重衰减 Weight Decay
加了正则化项之后损失函数为:其中\(\frac 1 2\)是为了求导好计算
\[J(W)=J(W)+\frac {\alpha} 2 W^TW \]权重更新的计算为
\[\begin{align*} W=&W-\eta \cdot \nabla_W J(W)-\eta \cdot \alpha \cdot W\\ =&(1-\eta \cdot \alpha)W-\eta \cdot \nabla_WJ(W) \end{align*} \]从这个计算可以看出跟原始的梯度下降算法(\(W\)减去学习率乘梯度)不同,这里的\(W\)先乘了一个大于0小于1的数,也就相当于在梯度更新之前权重\(W\)先相对于之前衰减了一部分
类比一下,这就相当于给权重的更新加了个毒圈,以前权重可以满地图随便跑,但是增加了毒圈之后只能在一定范围内活动,并且每走一步毒圈都会缩小一点
再从图像上理解一下,惩罚之后的\(W\)变小了,那么模型的函数泰勒展开后的那些coefficient(也就是k阶导数)也变小了,那么函数的弯弯绕绕也不会那么精确而导致过拟合,如下图
但是要注意:正则化可不完全等价于权重衰减
具体可看这篇论文:DECOUPLED WEIGHT DECAY REGULARIZATION
贝叶斯概率
正则化与原解的关系
首先将原损失函数进行二阶泰勒展开
再计算加上正则化项后的梯度
从而可以计算出原解(红色)和正则化后解(橘色)的关系
再利用Hessian矩阵的性质对式子进行一下变形
最后得到
所以L2正则化就是对原损失函数极值点\(W\)进行缩放,缩放的比例取决于\(\alpha\)
而L1正则化要麻烦许多,花书上假设Hessian矩阵是对角的来简化问题,即\(H={\rm diag}([H_{1,1},\cdots,H_{n,n}])\)
这也就解释了为什么L1正则化带来的稀疏性,因为落在这个范围之内的\(W\)都会变成0
Reference
从拉格朗日乘数法角度进行理解
为什么又叫权重衰减?到底哪里衰减了
花书教我明白伤痛——L1正则
拉格朗日乘数法;权重衰减;贝叶斯概率