1

我到处读到,除了提高准确性方面的表现外,“批量标准化使训练更快”。

我可能误解了一些东西(因为 BN 已不止一次被证明是有效的),但对我来说这似乎是不合逻辑的。

实际上,将 BN 添加到网络中会增加要学习的参数数量:BN 带来了要学习的“Scales”和“offset”参数。请参阅:https ://www.tensorflow.org/api_docs/python/tf/nn/batch_normalization

网络如何在“有更多工作要做”的同时更快地训练?

(我希望我的问题是合法的,或者至少不是太愚蠢)。

谢谢 :)

4

2 回答 2

1

批量归一化通过需要更少的迭代来收敛到给定的损失值来加速训练。这可以通过使用更高的学习率来完成,但使用较小的学习率您仍然可以看到改进。论文非常清楚地表明了这一点。

与 sigmoid 激活相比,使用 ReLU 也有这种效果,如原始 AlexNet 论文(没有 BN)所示。

批量归一化也使优化问题“更容易”,因为最小化协变量偏移避免了损失停滞或缓慢下降的许多平台期。它仍然可能发生,但频率要低得多。

于 2017-06-27T15:12:33.397 回答
0

批量标准化将较低层激活的分布固定到其下一层。Scales 和 offset 只是将该分布“移动”到更有效的位置,但在每个训练步骤中它仍然是一个固定分布。这种固定意味着高层的参数调整不需要担心低层参数的修改,这使得训练更有效率。

于 2017-09-12T22:08:03.037 回答