Keras
中的dropout实现参考了该论文。该论文提出,在测试时使用单个神经网络,而不使用dropout。该网络的权重是训练好的权重的缩小版本。如果在训练时以概率p保留一个单元,则该单元的输出权重在测试时将乘以p。Keras文档指出,dropout仅在训练期间使用,并且在测试时简单地传递层的输出。在Keras的Dropout实现中,我找不到缩小权重的代码,因为这一步骤是使dropout起作用的基本步骤,它相当于在“子网络”的集合中取中间层的期望输出。没有这样做,计算不再被视为从这些“子网络”的集合中随机抽样。因此,我的问题是:如果有的话,Keras中是否实现了dropout的缩小效应?更新1: 好的,Keras使用反转Dropout,但在Keras文档和代码中称为Dropout。链接http://cs231n.github.io/neural-networks-2/#reg似乎并没有表明这两者是等价的。在https://stats.stackexchange.com/questions/205932/dropout-scaling-the-activation-versus-inverting-the-dropout的答案中也是如此。我可以看到它们做了类似的事情,但我还没有见过有人说它们完全相同。我认为它们不相同。
所以一个新的问题:dropout和inverted dropout是等价的吗?明确一下,我正在寻找数学上的理由来说明它们是否相等。