CNN 中的 Dropout 与 FCNN 中的 Dropout

数据挖掘 神经网络 美国有线电视新闻网 辍学
2021-10-08 16:32:31

在 PyTorchnn模块中有两种类型的 dropout:

  • 正常的 Dropout - 在训练期间,使用来自伯努利分布的样本以概率 p 将输入张量的一些元素随机归零。每个通道将在每次前转呼叫时独立归零。
  • A Dropout2d - 将整个通道随机归零。使用来自伯努利分布的样本,每个通道将在每个前向呼叫中以概率 p 独立清零。

我的问题是当我们使用 CNN 时,我们在卷积层中使用哪个 dropout。本文中,据说我们使用第一种。但我不太确定一般做法是什么。

2个回答

检查这篇论文:

https://arxiv.org/pdf/1411.4280.pdf

在 3.2 节中,他们详细讨论了标准 dropout 在卷积层中失败的原因以及空间 dropout 的概念。全连接网络通过单个神经元之间的连接学习,而卷积通过特征学习。从某种意义上说,丢弃整个特征而不是单个神经元可以被认为是常规丢弃的卷积版本。

在我看来,将整个频道随机归零代表了太大的信息丢失。因此,我强烈推荐第一种。

但是,我只会将 dropout 应用于卷积部分之后的密集层。我认为最好保留尽可能多的图像数据。但这只是个人喜好/建议。

希望这会有所帮助,否则请告诉我。