【发布时间】:2016-06-01 16:03:26
【问题描述】:
因为“层”这个词在应用于卷积层时通常意味着不同的东西(有些通过池化将所有内容视为单个层,其他将卷积、非线性和池化视为单独的“层”;see fig 9.7)我不清楚在卷积层中的何处应用 dropout。
在非线性和池化之间会发生 dropout 吗?
例如,在 TensorFlow 中会是这样的:
kernel_logits = tf.nn.conv2d(input_tensor, ...) + biases
activations = tf.nn.relu(kernel_logits)
kept_activations = tf.nn.dropout(activations, keep_prob)
output = pool_fn(kept_activations, ...)
【问题讨论】:
-
Another example 建议在池化后应用 dropout。
-
我一直在做实验,使用 dropout 而不是对 2x2 区域的图像进行平均下采样。我的理论是,不是对每个 2x2 图像区域进行下采样,而是使用 dropout 来有效地制作更多略有不同的图像,那么我将有效地拥有更多的训练样本,并且能够长时间训练并获得更好的结果。在尝试了许多不同的设置和长时间的训练后,dropout 作为一种将下采样转化为内容生成的方法被证明是无效的。
-
更新,使用 3x3 实际上有很大的不同。在 3x3 下采样上使用 dropout 而不是仅对 3x3 下采样进行平均会产生显着差异。在 MNIST 上,这意味着在 3x3 下采样到 conv 然后 maxpool 上使用 dropout 的正确率为 92.5%,而在 3x3 下采样到 conv 然后 maxpool 上使用平均值的正确率为 84.2%。
标签: machine-learning tensorflow