深度学习中的网络正则化

在传统机器学习中,模型的正则化是一个重要话题,而深度学习领域中,大多数模型容量大,如果没有合适的正则化,甚至很难得到比较好的结果。

0 何为正则化?

广义上来看,任何减小模型泛化误差的方法都可视为正则化,一些常用的正则化策略包括范数惩罚,数据集增强,多任务学习,Early Stopping,稀疏表示,Ensemble,Dropout,对抗训练等。在Goodfellow的书[1]中,第七章详细介绍了深度学习中网络的正则化。

1 模型参数的范数惩罚

大多数正则化策略都是通过限制模型的容量来实现的,可在目标函数
《深度学习中的网络正则化》

之后添加一项参数惩罚项
《深度学习中的网络正则化》

《深度学习中的网络正则化》 Alt text

其中
《深度学习中的网络正则化》 确定惩罚力度,
《深度学习中的网络正则化》 时为无正则化。</p>

如果
《深度学习中的网络正则化》

取l1范数则为l1正则化,取l2范数则称为l2正则化。

2 数据集增强

增加训练数据集通常可以提高模型的泛化能力。当数据有限的情形下,人为地”造”些数据可能很管用,达到模型正则化的目的,这种技巧被称为数据集增强(Data Augmentation)。Data Augmentation广泛用于图像、语音等领域的分类任务中,消除类别不平衡数据对模型训练的影响。

Data Augmentation主要有两种方式

  • Data wraping,在数据空间中进行各种变换,需要Domain Knowledge
  • Sythetic over-sampling,在特征空间中合成样本,不需要Domain Knowledge,不依赖于具体应用

Data Augmentation的效果暂无理论性证明。直观地猜想,增加人造数据导致的模型性能提升的上界应是增加同样规模的真实数据导致的模型性能提升。文章[2]中给出了基于MNIST手写数字识别的各种Data Augmentation方法效果比较,验证了上述猜想。

通常来说,在保留样本标签信息下,人为、机理性地设计Data wraping的效果要优于Synthetic over-sampling的效果;模型不同,Data Augmentation带来的benefit差异也很大。文章[2]提供了相关实验结果,实验中模型架构分为两部分,第一部分是特征抽取,第二部分是分类器部分。

《深度学习中的网络正则化》 Alt text

其中,分类器部分尝试了,NN,SVM,Extreme Learning Machine等。采用的Data Augmentation技巧包括

  • ELASTIC,Data wraping的一种方式
  • SMOTE,Synthetic Over-sampling的一种方式
  • DSMOTE,Synthetic Over-sampling的一种方式

《深度学习中的网络正则化》 Alt text
《深度学习中的网络正则化》 Alt text
《深度学习中的网络正则化》 Alt text

3 Dropout

Dropout近几年风靡学术界与工业界,是至今最广泛使用的implicit ensemble method。Goodfellow[2]中阐述了Dropout的主要思想。

  • Dropout训练了具有随机行为的网络,预测时则对多个随机决策做平均
  • Dropout本质上实现了带参数共享的bagging(ensemble methods)
  • Dropout让每个隐含单元学到在多种context下都表现良好的特征
  • Dropout相当于对隐含单元加噪(乘性噪声),迫使其学习更丰富的特征

3.1 Bagging是什么?

在谈论Dropout之前,我们先说明Bagging方法。Bagging(Bootstrap Aggregating)首先定义k个不同的模型,有放回地从原始训练集中采样构造k个不同的数据集,然后在数据集i上训练模型i,预测时则取所有模型的平均。

3.2 Dropout具体过程

假设使用minibatch-based的方案进行训练,每次选择一个样本加入minibatch时,随机生成一个Binary Mask(注意:这是一个向量),用于确定网络中的输入和隐含单元是否被使用。每个单元的Mask与其它单元的Mask独立,服从伯努利分布。例子如下,其中
《深度学习中的网络正则化》

为Mask。

《深度学习中的网络正则化》 Alt text

注意到Mask之后得到的网络,其实相当于下图16个子网络(子模型)中随机采样

