张梓寒

导航

正则化方法(Regularization)

本文前2节简要介绍正则化,3至7节介绍常用正则化方法

一、正则化是什么

1.经验风险和结构风险

经验风险最小化(Empirical Risk Minimization,ERM)准则:

模型f(x)关于训练数据集的平均损失称为经验风险或经验损失:

$$R_{emp}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))$$

结构风险最小化(Structure Risk Minimization,SRM)准则:

结构风险在经验风险的基础上加上表示模型复杂度的正则化项。在假设空间、损失函数以及训练集确定的情况下,结构风险的定义是:

$$R_{srm}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+λJ(f)$$

其中,J(f)为模型的复杂度,是定义在假设空间上的泛函。模型f越复杂,复杂度J(f)就越大,λ是其权重。也就是说,复杂度表示了对复杂模型的惩罚。结构风险小的模型往往对训练数据和未知的测试数据都有较好的预测。

2.正则化的解释

Regularization可以被解释为正则化或规范化,即对模型施加约束使其满足某种先验的规范。

从经验风险到结构风险的过程就是典型的正则化过程。

正则化就是对最小化经验误差函数上加约束,这样的约束可以解释为先验知识(正则化参数等价于对参数引入先验分布)。约束有引导作用,在优化误差函数的时候倾向于选择满足约束的梯度减少的方向,使最终的解倾向于符合先验知识(如一般的l-norm先验,表示原问题更可能是比较简单的,这样的优化倾向于产生参数值量级小的解,一般对应于稀疏参数的平滑解)。

这也符合一个哲学规律,奥卡姆剃刀原理:能解释同一现象的不同规律,越简单的越高效

 

二、正则化的意义

1.欠拟合和过拟合的原因

欠拟合原因 :一般是模型太过简单,无法拟合真实函数

过拟合原因:

(1)数据噪声过大(模型学到了错误特征)

(2)训练数据过少 或 模型本身过于复杂(模型中有些参数没被训到,接近于初始化的状态)

(3)训练模型过度导致模型非常复杂(模型学到了错误特征,因为数据的噪声是不可避免的,过度训练导致模型过于关注这些噪声点)

2.正则化的作用

正则化可以有效缓解过拟合,但λ过大会导致模型过于简单,容易发生欠拟合。

对于神经网络,这意味着很多隐单元的权重接近0,于是这些隐单元在网络中不起任何作用。此时大的神经网络会变成一个小的网络。

 

三、参数范数正则化

 

1.范数

 

范数,是具有“长度"概念的函数,是矢量空间内的所有矢量赋予非零的正长度或大小。

数学上,$L_p$-范数的定义为:

 

$||x||_p=\sqrt[P]{\sum_{i}^{}|x_i|^P}$

 

$ L_p $-范数的定义,当p=0时,我们就有了$ L_0$-范数,即向量x中非0元素的个数

 

$||x||_0=\sqrt[0]{\sum_{i}^{}|x_i|^0}$

 

于是同理,直观地讲,$ L_1$-范数为向量x中所有元素绝对值之和

 

$||x||_1=\sum_{i}^{}|x_i|$

 

$ L_2$-范数为向量x中所有元素平方和再开根号

$||x||_2=\sqrt[2]{\sum_{i}^{}|x_i|^2}$

 

2.L1正则化

 

接下来以最简单的线性回归为例,解释L1正则化。

在线性回归中引入L1正则化通常被称为套索回归(Lasso Regression),

套索回归 = 线性回归$+$L1正则化

 

$R_{srm}(f)=\frac{1}{2N}\sum_{i=1}^{N}(y_i-(\vec{ω_i}\vec{x_i}+b))^2+λ||\vecω||_1$

 

loss函数前乘$\frac{1}{2}$的原因是求导后可消去常数项从而简化计算,该式的几何意义可用下图所示,图中的线为等高线。(圆形线为线性回归等高线,方形线为正则项等高线)

 

 

$ω^*$是线性回归的最优解,$\tildeω^*$是套索回归的最优解

