DropOut技术简述

DropOut的概念首次在2012年,论文《Improving neural networks by preventing co-adaptation of feature detectors》中提出。

看上去很有逼格,但是实际却真的很有逼格,很有用。那主要有什么用呢?
千言万语一句话:

就是使模型泛化能力更强,防止过拟合。

他是怎么做的呢?

说来也简单,就是在前向传播时候,以一定的概率,随机的屏蔽掉一部分隐藏层神经元,让他们停止工作。
具体而言:

  1. 无DropOut工作方式


    image.png

    看上去,朴实无华,再正常不过了。

  2. 有DropOut工作方式


    image.png
  • 首先,用一个伯努利分布,产生一个发生概率P。这个P生命期很长,可以活到预测阶段,并且一直不变。通过p产生rj, rj就是个0,1向量。如果p为0.5, 则rj会有一半的可能为0向量,一半的可能为1向量.
  • 其次,用rj乘以y来控制,输入到隐藏层的y是否往后面传播。为0,则停止。为1,则传播。由第一步可知,当p=0.5时,会有一半的神经元停止工作。
  • 最后, 通过激活函数得到最后的y

为什么这样做就能解决过拟合,提高泛化能力?

( 1 )每次随机取不同的神经元向后传播,相当于训练了多个不同的网络,共同作用,类似于投票机制,增强鲁棒性。可有效地防止过拟合。
( 2 ) 减少对局部神经元的依赖,由于每次训练都会随机屏蔽一些神经元,并不是每次两个相同的神经元都会同时出现,这样的就阻止了某些神经元对其他神经元的依赖,是的模型更多的关注数据本身。就像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容