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的知识,一起遍历这个GAN的地图
算法 | 论文 | 代码 |
---|---|---|
GAN | 论文地址 | 代码地址 |
DCGAN | 论文地址 | 代码地址 |
CGAN | 论文地址 | 代码地址 |
CycleGAN | 论文地址 | 代码地址 |
CoGAN | 论文地址 | 代码地址 |
ProGAN | 论文地址 | 代码地址 |
WGAN | 论文地址 | 代码地址 |
SAGAN | 论文地址 | 代码地址 |
BigGAN | 论文地址 | 代码地址 |
上面内容整理自《Generative Adversarial Networks – The Story So Far》原文中对算法有一些粗略的说明,感兴趣的可以看看。
GAN的优缺点
3个优势
- 能更好建模数据分布(图像更锐利、清晰)
- 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。
- 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。
2个缺陷
- 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
- 模式缺失(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介绍