其中$\tildeω^*$是一定在坐标轴上的,因为我们先假设$\tildeω^*$在某条圆形的等高线上,这条等高线上$||ω||_1$最小的点一定在坐标轴上

 

3.L2正则化

 

依然以线性回归为例。

在线性回归中引入L2正则化通常被称为岭回归(Ridge Regression),

岭回归 = 线性回归$+$L2正则化

 

$R_{srm}(f)=\frac{1}{2N}\sum_{i=1}^{N}(y_i-(\vec{ω_i}\vec{x_i}+b))^2+λ||\vecω||_2$

 

几何意义如下图所示,图中的线为等高线(圆形实线为线性回归等高线,圆形虚线为正则项等高线)

 

 

$ω^*$是线性回归的最优解,$\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. 数据集增强仅仅用于模型的训练,而不是用于模型的预测。即:不能对测试集、验证集执行数据集增强。
  2. 当比较机器学习算法基准测试的结果时,必须考虑是否采用了数据集增强。
  3. 数据集增强和预处理的区别:数据集增强会产生更多的输入数据,而数据预处理产生的输入数据数量不变。
  4. 对比学习通过将对抗样本加入训练集来改善模型的泛化能力,因此对比学习也可以被看作是一种基于数据增强的正则化方法。
CV领域的数据增强方法:
图像进行旋转、翻转、平移、剪裁或者缩放;对训练图像进行颜色抖动:调整饱和度、调整亮度、调整对比度、调整锐度等。
NLP领域的数据增强方法:
同义词替换等,相关综述:共介绍了15种方法
论文:Data Augmentation Approaches in Natural Language Processing: A Survey
地址:https://arxiv.org/abs/2110.01852

五、噪声注入

 

1.输入噪声注入

 

1)在神经网络的输入层注入噪声也可以视作数据增强的一种形式。如:在图像识别任务中,对训练图像注入高斯噪声。事实上输入噪声注入也可以用于无监督学习,如:降噪自动编码器。
2)通常一个训练好的神经网络对噪声鲁棒性较差,改善其噪声鲁棒性的常用方法是:简单地将随机噪声施加到输入上,再进行训练。
  • 噪声被添加到每层隐单元的输入(而不仅仅是整个网络的输入)也是可行的,这被视为在多个抽象层上进行数据集增强。
  • 本文后面的dropout正则化策略可以被看作是通过对隐单元的输入乘上噪声。
3)对于某些模型,在输入上注入方差极小的噪音等价于对权重施加参数范数正则化

 

2.权重噪声注入

 

1)权重噪声注入:将噪音作用于权重。这项技术主要用于循环神经网络。
2)权重噪声注入可以解释为:将权重视作不确定的随机变量(拥有某个概率分布),向权重注入噪声是对该随机变量采样得到的一个随机值。
3)在某些假设下,权重噪声注入等价于传统的参数正则化形式。

 

3.输出噪声注入

 

基于k个输出的softmax单元的标签平滑正则化:将真实标签$\lbrace 0,1 \rbrace$替换为$\lbrace \frac{ε}{k} ,1-\frac{ε}{k} \rbrace$

六、早停

当训练一个容量较大的模型时会经常发现:训练误差逐渐降低,但是验证误差先下降后上升。当验证误差没有进一步改善时,算法就提前终止。这种策略被称作早停(early stopping)

1.优点:

它几乎不需要干涉基本的训练过程,适合任何模型。
可以单独使用,或者与其他的正则化策略相结合。
早停不仅有正则化的好处,还有降低计算成本的好处。

2.缺点:

需要在训练期间定期评估验证集;可以通过并行的执行训练和验证来加速这一过程,也可以选取一个较小的验证集、或者不那么频繁地评估验证集来减小评估代价
以泛化误差的偏差方差分解角度来看,早停试图同时解决偏差和方差,其结果很可能导致得到的模型并不是一个最优的模型。如下图中所示的验证误差曲线。因为提前停止了训练,所以使得代价函数的值可能不够小,即:偏差可能还可以继续降低。方差(即:验证误差与训练误差之间的gap)虽然处于上升趋势,但是它们叠加的结果可能导致验证误差呈现波动走势

