DropOut如何与卷积层一起工作?


10

Dropout(论文解释)将某些神经元的输出设置为零。因此对于MLP,您可以为鸢尾花数据集采用以下架构:

4 : 50 (tanh) : dropout (0.5) : 20 (tanh) : 3 (softmax)

它将像这样工作:

softmax(W3tanh(W2mask(D,tanh(W1input_vector)))

与,,,,(为简单起见,忽略了偏见​​)。input_vectorR4×1W1R50×4D{0,1}50×1W2R20×50W3R20×3

与和D=(d)ij

dijB(1,p=0.5)

其中操作将与逐点相乘(请参见Hadamard product)。mask(D,M)DM

因此,我们每次都只是对矩阵采样,因此滤失成为结点与0的乘积。D

但是对于CNN来说,我不清楚究竟会删除哪些内容。我可以看到三种可能性:

  1. 删除完整的功能图(因此是内核)
  2. 删除内核的一个元素(将内核的元素替换为0)
  3. 删除要素地图的一个元素

请在您的答案中添加参考/引用。

我的想法

我认为千层面(3)(请参阅代码)。这可能是最简单的实现。但是,更接近原始想法的可能是(1)。

似乎与Caffe类似(请参阅代码)。对于张量流,用户必须决定(代码 -我不确定noise_shape=None传递时会发生什么)。

应该如何

(2)和(3)并没有多大意义,因为它会使网络向空间位置添加不变性,这可能是不希望的。因此(1)是唯一有意义的变体。但是我不确定如果使用默认实现会发生什么。


我在Lasagne用户组中也提出了这个问题。
马丁·托马

我的朋友指出(2)和(3)可能不是一个好主意,因为它可能会迫使网络在空间上传播信息。
马丁·托马(Marin Thoma)

Answers:


1

如您所提到的,对掩码矩阵进行采样并与第层的特征图中的激活相乘,以产生丢失的修改后的激活,然后将其与下一层的滤波器卷积。(3)lW(l+1)

有关更多详细信息,我认为本文的第3节可能会对您有所帮助:最大合并和卷积辍学。特别是3.2。

测试时,您将使用网络的所有节点,但滤波器的权重将根据保留概率进行缩放,如本文所述。

请随时完善或纠正我的答案。

希望这至少可以有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.