卷积神经网络-Dropout

Posted yanshw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积神经网络-Dropout相关的知识,希望对你有一定的参考价值。

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,测试时不使用。

以上是关于卷积神经网络-Dropout的主要内容,如果未能解决你的问题,请参考以下文章

在 Keras 的卷积层上使用 Dropout

PyTorch 卷积网络正则化 DropBlock

深度学习基础之 Dropout

卷积神经网络(原理与代码实现)

卷积神经网络(原理与代码实现)

卷积神经网络形状