3.特点:

早停将优化过程的参数空间限制在初始参数值$$\vecω$$的一个小的邻域内
在某些情况下早停等价于L2正则化
相对于L2正则化,早停不需要进行超参数正则项系数λ的选择,从而节省计算资源

七、dropout

 

1.基本算法

 

训练阶段:
在前向传播过程中,对网络中的每个隐层,每个隐单元都以一定的概率P被删除,最后得到一个规模更小的网络。在反向传播过程中,仅仅针对该小网络进行权重更新。所谓的删除,即指定该该隐单元的输出都为 0。一旦隐单元的权重为0,则该隐单元对后续神经元的影响均为 0 。
测试阶段:
1)dropout 仅仅用于神经网络的训练阶段,在网络的测试阶段并不会删除神经元,而是使用所有的神经元。因为在测试期间,不希望输出是随机的。模型每个单元的输出需要乘以保留它的概率。
2)如果在测试阶段使用dropout,则理论上需要运行多次dropout 测试过程,然后对输出结果取加权平均(或者几何平均)。这种做法的结果与不采用dropout 的测试结果相同,反而计算效率更低。

 

2.dropout和bagging

 

1)共同点
  • dropout可以视作集成了非常多的神经网络的bagging集成模型,这些网络包含了所有从基础网络中删除隐单元形成的子网络。
  • bagging涉及训练多个模型,并且在每个测试样本上评估多个模型。当每个模型都是一个大型神经网络时,这种bagging计算量非常庞大,实际不可行。
  • dropout提供了一种方便的bagging近似,它能够训练和评估指数级别的神经网络的集成。
  • 两者每个子模型使用的训练集是原始训练集的一个有放回重复采样而来。
2)不同点
  • bagging中,假设所有的子模型都是独立的。dropout中,所有的子模型是共享参数的,每个子模型继承了基础神经网络的不同子集。参数共享使得在有限的内存下训练指数数量的子模型变得可能。
  • bagging中,每个子模型在其相应的训练集上训练到收敛。dropout中,大部分子模型都没有显式的被训练(因为指数量级的神经网络不可能被训练完成)。我们只是对子模型的某些部分训练单个step ,同时参数共享使得子模型的剩余部分能够有较好的参数值。

 

3.dropout的其他形式

 

经典的dropout是将初始参数$\vecω$与一个掩码$\vecμ$进行element-wise product作为某一轮训练的参数。

 

4.dropout与正则化

 

5.dropout为什么有效

1) Dropout可以被认为是集成大量深层神经网络的实用的Bagging方法,减少模型复杂度,提高
泛化能力
2) Drop out可以减少神经元之间复杂的共适应关系,因为Dropout使得某两个神经元不一定每次
都在一个子网络结构中出现。基于此权值的更新不在依赖于固定关系的隐含节点的共同作用,使得
了在去失某些特定信息的情况下依然可以从其它信息中学到一些模式(鲁棒性),迫使网络去学习更
加鲁棒的特征(更加具有通适性)。
3)从进化论的角度
dropout也具有仿生学的意义。有性生殖从长远来看,自然选择的标准可能不是个体,而是基因的混合能力。一组基因能够与另一组随机基因良好协作的能力使它们更加健壮。由于基因不能依赖大量的伴侣在任何时候出现,它必须学会自己做一些有用的事情或与少数其他基因合作。根据这一理论,有性生殖的作用不仅仅是让有用的新基因在整个种群中传播,而且还通过减少复杂的共同适应来促进这一过程。类似地,Dropout促使每个隐藏单元更加健壮,并推动它自己创建有用的功能,而不依赖于其他隐藏单元来纠正其错误。

posted on 2023-05-29 13:57  张梓寒  阅读(81)  评论(0编辑  收藏  举报