Group Normalization
欲知更多细节,请参考该文章
为什么需要 GN
我们知道,BN 在不能在小 batch size 上进行使用;同时,测试时 BN 是使用了在训练阶段保留的均值方差做测试数据的无偏估计,这可能就会导致在训练、测试、验证阶段的 inconsistency
GN 是怎么做的?
为了方便理解,我们可以认为 GN 是 IN 和 LN 的更一般描述。
GN 与 batch size 无关。在应用时,对于 的特征图,我们取其中一个 ,并对其沿着通道进行分组,假设均分成 组,则有 。 在进行归一化时,我们是对每个 进行的。
测试阶段怎么做?
同 LN 或者 IN,只根据测试样本计算均值方差
放在哪里?
替代 BN 即可
GN 的优势
- 更灵活
- 适用于小 batch size 的任务。文中的实验证明,在 Batch size 变得很小时,带 GN 的网络表现几乎不降低,但是 BN 的网络降低非常明显
- 同样能够解决 ICS 问题
- 论文中现实,GN优于LN和IN
GN 的缺点
- 引入了新的参数 ,增加了调参的任务
什么时候不能用 GN?
不知道~
GN 和 IN、LN 的区别
GN-区别-LN-IN
由于 GN 与 Batch size 无关,我们假设 batch 中某一个样本的特征图为 当分组 时,GN 等价于 LN 当分组时,GN等价于IN
指向原始笔记的链接