我猜你还没有很好地理解 dropout 的概念。首先,我们应用它的原因是我们在架构中添加了一些噪音,以便不依赖于任何特殊节点。原因是观察到在训练网络时,在过度拟合之后,一些神经元的权重会增加,导致网络依赖于它们。通过利用 dropout,我们不再依赖任何节点,因为可以在训练时丢弃它。
现在,回答你的问题。首先,您必须牢记这一点,概率显示了在层中删除节点的机会。因此,例如,机会 0.5 并不意味着您将拥有这两个节点。这只是意味着在使用 dropout 之后,每个节点的 drop 机会都是一半。Dropout 用于图层。通常在全连接层中使用它。您设置了超参数,这是将节点保留在层中的机会。在测试时,您不会删除任何节点。我们不会将神经元乘以概率。概率指定该节点存在的机会。
好吧,多克!我更新答案。正如你在论文中看到的那样,
在测试时,明确地平均来自指数级多个细化模型的预测是不可行的。然而,一种非常简单的近似平均方法在实践中效果很好。这个想法是在测试时使用单个神经网络而不会丢失。该网络的权重是经过训练的权重的缩小版本。如果在训练期间以概率 p 保留一个单元,则该单元的传出权重在测试时乘以 p,如图 2 所示。这确保了对于任何隐藏单元的预期输出(在用于在训练时丢弃单元的分布下time) 与测试时的实际输出相同。通过进行这种缩放,可以将具有共享权重的 2n 个网络组合成一个神经网络,以便在测试时使用。
我想了解它的最简单方法是观看此视频。正如您所看到的,有不同的实现,但它被相乘的原因是,对于任何隐藏单元,预期输出(在用于在训练时丢弃单元的分布下)与测试时的实际输出相同。简而言之,这样做是为了不改变层输出的分布。