深度学习中的正则化

正则化

正则化是选择模型的一种方法,具体来说,选择经验风险与模型复杂度同时较小的模型(防止过拟合),这样可以较少泛化误差而不是训练误差。

常用正则化方法

  • 参数范数惩罚:L1正则化、L2正则化;
  • 数据集增强;
  • 噪声添加;
  • early stop;
  • Dropout层

1、参数范数惩罚

参数范数惩罚通过对目标函数 JJ 添加一个参数范数惩罚 Ω(θ)Ω(θ),限制模型的学习能力。

将正则化欧的目标函数记为 J~J~:
J~(θ;X,y)=J(θ;X,y)+αΩ(θ)J~(θ;X,y)=J(θ;X,y)+αΩ(θ)
其中 α≥0α≥0 是权衡范数惩罚项 ΩΩ 和标准目标函数 J(X;θ)J(X;θ) 相对贡献的超参数,通过调整 αα 的大小,可以获得不同的参数选择偏好。

注意:参数包括模型中每一层仿射变换的权重和偏置,我们通常只对权重做惩罚,而不对偏置做正则惩罚。因为精确拟合偏置所需的数据通常比权重少的多,正则化偏置参数可能会导致明显的欠拟合。

(1)相关定义

L0范数:权重向量 WW 中非0的元素的个数,通常表示为 ∣∣W∣∣0∣∣W∣∣0​。
L1范数:权值向量 WW 中各个元素的绝对值之和,通常表示为 ∣∣W∣∣1∣∣W∣∣1​。
L2范数:权值向量 WW 中各个元素的平方的和的开方值,通常表示为 ∣∣W∣∣2∣∣W∣∣2​。

任何的规则化算子,如果它在 Wi=0Wi​=0 处不可微,并且可以分解为一个“求和”的形式,则该规则化算子就可以实现稀疏。

稀疏的好处

  • 特征选择(Feature Selection):能实现特征的自动选择
    稀疏规则化算子会学习地去掉这些对最终输出结果没有关系或者不提供任何信息的特征,也就是把这些特征对应的权重置为0。

  • 可解释性(Interpretability)
    非零权重的特征为输出结果提供的信息是巨大的、决策性的。

(2)L0正则化

从直观上看,利用非零参数的个数,可以很好的来选择特征,实现特征稀疏的效果,具体操作时选择参数非零的特征即可。

但因为L0正则化很难求解,是个NP难问题,因此一般采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且也可以实现稀疏的效果。

(3)L1正则化

L1范数也称叫“稀疏规则算子”(Lasso regularization),L1范数和 L0范数 可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。

(4)L2正则化

L2范数,在回归中称为:“岭回归” (Ridge Regression) 或 “权值衰减weight decay”。

让L2范数的规则项 ∣∣W∣∣2∣∣W∣∣2​ 最小,可以使得 WW 的每个元素都很小,都接近于0(不会让它等于0)。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。

2、数据扩增(data agumentation)

较少过拟合的最简单方法:增加训练集样本,也称数据扩增(data agumentation)。但是由于标注数据昂贵,需要通过其他方式增加样本。

  • 图像处理:旋转、翻转、放缩、平移等等。
  • GAN(对抗式生成网络)

3、噪声添加

噪声添加:将其直接添加到学习到的权重上。这项技术主要被用于循环神经网络的情况下。
在某些假设下,施加于权重的噪声可以被解释为与更传统的正则化形式等同,鼓励要学习的函数保持稳定。

4、Dropout

Dropout:在用前向传播算法和反向传播算法训练模型时,随机的从全连接DNN网络中去掉一部分隐含层的神经元。

两种理解:

  • 减少神经元之间复杂的共适应关系:在每次训练的时候使用dropout,每个神经元有一定的概率被移除,这样可以使得一个神经元的训练不依赖于另外一个神经元,同样也就使得特征之间的协同作用被减弱。 Hinton认为,过拟合可以通过阻止某些特征的协同作用来缓解。
  • 多模型效果平均的方式。对于减少测试集中的错误,我们可以将多个不同神经网络的预测结果取平均,而因为dropout的随机性,在每次dropout后,网络模型可看成不同结构的神经网络,而要训练的参数数目却是不变的,这就解脱了训练多个独立的不同神经网络的时耗问题。在测试输出的时候,将输出权重乘以保留概率1-p%,从而达到类似平均的效果。

左边的图为一个完全的全连接层,右边为应用dropout后的全连接层。

做法

  • 训练阶段:每次更新参数之前,每个神经元有一定的概率被丢弃,假设为p%,p可以设为50或者根据验证集的表现来选取,输入层的p比较小,保留概率接近于1
  • 测试阶段不dropout,保留所有单元的权重,而且要乘以保留概率1-p%,为了保证输出期望一致。

dropout不只用于前馈神经网络,还可以用于图模型,比如玻尔兹曼机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值