dropout layer的目的是为了防止CNN 过拟合,详情见Dropout: A Simple Way to Prevent Neural Networks from Overfitting。在训练过程中,将神经网络进行采样,也就是随机的让神经元激活值为0,而在测试时不再采用dropout。通常设置随机采样概率为0.5,也可以通过验证集来确定采样概率。
Dropout网络1.前向传播
训练阶段:前向传播给定每个神经元一个随机值(0~1),假定设置采样阈值为0.5,如果该神经元对应的随机值小于0.5,则设置该神经元为0,否则设置该神经元值为2乘以原值,(1/0.5),并把所有神经元对应的随机值保存下来,在后向传播是需要使用。
测试阶段:无需dropout。
2.反向传播
读取在前向传播记录的随机值,同样的操作:该梯度值对应的随机值小于0.5,则设置该梯度值为0,否则设置该梯度值值为2乘以原值,(1/0.5)。
网友评论