批处理归一化(BN)已经成为许多先进深度学习模型的重要组成部分,特别是在计算机视觉领域。它通过批处理中计算的平均值和方差来规范化层输入,因此得名。要使BN工作,批大小必须足够大,通常至少为32。但是,在一些情况下,我们不得不满足于小批量:
当每个数据样本高度消耗内存时,例如视频或高分辨率图像
当我们训练一个很大的神经网络时,它只留下很少的GPU内存来处理数据
因此,我们需要BN的替代品,它能在小批量下很好地工作。组归一化(GN)是一种最新的规范化方法,可以避免利用批处理维,因此与批处理大小无关。
不同的归一化方法
为了促进GN的表述,我们将首先看一下以前的一些标准化方法。
xᵢ ← (xᵢ - ᵢ) / √( ᵢ² + )
对于每个系数xᵢ输入特性。 ᵢ和 ᵢ²的均值和方差计算的集合Sᵢ系数,和 是一个小的常数数值稳定,避免除零。唯一的区别是集Sᵢ是如何选择的。
为说明归一化方法的计算,我们考虑一批N = 3,输入特征a, b, c,它们有通道c = 4,高度H = 1,宽度W = 2:
a = [ [[2, 3]], [[5, 7]], [[11, 13]], [[17, 19]] ]
b = [ [[0, 1]], [[1, 2]], [[3, 5]], [[8, 13]] ]
c