Dropout

神经网络训练中防止过拟合的一种技术

简介

在正则化方法中,Dropout 是非常有用和成功的一种技术,能够有效控制过拟合(overfitting)Definitely问题。一般来说,Dropout 会随机删除一些神经元,以在不同批量上训练不同的神经网络架构。Bagging 是通过结合多个模型降低泛化误差的技术,主要的做法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。而 Dropout 可以被认为是集成了大量深层神经网络的 Bagging 方法,因此它提供了一种廉价的 Bagging 集成近似方法,能够训练和评估指数级数量的神经网络。

具体来说,Dropout 指暂时丢弃一部分神经元及其连接。随机丢弃神经元可以防止过拟合,同时指数级、高效地连接不同网络架构。神经元被丢弃的概率为 1 − keep_prob,且关闭的神经元不参与前向传播计算与参数更新。隐藏层通常以 0.5 的概率丢弃神经元。使用完整网络(每个节点的输出权重为 p)对所有 2^n 个 dropout 神经元的样本平均值进行近似计算。每当我们关闭一些神经元,我们实际上修改了原模型的结构,那么每次迭代都训练一个不同的架构,参数更新也更加关注激活的神经元。这种正则化方法可以看成是一种集成方法,即集成每个批量所训练的不同网络架构。Dropout 显著降低了过拟合,同时通过避免在训练数据上的训练节点提高了算法的学习速度。

[描述来源:302页吴恩达Deeplearning.ai课程笔记,详记基础知识与作业代码|机器之心]

下图给出了一个使用了dropout的神经网络模型。 左图:具有2个隐藏层的标准神经网络。 右图:通过在左侧的网络中应用dropout而生成的细化网络示例, 交叉图表表示这一单元未被激活。

在训练神经网络时,神经网络的一些神经元会像上图所示那样被删除,而在测试时,所有的神经元都会被激活,每一个单元的参数要预乘以keep_prob。

[图片及描述来源:Srivastava, N.; Hinton, G.; Krizhevsky, A. et al. (2014). Dropout: A simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research. 15(1): 1929-1958.]

dropout 最佳实践

  • 使用 20-50 % 的 dropout,建议输入 20%。太低,影响可以忽略;太高,可能欠拟合。
  • 在输入层和隐藏层上使用 dropout。这已被证明可以提高深度学习的性能。
  • 使用伴有衰减的较大的学习速率,以及较大的动量。
  • 限制权重!较大的学习速率会导致梯度爆炸。通过对网络权值施加约束(如大小为 5 的最大范数正则化)可以改善结果。
  • 使用更大的网络。在较大的网络上使用 dropout 可能会获得更好的性能,从而使模型有更多的机会学习独立的表征。

[描述来源:深度学习模型的简单优化技巧|机器之心]

发展历史

描述

2012年,Hinton和Srivastava等人首先提出了Dropout的思想。2013年,Li Wan和Yann LeCun等人介绍了Drop Connect,是另一种减少算法过拟合的正则化策略,是 Dropout 的一般化。在 Drop Connect 的过程中需要将网络架构权重的一个随机选择子集设置为零,取代了在 Dropout 中对每个层随机选择激活函数的子集设置为零的做法。Drop Connect 和 Dropout 相似的地方在于它涉及在模型中引入稀疏性,不同之处在于它引入的是权重的稀疏性而不是层的输出向量的稀疏性。2014年,针对神经网络容易过拟合的问题,Srivastava和Hinton等人完整的对dropout进行了描述,并证明了比当时使用的其他正则化方法有了重大改进。实证结果也显示dropout在许多基准数据集上获得了优秀的结果。Dropout很快受到了各类研究的青睐。在批归一化(BN)提出之前,Dropout 几乎是所有的最优网络的标配,直到Ioffe & Szegedy 于 2015 提出批归一化(BN)技术,通过运用该技术,不仅可以加速现代模型的速度,而且可以以正则项的形式来提高基线水平。因此,批归一化几乎应用在近期所有的网络架构中,这说明了它强大的实用性和高效性。

