单图训GAN!如何改进SinGAN?

点击上方“机器学习与生成对抗网络”,关注"星标"

获取有趣、好玩的前沿干货!

单图训GAN!如何改进SinGAN?_第1张图片

单图训GAN!如何改进SinGAN?_第2张图片

  • Improved Techniques for Training Single-Image GANs

  • https://arxiv.org/abs/2003.11512

  • https://github.com/tohinz/ConSinGAN

前言

  • 众所周知,GAN往往依赖于大规模数据集。而自从去年那篇best paper的SinGAN之后,如何使用单图训练GAN已经成为一个研究热点或趋势。

  • 但样本的缺乏,对模型学习能力提出了更高的要求。SinGAN实际上效率是比较低的,因为它的多层级分阶段串行式训练的网络所导致。

  • 本文提出了一种可以同时训练多个阶段、不断提升分辨率的方法  。与当前SOTA相比,训练速度提高了六倍,参数更少,效果更好。

动机

  • 本文发现准确地处理多阶段和多分辨率训练至关重要。特别地,在给定时间里,仅训练一个阶段(固定别的)会限制不同阶段之间的交互,并且在从一个生成器阶段到下一个生成器阶段的传播如果是使用图像,而不是特征图的话,将对学习过程产生负面影响。

  • 而另一方面,端到端地同时训练所有阶段会导致过拟合(单图数据实在太少,模型又庞杂),在这种情况下,网络会崩溃、可能直接生成输入图像。

  • 本文尝试找到上述的折衷方案,降低学习率、同时训练多个阶段,可改善学习过程,以更少的训练时间获得更逼真图像。

  • 此外,本文展示了如何权衡图像质量与图像多样性,其中并行训练多阶段意味着以更少的多样性为代价、获得更好的全局一致性。

  • 本文还对缩放参数的选择进行了实验,即如何决定在每个阶段训练什么样的图像分辨率。作者观察到,如果在分辨率较低的图像上没有足够的训练,则生成图像的质量(尤其是整体图像布局)会迅速下降。由于判别器的感受野在整个训练过程中保持不变,因此低阶段的较低分辨率对于整个图像布局很重要,而分辨率较高的高阶段训练影响的是最终的图像纹理和颜色信息。即只需要相对较少的、高分辨率训练阶段就可以生成具有正确纹理的图像。因此,在训练过程中对较小分辨率的图像给予了更高的重视,而在训练高分辨率图像时使用的阶段较少,从而提高了合成图像的质量。

  • 最后,由于本文的模型可并行训练多个阶段,因此可引入一个特定于任务的微调阶段,该阶段可以在任何训练过的模型上执行。例如图像协调 image harmonization,在训练初始模型后,可以在给定的特定图像上对其进行微调,以进一步改善结果。

方法

多阶段训练

本文采用的是同时、端到端地进行多阶段训练,但这容易导致过拟合(作者指出减小低阶段的学习率可以在一定程度上缓解),也就是所生成的图像与训练图像几乎没有区别。

单图训GAN!如何改进SinGAN?_第3张图片
  • 训练本文所提出的ConSinGAN从粗略的分辨率开始进行多次迭代,学习从随机噪声向量z到低分辨率图像的映射(如图1中的“ Generator:Stage 0”)。

  • 一旦阶段n的训练收敛,通过添加三个附加的卷积层来增加生成器的大小。与SinGAN相比,每个阶段都将前一阶段的原始特征作为输入,而前几层不是固定的。

  • 从原始的上采样特征,到新添加卷积层的输出间添加残差连接(请参见图1中的“ Generator:Stage 1”)。重复此过程N次,直到达到所需的输出分辨率。

  • 像SinGAN一样,每个阶段都添加额外噪声,以提高多样性。

  • 在默认设置中,本文联合训练生成器的最后三个阶段(请参见图1中的“ Generator:Stage N”)虽然可以同时训练三个以上的阶段,但这很快导致严重的过度拟合。

