实例正则化:快速风格化缺失的成分

发布于 2022-03-31 22:06:33 字数 5489 浏览 986 评论 0

Abstract

摘要:本文回顾了 Ulyanov 等人快速格式化方法。我们展示了如何通过对结构的微小的变化,使生成图像的质量进行飞升,这个变化在于把 Batch normalization 变成 Instance normalization,把后者运用到训练和测试中,由此产生的方法可以被用来训练高性能的架构,进行实时图像生成。该代码将在 https://github.com/dmitryulyanov/texture_nets 提供。

一.简介

近日 Gatys 等人介绍了一种方法,把一个图像上的风格转移到另一图像中,以 fig1 为例。这个被风格化的图像同时匹配风格图和内容图,风格统计和内容统计都是从预训练好的用于图像分类的深度神经网络中提取出来的。风格统计是从浅层提取的,并且在空间位置上是均匀的,内容统计的提取则是从较深的层中提取,并且保留了空间位置上的信息。在这种方式中,样式统计信息是捕获风格图像的 纹理,而内容统计是捕获内容图像的 结构

尽管 Gatys 等人得方法已经能产生比较好的结果,但它在计算效率上实在是低下。风格化后的图像,事实上,是通过迭代优化得到的,迭代到它与所需的统计数据相匹配。需要耗费几分钟来风格画一张512x512尺寸的图像。还有两个近日发布的研究成果,ulyanov 和 Johnson,试图解决效率低下的问题,通过学习等效的前馈生成网络,以便在单方向产生风格化的图像,这两种方法的不同,主要是在于生成器的结构细节不同,以及产生的结果的质量不同,然而,这两人产出结果从质量上看都没有Gatys那个超慢的方法好。

在这篇论文里,我们重新审视Ulyanov等人提出的前馈网络进行风格化的方法,并且针对生成器的结构提出一些小小的改变,这能带来结果上的大幅提升,能使生成的结果具备和Gatys相媲美的质量,同时能在GPU上实时转换。关键思想(Section 2)是把 batch-normalization 层替换成 instantce-normalization 层,并且在测试时也保持不变,直观的说,正规化处理允许从内容图中删除特定实例的对比度信息,从而能简化生成。在实践中,这个结论大大的提升了图像质量。

二. 方法

Ulyanov 等人的工作证明了训练一个生成器网络 g(x,z) 是可以应用于给输入图像 x 添加 x0 的风格的,再现 Gatys 等人得研究结果。在这儿,风格图x0是固定的,生成器g被训练作将风格应用到任意一个输入图像x中。变量z是一个随机种子,可以被用来获取样品结果。

函数g是一个卷积神经网络,从实例中学习得出的,这里一个例子就是一个内容图像 xt t=1~n, 学习解决这个问题:

zt~N(0,1) 是从一个高斯分布的独立同分布的样本,loss L 采用预训练的CNN去从一个x0图像中获取特征,内容图像xt,风格化后的图像g(xt, zt),跟前文说的一样比较他们的统计特征。

因为生成器网络g很快速,作者Ulyanov等人发现用过多的训练集去训练它往往会获得更差的质量,尤其,一个网络被用16张图片训练,往往会比用1000张图片训练产生更好的结果,我们最重要的发现就是,由于每次卷积钱都用0填充图像的边缘,即使使用更复杂的边缘填充算法,它也不可能解决这个问题,最终,最好的结果表现在Ulyanov的论文中,是从非常少量的训练集中,提前很早停止得来的。我们推测,训练的目标对于神经网络来说学起来过于生硬。

一个简单的观测是:一般来说,图像风格化的结果不应该取决于内容图的对比度(见 fig2)事实上,风格上的差距被设计用来将元素从风格图转移到内容图,因此风格化后图的对比度应该是近似于风格图的对比度的。因此,生成器网络必须忽视内容图的对比度信息,问题就在于,对比度正则化是不是可以有效,通过结合在标准的CNN块中,或者说直接实现在结构中。

Ulyanov 和 Johnson 都用了卷积、池化、上采样和批量正则化。在实践中,学习一个高度非线性化的对比度正则化函数作为层的组合,是非常困难的。想知道为什么的话,让x作为一个输入的tensor:

包含了一批图像(一共T个),让 Xtijk 表示它的第 tijk 个元素,k 和 j 跨空间维度,i是特征通道(如果是 RGB 图像的话就是颜色通道)t 是图像在 Batch 中的索引。那么一个简单的对比度正则化方程可以就此给出:

现在还不清楚,这样的函数是如何能被实现为一系列 Relu 层和卷积操作的。

从另一方面来说,Ulyanov 等人提的生成器网络是包含一个正则化层的,是 batch-normalization,关键的不同点在于,后者(batch-normalization)是把正规化用在 一整个 Batch 的图像上,而不是针对单个图像。

为了结合特定实例正规化和批量正规化的影响,我们建议,以实例正规化来取代后者(实例正规化也被称为“对比度正规划”)层:

我们把Batch-normalization用instance-normalization来替换,所有在生成器网络中的的 batch-normalization 都这样替换。这样做能阻止实例特定的均值和协方差简化学习的过程。和 batch-normalization 不同, instance-normalization 层在测试时的表现也挺好。

三. 实验

在这一小节,我们将来评估 section 2 中提出的修改 batch-normalization 为 Instance normalization 的方法。我们测试了Ulyanov和Johnson两人的描述的结构,为了看看这个修改在不同的结构上的表现。我们没能直接拿到 Johnson 提出的网络模型,所以我们小心翼翼地按照论文里的描述,重建了他们提出的网络模型,最终,我们发现这两个生成器网络有类似的性能和缺点。

(图5 第一行)

接下来,修改 batch-normalization 为 Instance normalization,重新用相同的参数来训练生成器,我们发现这两个结构都有了明显的提升(用了 Instance normalization 之后,见 fig5 第二行)这两个生成器的质量是相近,但是我们发现Johnson的残差结构更加有效且容易使用,所以我们将它应用了,结果在 fig4。

四. 结论

在这个简短的笔记中,我们表明,把批量正则化更改成实例正则化是有可能显著提高性能的,尤其是在深度神经网络生成图像方面的性能。这个结果暗示了我们,我们也正在尝试类似的想法来解决一些图像识别的任务。

References

附录:

fig4: 风格化的实例:第一行:style 图第二行,原图,风格化版本。

fig5:生成器质量上的比较(左为 Ulyanov,右为 Johnson)batch-normalization和 Instance-normalization 之间的比较(第一行为 batch,第二行为 Instance)这两个网络结构都受益于 Instance-normalization

fig6:处理一张内容图片(fig4),在不同的分辨率下(左 512,右 1080)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文