但是,当 Dropout 和 BN 结合在一起时并不能获得额外的增益。事实上,当一个网络同时使用这两者时,甚至会得到更差的结果。Ioffe & Szegedy 于 2015 年发表的文章中就已经讨论过,BN 在某些情况下会削弱 Dropout 的效果。他们揭露了两者之间的不相容性,从而推测 BN 提供了与 Dropout 相似的正则化功能。很多现代模型 如 Resnet,Densenet 等为这一观点添加佐证,它们在只使用 BN 的情况下得到更好的结果。2018年,南京理工大学和清华大学的研究发现理解 Dropout 与 BN 之间冲突的关键是网络状态切换过程中存在神经方差的(neural variance)不一致行为,他们表明 Dropout 在网络测试的时候神经元会产生方差偏移,因而进一步分析与理解如何能避免方差偏移风险,并克服二者组合的局限性。

2017年,张弛原等人通过实验表明:即使是在有损的标签上(其中部分或所有真实标签被随机标签替换),深度网络也能记忆整个数据。而当在有损的标签上训练时,dropout等常用于神经网络的正则化算法(即模型正则化器(model regularizer))在提升深度卷积神经网络(CNN)的生成表现上的效果不佳。针对这一问题,来自谷歌的Lu Jiang和Li Fei-Fei等人提出了一种在数据维中正则化深度网络的全新技术。这种方法是学习一个名叫 MentorNet 的神经网络来监督基础网络 StudentNet 的训练。这一技术受到了课程学习的启发并且通过神经网络从数据学习课程而推进了这一理论。他们同时在几个基准上演示了 MentorNet 的效果,实验表明其能够显著提升有损训练数据上当时最佳深度网络的泛化表现。

主要事件

年份事件相关论文/Reference
2012Hinton和Srivastava等人首先提出了Dropout的 思想Hinton, G. E.; Srivastava, N.; Krizhevsky, A.; Sutskever, I. and Salakhutdinov, R. (2012). Improving neural networks by preventing co-adaptation of feature detectors. CoRR,
2013Li Wan和Yann LeCun等人介绍了Drop ConnectWan, L. et al. (2013). Regularization of Neural Networks using DropConnect.  JMLR.
2014Srivastava和Hinton等人提出dropoutSrivastava, N.; Hinton, G.; Krizhevsky, A. et al. (2014). Dropout: A simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research. 15(1): 1929-1958.
2015Ioffe & Szegedy提出批归一化(BN)技术,但BN 在某些情况下会削弱 Dropout 的效果Ioffe, S.; Szegedy, C. (2015). Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. arXiv:1502.03167.
2017张弛原等人通过实验表明当在有损的标签上训练时,dropout等常用于神经网络的正则化算法(即模型正则化器(model regularizer))在提升深度卷积神经网络(CNN)的生成表现上的效果不佳Zhang, C.; Bengio, S.; Hardt, M.; Recht, B. and Vinyals, O. (2017). Understanding deep learning requires rethinking generalization. In ICLR.
2017来自谷歌的Lu Jiang和Li Fei-Fei等人提出了一种在数据维中正则化深度网络的全新技术Jiang, L.; Zhou, Z.; Leung, T.; Li, L-J.; Fei-Fei, L. (2017). MentorNet: Regularizing Very Deep Neural Networks on Corrupted Labels. arXiv:1712.05055.
2018南京理工大学和清华大学的研究发现理解 Dropout 与 BN 之间冲突的关键是网络状态切换过程中存在神经方差的(neural variance)不一致行为Li, X.; Chen, S.; Hu, X.; Yang, J. (2018). Understanding the Disharmony between Dropout and Batch Normalization by Variance Shift. arXiv:1801.05134v1.

发展分析

瓶颈

