GAN Step By Step -- Step2 GAN的详细介绍及其应用

Posted 风信子的猫Redamancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GAN Step By Step -- Step2 GAN的详细介绍及其应用相关的知识,希望对你有一定的参考价值。

GAN Step By Step

心血来潮

GSBS,顾名思义,我希望我自己能够一步一步的学习GAN。GAN 又名 生成对抗网络,是最近几年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频。GAN是一个图像的全新的领域,从2014的GAN的发展现在,在计算机视觉中扮演着越来越重要的角色,并且每年都能产出各色各样的东西,GAN的理论和发展都蛮多的。我感觉最近有很多人都在学习GAN,但是国内可能缺少比较多的GAN的理论及其实现,所以我也想着和大家一起学习,并且提供主流框架下 pytorch,tensorflow,keras 的一些实现教学。

在一个2016年的研讨会,杨立昆描述生成式对抗网络是“机器学习这二十年来最酷的想法”。

Step2 GAN的详细介绍及其应用

GAN基本框架

上一次已经介绍了一下GAN的基本框架和基本公式,如图所示


10大典型的GAN算法

GAN 算法有数百种之多,大家对于 GAN 的研究呈指数级的上涨,目前每个月都有数百篇论坛是关于对抗网络的。

下图是2014-2018每个月关于 GAN 的论文发表数量:

如果你对 GANs 算法感兴趣,可以在 「GANs动物园」里查看几乎所有的算法。我们为大家从众多算法中挑选了10个比较有代表性的算法,技术人员可以看看他的论文和代码。

GAN MAPs

接下来,我也会一一学习这些GAN的知识,一起遍历这个GAN的地图

算法论文代码
GAN论文地址代码地址
DCGAN论文地址代码地址
CGAN论文地址代码地址
CycleGAN论文地址代码地址
CoGAN论文地址代码地址
ProGAN论文地址代码地址
WGAN论文地址代码地址
SAGAN论文地址代码地址
BigGAN论文地址代码地址

上面内容整理自《Generative Adversarial Networks – The Story So Far》原文中对算法有一些粗略的说明,感兴趣的可以看看。

GAN的优缺点

3个优势

  1. 能更好建模数据分布(图像更锐利、清晰)
  2. 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。
  3. 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

2个缺陷

  1. 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
  2. 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

Application


姿势引导人形像生成

通过姿势的附加输入,我们可以将图像转换为不同的姿势。例如,右上角图像是基础姿势,右下角是生成的图像。


下面的优化结果列是生成的图像。


该设计由二级图像发生器和鉴频器组成。生成器使用元数据(姿势)和原始图像重建图像。判别器使用原始图像作为CGAN设计标签输入的一部分。


CycleGAN

跨域名转让将很可能成为第一批商业应用。GANs将图像从一个领域(如真实的风景)转换为另一个领域(莫奈绘画或梵高)。


例如,它可以在斑马和马之间转换图片。


Cyclegan构建了两个网络G和F来构建从一个域到另一个域以及反向的图像。它使用判别器d来批评生成的图像有多好。例如,G将真实图像转换为梵高风格的绘画,并且DY用于区分图像是真实的还是生成的。

域A到域B:------------------------>

我们在反向域B域A中重复该过程:


PixelDTGAN

根据名人图片推荐商品已经成为时尚博客和电子商务的热门话题。Pixeldtgan的作用就是从图像中创建服装图像和样式。



超分辨率

从低分辨率创建超分辨率图像。这是GAN显示出非常令人印象深刻的结果,也是具有直接商业可能性的一个领域。


与许多GAN的设计类似,它是由多层卷积层、批标准化、高级relu和跳跃连接组成。


PGGAN

Progressive GAN可能是第一个展示商业化图像质量的GAN之一。以下是由GAN创建的1024×1024名人形象。


它采用分而治之的策略,使训练更加可行。卷积层的一次又一次训练构建出2倍分辨率的图像。


在9个阶段中,生成1024×1024图像。


高分辨率图像合成

需要注意的是这并非图像分割,而是从语义图上生成图像。由于采集样本非常昂贵,我们采用生成的数据来补充培训数据集,以降低开发成本。在训练自动驾驶汽车时可以自动生成视频,而不是看到它们在附近巡航,这就为我们的生活带来了便捷。

网络设计:


文本到图像(StackGAN

文本到图像是域转移GAN的早期应用之一。比如,我们输入一个句子就可以生成多个符合描述的图像。


文本到图像合成

另一个比较通用的实现:


人脸合成

不同姿态下的合成面:使用单个输入图像,我们可以在不同的视角下创建面。例如,我们可以使用它来转换更容易进行人脸识别图像。


图像修复

几十年前,修复图像一直是一个重要的课题。gan就可以用于修复图像并用创建的“内容”填充缺失的部分。


学习联合分配

用面部字符P(金发,女性,微笑,戴眼镜),P(棕色,男性,微笑,没有眼镜)等不同组合创建GAN是很不现实的。维数的诅咒使得GAN的数量呈指数增长。但我们可以学习单个数据分布并将它们组合以形成不同的分布,即不同的属性组合。


DiscoGAN

DiscoGAN提供了匹配的风格:许多潜在的应用程序。DiscoGAN在没有标签或配对的情况下学习跨域关系。例如,它成功地将样式(或图案)从一个域(手提包)传输到另一个域(鞋子)。

DiscoGAN和cyclegan在网络设计中非常相似。



Pix2Pix

PIX2PIx是一种图像到图像的翻译,在跨域Gan的论文中经常被引用。例如,它可以将卫星图像转换为地图(图片左下角)。


DTN

从图片中创建表情符号。


纹理合成


图像编辑 (IcGAN)

重建或编辑具有特定属性的图像。


人脸老化(Age-cGAN)


创建动画角色

众所周知,游戏开发和动画制作成本很高,并且雇佣了许多制作艺术家来完成相对常规的任务。但通过GAN就可以自动生成动画角色并为其上色。

使用Generative Adversarial Networks创建自动动画人物角色


生成器和判别器由多层卷积层、批标准化和具有跳过链接的relu组成。


神经照片编辑器

基于内容的图像编辑:例如,扩展发带。

神经照片编辑


细化图像

目标检测

这是用gan增强现有解决方案的一个应用程序。


图像融合

将图像混合在一起。

生成三维对象

这是用gan创建三维对象时经常引用的一篇文章。


音乐的产生

GaN可以应用于非图像领域,如作曲。


医疗(异常检测)

GAN还可以扩展到其他行业,例如医学中的肿瘤检测。

以上是关于GAN Step By Step -- Step2 GAN的详细介绍及其应用的主要内容,如果未能解决你的问题,请参考以下文章

GAN Step By Step -- Step2 GAN的详细介绍及其应用

GAN Step By Step -- Step1 GAN介绍

GAN Step By Step -- Step1 GAN介绍

GAN Step By Step -- Step1 GAN介绍

GAN Step By Step -- Step5 ACGAN

GAN Step By Step -- Step3 DCGAN