Deep Learning 23:dropout理解_之读论文“Improving neural networks by preventing co-adaptation of feature detectors”

理论知识Deep learning:四十一(Dropout简单理解)深度学习(二十二)Dropout浅层理解与实现、“Improving neural networks by preventing co-adaptation of feature detectors

感觉没什么好说的了,该说的在引用的这两篇博客里已经说得很清楚了,直接做试验吧

注意

1.在模型的测试阶段,使用”mean network(均值网络)”来得到隐含层的输出,其实就是在网络前向传播到输出层前时隐含层节点的输出值都要减半(如果dropout的比例为p=50%),其理由如下:

At test time, we use the “mean network” that contains all of the hidden units but with their outgoing weights halved to compensate for the fact that twice as many of them are active.

即:因为神经元被激活的概率被增加了两倍(因为被激活神经元数量少了一半),所以为了补偿这一点,它的权值就要减少一半。

当然,这一点补偿可以是在训练的时候,对x进行放大(除以1-p),也可以是在测试的时候,对权重进行缩小(乘以概率p)。

2.Deep learning:四十一(Dropout简单理解)中有一点很容易让人误解:

Deep learning:四十一(Dropout简单理解)实验中nn.dropoutFraction和深度学习(二十二)Dropout浅层理解与实现实验中的level是指该神经元被dropout(即:丢弃)的概率,而论文“Dropout: A simple way to prevent neural networks from overfitting”中的概率p是指神经元被present(即:被选中不被dropout)的概率。即:p=1 - dropoutFraction = retain_prob = 1 - level。不搞清楚这一点,在看代码的时候很容易误解Deep learning:四十一(Dropout简单理解)实验中的代码跟论文“Dropout: A simple way to prevent neural networks from overfitting”中说的不一样,但其实是一样的。

所以,在论文“Dropout: A simple way to prevent neural networks from overfitting”中有指出:

经过上面屏蔽掉某些神经元,使其激活值为0以后,我们还需要对向量x1……x1000进行rescale,也就是乘以1/(1-p)。如果你在训练的时候,经过置0后,没有对x1……x1000进行rescale,那么你在测试的时候,就需要对权重进行rescale:

3.论文中明明说的是,为什么在代码中是:

        %dropout
        if(nn.dropoutFraction > 0)
            if(nn.testing)
                nn.a{i} = nn.a{i}.*(1 - nn.dropoutFraction);
            else
                nn.dropOutMask{i} = (rand(size(nn.a{i}))>nn.dropoutFraction);
                nn.a{i} = nn.a{i}.*nn.dropOutMask{i};
            end
        end

即:是在激活值上乘以p?

答:因为有

由上面公式可知,在w在乘以p等同于在z上乘以p。

4.Deep learning:四十一(Dropout简单理解)实验中下面代码中的d表示什么:

反向传播函数nnbp.m中的代码:

        if(nn.dropoutFraction>0)
            d{i} = d{i} .* [ones(size(d{i},1),1) nn.dropOutMask{i}];
        end

答:其中d表示的是残差或误差delta

5.dropout的优点与缺点:

答:

优点:在训练数据较少时,可用于防止过拟合

缺点:会使训练时间加长,但不影响测试时间

一些matlab函数

1.matlab中用rng替换rand(‘seed‘,sd)、randn(‘seed‘,sd)和rand(‘state‘,sd)的通俗解释

实验

我做的是实验是重复了Deep learning:四十一(Dropout简单理解)中的实验,结果是一样的,具体可看该篇博文

参考文献:

Dropout: A simple way to prevent neural networks from overfitting [paper][bibtex][code]

Imagenet classification with deep convolutional neural networks

Improving Neural Networks with Dropout

时间: 2024-08-29 01:29:46

Deep Learning 23:dropout理解_之读论文“Improving neural networks by preventing co-adaptation of feature detectors”的相关文章

Deep Learning方向的paper

转载 http://hi.baidu.com/chb_seaok/item/6307c0d0363170e73cc2cb65 个人阅读的Deep Learning方向的paper整理,分了几部分吧,但有些部分是有交叉或者内容重叠,也不必纠结于这属于DNN还是CNN之类,个人只是大致分了个类.目前只整理了部分,剩余部分还会持续更新. 一 RNN 1 Recurrent neural network based language model RNN用在语言模型上的开山之作 2 Statistical

个人阅读的Deep Learning方向的paper整理

http://hi.baidu.com/chb_seaok/item/6307c0d0363170e73cc2cb65 个人阅读的Deep Learning方向的paper整理,分了几部分吧,但有些部分是有交叉或者内容重叠,也不必纠结于这属于DNN还是CNN之类,个人只是大致分了个类.目前只整理了部分,剩余部分还会持续更新. 一 RNN 1 Recurrent neural network based language model RNN用在语言模型上的开山之作 2 Statistical La

Paper List ABOUT Deep Learning

Deep Learning 方向的部分 Paper ,自用.一 RNN 1 Recurrent neural network based language model RNN用在语言模型上的开山之作 2 Statistical Language Models Based on Neural Networks Mikolov的博士论文,主要将他在RNN用在语言模型上的工作进行串联 3 Extensions of Recurrent Neural Network Language Model 开山之

深度学习阅读列表 Deep Learning Reading List

Reading List List of reading lists and survey papers: Books Deep Learning, Yoshua Bengio, Ian Goodfellow, Aaron Courville, MIT Press, In preparation. Review Papers Representation Learning: A Review and New Perspectives, Yoshua Bengio, Aaron Courville

【转帖】【面向代码】学习 Deep Learning(一)Neural Network

最近一直在看Deep Learning,各类博客.论文看得不少 但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox 只是跟着Andrew Ng的UFLDL tutorial 写了些已有框架的代码(这部分的代码见github) 后来发现了一个matlab的Deep Learning的toolbox,发现其代码很简单,感觉比较适合用来学习算法 再一个就是matlab的实现可以省略掉很多数据结构的代码,使算法思路非常清晰 所以我想在解读这个too

Deep Learning(深度学习)学习笔记整理系列七

Deep Learning(深度学习)学习笔记整理系列 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 3)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢. 4)阅读本文需要机器学习.计算机视觉.神经网络等等基础(如果没有也没关系了,没

Deep Learning(深度学习)学习笔记整理系列之(七)

Deep Learning(深度学习)学习笔记整理系列 [email protected] http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04-08 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主

Spark MLlib Deep Learning Neural Net(深度学习-神经网络)1.2

Spark MLlib Deep Learning Neural Net(深度学习-神经网络)1.2 http://blog.csdn.net/sunbow0/ 第一章Neural Net(神经网络) 2基础及源码解析 2.1 Neural Net神经网络基础知识 2.1.1 神经网络 基础知识参照: http://deeplearning.stanford.edu/wiki/index.php/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C 2.1.2 反向传导算法

My deep learning reading list

My deep learning reading list 主要是顺着Bengio的PAMI review的文章找出来的.包括几本综述文章,将近100篇论文,各位山头们的Presentation.全部都可以在google上找到.BTW:由于我对视觉尤其是检测识别比较感兴趣,所以关于DL的应用主要都是跟Vision相关的.在其他方面比如语音或者NLP,很少或者几乎没有.个人非常看好CNN和Sparse Autoencoder,这个list也反映了我的偏好,仅供参考. Review Book Lis