Dropout一些总结

关于DROPOUT一些总结

Dropout


概述

这是Hinton大神的原论文《Improving neural networks by preventing co-adaptation of feature Detectors》

从以往的神经网络来看,大规模的网络:

  • 训练费时
  • 易过拟合

这时候Dropout的出现很好的解决了其中的问题。

从原文来看大量的实验数据说明Dropout确实能够提高准确率。

下面简单说明一下Dropout的原理及作用:

Dropout是指在训练模型时随机让网络的某一些节点不工作,他们的权重得以保留(只是暂时不更新),下次可能又更新了。它是为了提高Deep Network的泛化能力,防止CNN的过拟合。

在训练开始时,我们随机地“删除”一半的隐藏单元,视它们为不存在。



这张图左边表示没有Dropout的普通2层全连接结构,用公式记做,其中的a为激活函数。

右图表示在第二个全连接层加入了Dropout的示意图,用公式记做,即在训练时随机(以概率1-p)使某些网络的结点不工作(将隐含的结点输出清0)。

其中v是n*1维的列向量,W是d*n维的矩阵,m是个d*1的01列向量,a(x)是一个满足a(0)=0的激活函数,这里的m和a(Wv)相乘是对应元素相乘。

它为什么有助于防止过拟合呢?可以简单地这样解释,运用了Dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络(后面简称为“半数网络”),每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误的。随着训练的进行,大部分半数网络都可以给出正确的分类结果,那么少数的错误分类结果就不会对最终结果造成大的影响。
从实验结果来看,它会降低训练集的效果,但会提高验证集的效果。




右图是Dropout的一种延伸的方法DropConnect,用表达式描述为:

二者的区别很明显:Dropout是将随机输出置0,而DropConnect是将权重随机置0.

与Dropout不同的是,这个不是随机将隐含层节点的输出清0,而是将节点中的每个与其相连的输入权值以1-p的概率清0。(一个是输出,一个是输入)


### 对于Dropout *Hintion给出的解释*: 1. 由于每次用输入网络的样本进行权值更新时,隐含节点都是以一定概率随机出现,因此不能保证每2个隐含节点每次都同时出现,这样权值的更新不再依赖于有固定关系隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况。 2. 可以将Dropout看作是模型平均的一种。对于每次输入到网络中的样本(可能是一个样本,也可能是一个Batch的样本),其对应的网络结构都是不同的,但所有的这些不同的网络结构又同时share隐含节点的权值。这样不同的样本就对应不同的模型,是Bagging的一种极端情况。个人感觉这个解释稍微靠谱些,和Bagging,Boosting理论有点像,但又不完全相同。Bagging->一个特例是Dropout,Dropout->一个特例是Naive Bayes 3. Native Bayes是Dropout的一个特例。Native bayes有个错误的前提,即假设各个特征之间相互独立,这样在训练样本比较少的情况下,单独对每个特征进行学习,测试时将所有的特征都相乘,且在实际应用时效果还不错。而Droput每次不是训练一个特征,而是一部分隐含层特征。 4. 还有一个比较有意思的解释是,Dropout类似于性别在生物进化中的角色,物种为了使适应不断变化的环境,性别的出现有效的阻止了过拟合,即避免环境改变时物种可能面临的灭亡。
>这是原文:

Finally, there is an intriguing similarity between dropout and a recent theory of the role of sex in evolution (17). One possible interpretation of the theory of mixability articulated in (17) is that sex breaks up sets of co-adapted genes and this means that achieving a function by using a large set of co-adapted genes is not nearly as robust as achieving the same function, perhaps less than optimally, in multiple alternative ways, each of which only uses a small number of co-adapted genes. This allows evolution to avoid dead-ends in which improvements in fitness require co- ordinated changes to a large number of co-adapted genes. It also reduces the proba- bility that small changes in the environment will cause large decreases in fitness a phenomenon which is known as “overfitting” in the field of machine learning.


其他说明及资料

这篇博文写的非常全面

参考文章

http://www.cnblogs.com/tornadomeet/p/3258122.html
http://blog.csdn.net/shuzfan/article/details/50580915
http://blog.csdn.net/u012162613/article/details/44261657
http://blog.csdn.net/stdcoutzyx/article/details/49022443

Buy me a coffe. XD