Instance Normalization(实例规范化,简称 IN)是一种在深度学习中使用的规范化技术,最初是为了图像风格转换任务而提出的。
1 规范化范围
- IN是在单个样本(实例)的每个通道(每层特征)内进行规范化,独立于其他样本。
- 它对每个通道内的特征进行规范化,而不是跨整个批量(如BN)或整个层(如LN)。
2 计算过程
- Instance Normalization计算每个样本每个通道的均值和方差,并且在通道内进行进行标准化
- 对于每个通道,都会有一对\(\gamma\)(scale),\(\beta\)(shift),用于在规范化步骤之后调整数据。具体来说,如果一个卷积层有C个通道,那么在IN中将会有C对scale和shift参数。每个通道i都有其对应的scale参数 \(\gamma_i\)和shift参数\(\beta_i\)。这些参数是通过网络的训练过程学习得到的,允许模型对每个通道的规范化输出进行微调,以更好地适应特定任务的需求.
3 应用
BN适用于判别模型中,比如图片分类模型。因为BN注重对每个batch进行归一化,从而保证数据分布的一致性,而判别模型的结果正是取决于数据整体分布。但是BN对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布.
IN适用于生成模型中,比如图片风格迁移。因为图片生成的结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,在风格迁移中使用Instance Normalization不仅可以加速模型收敛,并且可以保持每个图像实例之间的独立。更适用于小批量训练:批量归一化需要在每个批次上计算均值和方差,因此在小批量训练时,由于样本数量较少,计算的均值和方差会有较大的噪声。而实例归一化对每个样本进行归一化,因此可以更好地适应小批量训练。