Dropout: A Simple Way to Prevent Neural Networks from Overfitting

本文来自《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》
以学习笔记的形式书写,有些地方写得或者翻译得不太恰当,望见谅!!

过拟合问题一直是深度学习中难以处理的问题,dropout的key idea就是在训练过程中随机的”丢弃”掉一部分units。
这里写图片描述

这里的丢弃是指暂时性的remove,而不是永久的。
可以从两个角度去理解dropout
1 prevent overfitting
2 combing exponentially many different neural network.

在训练中使用dropout就好像从一个复杂的网络中sampling 采样出一个thinned瘦小的网络结构(BP的时候也只更新thinned网络的参数)。如果一个网络有n个units,我们以0.5的概率去dropout,那么就会有

2n

个thinned network,每次训练都会把一个网络sampling出来训练,这样一个训练过程就相当于训练了指数级别的网络。

你自然会想到那测试的时候怎么办?采样出许多的网络求结果取平均?
Hinton等人通过讯多的pratice
这里写图片描述
他指出,test的时候不需要drop ,而只需要把参数W做一个scaling操作。
把这种方法叫做approximate averaging method。
用他的话说就是:
如果一个unit在train的过程中被保留的概率是p(注意把retain和drop的概率别搞混了),那么test的时候就把他的weights乘以p。

Hinton等人是如何解释这种机制的原理的呢!
1 为什么dropout能避免过拟合?

//以下内容取自知乎

https://zhuanlan.zhihu.com/p/23178423
取平均的作用: 先回到正常的模型(没有dropout),我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用 “5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。(例如 3个网络判断结果为数字9,那么很有可能真正的结果就是数字9,其它两个网络给出了错误结果)。这种“综合起来取平均”的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些“相反的”拟合互相抵消。dropout掉不同的隐藏神经元就类似在训练不同的网络(随机删掉一半隐藏神经元导致网络结构已经不同),整个dropout过程就相当于 对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。

减少神经元之间复杂的共适应关系: 因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。(这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况)。 迫使网络去学习更加鲁棒的特征 (这些特征在其它的神经元的随机子集中也存在)。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的模式(鲁棒性)。(这个角度看 dropout就有点像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高)

(还有一个比较有意思的解释是,Dropout类似于性别在生物进化中的角色:物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出及时反应,性别的出现可以繁衍出适应新环境的变种,有效的阻止过拟合,即避免环境改变时物种可能面临的灭绝。 当地球都是海洋时,人类是不是也进化出了再海里生活的能力呢?)


//以上内容取自知乎。

取平均和集成学习中的bagging有点类似。学习多个网络,最后投票决定,只是这种方式更加高效,简洁。
减少神经元之间复杂的共适应关系,这一点则是在dropout过程中,会避免co-adapted,就是说这种机制能够避免unit_a unit_b两个的共同自适应,换句话说有可能b的状态会参考a的现在的状态,而dropout会使得a和b可能看不到对方的状态。
至于生物学进化论的角度特地去查了一点资料。
翻译过来就是:
dropout的motivation来自于进化论中有性繁殖的角色。
有性繁殖包括去父母方一半的genes,然后加入a very small amount of random mutation(突变)。然后combine这些去形成一个后代。
而无性繁殖是create a offspring with a slightly mutate copy of the parent‘genes。
只用父亲的基因做一个微小的突变。

看起来无性繁殖更能提高个体的适应能力,因为一个好的基因序列能够直接pass到子代。
而有性繁殖看起来更能够打破基因之间的co-adapted,虽然他会降低个体的适应能力。但是他却是最能推进生物进化的方法。

最能解释有性繁殖的优越性的是:
自然选择的标准不是个体的适应力,而是mix-ability of genes(混合基因的能力)
一组基因和另外一组随机基因组合能够使个体更加健壮。注意是随机的。
所以a genes不能够rely on其他的基因。它必须学会一些有用的东西使得它能更好的和其他的基因合作。
根据这一理论,有性繁殖的作用不仅是为了让有用的新基因在整个人群中传播,而且还通过减少复杂的联合适应来促进这一过程,这将减少新基因提高个体体质的机会。

回到正题来。NN中的每个hidden unit必须去学会怎样work with randomly chosen sample of other units。这样会使得每个unit更加robust,而且能使它在(不依赖其他hidden unit 来纠正错误 ) 的情况下create useful features。

一个密切相关,但略有不同的动机来自于thinking about successful conspiracies(阴谋)。对于50个人一起来协定一个阴谋来说,十个阴谋组织每个包含五人可能是一个更好的方式来制造混乱,
因为前者,需要五十个人都在他们的任务上尽可能的做得正确。

如果条件不改变,有足够的时间排练,一个大阴谋(50人)可以工作得很好,但在非固定条件下,阴谋组织的人数越少,其word的概率就越大。复杂的协同适应可以在训练中work well,但在新的测试数据,他们比10组5个人的组织更容易失败。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值