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

Dropout

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

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

关于Dropout需要知道的

  • Dropout只发生在模型的训练阶段,预测、测试阶段则不用Dropout
  • 直观认识:Dropout随机删除神经元后,网络变得更小,训练阶段也会提速
  • 事实证明,dropout已经被正式地作为一种正则化的替代形式
  • 有了dropout,网络不会为任何一个特征加上很高的权重(因为那个特征的输入神经元有可能被随机删除),最终dropout产生了收缩权重平方范数的效果
  • Dropout的功能类似于L2正则化,但Dropout更适用于不同的输入范围
  • 如果你担心某些层比其它层更容易过拟合,可以把这些层的keep-prob值设置的比其它层更低
  • Dropout主要用在计算机视觉领域,因为这个领域我们通常没有足够的数据,容易过拟合。但在其它领域用的比较少
  • Dropout的一大缺点就是代价函数不再被明确定义,所以在训练过程中,代价函数的值并不是单调递减的

总结

  • Dropout是正则化的一种,它有助于防止过拟合
  • 使用时,先关闭Dropout,设置keep-prob为1,使代价函数的值单调递减,然后再打开Dropout

猜你喜欢

转载自blog.csdn.net/ybdesire/article/details/79477808