Dropout Learning - 防止深度神经网络过拟合
来源:互联网 发布:网页棋牌游戏源码 编辑:程序博客网 时间:2024/05/01 06:42
最近在学习caffe,里面有一个名词叫做Dropout Learning,一直没明白是什么意思,直到最近才发现一片文章介绍Dropout Learning的,希望可以给不知道的同学一定的帮助,如果想要更深入的了解可以阅读该文献,文章结尾会给出参考文献。
Dropout Learning是训练深度学习网络训练参数的一种方法,它可以避免过拟合并且可以有效结合指数个数(2n,n表示神经元的个数)的网络结构。
Dropout就是在训练网络时随机的舍弃掉隐层和可视层的一些神经元,其输入及输出连接也相应的去掉。最简单的情况便是独立的以概率P来选择一个神经元,P=0.5会使训练达到最优。但对于输入层P=1时最优。网络各层都使用权值共享。每次训练时都会随机的选择一些神经元来组成一个“变瘦”的网络,下次训练时会重新选择神经元组成新的网络,但权重会使用上次训练好的值,一直这样继续下去,直到满足误差或达到一定的迭代次数。(有n个神经元,每个神经元都有可能被选择到,所以共有Cn0+ Cn1 +Cn2+…+ Cnn=2n个,可以结合下图理解)
而在测试阶段不舍弃神经元,只是将训练网络的神经元权重乘以P,使其达到与训练时输出相同的效果。
示意图如下:
图1的左图表示网络的正常架构,右图表示使用Dropout Learning后的网络结构,有链接的神经元表示被选中的神经元,打差号的为未被选中的神经元。这样无论前向传播还是后向传播,都只使用被选择到的神经元。
图2左图表示训练时,该神经元以概率P被选到,值在其上传播时使用的权值为W。右图表示测试时,这时不舍弃任何神经元,而是将所有神经元的的权重乘以其被选择的概率P,这样可以使在测试时神经元的输出与在训练时神经元的输出相同。
这样训练之后可以防止过拟合,并且形式上好像结合了很多其他结构的网络。可能还有其他的好处未仔细看。若有错误欢迎指正,希望不会误导大家。
参考文献:<Dropout:A Simple Way to Prevent Neural Networks from Overfitting>
- Dropout Learning - 防止深度神经网络过拟合
- 深度学习Deep Learning: dropout策略防止过拟合
- dropout防止过拟合
- 深度学习lstm防止过拟合之dropout
- 浅谈 Dropout防止过拟合
- 浅谈dropout--防止过拟合的方法
- TensorFlow中的Dropout防止过拟合overfiting
- 神经网络抵制过拟合神器:Dropout 手把手论文入门 — 深度学习 DL 番外篇
- 神经网络简介-防止过拟合
- TensorFlow学习---tf.nn.dropout防止过拟合
- 【转载】TensorFlow学习---tf.nn.dropout防止过拟合
- pytorch Dropout过拟合
- dropout与过拟合
- 神经网络如何防止过拟合(总结)
- 浅谈深度学习尝常识:泛化、过拟合、Dropout、Attention
- 浅谈深度学习尝常识:泛化、过拟合、Dropout、Attention
- 深度学习防止过拟合的方法
- 深度学习防止过拟合的方法
- Ctrl热键意外触发的问题
- AtomicInteger
- 当回车关联查询按钮时,如何解决页面重新刷新的问题!
- ALSA声卡驱动中的DAPM详解之二:widget-具备路径和电源管理信息的kcontrol
- android http 框架volley 的学习 。。
- Dropout Learning - 防止深度神经网络过拟合
- 对html与body的一些研究与理解
- onvif 客户端发现
- 在tomcat下怎么默认启动一个项目而不用写项目名
- PLSQL:[1]plsql中文乱码,显示问号
- Struts2与Spring整合
- Android xml中shape(画图)的使用
- js验证网址等Javascript常见验证代码合集
- ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route