从Style的角度理解Instance Normalization

从Style的角度理解Instance Normalization

分享一种理解Instance Normalization (IN) 的新视角:在计算机视觉中,IN本质上是一种Style Normalization,它的作用相当于把不同的图片统一成一种风格。这个视角是在黄勋学长和Serge Belongie大大的《Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization》[1] 中看到的。

黄勋等人[1]提出,图像的风格(artistic style)就是特征图各个feature channel跨空间的统计信息,比如mean和variance。迁移各个channel的mean和variance就可以实现风格迁移,为此他们提出了Adaptive Instance Normalization。

历程

  • Gatys等人[2]的首先提出了一种代表性的图像风格迁移方法,使用Gram矩阵作为风格的数学表示:假设一个CNN(如VGG19)的某一层 l 在一张图片上提取出特征图 F ,那么这张图片的artistic style可以表示为特征图上的Gram矩阵 G \in \mathcal{R}^{N_l} \times \mathcal{R}^{N_l} : G[i,j]=\sum _{ x }^{ h } \sum _{ y }^{ w } F_{ i }[x,y] \cdot F_{ j }[x,y]
    其中 ij 是channel的下标, xy 是空间坐标。可以看出Gram矩阵本质上算的是特征图各个channel的相关性,即哪些channel倾向于同时激活,哪些channel倾向于此消彼长,是一种特征channel的统计信息。(可以参看这个问题下的回答)


  • Gatys等人的方法因为需要循环optimization,生成一张图要很久,Ulyanov等人[3]提出用一个前馈神经网络替代这个optimization的过程,也就是训练一个generator,这个generator中用了BN(基本操作)。


  • Ulyanov等人[4]发现只需将BN替换为instance normalization (IN)即可大幅提升收敛速度。BN和IN的区别在于BN用的mean和variance是从一个batch中所有的图片统计的,而IN的mean和variance是从单张图片中统计的。注意 \gamma\beta 对每个channel都是不同的。
    \text{IN}(x)=\gamma \left( \frac{x-\mu(x)}{\sigma(x)} \right) + \beta


  • Dumoulin等人[5]发现在进行IN的时候,使用不同的 \gamma\beta 即可生成出风格不同的图像,提出了conditional instance normalization(CIN)
    \text{CIN}(x; s)=\gamma^s \left( \frac{x-\mu(x)}{\sigma(x)} \right) + \beta^s
    其中s代表风格, \gamma^s \beta^s 是学出来的,一组 (\gamma^s,\beta^s) 对应一种风格。Dumoulin等人的方法迁移有限种的风格,想迁移新的的风格则需要训练新的模型。


  • 黄勋等人[1]提出adaptive instance normalization(AdaIN),即直接用一张图像算出\gamma\beta,作用到另一张图像上,实现风格迁移
    \text{AdaIN}(x, y)=\sigma(y) \left( \frac{x-\mu(x)}{\sigma(x)} \right) + \mu(y)
    这样只要给两张图片就可以迁移,不需要训练新的网络了。

模型

黄勋等人[1]提出的风格迁移模型

设内容图为 I_c ,风格图为 I_s ,迁移后生成的图片为 I_t ;设VGG Encoder为函数 f(\cdot) ,Decoder(Generator)为函数 g(\cdot) ,那么

I_t=g(\text{AdaIN}(f(I_c), f(I_s)))

训练时,损失 \mathcal{L} 由内容损失 \mathcal{L_c} 和风格损失 \mathcal{L}_s 组成:

\mathcal{L}=\mathcal{L}_c+\lambda\mathcal{L}_s ,其中 \lambda 为权重超参数。

内容损失定义为 \mathcal{L_c}=\left\| f(I_c) - f(I_t) \right\|_2 ,即 I_cI_t 特征图的对位差的norm。

风格损失定义为 \mathcal{L}_s = \sum_{i=1}^L\left\| \mu(f_i(I_t))-\mu(f_i(I_s)) \right\|_2 + \sum_{i=1}^L\left\| \sigma(f_i(I_t))-\sigma(f_i(I_s)) \right\|_2 ,其中 i 为VGG中卷积层的下标。可见风格损失就是 I_sI_t 之间各层特征图各channel的mean和variance的差的norm。

验证

为了验证“IN本质上是一种Style Normalization”这个猜想,黄勋等人[1]进行了实验:

大致思想是,IN相较于BN能够加速收敛,而BN+其他style normalization[6]方法后也能加速收敛,所以IN does perform a kind of style normalization。

另外,既然IN和BN都会统一图片的风格,那么在Generator里加IN或BN应该是不利于生成风格多样的图片的,论文中也进行了展示:

图e是在generator中加了BN的结果,图f是在generator中加了IN的结果。果然崩了,IN崩得尤其厉害。


作者从前人的工作中总结出船新视角,提出的方法既简单又work,笔者佩服得五体投地orz

References

[1] Huang, Xun, and Serge Belongie. “Arbitrary Style Transfer in Real-Time with Adaptive Instance Normalization.” In ICCV, 2017.

[2] L. A. Gatys, A. S. Ecker, and M. Bethge. Image style transfer using convolutional neural networks. In CVPR, 2016.

[3] D. Ulyanov, V. Lebedev, A. Vedaldi, and V. Lempitsky. Tex- ture networks: Feed-forward synthesis of textures and styl- ized images. In ICML, 2016.

[4] D. Ulyanov, A. Vedaldi, and V. Lempitsky. Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis. In CVPR, 2017.

[5] V. Dumoulin, J. Shlens, and M. Kudlur. A learned represen- tation for artistic style. In ICLR, 2017.

[6] J. Johnson, A. Alahi, and L. Fei-Fei. Perceptual losses for real-time style transfer and super-resolution. In ECCV, 2016.

编辑于 2019-02-27