激活或权重中的辍学

时间:2018-03-27 12:20:52

标签: python tensorflow neural-network conv-neural-network regularized

一个相当容易的,但现在只是变得疯狂。

当应用dropout来规范我的神经网络时,应该在哪里应用它?

对于这个例子,让我们想象2个卷积层,然后是1个完全连接的层。 “A2”是第二个转换层的激活。我应该对这些激活应用dropout,还是应该将它应用于以下完全连接层的权重?或者它并不重要?

我的直觉告诉我,正确的做法是对完全连接层的权重应用dropout,而不是在第二个conv层的激活中应用dropout,但我在许多地方看到了相反的情况。

我见过两个类似的问题,但没有一个问题令人满意。

1 个答案:

答案 0 :(得分:3)

两者都有效。当您放弃激活时,它被称为 dropout ,当您放下权重时,它被称为 dropconnect 。 DropConnect是DropOut方法的通用版本。 DropConnect论文中的这张图片很好地解释了这一点。enter image description here

如果节点u3的所有权重都为零(3/4为零),则在Dropconnect的情况下,这与在r3节点上应用丢失相同。另一个区别在于权重的掩码矩阵。enter image description here

左边一个表示dropconnect的掩码矩阵,右边一个表示如果将dropout应用于两个连续层的有效掩码矩阵。 请注意丢失掩码矩阵中的模式。 作者show that dropconnect击败基准数据集中的丢失并产生最先进的结果。

因为,dropconnect是我会​​使用它的通用版本。