关于 Dropout 可以防止过拟合,出处:深度学习领域大神 Hinton,在2012年文献:《Improving neural networks by preventing co-adaptation of feature detectors》提出的。

  【Dropout 可以防止过拟合】

  运用了dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络(后面简称为“半数网络”),每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误的。随着训练的进行,大部分半数网络都可以给出正确的分类结果,那么少数的错误分类结果就不会对最终结果造成大的影响。

  在每次训练的时候,让一半的特征检测器停过工作,这样可以提高网络的泛化能力,Hinton把它称之为dropout。

  Hinton认为:过拟合,可以通过阻止某些特征的协同作用来缓解。在每次训练的时候,每个神经元有百分之50的几率被移除,这样可以让一个神经元的出现不应该依赖于另外一个神经元。

  每次将一个神经网络进行dropout之后就是对这个网络进行了瘦身处理,有一些参数被dropout掉,得到了一个更加简单的网络。

  【迭代过程】

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

  2. 保持输入输出层不变,按照BP算法更新神经网络中的权值(虚线连接的单元不更新,因为它们被“临时删除”了)。

  以上就是一次迭代的过程,在第二次迭代中,也用同样的方法,只不过这次删除的那一半隐层单元,跟上一次删除掉的肯定是不一样的,因为我们每一次迭代都是“随机”地去删掉一半。第三次、第四次……都是这样,直至训练结束。

  另外一个可以防止过拟合的原因是:我们可以把dropout理解为模型平均。 假设我们要实现一个图片分类任务,我们设计出了1000个网络,这1000个网络,我们可以设计得各不相同,然后我们对这1000个网络进行训练,训练完后我们采用平均的方法,进行预测,这样肯定可以提高网络的泛化能力,或者说可以防止过拟合,因为这1000个网络,它们各不相同,可以提高网络的稳定性。而所谓的dropout我们可以这么理解,这 n 个网络,它们权值共享,并且具有相同的网络层数(这样可以大大减小计算量)。我们每次dropout后,网络模型都可以看成是整个网络的子网络。(需要注意的是如果采用dropout,训练时间大大延长,但是对测试阶段没影响)。

根据个人实际经验,dropout在数据量比较小的时候,不建议使用,效果并没有特别好,dropout的值一般来说取值为0.5效果会比较好。

【Reference】

1、dropout为什么能够防止过拟合

2、浅谈 Dropout防止过拟合

最新文章

  1. 由于目标计算机积极拒绝,无法连接。 192.168.1.106:8078 说明: 执行当前 Web 请求期间,出现未经处理的异常。
  2. Believe Me , I Can !
  3. ex2-注释和井号
  4. HTML5树叶飘落动画
  5. HTML5之创新的视频拼图剖析式学习之二
  6. Java高级之内存模型分析
  7. eclipse快捷键使用
  8. 已有数据表的Mysql字符编码修改
  9. CodeBlocks对C++模板的支持
  10. ECMAScript 6 proxies
  11. mac给文件批量添加后缀名
  12. vsftpd启动问题简记
  13. C#smtp邮件消息提醒的一些bug总结
  14. Python自带IDE设置字体
  15. [CF575B]Bribes
  16. react的super(props)
  17. ubuntu chmod命令的使用
  18. live555峰哥的私房菜(二)-----计划任务(TaskScheduler)探讨
  19. 【Android】Handler详解
  20. express有中间件的增删改查

热门文章

  1. jquery ajax 的 $.get()用法详解
  2. NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立
  3. JPA(七):映射关联关系------映射双向多对一的关联关系
  4. (转)C#垃圾回收机制详解
  5. Sharepoint claim认证的login name
  6. Eclipse导入git上的maven web项目 部署 - lpshou
  7. [Python]将Excel文件中的数据导入MySQL
  8. vuejs 过渡效果
  9. Vue项目的npm环境搭建
  10. Percona-XtraBackup系列一:安装 perl(Time::HiRes) is needed by percona-xtrabackup-2.2.10-1.el6.x86_64