一、批量归一化(Batch Normlization,BN)
假设某批次数据样本N*C*H*W
批量归一化的操作是沿着批次N方向,对整个批次的所有样本的同一通道,进行归一化处理。

批量归一化通过规范通道,在减少计算量的同时,使得每个独立样本的整体分布趋于一致,缓解内部协变量偏移,以加快模型收敛。适用于CNN卷积神经网络。
但当批次较小时,其效果可能会急剧下降。
二、层归一化(Layer Normlization,LN)
假设某批次数据样本N*C*H*W
层归一化的操作是对单个样本的全部通道,进行归一化处理。

层归一化强调样本的独立性,适用于序列模型如RNN,LSTM和transformer。
序列模型以token为样本,而每个toekn具备C个特征通道(卷积模型中以图像为样本),token与token之间的语义大不相同,若跨样本进行归一化则易混淆语义,故适用层归一化。
三、实例归一化(Instance Normlization,IN)
假设某批次数据样本N*C*H*W
实例归一化是在层归一化的基础上进一步缩小归一化范围,即对单个样本的单个通道进行归一化处理。

IN 对每个样本的每个通道单独进行归一化,强制每个通道的均值为 0、方差为 1,从而移除了原始图像的风格信息(即通道的全局统计量,如亮度和对比度),同时保留了空间结构(内容)。
在风格迁移中,IN 常与自适应仿射变换结合(如 AdaIN),将风格图的统计量注入内容特征,实现风格转换。
对于生成对抗网络(GANs),IN 有助于稳定训练,防止生成器过度关注图像的全局外观,而是专注于局部纹理。
四、组归一化(Group Normlization,GN)
假设某批次数据样本N*C*H*W
组归一化介于层归一化和实例归一化之间。
如果把所有通道分成1组 ,GN就变成了层归一化(LN)。
如果把每个通道单独作为1组 (即每组通道数=1),GN就变成了实例归一化(IN)。
GN是这两个极端之间的一个平滑插值,主要解决BN在小Batch Size下性能崩塌的问题。

