Instance Normalization/zh

    From Marovi AI
    This page is a translated version of the page Instance Normalization and the translation is 100% complete.
    Other languages:
    Article
    Topic area Deep Learning
    Prerequisites Neural Networks, Convolutional Neural Networks, Batch Normalization


    概述

    实例归一化(常缩写为 InstanceNormIN)是一种用于深度神经网络的特征归一化技术,它对每个样本、每个通道独立进行归一化,仅使用单个特征映射的空间维度上计算的统计量。该方法由 Ulyanov、Vedaldi 和 Lempitsky 于 2016 年在快速神经风格迁移的背景下提出,它从中间表示中去除每个样本的对比度与亮度信息。在图像生成任务中,当应当驱动输出的是每张图像的整体外观而非总体层面的统计量时,实例归一化是首选方案。

    批归一化通过批量统计量将不同样本耦合在一起不同,实例归一化对每个样本独立处理。这种解耦使其非常适合小批量场景、样本异构的场景,或以操控单图像风格为目标的场景。

    动机

    该技术起源于实时风格迁移的研究,其中一个前馈卷积网络被训练用于将一张内容图像映射为与目标风格纹理相匹配的风格化输出。早期方法在卷积之间堆叠批归一化,但所得网络生成的图像,其整体对比度受批次组成的影响而非仅由内容图像决定。将批归一化替换为按样本进行的归一化消除了这种耦合,得到了更锐利、更稳定的风格化结果。

    其直观理解是:单个特征映射内的激活的均值与方差编码了图像的整体属性,例如整体亮度、对比度,以及(在浅层)低频纹理。减去逐样本均值并除以逐样本标准差,可将这些属性从表示中剥离,使网络得以专注于与内容相关的结构。这正是在网络任务为替换风格而非保留风格时所需要的操作。

    数学表述

    考虑一个卷积激活张量 $ x \in \mathbb{R}^{N \times C \times H \times W} $,其中 $ N $批大小$ C $通道数,$ H, W $ 为空间维度。对样本 $ n $ 和通道 $ c $,逐样本的均值与方差仅在空间维度上计算:

    $ {\displaystyle \mu_{nc} = \frac{1}{HW} \sum_{h=1}^{H} \sum_{w=1}^{W} x_{nchw}, \qquad \sigma_{nc}^2 = \frac{1}{HW} \sum_{h=1}^{H} \sum_{w=1}^{W} \left( x_{nchw} - \mu_{nc} \right)^2.} $

    归一化后的激活为

    $ {\displaystyle \hat{x}_{nchw} = \frac{x_{nchw} - \mu_{nc}}{\sqrt{\sigma_{nc}^2 + \epsilon}},} $

    其中 $ \epsilon $ 是一个小常数(通常为 $ 10^{-5} $),用于防止除以零。与批归一化一样,随后会施加一个可学习的逐通道仿射变换,参数为 $ \gamma_c $$ \beta_c $

    $ {\displaystyle y_{nchw} = \gamma_c \, \hat{x}_{nchw} + \beta_c.} $

    仿射变换步骤恢复了网络在归一化之后表示任意所需缩放与平移的能力,如果恒等变换是最优选择,也能予以表示。

    训练与推理时的行为

    实例归一化在实践中的一个重要性质是:训练与推理时使用相同的计算。由于统计量是逐样本计算的,无需维护滑动平均,也不需要校准,无论输入是单张图像还是一个批次,该层的行为都是一致的。这与批归一化形成鲜明对比,后者在推理时会用训练期间累积的滑动估计来替换批量统计量,并对动量选择以及训练-测试之间的分布偏移很敏感。

    这种无状态的行为也意味着实例归一化不受批大小的影响:批量为 1 与批量为 100 对每个样本产生相同的输出。因此,当内存限制迫使使用小批量时,例如在高分辨率图像合成中,它是自然的选择。

    与其他归一化方法的比较

    主要的特征归一化方案在计算均值与方差时所聚合的维度上有所不同:

    • 批归一化 —— 在 $ (N, H, W) $ 上聚合,每个通道一组统计量。
    • 实例归一化 —— 在 $ (H, W) $ 上聚合,每个样本、每个通道一组统计量。
    • 层归一化 —— 在 $ (C, H, W) $ 上聚合,每个样本一组统计量。
    • 组归一化 —— 在 $ (H, W) $ 与一组通道上聚合,介于层归一化与实例归一化之间。

    实例归一化是组归一化的一种特殊情形,其中每个组只包含一个通道。它也与逐图像对比度归一化紧密相关——后者是一种由来已久的预处理技巧——但实例归一化是应用在每一层,而非仅作用于输入。

    权衡取决于任务。在大批量的图像分类中,批归一化仍是最强的选择,因为跨样本的池化提供了有用的正则化效果,并让网络接触到总体层面的统计量。实例归一化通过去除逐图像对比度,丢弃了分类网络所需的信息;而正是这一性质使其在生成任务中具有价值。

    变体

    自适应实例归一化

    自适应实例归一化(AdaIN)由 Huang 与 Belongie 于 2017 年提出,是任意神经风格迁移以及 StyleGAN 等生成式图像模型中的核心算子。AdaIN 用一个单独的风格输入 $ s $ 计算出的值来替换可学习的仿射参数 $ \gamma_c, \beta_c $

    $ {\displaystyle \mathrm{AdaIN}(x, s) = \sigma(s) \cdot \frac{x - \mu(x)}{\sigma(x)} + \mu(s),} $

    其中 $ \mu(\cdot) $$ \sigma(\cdot) $通道在空间维度上计算。直观地说,AdaIN 剥去内容图像的逐通道统计量,并以风格图像的统计量取而代之,在一次前馈传播中完成风格迁移。

    条件实例归一化

    条件实例归一化(Dumoulin 等人,2017)通过引入一张小型查找表对实例归一化进行了扩展,该表以离散的风格标签为索引,存放对应的 $ \gamma, \beta $ 参数。一个前馈网络由此能够生成多种不同风格,推理时只需选择不同的参数集合即可。这是迈向多风格生成的重要一步,多风格生成在当今的生成模型中已属常见。

    滤波器响应归一化

    滤波器响应归一化(Singh 与 Krishnan,2020)是一种相关的逐样本、逐通道归一化方法:它省略了均值的减除,改为除以激活的均方根,并搭配一个带阈值的线性激活。提出该方法的目的是在对批大小敏感的场景下恢复分类准确率,同时保留实例归一化与批量无关的特性。

    应用

    实例归一化(通常以其自适应形式)被用于:

    • 实时与任意神经风格迁移。
    • 图像到图像翻译网络,例如基于U-Net生成对抗网络GAN)骨干网络的方法,包括 CycleGAN 与 pix2pix 等变体。
    • 高保真图像合成架构,如 StyleGANStyleGAN2,其中类似 AdaIN 的调制将风格编码注入到每一层。
    • 某些训练批量较小的医学影像与分割模型,在这些场景中批量统计量不稳定。

    局限性

    • 丢失有用的全局信息 —— 在整体亮度或对比度承载类别信号的任务中(大多数分类任务),实例归一化通常逊于批归一化
    • 缺乏来自批次噪声的正则化 —— 实例归一化没有批量统计量带来的隐式正则化,因此往往需要使用 Dropout权重衰减等显式正则化手段加以替代。
    • 通道的成本 —— 由于每个样本的每个通道都独立计算统计量,该层无法像批归一化那样跨批次摊销开销,在小模型上略显昂贵。
    • 深层中纹理细节的丢失 —— 在所有层上简单地施加实例归一化可能洗掉细粒度特征。许多实用架构将其限制在特定模块中,或在更深的层用组归一化替代。

    参考文献

    [1] [2] [3] [4] [5] [6] [7] [8]

    1. Ulyanov, D., Vedaldi, A., and Lempitsky, V., Instance Normalization: The Missing Ingredient for Fast Stylization, arXiv:1607.08022, 2016.
    2. Huang, X., and Belongie, S., Arbitrary Style Transfer in Real-Time with Adaptive Instance Normalization, ICCV, 2017.
    3. Dumoulin, V., Shlens, J., and Kudlur, M., A Learned Representation for Artistic Style, ICLR, 2017.
    4. Wu, Y., and He, K., Group Normalization, ECCV, 2018.
    5. Ba, J. L., Kiros, J. R., and Hinton, G. E., Layer Normalization, arXiv:1607.06450, 2016.
    6. Ioffe, S., and Szegedy, C., Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, ICML, 2015.
    7. Karras, T., Laine, S., and Aila, T., A Style-Based Generator Architecture for Generative Adversarial Networks, CVPR, 2019.
    8. Singh, S., and Krishnan, S., Filter Response Normalization Layer: Eliminating Batch Dependence in the Training of Deep Neural Networks, CVPR, 2020.