激活或权重丢失

sdi*_*abr 4 python neural-network regularized conv-neural-network tensorflow

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

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

对于示例,让我们想象 2 个卷积层,然后是 1 个全连接层。“A2”是第二个卷积层的激活。我应该将 dropout 应用于这些激活,还是应该将其应用于以下全连接层的权重?还是真的无所谓?

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

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

ash*_*ids 5

两者都有效。当你把它叫做激活辍学,当你把它的权重被称为dropconnect。DropConnect 是 DropOut 方法的通用版本。DropConnect 论文中的这张图片很好地解释了这一点。在此处输入图片说明

在 Dropconnect 的情况下,如果节点的所有权重u3都为零(3/4 为零),这与在r3节点上应用dropout相同。另一个区别在于权重的掩码矩阵。在此处输入图片说明

左一表示 dropconnect 的掩码矩阵,而右一表示将 dropout 应用于两个连续层时的有效掩码矩阵。注意 dropout 的掩码矩阵中的模式。作者表明dropconnect 在基准数据集中击败了 dropout 并产生了最先进的结果。

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