在之前的风格迁移工作中,往往需要较长时间的迭代优化而限制了其应用场景。而通过前馈神经网络来快速进行风格转化的方法也存在一种缺陷,即:网络经常会陷于一组类型的风格而无法适应于新的任意风格。批标准化(Batch Normalization, BN)经常用于神经网络的迭代训练中,从以往的工作[2]中发现批标准化层也同样对生成图像模型有效,可以想象为图像由内容特征和风格特征构成,而BN对特征的方差和均值进行处理,一定程度上可以将这两种特征分离,从而对风格的迁移更准确。在这篇文章中,作者同样使用的前馈神经网络来快速进行风格转换,但是提出了一种扩展后的BN应用在网络上,可以使得网络实时的对任意风格进行迁移,解决上述缺陷。
Batch Normalization的改进
1号Batch Normalization
B N ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β BN(x) = \gamma (\frac{x-\mu(x)}{\sigma(x)})+\beta BN(x)=γ(σ(x)x−μ(x))+β
其中 x ∈ R N ∗ C ∗ H ∗ W x \in R^{N * C * H * W} x∈RN∗C∗H∗W为输入的批数据, γ , β \gamma , \beta γ,β 为亲和参数, μ , σ \mu, \sigma μ,σ 为批数据的均值和标准差,在每个特征通道独立的计算均值和标准差如下:
由于BN是标准化一批样本特征的统计量,而不是单个样本,直观的理解,它会使得这一批样本都被一种风格中心化,但同时每个样本又仍然有着不同的风格。然而作者想要像所有图像都转为同一种风格,并且风格可以任意改变。
2号Instance Normalization
I N ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β IN(x) = \gamma (\frac{x-\mu(x)}{\sigma(x)})+\beta IN(x)=γ(σ(x)x−μ(x))+β
和1号Batch Normalization的表达式一样,但Instance Normalization(IN)并不是对每个通道标准化,而是根据每个样本的空间维度标准化:
另一个不同的是IN层在测试阶段可以不用改变,而BN层通常需要用总体统计来代替小批量统计。[3]发现使用IN会比BN带来较大的提升,IN可以将每个样本的风格规范化为目标风格,而训练之所以容易,是因为网络的其他部分可以专注于对图像的内容操作,同时忽略其初试的风格信息。
3号Conditional Instance Normalization
C I N ( x ; s ) = γ s ( x − μ ( x ) σ ( x ) ) + β s CIN(x;s) = \gamma^s (\frac{x-\mu(x)}{\sigma(x)})+\beta^s CIN(x;s)=γs(σ(x)x−μ(x))+βs
相比于学习单一的一组亲和参数 γ , β \gamma, \beta γ,β,Dumoulin [4]提出了Conditional Instance Normalization(CIN)层为每种不同的风格学习不同的参数 γ s , β s \gamma^s, \beta^s γs,βs,在训练过程中,从一组固定的风格S中随机选择一个风格图像及其索引s,然后通过一个风格迁移网络对内容图像进行处理,其中的CIN层则使用其相对应的 γ s , β s \gamma^s, \beta^s γs,βs。令人惊讶的是,使用同一卷积参数但不同IN参数的网络会产生完全不同风格的图像。相比于没有使用标准化层的网络,带CIN层的网络需要2FS(F为网络中中的特征图数量,S为风格数量)额外的参数,因此网络的额外参数会随着风格的数量线性增长,这种方法是十分耗时的,不适合实时风格迁移,因为这可能会遇到未知数量的不同风格,比过如果有上万中风格,那还玩什么呀。这里比较神奇的地方是为什么一组不同的IN参数可以完全改变输出图像的风格,作者认为这是因为不同的亲和参数可以将图像的特征统计量(比如均值方差)规范化为不同的值,因此可以将输出图像规范化为不同风格。
4号Adaptive Instance Normalization
A d a I N ( x , y ) = σ ( y ) ( x − μ ( x ) σ ( x ) ) + μ ( y ) AdaIN(x,y) = \sigma(y) (\frac{x-\mu(x)}{\sigma(x)})+\mu(y) AdaIN(x,y)=σ(y)(σ(x)x−μ(x))+μ(y)
作者提出了一种IN的扩展方法Adaptive Instance Normalization(AdaIN),用于自适应地给任意的一种风格一组亲和参数用于风格转换,十分简单,这组亲和参数就使用风格输入y的均值和方差,而不像BN,IN和CIN,AdaIN没有需要学习的亲和参数,因此不像CIN那样需要额外的参数。举一个例子直观的表示,如果一个特征通过用于检测一种特定风格的笔触,只要一个图像具有这种类型的笔触就将对这种特征产生高**,因此,由AdaIN产生的输出对这种特征也将有着相同的高**,同时保留图像内容的空间结构。最后,网络的的框架如下所示:
作者用一个VGG-19网络提取图像的内容和风格特征,然后对这种特定的风格使用自适应的亲和参数(AdaIN)调整特征的统计值,最后同样使用VGG作为一个译码器得到想要的风格图像。
[1]S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In JMLR, 2015. 2 .
[2]A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. In ICLR, 2016. 2
[3]D. Ulyanov, A. Vedaldi, and V. Lempitsky. Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis. In CVPR, 2017. 1, 2, 3, 5, 6, 7, 8
[4]V. Dumoulin, J. Shlens, and M. Kudlur. A learned representation for artistic style. In ICLR, 2017. 1, 2, 3, 5, 6, 7