我注意到VGG 16
如果我增加批量大小,我的网络性能会更好 到 . 我还观察到,使用批量大小,有和没有批量归一化的结果有很大的不同。批处理规范结果更差。随着我增加批量大小,使用和不使用批量标准化的性能变得更接近。这里发生了一些时髦的事情。
所以我想问一下batch size的增加对batch normalization有影响吗?
我注意到VGG 16
如果我增加批量大小,我的网络性能会更好 到 . 我还观察到,使用批量大小,有和没有批量归一化的结果有很大的不同。批处理规范结果更差。随着我增加批量大小,使用和不使用批量标准化的性能变得更接近。这里发生了一些时髦的事情。
所以我想问一下batch size的增加对batch normalization有影响吗?
通过增加批量大小,您的步骤可以更准确,因为您的抽样将更接近真实人口。如果您增加批次的大小,您的批次标准化可以得到更好的结果。原因与输入层完全一样。对于内部激活,样本将更接近总体。
虽然确实增加批量大小会使批量归一化统计数据(均值、方差)更接近真实总体,并且还会使梯度估计更接近在整个总体上计算的梯度,从而使训练更稳定(随机性更小) ),有必要注意我们不使用我们可以计算的最大批量大小是有原因的。
假设我们的硬件配置允许我们使用 10K 样本批量进行训练。当然,我们的 BN 会得到更精确的统计数据,我们的梯度会更准确,更接近真实梯度。然而,这并不一定是好的,因为mini -batch SGD 被证明在批量不大的情况下效果更好。随着批次变得非常大,mini-batch SGD 变得越来越像它的父亲梯度下降法,而且由于计算原因和局部最小值相关的原因,这个古老的怪物并不适合深度神经网络等非凸优化问题。