学界 | 如何通过方差偏移理解批归一化与Dropout之间的冲突

选自arXiv

作者:Xiang Li, Shuo Chen, Xiaolin Hu, Jian Yang

机器之心编译

参与:朱乾树、蒋思源

自批量归一化提出以来,Dropout 似乎就失去了用武之处,流行的深度架构也心照不宣地在批归一化上不采用 Dropout。而近日南京理工大学和清华大学的研究表明 Dropout 在网络测试的时候神经元会产生方差偏移,因而进一步分析与理解如何能避免方差偏移风险,并克服二者组合的局限性。

在批归一化提出之前,Dropout 几乎是所有的最优网络的标配,尽管很简单,但它成功的帮助网络缓解了过拟合问题。Ioffe & Szegedy 于 2015 提出批归一化(BN)技术,通过运用该技术,不仅可以加速现代模型的速度,而且可以以正则项的形式来提高基线水平。因此,批归一化几乎应用在近期所有的网络架构中,这说明了它强大的实用性和高效性。

但是,当 Dropout 和 BN 结合在一起时并不能获得额外的增益。事实上,当一个网络同时使用这两者时,甚至会得到更差的结果。Ioffe & Szegedy 于 2015 就已经认识到,BN 在某些情况下会削弱 Dropout 的效果。他们揭露了两者之间的不相容性,从而推测 BN 提供了与 Dropout 相似的正则化功能。很多现代模型 如 Resnet,Densenet 等为这一观点添加佐证,它们在只使用 BN 的情况下得到更好的结果。

但比较有意思的是 Wide ResNet(WRN),若我们在每个 Bottleneck 的两个卷积层之间加上 Dropout,性能却可以得到稳定的提升。因此到目前为止,以前的信息和线索仍不能解释 Dropout 和 BN 之间的复杂关系。

本论文作者发现理解 Dropout 与 BN 之间冲突的关键是网络状态切换过程中存在神经方差的(neural variance)不一致行为。试想若有图一中的神经响应 X,当网络从训练转为测试时,Dropout 可以通过其随机失活保留率(即 p)来缩放响应,并在学习中改变神经元的方差,而 BN 仍然维持 X 的统计滑动方差。这种方差不匹配可能导致数值不稳定(见图 1 中的红色曲线)。而随着网络越来越深,最终预测的数值偏差可能会累计,从而降低系统的性能。简单起见,作者们将这一现象命名为「方差偏移」。事实上,如果没有 Dropout,那么实际前馈中的神经元方差将与 BN 所累计的滑动方差非常接近(见图 1 中的蓝色曲线),这也保证了其较高的测试准确率。

图 1:上:关于「方差偏移」的一个简单数学说明。由于使用了 Dropout,X 在测试阶段的方差不同于训练阶段。同时,BN 将该方差视作训练中累计的通用统计数据。注意 p 代表 Dropout 的保留率。下:在 CIFAR100 上训练 DenseNet 得到的方差偏移实验统计数据。两条曲线都是从同一训练数据集中计算所得。「滑动变量i」是在整个学习过程中第 i 个 BN 层的累计滑动方差(取其平均值,而不是其向量),「实际变量i」代表在前馈推理过程中第 i 个 BN 层之前的神经响应实际方差。

本文作者从理论上证明了「方差偏移」要满足两个一般条件,并对上文提到的 Dropout 和 BN 之间的关系给出了令人满意的解释。除此之外,他们在 CIFAR10/100 数据集上进行的其它模型试验(即 PreResNet、ResNeXt、DenseNet、Wide ResNet)证明了他们的预期想法。

由于结合二者造成性能损失的主要原因已经发现,作者们采用了两种策略来探索如何打破这种局限。一个是在所有 BN 层后使用 Dropout,另一个就是修改 Dropout 的公式让它对方差并不那么敏感。因为这两种方法都能降低方差偏移的风险,它们大多数情况下都能工作得很好,且能取得额外的提升。

论文:Understanding the Disharmony between Dropout and Batch Normalization by Variance Shift

论文地址:https://arxiv.org/pdf/1801.05134.pdf

摘要:本篇论文首先从理论上和实验数据两方面回答了「为何通常两个强大的技术 Dropout 和 BN 结合起来用反而会造成性能损失?」理论上,我们发现,当模型状态由训练到测试时,Dropout 会使具体神经元的方差产生偏移。但是,BN 在整个测试阶段都会保留它在训练过程学习并累计得到的方差。当在 BN 之前应用 Dropout 时,该方差的不一致(我们将该现象命名为「方差偏移」)造成推理中的数值不稳定性,最终将导致更多的错误预测。尽管在 DenseNet、ResNet、ResNeXt 和 Wide ResNet 上做的实验验证了我们的发现。我们接下来探讨修改 Dropout 的几种策略,并通过避免方差偏移风险来克服二者组合的局限性。

图 2:分析方差偏移的两种情况。

