Batch Normalization

本文介绍Batch Normalization相关笔记

介绍

Batch normalization 将神经网络层的输出进行一个缩放变换使得其均值为0,方差为1。经过batch normalization后训练神经网路的速度将会更快,且降低对模型初始化的依赖。

Batch normalization 的处理流程如下: 在反向传播时,梯度计算如下:

Batch normalization的缺点

  1. 在batch size较小的时候训练会不稳定
  2. 增加了训练时间
  3. inference 和 training 阶段的结果不一样
    • 因为inference的输入通常为单个样本,不能计算相应的均值和方差。常用的实现是使用设置好的均值和方差(可能是基于训练集计算得来也可能是基于测试集计算得来);
  4. 不适用于online learning 的场景

参考

  1. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
  2. Curse of Batch Normalization
updatedupdated2021-11-062021-11-06