我对术语“Dropout”和“BatchNorm”之间的关系有点困惑。我认为,
Dropout 是正则化技术,仅在训练期间使用。
BatchNorm 是一种技术,用于加快训练速度,提高准确性等 但我也看到一些关于问题的相互矛盾的意见:BatchNorm 正则化技术吗?
那么,请有人回答一些问题:
BatchNorm 是正则化技术吗?为什么?
我们应该只在训练过程中使用 BatchNorm 吗?为什么?
我们可以同时使用 Dropout 和 BatchNorm 吗?如果可以,按什么顺序?
我对术语“Dropout”和“BatchNorm”之间的关系有点困惑。我认为,
Dropout 是正则化技术,仅在训练期间使用。
BatchNorm 是一种技术,用于加快训练速度,提高准确性等 但我也看到一些关于问题的相互矛盾的意见:BatchNorm 正则化技术吗?
那么,请有人回答一些问题:
BatchNorm 是正则化技术吗?为什么?
我们应该只在训练过程中使用 BatchNorm 吗?为什么?
我们可以同时使用 Dropout 和 BatchNorm 吗?如果可以,按什么顺序?
批量归一化可以解释为一种隐式正则化技术,因为它可以分解为总体归一化项和伽马衰减项,后者是正则化的一种形式。这在 ICLR'19 会议上发表的文章Towards Understanding Regularization in Batch Normalization中有描述。
批量标准化发生在训练时。然而,在推理时,我们仍然应用归一化,但使用训练期间学习的均值和方差统计,而不是当前批次。Batch normalization的Wikipedia 页面对此进行了很好的描述。
可以在同一个网络中同时使用 dropout 和批量归一化,没有特定的顺序。但是,在某些设置中,它们组合的性能比单独应用它们要差。这在 CVPR'19 会议上发表的文章通过 Variance Shift 理解 Dropout 和 Batch Normalization 之间的不和谐进行了研究:
[...] 当我们将该网络的状态从训练转移到测试时,Dropout 会改变特定神经单元的方差。但是,BN 在测试阶段保持其统计方差,该方差是从整个学习过程中累积的。Dropout 和 BN 的方差不一致(我们将此方案命名为“方差偏移”)导致推理中的不稳定数值行为,最终导致错误的预测。[...]