正则化方法(Regularization)
本文前2节简要介绍正则化,3至7节介绍常用正则化方法
一、正则化是什么
1.经验风险和结构风险
经验风险最小化(Empirical Risk Minimization,ERM)准则:
模型f(x)关于训练数据集的平均损失称为经验风险或经验损失:
结构风险最小化(Structure Risk Minimization,SRM)准则:
结构风险在经验风险的基础上加上表示模型复杂度的正则化项。在假设空间、损失函数以及训练集确定的情况下,结构风险的定义是:
其中,J(f)为模型的复杂度,是定义在假设空间上的泛函。模型f越复杂,复杂度J(f)就越大,λ是其权重。也就是说,复杂度表示了对复杂模型的惩罚。结构风险小的模型往往对训练数据和未知的测试数据都有较好的预测。
2.正则化的解释
Regularization可以被解释为正则化或规范化,即对模型施加约束使其满足某种先验的规范。
从经验风险到结构风险的过程就是典型的正则化过程。
正则化就是对最小化经验误差函数上加约束,这样的约束可以解释为先验知识(正则化参数等价于对参数引入先验分布)。约束有引导作用,在优化误差函数的时候倾向于选择满足约束的梯度减少的方向,使最终的解倾向于符合先验知识(如一般的l-norm先验,表示原问题更可能是比较简单的,这样的优化倾向于产生参数值量级小的解,一般对应于稀疏参数的平滑解)。
这也符合一个哲学规律,奥卡姆剃刀原理:能解释同一现象的不同规律,越简单的越高效
二、正则化的意义
1.欠拟合和过拟合的原因
欠拟合原因 :一般是模型太过简单,无法拟合真实函数
过拟合原因:
(1)数据噪声过大(模型学到了错误特征)
(2)训练数据过少 或 模型本身过于复杂(模型中有些参数没被训到,接近于初始化的状态)
(3)训练模型过度导致模型非常复杂(模型学到了错误特征,因为数据的噪声是不可避免的,过度训练导致模型过于关注这些噪声点)
2.正则化的作用
正则化可以有效缓解过拟合,但λ过大会导致模型过于简单,容易发生欠拟合。
对于神经网络,这意味着很多隐单元的权重接近0,于是这些隐单元在网络中不起任何作用。此时大的神经网络会变成一个小的网络。
三、参数范数正则化
1.范数
范数,是具有“长度"概念的函数,是矢量空间内的所有矢量赋予非零的正长度或大小。
数学上,$L_p$-范数的定义为:
由$ L_p $-范数的定义,当p=0时,我们就有了$ L_0$-范数,即向量x中非0元素的个数
于是同理,直观地讲,$ L_1$-范数为向量x中所有元素绝对值之和
$ L_2$-范数为向量x中所有元素平方和再开根号
$||x||_2=\sqrt[2]{\sum_{i}^{}|x_i|^2}$
2.L1正则化
接下来以最简单的线性回归为例,解释L1正则化。
在线性回归中引入L1正则化通常被称为套索回归(Lasso Regression),即
套索回归 = 线性回归$+$L1正则化
loss函数前乘$\frac{1}{2}$的原因是求导后可消去常数项从而简化计算,该式的几何意义可用下图所示,图中的线为等高线。(圆形线为线性回归等高线,方形线为正则项等高线)
$ω^*$是线性回归的最优解,$\tildeω^*$是套索回归的最优解
其中$\tildeω^*$是一定在坐标轴上的,因为我们先假设$\tildeω^*$在某条圆形的等高线上,这条等高线上$||ω||_1$最小的点一定在坐标轴上
3.L2正则化
依然以线性回归为例。
在线性回归中引入L2正则化通常被称为岭回归(Ridge Regression),即
岭回归 = 线性回归$+$L2正则化
几何意义如下图所示,图中的线为等高线(圆形实线为线性回归等高线,圆形虚线为正则项等高线)
$ω^*$是线性回归的最优解,$\tildeω$是岭回归的最优解
4.L1和L2正则化相关结论
从图中可以看出:
1)L1正则化容易产生稀疏解,可以用于特征选择,会忽略对优化结果影响较小的参数(等高线较为稀疏的方向)
2)L2正则化会显著衰减对优化结果影响较小的参数(等高线较为稀疏的方向),因此L2正则化也被叫做权重衰减
3)L2正则化除了减小过拟合外,还有适应多重共线性数据的能力。简单来说就是减小了不同参数的方差,如图所示一种极端的情况,$ω_1$和$ω_2$具有正比例的线性关系(橙色则为线性回归等高线,黑色为L2正则项等高线)从而正则项将参数约束到绿色的线上。这样,减少了不同参数的方差从而减小了泛化误差。
4)L1的绝对值导致了它有可能不可导,此时的优化方法可以选用坐标轴下降法
5)L1和L2正则化都属于显示约束的正则化方法
6)
4.其他显式约束正则化方法
1.实际应用中,可以混合使用L1和L2正则化
线性回归$+$L1正则化$+$L2正则化 = 弹性网回归(ElasticNet Regression)
它可以继承一些L2正则化的稳定性,也具有一些L1特征选择的功能,它鼓励在高度相关变量之间的群效应
2.L1,L2鼓励权重接近原点,除了L1和L2正则化,也可以根据任务类型自定义其他正则化。
比如:使用常数约束:正则项为$λ(Ω(\vec{θ})-k)$
参数相对约束正则化:假设模型A的参数为$\vecω_A$模型B的参数为$\vecω_B$。如果两个模型非常相似,则给定下列形式的惩罚:
$λΩ(\vecω_A,\vecω_B)=λ||\vecω_A-\vecω_B||_2^2$
这里使用L2惩罚,也可以使用其他形式的正则化形式。
参数共享:强迫模型里某些参数子集相等,这就是卷积神经网络中使用的方案,能显著降低参数的数量、减少模型占用的内存。
四、数据增强
- 数据集增强仅仅用于模型的训练,而不是用于模型的预测。即:不能对测试集、验证集执行数据集增强。
- 当比较机器学习算法基准测试的结果时,必须考虑是否采用了数据集增强。
- 数据集增强和预处理的区别:数据集增强会产生更多的输入数据,而数据预处理产生的输入数据数量不变。
- 对比学习通过将对抗样本加入训练集来改善模型的泛化能力,因此对比学习也可以被看作是一种基于数据增强的正则化方法。
五、噪声注入
1.输入噪声注入
- 噪声被添加到每层隐单元的输入(而不仅仅是整个网络的输入)也是可行的,这被视为在多个抽象层上进行数据集增强。
- 本文后面的dropout正则化策略可以被看作是通过对隐单元的输入乘上噪声。
2.权重噪声注入
3.输出噪声注入
六、早停
1.优点:
2.缺点:
3.特点:
七、dropout
1.基本算法
2.dropout和bagging
dropout
可以视作集成了非常多的神经网络的bagging
集成模型,这些网络包含了所有从基础网络中删除隐单元形成的子网络。bagging
涉及训练多个模型,并且在每个测试样本上评估多个模型。当每个模型都是一个大型神经网络时,这种bagging
计算量非常庞大,实际不可行。dropout
提供了一种方便的bagging
近似,它能够训练和评估指数级别的神经网络的集成。- 两者每个子模型使用的训练集是原始训练集的一个有放回重复采样而来。
bagging
中,假设所有的子模型都是独立的。dropout
中,所有的子模型是共享参数的,每个子模型继承了基础神经网络的不同子集。参数共享使得在有限的内存下训练指数数量的子模型变得可能。bagging
中,每个子模型在其相应的训练集上训练到收敛。dropout
中,大部分子模型都没有显式的被训练(因为指数量级的神经网络不可能被训练完成)。我们只是对子模型的某些部分训练单个step
,同时参数共享使得子模型的剩余部分能够有较好的参数值。
3.dropout的其他形式
4.dropout与正则化