您的位置:首页 > 运维架构

CNN中应用dropout需要了解的所有最新知识

2018-03-07 22:10 811 查看

Dropout

在神经网络(深度学习)训练过程中,为了降低模型的过拟合程度,我们会按照一定的概率,随机将某些神经元暂时从网络中丢弃。

这是工程上常用的一种做法,理解起来也很简单。根据AndrewNG的最新课程《深度学习》,笔者又对其有了更多认识。

关于Dropout需要知道的

Dropout只发生在模型的训练阶段,预测、测试阶段则不用Dropout

直观认识:Dropout随机删除神经元后,网络变得更小,训练阶段也会提速

事实证明,dropout已经被正式地作为一种正则化的替代形式

有了dropout,网络不会为任何一个特征加上很高的权重(因为那个特征的输入神经元有可能被随机删除),最终dropout产生了收缩权重平方范数的效果

Dropout的功能类似于L2正则化,但Dropout更适用于不同的输入范围

如果你担心某些层比其它层更容易过拟合,可以把这些层的keep-prob值设置的比其它层更低

Dropout主要用在计算机视觉领域,因为这个领域我们通常没有足够的数据,容易过拟合。但在其它领域用的比较少

Dropout的一大缺点就是代价函数不再被明确定义,所以在训练过程中,代价函数的值并不是单调递减的

总结

Dropout是正则化的一种,它有助于防止过拟合

使用时,先关闭Dropout,设置keep-prob为1,使代价函数的值单调递减,然后再打开Dropout
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: