dropout 是神经网络用来防止过拟合的一种方法,很简单,但是很实用。

基本思想是以一定概率放弃被激活的神经元,使得模型更健壮,相当于放弃一些特征,这使得模型不过分依赖于某些特征,即使这些特征是真实的,当然也可能是假的。

大致步骤如下

1. 在神经元 H1 被激活后,随机生成一组数据 U1 和一个0-1的随机数 p

  H1 = np.maximum(0, np.dot(W1, X) + b1)
  U1 = np.random.rand(*H1.shape) < p 
2. U1中小于p的被置1,大于p的被置0
  H1 *= U1 
  p 越大,被置1的越多,被保留的神经元越多
  
这种方法只能用在训练过程,测试过程不能使用,你非要使用,也可以。
因为训练是为了得到一个稳定的模型,但是测试时是实实在在的个体,是什么,理论上预测就是什么,如果你丢掉部分特征,那就是其他个体了,或者一会是A,一会是B,导致输出不稳定。
 
tf会自动处理dropout的使用场景,即tf已经设定在训练时使用dropout,测试时不使用。

最新文章

  1. PSP个人项目耗时记录
  2. GUID全局唯一标识符相关知识了解
  3. web应用配置
  4. Qt4过渡至Qt5
  5. Codeforce Round #211 Div2
  6. 目前比较全的CSS重设(reset)方法总结
  7. Android中xml设置Animation动画效果详解
  8. MySQL中,修改表的某一字段的部分值
  9. (转)迎接 Entity Framework 7
  10. NOIP2000提高组 单词接龙
  11. 一起来学linux:用户与用户组
  12. [基础规范]JavaBeans规范
  13. 实现Windows程序的数据更新
  14. 微信公众号开发,weUi组件,问题总结
  15. j2EE经典面试题
  16. 【转载】C#中自定义Sort的排序规则IComparable接口
  17. JavaScript如何正确处理Unicode编码问题!
  18. python - 代码缩进
  19. alpha冲刺2/10
  20. eclipse运行web项目注意有些坑

热门文章

  1. usaco Transformations
  2. Confluence 6 内容在空间中是如何组织的
  3. PHP单例模式实例,连接数据库对类的引用
  4. Appium移动自动化测试(一)----Appium的安装
  5. spring boot(十)邮件服务
  6. bat语法需要注意的地方
  7. 使用saltui实现图片预览查看
  8. Http简单解析过程
  9. 数据结构与算法之PHP实现二叉树的遍历
  10. Units about ASM