dropout 和 drop connect 有什么区别?

机器算法验证 神经网络 辍学
2022-01-27 00:27:32

dropout 和 drop connect 有什么区别?

AFAIK,dropout 在训练期间随机丢弃隐藏节点,但将它们保持在测试中,并且 drop connect 丢弃连接。

但是删除连接不等于删除隐藏节点吗?节点(或连接)不只是一组权重吗?

2个回答

DropOut 和 DropConnect 都是旨在防止神经网络中单元“共同适应”的方法。换句话说,我们希望单元独立地从其输入中提取特征,而不是依赖其他神经元来这样做。

假设我们有一个像这样的多层前馈网络(拓扑并不重要)。我们担心中间层的黄色隐藏单元会协同适应。

示例 5-4-3 网络

辍学

为了应用 DropOut,我们随机选择单元的一个子集,并将它们的输出钳制为零,而不管输入如何;这有效地从模型中删除了这些单位。每次我们展示一个训练示例时,都会随机选择一个不同的单元子集。

以下是两种可能的网络配置。在第一个演示文稿(左)中,第 1 和第 3 个单元被禁用,但在随后的演示文稿中随机选择了第 2 个和第 3 个单元。在测试时,我们使用完整的网络,但重新调整权重以补偿所有这些现在都可以激活的事实(例如,如果你删除一半的节点,权重也应该减半)。

辍学示例

DropConnect

DropConnect 的工作方式类似,除了我们禁用单个权重(即,将它们设置为零)而不是节点,因此节点可以保持部分活动。从示意图上看,它看起来像这样:

DropConnect

比较

这些方法都有效,因为它们可以有效地让您同时训练多个模型,然后对它们进行平均以进行测试。例如,黄色层有四个节点,因此有 16 种可能的 DropOut 状态(全部启用、#1 禁用、#1 和#2 禁用等)。

DropConnect 是 DropOut 的泛化,因为它产生了更多可能的模型,因为几乎总是连接多于单元。但是,您可以在单个试验中获得类似的结果。例如,右侧的 DropConnect 网络有效地丢弃了 Unit #2,因为所有传入连接都已被删除。

延伸阅读

原始论文很容易获得,并且包含更多细节和实证结果。

是的,但是它们在权重下降的方式上略有不同。

这些是 DropConnect(左)和 dropout(右)的公式。

在此处输入图像描述 在此处输入图像描述

所以 dropout 对激活应用一个掩码,而 DropConnect 对权重应用一个掩码。

DropConnect 论文说,从某种意义上说,它是 dropout 的一种概括。

DropConnect 是 Dropout 的推广,其中每个连接,而不是 Dropout 中的每个输出单元,都可以以概率 p 被丢弃。