1、Batch Norm(批量归一化)能提高模型的泛化能力
Covariate Shift(协变量转变)问题:
对于已学习的 X → Y 的映射、如果 X 的分布改变、则可能需要重新训练模型
2、Neural Network(神经网络)中的 Covairate Shift 问题
隐藏层的输出值始终是变化的、Batch Norm 的作用是减小这种变化、通过保持 Mean(均值)与方 Variance(方差)不变
弱化了前后两层参数之间的耦合、使每层神经元能够自行学习,更加独立于其他层的神经元、从而使整个训练过程变快
3、Batch Norm 还具有少许的正则化 的效果
通过像隐藏层添加噪声(每次只在一个 mini-batch 上训练)、使下一层的神经元不会对上一层的某个神经元有过多的依赖、类似于 Dropout
因为添加的噪声很小、所以正则化效果并不明显、如果想具有明显的正则化效果,可以与 Dropout 一起使用
如果 mini-batch size 很大(例如512)、会减小这种噪声,同时减小正则化效果
不要将 Batch Norm 视为一种正则化手段、而是对隐藏层的运算进行归一化从而提高训练速度