含义
在训练过程中,对神经网络单元按照一定比例暂时将其丢弃。
原理
由于网络参数过多,训练数据少,或者训练次数过多,会产生过拟合的现象。
dropout产生的一个重大原因就是为了避免过拟合。 每一层的神经元按照不同的概率进行dropout,这样每次训练的网络都不一样,对每一个的batch就相当于训练了一个网络,dropout本质是一种模型融合的方式,当dropout设置为0.5时,模型总类最多为2^n, 另外在更新参数时,只对保留的神经元进行更新,也能加快训练速度。
应用
在embedding之后可以使用,tensorflow中如下: tf.nn.dropout(E, keep_prob)
参考: