Group Normalization

欲知更多细节,请参考该文章

为什么需要 GN

我们知道,BN 在不能在小 batch size 上进行使用;同时,测试时 BN 是使用了在训练阶段保留的均值方差做测试数据的无偏估计,这可能就会导致在训练、测试、验证阶段的 inconsistency

GN 是怎么做的?

为了方便理解,我们可以认为 GN 是 IN 和 LN 的更一般描述。

GN 与 batch size 无关。在应用时,对于 的特征图,我们取其中一个 ,并对其沿着通道进行分组,假设均分成 组,则有 。 在进行归一化时,我们是对每个 进行的。

测试阶段怎么做?

同 LN 或者 IN,只根据测试样本计算均值方差

放在哪里?

替代 BN 即可

GN 的优势

  1. 更灵活
  2. 适用于小 batch size 的任务。文中的实验证明,在 Batch size 变得很小时,带 GN 的网络表现几乎不降低,但是 BN 的网络降低非常明显
  3. 同样能够解决 ICS 问题
  4. 论文中现实,GN优于LN和IN

GN 的缺点

  1. 引入了新的参数 ,增加了调参的任务

什么时候不能用 GN?

不知道~

GN 和 IN、LN 的区别

GN-区别-LN-IN

由于 GN 与 Batch size 无关,我们假设 batch 中某一个样本的特征图为 当分组 时,GN 等价于 LN 当分组时,GN等价于IN

指向原始笔记的链接