激活或权重的丢失
Dropout in activations or in weights
一个相当简单的,但现在只是疯狂地使用它。
当应用 dropout 来正则化我的神经网络时,应该在哪里应用?
对于这个例子,我们假设有 2 个卷积层,后面跟着 1 个全连接层。 "A2" 是第二个 conv 层的激活。我应该将 dropout 应用于这些激活,还是应该将其应用于以下全连接层的权重?或者真的不重要?
我的直觉告诉我,正确的做法是在全连接层的权重上应用 dropout 而不是在第二个 conv 层的激活中,但我在很多地方看到了相反的情况。
我看过两个类似的问题,但 none 个问题的答案令人满意。
两者都有效。当你放弃激活时,它被称为 dropout,当你放弃权重时,它被称为 dropconnect。 DropConnect 是 DropOut 方法的通用版本。这张来自 DropConnect 论文的图片解释得很好。
在 Dropconnect 的情况下,如果节点 u3
的所有权重都为零(3/4 为零),这与在 r3
节点上应用 dropout 相同。另一个区别在于权重的掩码矩阵。
左图为dropconnect的mask矩阵,右图为dropout应用于连续两层时的有效mask矩阵。
注意 dropout 掩码矩阵中的模式。
作者 show that dropconnect 在基准数据集中击败了 dropout 并产生了最先进的结果。
因为 dropconnect 是我会使用的通用版本。
一个相当简单的,但现在只是疯狂地使用它。
当应用 dropout 来正则化我的神经网络时,应该在哪里应用?
对于这个例子,我们假设有 2 个卷积层,后面跟着 1 个全连接层。 "A2" 是第二个 conv 层的激活。我应该将 dropout 应用于这些激活,还是应该将其应用于以下全连接层的权重?或者真的不重要?
我的直觉告诉我,正确的做法是在全连接层的权重上应用 dropout 而不是在第二个 conv 层的激活中,但我在很多地方看到了相反的情况。
我看过两个类似的问题,但 none 个问题的答案令人满意。
两者都有效。当你放弃激活时,它被称为 dropout,当你放弃权重时,它被称为 dropconnect。 DropConnect 是 DropOut 方法的通用版本。这张来自 DropConnect 论文的图片解释得很好。
在 Dropconnect 的情况下,如果节点 u3
的所有权重都为零(3/4 为零),这与在 r3
节点上应用 dropout 相同。另一个区别在于权重的掩码矩阵。
左图为dropconnect的mask矩阵,右图为dropout应用于连续两层时的有效mask矩阵。 注意 dropout 掩码矩阵中的模式。 作者 show that dropconnect 在基准数据集中击败了 dropout 并产生了最先进的结果。
因为 dropconnect 是我会使用的通用版本。