Instance Normalization/zh
| Article | |
|---|---|
| Topic area | Deep Learning |
| Prerequisites | Neural Networks, Convolutional Neural Networks, Batch Normalization |
概述
實例歸一化(常縮寫為 InstanceNorm 或 IN)是一種用於深度神經網絡的特徵歸一化技術,它對每個樣本、每個通道獨立進行歸一化,僅使用單個特徵映射的空間維度上計算的統計量。該方法由 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 等變體。
- 高保真圖像合成架構,如 StyleGAN 與 StyleGAN2,其中類似 AdaIN 的調製將風格編碼注入到每一層。
- 某些訓練批量較小的醫學影像與分割模型,在這些場景中批量統計量不穩定。
局限性
- 丟失有用的全局信息 —— 在整體亮度或對比度承載類別信號的任務中(大多數分類任務),實例歸一化通常遜於批歸一化。
- 缺乏來自批次噪聲的正則化 —— 實例歸一化沒有批量統計量帶來的隱式正則化,因此往往需要使用 Dropout 或權重衰減等顯式正則化手段加以替代。
- 逐通道的成本 —— 由於每個樣本的每個通道都獨立計算統計量,該層無法像批歸一化那樣跨批次攤銷開銷,在小模型上略顯昂貴。
- 深層中紋理細節的丟失 —— 在所有層上簡單地施加實例歸一化可能洗掉細粒度特徵。許多實用架構將其限制在特定模塊中,或在更深的層用組歸一化替代。
參考文獻
[1] [2] [3] [4] [5] [6] [7] [8]
- ↑ Ulyanov, D., Vedaldi, A., and Lempitsky, V., Instance Normalization: The Missing Ingredient for Fast Stylization, arXiv:1607.08022, 2016.
- ↑ Huang, X., and Belongie, S., Arbitrary Style Transfer in Real-Time with Adaptive Instance Normalization, ICCV, 2017.
- ↑ Dumoulin, V., Shlens, J., and Kudlur, M., A Learned Representation for Artistic Style, ICLR, 2017.
- ↑ Wu, Y., and He, K., Group Normalization, ECCV, 2018.
- ↑ Ba, J. L., Kiros, J. R., and Hinton, G. E., Layer Normalization, arXiv:1607.06450, 2016.
- ↑ Ioffe, S., and Szegedy, C., Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, ICML, 2015.
- ↑ Karras, T., Laine, S., and Aila, T., A Style-Based Generator Architecture for Generative Adversarial Networks, CVPR, 2019.
- ↑ Singh, S., and Krishnan, S., Filter Response Normalization Layer: Eliminating Batch Dependence in the Training of Deep Neural Networks, CVPR, 2020.