《Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization》論文解析

       Ulyanov發現在風格遷移上使用IN效果比BN好很多,從他開始凡是風格遷移都離不開IN和其變種AdaIN,本文簡要介紹AdaIN這篇的原理。

       下圖爲特徵圖張量,可以直觀看出BN,LN,IN,GN等規範化方法的區別。N爲樣本維度,C爲通道維度,H爲height,W即width,代表特徵圖的尺寸。

å¨è¿éæå¥å¾çæè¿°

《Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization》這篇文章首先介紹了這幾種normalization的算法。

1、 Batch Normalization

BN是在深度學習網絡中經常用的算法,在訓練時對整個batch的每一個channel分別進行歸一化。公式1中的y和β由網絡學習得到。而在測試時,將統計信息(均值和方差)替換爲全數據集的。

2、 Instance Normalization

如最上的圖所示,IN對

  • 每個樣例以及每個通道都獨立計算均值、方差
  • IN layers在訓練以及測試時使用相同的數據統計

3、Conditional Instance Normalization

CIN對於每一個風格,分別計算y和β。而對於卷積網絡的其他權重則共享。

4、Adaptive Instance Normalization

AdaIN接受內容圖片x和風格圖片y,將內容圖的每通道輸入的均值和方差歸一化後的結果對齊匹配到風格圖的每通道輸入的均值和方差,讓x的通道均值和方差匹配y的,AdaIN的仿射參數並不是網絡學習出來的,而是直接通過輸入計算出來的。

5、網絡結構和損失函數

在使用了AdaIN後,網絡結構如下圖所示:

損失函數由兩部分組成:

其中Lc指的是內容損失:

而Ls指的是風格損失:

解釋一下上面兩部分損失: 首先用VGGencoder提取出圖片的特徵,再使用AdaIN對齊內容圖和風格圖的分佈,此時得到的特徵爲t。而g()是decoder,g(t)旨在將特徵恢復爲圖片。因此內容損失Lc就是把恢復後的圖g(t)再過一遍encoder得到特徵f(g(t)),與t做一個l2 loss。使得最後得到的輸出圖與內容圖內容一致。

而Ls風格損失是將g(t)和s(風格圖)都過一遍encoder,然後在某些網絡層上算了一個統計意義上(均值方差)的l2 loss。使得他們風格上相像。原文:where each φi denotes a layer in VGG-19 used to compute the style loss. In our experiments we use relu1 1, relu2 1, relu3 1, relu4 1 layers with equal weights.    在VGG19的這幾層上使用了這個loss。

實驗效果還是很好的:

最重要的是,本算法在inference的時候不需要迭代地生成圖片,速度很快,因此在應用上就有了可能性。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章