Dropout存在的问题在上文已经有所提及,其无法与BN一起使用,BN 在某些情况下会削弱 Dropout 的效果;另外,对于数据标签有损的情况,dropout对于CNN的效果不明显。

未来发展方向

作为正则化算法的一种,目前如何提升模型的泛化能力,是所有有关正则化算法的研究的核心。在此基础上,不同的研究有各自针对的问题,如上文提到的谷歌的Lu Jiang和Li Fei-Fei等人专注于数据标签有损的情况。

Contributor: Yuanyuan Li

相关人物
Sergey Ioffe
Sergey Ioffe
奥里奥尔·温亚尔斯
奥里奥尔·温亚尔斯
Oriol Vinyals是DeepMind的研究科学家,主要研究深度学习,博士毕业于加州大学伯克利分校。
周志华
周志华
周志华分别于1996年6月、1998年6月和2000年12月于 南京大学计算机科学与技术系获学士、硕士和博士学位。主要从事人工智能、机器学习、数据挖掘 等领域的研究工作。主持多项科研课题,出版《机器学习》(2016)与《Ensemble Methods: Foundations and Algorithms》(2012),在一流国际期刊和顶级国际会议发表论文百余篇,被引用三万余次。
拉斯 · 萨拉克赫迪诺弗
拉斯 · 萨拉克赫迪诺弗
CMU 机器学习教授,苹果人工智能研究负责人。Ruslan Salakhutdinov 于 2009 年从多伦多大学获得机器学习(计算机科学)博士学位,之后在 MIT 人工智能实验室渡过了两年博士后生涯,后来加入了多伦多大学计算机科学与统计部做助理教授。2016 年 1 月,CMU 宣布邀请 Russ Salakhutdinov 作为机器学习部门的副教授。他的主要研究兴趣包括人工智能、机器学习、深度学习、大规模优化。
Christian Szegedy
Christian Szegedy
杨立昆
杨立昆
杨立昆(法语:Yann Le Cun,英语:Yann LeCun,1960年7月8日-)是一位计算机科学家,他在机器学习、计算机视觉、移动机器人和计算神经科学等领域都有很多贡献。他最著名的工作是在光学字符识别和计算机视觉上使用卷积神经网络 (CNN),他也被称为卷积网络之父。他同Léon Bottou和Patrick Haffner等人一起创建了DjVu图像压缩技术。他同Léon Bottou一起开发了Lush语言。
李飞飞
李飞飞
李飞飞,斯坦福大学计算机科学系教授,斯坦福视觉实验室负责人,斯坦福大学人工智能实验室(SAIL)前负责人。专业领域是计算机视觉和认知神经科学。2016年11月李飞飞加入谷歌,担任谷歌云AI/ML首席科学家。2018年9月,返回斯坦福任教,现为谷歌云AI/ML顾问。10月20日斯坦福大学「以人为中心的AI计划」开启,李飞飞担任联合负责人。11月20日李飞飞不再担任SAIL负责人,Christopher Manning接任该职位。
伊利亚·苏特斯威夫
伊利亚·苏特斯威夫
Ilya Sutskever是一名研究机器学习的计算机科学家,目前担任OpenAI的研究总监。Sutskever在多伦多大学获得了计算机科学学士、硕士和博士学位,导师是Geoffrey Hinton。博士毕业后进入斯坦福大学,成为吴恩达的博士后。后担任DNNresearch的联合创始人。2013年,Ilya Sutskever 与Hinton一起加入谷歌大脑团队。他后来离开谷歌,成为新成立的OpenAI研究院的研究总监。
杰弗里·辛顿
杰弗里·辛顿
杰弗里·埃弗里斯特·辛顿 FRS(英语:Geoffrey Everest Hinton)(1947年12月6日-)是一位英国出生的加拿大计算机学家和心理学家,以其在类神经网络方面的贡献闻名。辛顿是反向传播算法和对比散度算法的发明人之一,也是深度学习的积极推动者。
Alex Krizhevsky
Alex Krizhevsky
简介
相关人物