我随处可读,除了提高准确度方面的表现外,还有#34;批量标准化使培训更快,#34;。
我可能误解了一些事情(导致BN被证明不止一次有效)但对我来说它似乎是不公平的王。
实际上,将BN添加到网络中会增加要学习的参数数量:使用BN来" Scales"和"偏移"要学习的参数。请参阅:https://www.tensorflow.org/api_docs/python/tf/nn/batch_normalization
如果有更多的工作要做,网络如何能够更快地训练" ?
(我希望我的问题是合法的,或者至少不是太愚蠢)。
谢谢:)
答案 0 :(得分:1)
批量标准化通过要求较少的迭代收敛到给定的损失值来加速训练。这可以通过使用更高的学习率来完成,但是学习率越低,您仍然可以看到改进。这篇论文非常清楚地表明了这一点。
与sigmoid激活相比,使用ReLU也具有此效果,如原始AlexNet论文(没有BN)所示。
批量标准化也使优化问题变得更容易"因为最小化协变量偏移避免了大量的平稳,其中损失停滞或缓慢减少。它仍然可以发生,但它的频率要低得多。
答案 1 :(得分:0)
批量标准化将较低层激活的分布固定到其下一层。 Scales和offset只是将该分布“移动”到更有效的位置,但在每个训练步骤中它仍然是固定分布。这种固定意味着更高层的参数调整不需要担心下层参数的修改,这使得训练更有效。