深度神经网络--4.3 Dropout

举报
HWCloudAI 发表于 2020/12/28 14:24:59 2020/12/28
【摘要】 在深度学习系统中,训练一个大型的网络往往会有两个问题:过拟合和费时。当然,4.2节正则化方法可以在一定程度上缓解过拟合这个问题。本节将详细介绍另外一种最早由Hinton提出的解决过拟合问题的方法——Dropout,它不仅可以缓解深度学习系统的过拟合问题,还能缩短训练网络的用时。有别于正则化方法添加正则项给损失函数,Dropout是改变训练过程中的学习过程。在训练深度学习模型时,某些检测器会依...

在深度学习系统中,训练一个大型的网络往往会有两个问题:过拟合和费时。当然,4.2节正则化方法可以在一定程度上缓解过拟合这个问题。本节将详细介绍另外一种最早由Hinton提出的解决过拟合问题的方法——Dropout,它不仅可以缓解深度学习系统的过拟合问题,还能缩短训练网络的用时。有别于正则化方法添加正则项给损失函数,Dropout是改变训练过程中的学习过程。在训练深度学习模型时,某些检测器会依赖其他检测器才能发挥作用,这种情况称为检测器间的相互作用。为了防止过拟合,Dropout提出可以通过阻止特征检测器的相互作用来提高神经网络的性能。在每个训练批次中,Dropout旨在通过忽略网络中一半的隐藏层节点,来减少隐藏层节点间的相互作用,从而缓解过拟合问题。

如图4.3所示,Dropout其实就是在标准神经网络进行前向传播时,让某些神经元的激活值以一定的概率停止工作。由于这样做会减少模型对局部特征的依赖,使得模型泛化能力提升,从而缓解过拟合问题。下面将介绍深度学习系统里实现Dropout的大体流程。

在标准的神经网络中,给定输入x,通过网络前向传播后,把误差反向传播以决定如何更新参数让网络进行学习,并最终输出y。应用了Dropout的网络中,过程变为:

(1)随机地删掉网络中一半的隐藏神经元,其中输入输出神经元保持不变。图4.3(b)中的灰色部分代表了在这批次训练中被删除的神经元。

(2)然后把输入x通过步骤i中修改后的神经网络前向传播,然后将损失结果通过修改后的网络反向传播。一个批次训练样本结束后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数。

(3)恢复刚刚被删掉的神经元。注意,之前被删掉的神经元没有发生变化,但是(2)中没被删除的神经元已经执行完上批次的更新。

(4)执行下一批次训练样本,重复上述步骤。介绍完Dropout的流程后,现在详细介绍神经网络应用了Dropout后的一系列公式推导。为了方便理解,先回顾如图4.4(a)所示标准的神经网络,计算公式如下:

应用了Dropout的神经网络,每次训练前,随机地关闭一些隐藏层神经元。假设每个神经元被关闭的概率为p,那么第l层第j个神经元的关闭概率可用伯努利分布表达如下:

式中,[插图]为0——这轮训练中,第l层第j个神经元关闭;[插图]为1——神经元开启。因此,相应的前向过程如图4.4(b)所示,表达公式如下:

在现实应用中,Dropout比其他的正则化方法更有效。第一,运用了Dropout的模型在验证数据集上的测试结果往往要比其他正则化方法要好。在大数据集下,Dropout可以显著地提高模型的泛化能力。其次,Dropout计算开销非常小。在每批次训练过程中使用Dropout仅增加了O(n)的时间复杂度。最后,Dropout的应用可以非常广泛。它不像许多正则化方法一样,对于可适用的模型有着明显的限制。它可以运用于多种多样的神经网络模型,例如前向神经网络、卷积神经网络以及循环神经网络。然而,为何在每次训练中随机关闭一部分的隐藏层神经元就可以提升模型的最终性能呢?先试想在没有Dropout的标准模型上该如何提升模型的性能?类似于集成学习(Ensemble Learning),不妨用相同的训练数据集去训练多个不同的神经网络,得到不同的结果后取平均。这种训练多个模型取平均的方法通常可以有效地防止过拟合。在每一步中,Dropout随机地关闭一部分隐藏的神经元。那么整个Dropout过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,取平均后就可以抵消其中结论相反的过拟合。另外,Dropout减少了神经元之间复杂的共适应关系。因为Dropout导致两个神经元不一定每次都开放。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用。这迫使网络去学习更加鲁棒的特征,而不是某些局部特征。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。