dropout 和 drop connect 有什么区别?
AFAIK,dropout 在训练期间随机丢弃隐藏节点,但将它们保持在测试中,并且 drop connect 丢弃连接。
但是删除连接不等于删除隐藏节点吗?节点(或连接)不只是一组权重吗?
dropout 和 drop connect 有什么区别?
AFAIK,dropout 在训练期间随机丢弃隐藏节点,但将它们保持在测试中,并且 drop connect 丢弃连接。
但是删除连接不等于删除隐藏节点吗?节点(或连接)不只是一组权重吗?
DropOut 和 DropConnect 都是旨在防止神经网络中单元“共同适应”的方法。换句话说,我们希望单元独立地从其输入中提取特征,而不是依赖其他神经元来这样做。
假设我们有一个像这样的多层前馈网络(拓扑并不重要)。我们担心中间层的黄色隐藏单元会协同适应。
为了应用 DropOut,我们随机选择单元的一个子集,并将它们的输出钳制为零,而不管输入如何;这有效地从模型中删除了这些单位。每次我们展示一个训练示例时,都会随机选择一个不同的单元子集。
以下是两种可能的网络配置。在第一个演示文稿(左)中,第 1 和第 3 个单元被禁用,但在随后的演示文稿中随机选择了第 2 个和第 3 个单元。在测试时,我们使用完整的网络,但重新调整权重以补偿所有这些现在都可以激活的事实(例如,如果你删除一半的节点,权重也应该减半)。
DropConnect 的工作方式类似,除了我们禁用单个权重(即,将它们设置为零)而不是节点,因此节点可以保持部分活动。从示意图上看,它看起来像这样:
这些方法都有效,因为它们可以有效地让您同时训练多个模型,然后对它们进行平均以进行测试。例如,黄色层有四个节点,因此有 16 种可能的 DropOut 状态(全部启用、#1 禁用、#1 和#2 禁用等)。
DropConnect 是 DropOut 的泛化,因为它产生了更多可能的模型,因为几乎总是连接多于单元。但是,您可以在单个试验中获得类似的结果。例如,右侧的 DropConnect 网络有效地丢弃了 Unit #2,因为所有传入连接都已被删除。
原始论文很容易获得,并且包含更多细节和实证结果。