Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization论文理解

摘要

主要概括了风格迁移的发展过程以及现存问题,其中主要涉及到的有以下几篇论文:最早的neural-style—Image Style Transfer Using Convolutional Neural Networks针对每一次风格迁移都要进行迭代去优化输出图片的像素,之后的Fast neural-style—Perceptual Losses for Real-Time Style Transfer and Super-Resolution通过训练一个前向网络加速了风格迁移的过程,但问题是一个网络只能实现一种风格的迁移。随后的A Learned Representation for Artistic Style发现用于不同风格迁移的多个训练好的模型卷积层参数之间有很强的相关性,进行归一化处理后,根据不同的参数γs和βs就可以模拟多个网络,一次前向,就能生成N幅不同style的图像,但这种方法只能生成指定数量的预先训练的style。
PS:当时另外一篇可以做到任意风格迁移的方法是style-swap,但是它基于patch的中间特征融合这一步消耗时间较长,真正做到任意风格+实时的风格迁移,本文应该是第一篇。关于以上提到的几种方法,我的前几篇博客也有一些简单的介绍和对比。

介绍和相关工作

这两部分除了列举一些之前的工作外,主要介绍了本文的关键结构—adaptive instance normalization (AdaIN),他们发现IN在风格迁移问题上有很好的效果,并提出了自己的看法:
we propose a new interpretation that instance normalization performs style normalization by normalizing feature statistics, which have been found to carry the style information of an image.
他们认为IN对特征数据归一化的操作可以间接作用到风格的归一化上,原因的话我个人理解其实是根据之前的方法总结的经验,比如通过Gram矩阵可以提取出“风格”信息,这不仅说明了VGG提取的特征是包含了内容及风格,并且我们还可以通过对特征的进行处理把二者分离开。AdaIN将内容特征的均值和方差与风格特征的均值和方差对齐,得到了一个整合信息后的中间结果,然后一个生成网络负责将中间结果变换到图片空间,这个流程有点类似于style-swap的思路,区别在于怎么在中间结果上把内容和风格信息整合到一起。

背景

这部分主要介绍了BN、IN、CIN的相关知识,和文章联系不是很大,正好在这里记录一下自己对BN、LN、IN和GN的一些理解。对于normalization可以翻译为归一化或者规范化,下面可能都会出现,我个人比较喜欢叫做归一化。
图A

Batch Normalization

神经网络希望输入变量在训练数据和测试数据上的分布是相似的,显然能满足这样的条件会使得网络有较好的结果,虽然在进入网络之前都会对数据进行一次归一化,但网络内部的复杂结构特别是激活函数的存在使得每一层过后数据的分布都会发生变化,增加了训练的难度,所以一般都要选择比较小的学习率和较好的参数初始化值。
BN操作的创新就在于不仅是进入网络前,而且在网络每一层之间都进行一次归一化处理,具体的做法是对同一个batch内多个样本在同一维特征(channel)做normalization,使其满足标准正态分布。这么做的目的就是希望在网络内部也能保证输入的数据之间分布的相似性,降低了不同样本间值域的差异性。但是如果强行服从标准正态分布会限制网络的表达能力,所以BN又引入了两个可学习参数—缩放(scale)和平移(shift),让网络自己学习合适的正态分布。
引入BN之后,会使得大部分数据都能落在激活函数的非饱和区域,保证了反向传播的梯度回传,避免了梯度消失和梯度爆炸,训练时可以选择更大的学习率,也降低了对参数初始化的要求,加速了训练过程,具体公式如下:
在这里插入图片描述

Layer Normalization

假设一个batch内的N个样本在某一层提取出了N个feature maps,每一个featur maps有C个维度,那么BN会从C个维度中每次选择一个,计算N个feature maps

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值