《深度学习中的网络正则化》 Alt text


《深度学习中的网络正则化》 为Binary Mask,
《深度学习中的网络正则化》 是参数
《深度学习中的网络正则化》 确定的子模型的损失函数,则对所有子模型做平均(ensemble),即最小化
《深度学习中的网络正则化》 (注意到,期望求取涉及的项数达到指数级别,但是我们可以通过Sample
《深度学习中的网络正则化》 来获得其梯度的无偏估计,例如使用Monte Carol方法)

3.3 Dropout & Bagging</h3>

Dropout近似Bagging过程,但并非完全一致。在Bagging中,模型之间互相独立;而Dropout中,模型之间共享参数,且在所有可能的子网络(子模型)中,只有一小部分子模型被训练,参数共享使得剩余的子网络(子模型)也可以达到比较好的参数设置。

在进行预测时,bagging方法让子模型投票,这个过程称为推理(inference,源自概率图模型中的概念,下文涉及少量概率图模型的内容)假设Bagging中,模型i输出概率分布
《深度学习中的网络正则化》

,则bagging中最终预测为所有模型预测的代数平均
《深度学习中的网络正则化》

对应到Dropout,对所有Mask取几何平均,预测为

《深度学习中的网络正则化》

同样地,求和项数达到指数级别,需要对(1)式进行近似求解,主要有以下几种方案

  • Sampling Mask,大概10-20个Mask足够
  • 使用几何平均替代代数平均
  • 权重放缩(Weight Scaling Inference Rule,Hinton)

3.4 Dropout:使用几何平均进行推理

d为可mask的单元的数目,对所有Mask取代数平均得到

《深度学习中的网络正则化》 Alt text

对上式进行归一化,确保其是一个概率分布

《深度学习中的网络正则化》 Alt text

相关研究可以说明几何平均的近似效果好于代数平均。

3.5 Dropout:权重放缩推理

Weight Scaling Inference Rule是另外一个近似推理方法。Hinton等人在2012年提出,可以仅使用一个模型的
《深度学习中的网络正则化》

来近似
《深度学习中的网络正则化》 。这个模型是什么样子的呢?如下图b所示,包含所有单元,但每个单元i的输出权重需要乘上单元i被使用的概率。对于深层非线性的神经网络,没有任何理论证明此推理方法的准确性,但实用效果好,在某些情况下甚至比Sample-1000的Monte Carlo方法要好(选择何种推理依赖于具体问题)。
《深度学习中的网络正则化》 Alt text

假设每个单元被使用的概率是0.5,即训练时约有一半的单元被使用,则权重放缩推断有下面2种实现方式(基本原则是保证训练和测试时,每个单元输入的总期望不变)

  • 训练完成后,先将所有权重乘以0.5,然后再进行推断
  • 训练时,每个单元的状态至乘以2

在网络中无非线性隐含单元时,权重放缩推理可以实现准确推理(虽然深层非线性神经网络的情形无法说明其近似准确性)下面以多元线性回归分类器为例说明。

Case Study:对于n输入的多元线性回归分类器,v为输入向量,y为类别标签

《深度学习中的网络正则化》 Alt text

乘上Mask

《深度学习中的网络正则化》 Alt text

几何平均

《深度学习中的网络正则化》 Alt text

忽略常数项

《深度学习中的网络正则化》 Alt text

归一化之后,即得到权重为
《深度学习中的网络正则化》 的多元线性回归分类器;也就是说如果我们使用权重放缩推理,得到的结果就是所有模型的几何平均,无需任何近似。

3.6 Dropout:Advantages

Dropout相对于其它正则化方法的优点

  • 计算开销小
  • 不受限于具体模型类型或者训练方法(distributed representation,sgd)

参考文献

[1] Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning. MIT Press, 2016.

[2] Sebastien C. Wong, Adam Gatt, Victor Stamatescu, and Mark D. McDonnell. Understanding data augmentation for classification: when to warp? CoRR, abs/1609.08764, 2016.

    原文作者:神经网络
    原文地址: https://www.jianshu.com/p/1c3310d9a898
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