单图训GAN!如何改进SinGAN?_第4张图片
  • 使用与原始SinGAN相同的块patch判别器架构和损失函数。这意味着,随着阶段的增加,与生成的图像的大小有关的感受野会变小:即在较低分辨率阶段,判别器将更多的注意力集中全局布局上,而在高分辨率阶段,判别器将更多的注意力放在纹理细节上。

  • 损失函数,WGAN-GP的对抗损失和重建损失:

单图训GAN!如何改进SinGAN?_第5张图片

学习率缩放

  • 作者发现低阶段的学习率太大或者同时训练的阶段数太多都极其容易过拟合。故采用学习率缩放的方法来缓解:以缩放因子对学习率(0.1)进行缩放,例如对于在阶段的生成器,使用的学习率是,对于在阶段的生成器,使用的学习率是等等。

精心设计的图像尺寸调整

  • 另一个关键的设计:使用哪种多尺度金字塔。SinGAN最初建议对每个阶段n将图像x降采样,其中r是默认值0.75的标量。结果,通常需要八到十个阶段来生成具有250宽或高的分辨率图像。

  • 作者观察到,在低分辨率(小于60pix)下往往得不到足够的阶段数去训练。在高分辨率图像上进行训练时,全局布局已经“确定”,此时仅纹理信息比较重要,因为判别器的感受野始终为11×11。因此,要实现某种全局图像布局,需要一定数量的阶段(通常至少三个)以较低的分辨率去学习,而无需要太多的高分辨率学习,故提出分辨率在阶段变化的学习尺寸为:

 

这样一来,比如在缩放情况下,原来的变化是,,, ,,,而现在是:,,, ,,.

实验设置

单图训GAN!如何改进SinGAN?_第6张图片

作者在1080Ti上训练仅需要20到30分钟,而SinGAN要两小时上。

实验结果(仅展示部分定性分析的示例)

无条件图像生成

单图训GAN!如何改进SinGAN?_第7张图片

消融探究、超参影响

单图训GAN!如何改进SinGAN?_第8张图片 单图训GAN!如何改进SinGAN?_第9张图片

Image harmonization

单图训GAN!如何改进SinGAN?_第10张图片

公众号近期荐读:

  • GAN整整6年了!是时候要来捋捋了! 

  • 新手指南综述 | GAN模型太多,不知道选哪儿个?

  • 数百篇GAN论文已下载好!配一份生成对抗网络最新综述!

  • 图卷积网络GCN的理解与介绍 

  • 【CapsulesNet的解析】了解一下胶囊网络?

  • CVPR2020之MSG-GAN:简单有效的SOTA

  • CVPR2020之姿势变换GAN:图像里谁都会劈叉?

  • CVPR2020之多码先验GAN:预训练模型如何使用?

  • 两幅图像!这样能训练好GAN做图像转换吗?

  • 有点夸张、有点扭曲!速览这些GAN如何夸张漫画化人脸!

  • 见微知细之超分辨率GAN!附70多篇论文下载!

  • 天降斯雨,于我却无!GAN用于去雨如何?

  • 脸部转正!GAN能否让侧颜杀手、小猪佩奇真容无处遁形?

  • 容颜渐失!GAN来预测?

  • 强数据所难!SSL(半监督学习)结合GAN如何?

  • 弱水三千,只取你标!AL(主动学习)结合GAN如何?

  • 异常检测,GAN如何gan ?

  • 虚拟换衣!速览这几篇最新论文咋做的!

  • 脸部妆容迁移!速览几篇用GAN来做的论文

  • 【1】GAN在医学图像上的生成,今如何?

  • 01-GAN公式简明原理之铁甲小宝篇


GAN&CV交流群,无论小白还是大佬,诚挚邀您加入!

一起讨论交流!长按备注【进群】加入:

更多分享、长按关注本公众号:

你可能感兴趣的:(GAN生成对抗网络)