图 4:按列看,四个深度网络在 BN 层上的「方差偏移」统计数据可视化,每一行分别代表 1)Dropout 类型;2)Dropout 失活率;3)数据集,连同他们的测试错误率(第五行)。很明显,当 Dropout 失活率≤ 0.5 时,WRN 受 Dropout 影响最小(即小的方差偏移),因此,它在将 Dropout 用于 BN 前甚至有些许提升。

图 5:训练轮数对应的准确率。蓝线表示两个模型没有 Dropout 的训练结果。红线表示对应模型的有 Dropout 的训练结果。所有准确率均由训练集计算得出,且实线表示 train 阶段结果,虚线表示评估阶段结果。我们发现 Dropout 失活率为 0.5 的网络从训练转换成测试阶段的准确率发生了显著变化,同时网络的所有参数都是不变的,但是测试时应用了 Dropout 和 BN。

图 6:DenseNet 在 CIFAR10 数据集上以0.5的随机失活率训练所产生的训练模式和测试模式之间的神经元不一致响应的例子。样本取自训练集,模型参数不变时虽然它们在学习过程中被正确地分类,但在推理过程中却被分错类。方差偏移最终导致预测错误,由此降低模型性能。

表 4:在所有 BN 层后应用 Dropout 的错误率。所有数值取 5 次并行实验(随机初始输入)的均值。

表 5:ImageNet 上表现顶尖的模型,在它们所有 BN 层后应用 Dropout 的错误率。所有数值取 5 次并行实验(随机初始输入)的均值。我们可以看到持续的提升。

表 6:在 Dropout-(b) 上应用新型 Dropout(即 Uout)。所有数值取 5 次并行实验(随机初始输入)的均值。

该论文的第一作者李翔在知乎专栏解释了这篇论文的主要思想与发现,希望详细了解该研究的读者可查看原论文和作者专栏(https://zhuanlan.zhihu.com/p/33101420)。

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-01-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

深度学习中的正则化技术(附Python代码)

本文简单介绍了什么是正则化以及在深度学习任务中可以采用哪些正则化技术,并以keras代码具体讲解了一个案例。

31150
来自专栏深度学习思考者

Vehicle Logo Recognition System Based on Convolutional Neural Networks With a Pretraining Strategy

论文笔记Ⅰ 基于卷积神经网络的车辆标记识别系统 考虑文章中一些语法以及用词还挺好,先记录一下,留下来以后可能用到自己的paper中。 Abstract 由...

26780
来自专栏人工智能LeadAI

keras学习笔记-黑白照片自动着色的神经网络-Alpha版

如今,上色都是人手工用Photoshop做的,一张图片要花好几个月才能完成,需要进行大量调查研究,光是其中的一张脸就需要多达20层图层。但是,基于深度神经网络的...

56850
来自专栏IT派

随机森林之美

导语:随机森林和决策树相比,能更好的防止过拟合。虽然每个基分类器很弱,但最后组合的结果通常很强,这也类似于:“三个臭皮匠顶个诸葛亮”的思想。对比发现Random...

46440
来自专栏人工智能LeadAI

TensorFlow从0到1丨第十六篇 L2正则化对抗“过拟合”

前面的第十四篇 交叉熵损失函数——防止学习缓慢和第十五篇 重新思考神经网络初始化从学习缓慢问题入手,尝试改进神经网络的学习。本篇讨论过拟合问题,并引入与之相对的...

372120
来自专栏智能算法

机器学习三人行(系列十)----机器学习降压神器(附代码)

系列九我们从算法组合的角度一起实战学习了一下组合算法方面的知识,详情戳下链接: 机器学习三人行(系列九)----千变万化的组合算法(附代码) 但是,我们也知道算...

42290
来自专栏ATYUN订阅号

深度学习要点:可视化卷积神经网络

AiTechYun 编辑:yuxiangyu 深度学习中最深入讨论的话题之一是如何解释和理解一个训练完成的模型,尤其是在医疗保健等高风险行业的背景下。“黑盒”这...

1.4K100
来自专栏人工智能LeadAI

译文 | 在使用过采样或欠采样处理类别不均衡数据后,如何正确做交叉验证?

最近读的一篇英文博客,讲的很不错,于是便抽空翻译成了中文。 [关于我在这篇文章中使用的术语可以在 Physionet (http://www.physionet...

50350
来自专栏AI科技大本营的专栏

逼疯懒癌:“机器学习100天大作战”正式开始!

机器学习已经成为人工智能中发展最快,应用最广、最重要的分支之一。但是这条学习之路似乎并不是那么容易,也不总是一帆风顺的。

13430
来自专栏鸿的学习笔记

写给开发者的机器学习指南(二)

在机器学习领域有两种主要的学习方式,即监督学习和无监督学习。当您想在您的应用程序中使用机器学习时,需要简要说明下,因为选择正确的机器学习方法和算法是一个重要但有...

11220

扫码关注云+社区

领取腾讯云代金券