介绍
Batch normalization 将神经网络层的输出进行一个缩放变换使得其均值为0,方差为1。经过batch normalization后训练神经网路的速度将会更快,且降低对模型初始化的依赖。
Batch normalization 的处理流程如下: 在反向传播时,梯度计算如下:
Batch normalization的缺点
- 在batch size较小的时候训练会不稳定
- 增加了训练时间
- inference 和 training 阶段的结果不一样
- 因为inference的输入通常为单个样本,不能计算相应的均值和方差。常用的实现是使用设置好的均值和方差(可能是基于训练集计算得来也可能是基于测试集计算得来);
- 不适用于online learning 的场景