GAN(生成对抗网络)的最新应用状况

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介:

今天我们来聊一个轻松一些的话题——GAN 的应用。

在此之前呢,先推荐大家去读一下一篇新的文章 LS-GAN(Loss-sensitive GAN)[1]

这个文章比 WGAN 出现的时间要早几天,它在真实分布满足 Lipschitz 条件的假设下,提出了 LS-GAN,并证明了它的纳什均衡解存在。它也能解决 generator 梯度消失的问题,实验发现不存在 mode collapse 的问题。

作者齐国君老师在知乎上写了一篇文章介绍 LS-GAN,建议感兴趣的童鞋也去阅读一下,地址:https://zhuanlan.zhihu.com/p/25204020

回到今天的主题 GAN 的应用上来。GAN 的应用按照大类分为在图像上的应用、在 NLP 上的应用,以及与增强学习结合。我们分这两个大类进行介绍。今天介绍的应用不涉及算法细节(除了能简短介绍清楚的算法),基本上都有源码,参见文末。

GAN 在图像上的应用

从目前的文献来看,GAN 在图像上的应用主要是往图像修改方向发展。涉及的图像修改包括:单图像超分辨率(single image super-resolution)、交互式图像生成、图像编辑、图像到图像的翻译等。

单图像超分辨率

单图像超分辨率任务(SISR)就是给定单张低分辨率图像,生成它的高分辨率图像。传统方法一般是插值,但是插值不可避免地会产生模糊。GAN怎么应用到这个任务上去呢?

首先,GAN 有两个博弈的对手:G(generator)和D(discriminator),容易想到一种可能的方案是:G的输入是低分辨率图像(LR),输出应该是高分辨率图像(HR)。文献 [9] 正是采用这种做法。作者采用 ResNet 作为 G,网络架构如下图所示:

GAN(生成对抗网络)的最新应用状况

对于一批 N 张图像,G 的 loss 定义为

GAN(生成对抗网络)的最新应用状况

其中,lSR 包含两部分:content loss 和 adversarial loss。G 的 loss 包含 content loss 部分,因此 G 并非完全的非监督,它也用到了监督信息:它强制要求生成图像提取的特征与真实图像提取的特征要匹配,文中用到的特征提取网络为 VGG,content loss 定义如下:

GAN(生成对抗网络)的最新应用状况

而 adversarial loss 就是我们常见的 GAN loss:

GAN(生成对抗网络)的最新应用状况

文中采用的 lSR 为:

GAN(生成对抗网络)的最新应用状况

文献 [9] 的实验效果如下图所示,可以看出,SRGAN 效果比其他方法要好,生成的图像模糊程度更低。代码参见文末的 SRGAN。

GAN(生成对抗网络)的最新应用状况

此外,还有另外一个文章 [3] 也做了 GAN 在 SISR 上的应用,文中提出了 AffGAN。这里不再展开介绍,感兴趣的同学请参看原文。

交互式图像生成

这个工作来自于 Adobe 公司。他们构建了一套图像编辑操作,能使得经过这些操作以后,图像依旧在“真实图像流形”上,因此编辑后的图像更接近真实图像。

具体来说,iGAN 的流程包括以下几个步骤:

  1. 将原始图像投影到低维的隐向量空间

  2. 将隐向量作为输入,利用 GAN 重构图像

  3. 利用画笔工具对重构的图像进行修改(颜色、形状等)

  4. 将等量的结构、色彩等修改应用到原始图像上。

GAN(生成对抗网络)的最新应用状况


值得一提的是,作者提出 G 需为保距映射的限制,这使得整个过程的大部分操作可以转换为求解优化问题,整个修改过程近乎实时。细节比较多,这里不再展开,请参考文献 [6],代码请参考文末的 iGAN。下面的 demo 经过压缩图像质量比较差,查看清晰版本请移步 iGAN 的 github 页面。

GAN(生成对抗网络)的最新应用状况

图像编辑

GAN 也可以应用到图像编辑上,文献 [14] 提出了 IAN 方法(Introspective Adversarial Network),它融合了 GAN 和 VAE(variational autoencoder,另一种生成模型)。如果你对 VAE、GAN 以及它们的融合都比较熟悉,理解 IAN 应该是很容易的。文章的主要创新在于 loss 的设计上。

GAN(生成对抗网络)的最新应用状况

以下是 IAN 编辑图像的一个 demo,代码可以在文末的 IAN 部分找到。

GAN(生成对抗网络)的最新应用状况    

图像到图像的翻译

所谓“图像到图像的翻译”( image to image translation),是指将一种类型的图像转换为另一种类型的图像,比如:将草图具象化、根据卫星图生成地图等。文献 [7] 设计了一种算法 pix2pix,将 GAN 应用到 image to image translation 上。

作者采用 CGAN(conditional GAN,关于 CGAN 的介绍,参见两周前的推送 20170203),将待转换的图像作为 condition,加上高斯噪声作为 generator 的输入,generator 将输入转换为我们需要的目标图像,而 discriminator 判断图像是 generator 产生的,还是真实的目标图像。为了能让 generator 产生的图像逼近真实的目标图像,generator 的 loss 还包含目标图像匹配度的惩罚项,采用 L1 范数,generator 的 loss 设计如下:

GAN(生成对抗网络)的最新应用状况

其中,y 即为真实的目标图像。

然而,作者在实验中发现,generator 会忽略高斯噪声 z,而直接根据输入图像 x 产生目标图像 y。为了解决这个问题,作者只在 generator 的某些层上以 dropout 的形式加入噪声(training 和 test 时都需要 dropout)。代码参见文末的 pix2pix,实验效果如下图所示:

GAN(生成对抗网络)的最新应用状况

GAN 在 NLP 上的应用

目前来说 GAN 在 NLP 上的应用可以分为两类:生成文本、根据文本生成图像。其中,生成文本包括两种:根据隐向量(噪声)生成一段文本;对话生成。

如果你对 GAN 在 NLP 中的应用感兴趣,推荐阅读下面的文章:

http://www.machinedlearnings.com/2017/01/generating-text-via-adversarial-training.html

或者可以查看 AI100 翻译的版本:

http://mp.weixin.qq.com/s/-lcEuxPnTrQFVJV61MWsAQ

我对 NLP 的了解比较少,这里只列举其中一部分应用。

对话生成

GAN 应用到对话生成的例子,可以看这篇文章 [2],文末也有相关的代码(参看 GAN for Neural dialogue generation)。下图是 GAN 对话生成算法的伪代码,省略了很多细节:

GAN(生成对抗网络)的最新应用状况

实验效果如下图:

GAN(生成对抗网络)的最新应用状况

这个工作很有意思。可以看出,生成的对话具有一定的相关性,但是效果并不是很好,而且这只能做单轮对话。

文本到图像的翻译

GAN 也能用于文本到图像的翻译(text to image),在 ICML 2016 会议上,Scott Reed 等人提出了基于 CGAN 的一种解决方案 [13]:将文本编码作为 generator 的 condition 输入;对于 discriminator,文本编码在特定层作为 condition 信息引入,以辅助判断输入图像是否满足文本描述。文中用到的 GAN 架构如下:

GAN(生成对抗网络)的最新应用状况

作者提出了两种基于 GAN 的算法,GAN-CLS 和 GAN-INT。GAN-CLS 算法如下:

GAN(生成对抗网络)的最新应用状况

GAN-INT 对多种文本编码做一个加权,在这种设计下,generator 的 loss 为:

GAN(生成对抗网络)的最新应用状况

其中,β 控制两种文本编码的加权系数。

实验发现生成的图像相关性很高。代码参见文末的 text2image。

GAN(生成对抗网络)的最新应用状况

此外,GAN 还可以跟增强学习(RL)结合。

Ian Goodfellow 指出,GAN 很容易嵌入到增强学习(reinforcement learning)的框架中。例如,用增强学习求解规划问题时,可以用 GAN 学习一个 actions 的条件概率分布,agent 可以根据生成模型对不同的 actions 的响应,选择合理的 action。

GAN 与 RL 结合的典型工作有:将 GAN 嵌入模仿学习(imitation learning)中 [5];将 GAN 嵌入到策略梯度算法(policy gradient)中 [11],将 GAN 嵌入到 actor-critic 算法中 [15],等。

GAN 与增强学习结合的相关工作多数在 16 年才开始出现,GAN 和 RL 属于近年来的研究热点,两者结合预计在接下来的一两年里将得到更多研究者的青睐。

常见GAN

最后,作为 GAN 专题的结尾,我们列举一下目前常见的 GAN 模型(可以根据 arxiv id 去寻找、下载文献),欢迎补充。

  • GAN - Ian Goodfellow, arXiv:1406.2661v1

  • DCGAN - Alec Radford & Luke Metz, arxiv:1511.06434

  • CGAN - Mehdi Mirza, arXiv:1411.1784v1

  • LAPGAN - Emily Denton & Soumith Chintala, arxiv: 1506.05751

  • InfoGAN - Xi Chen, arxiv: 1606.03657

  • PPGAN - Anh Nguyen, arXiv:1612.00005v1

  • WGAN - Martin Arjovsky, arXiv:1701.07875v1

  • LS-GAN - Guo-Jun Qi, arxiv: 1701.06264

  • SeqGAN - Lantao Yu, arxiv: 1609.05473

  • EBGAN - Junbo Zhao, arXiv:1609.03126v2

  • VAEGAN - Anders Boesen Lindbo Larsen, arxiv: 1512.09300

......

此外,还有一些在特定任务中提出来的模型,如本期介绍的 GAN-CLS、GAN-INT、SRGAN、iGAN、IAN 等等,这里就不再列举。

代码

LS-GAN

Torch 版本:https://github.com/guojunq/lsgan

SRGAN

TensorFlow 版本:https://github.com/buriburisuri/SRGAN

Torch 版本:https://github.com/leehomyc/Photo-Realistic-Super-Resoluton

Keras 版本:https://github.com/titu1994/Super-Resolution-using-Generative-Adversarial-Networks

iGAN

Theano 版本:https://github.com/junyanz/iGAN

IAN

Theano 版本:https://github.com/ajbrock/Neural-Photo-Editor

Pix2pix

Torch 版本:https://github.com/phillipi/pix2pix

TensorFlow 版本:https://github.com/yenchenlin/pix2pix-tensorflow

GAN for Neural dialogue generation

Torch 版本:https://github.com/jiweil/Neural-Dialogue-Generation

Text2image

Torch 版本:https://github.com/reedscot/icml2016

TensorFlow+Theano 版本:https://github.com/paarthneekhara/text-to-image

GAN for Imitation Learning

Theano 版本:https://github.com/openai/imitation

SeqGAN

TensorFlow 版本:https://github.com/LantaoYu/SeqGAN 

参考文献

  1.  Qi G J. Loss-Sensitive Generative Adversarial Networks onLipschitz Densities[J]. arXiv preprint arXiv:1701.06264, 2017.

  2.  Li J, Monroe W, Shi T, et al. Adversarial Learning for NeuralDialogue Generation[J]. arXiv preprint arXiv:1701.06547, 2017.

  3.  Sønderby C K, Caballero J, Theis L, et al. Amortised MAPInference for Image Super-resolution[J]. arXiv preprint arXiv:1610.04490, 2016.

  4.  Ravanbakhsh S, Lanusse F, Mandelbaum R, et al. Enabling DarkEnergy Science with Deep Generative Models of Galaxy Images[J]. arXiv preprintarXiv:1609.05796, 2016.

  5. Ho J, Ermon S. Generative adversarial imitationlearning[C]//Advances in Neural Information Processing Systems. 2016:4565-4573.

  6. Zhu J Y, Krähenbühl P, Shechtman E, et al. Generative visualmanipulation on the natural image manifold[C]//European Conference on ComputerVision. Springer International Publishing, 2016: 597-613.

  7. Isola P, Zhu J Y, Zhou T, et al. Image-to-image translationwith conditional adversarial networks[J]. arXiv preprint arXiv:1611.07004,2016.

  8. Shrivastava A, Pfister T, Tuzel O, et al. Learning fromSimulated and Unsupervised Images through Adversarial Training[J]. arXivpreprint arXiv:1612.07828, 2016.

  9. Ledig C, Theis L, Huszár F, et al. Photo-realistic singleimage super-resolution using a generative adversarial network[J]. arXivpreprint arXiv:1609.04802, 2016.

  10. Nguyen A, Yosinski J, Bengio Y, et al. Plug & playgenerative networks: Conditional iterative generation of images in latentspace[J]. arXiv preprint arXiv:1612.00005, 2016.

  11. Yu L, Zhang W, Wang J, et al. Seqgan: sequence generativeadversarial nets with policy gradient[J]. arXiv preprint arXiv:1609.05473,2016.

  12. Lotter W, Kreiman G, Cox D. Unsupervised learning of visualstructure using predictive generative networks[J]. arXiv preprintarXiv:1511.06380, 2015.

  13. Reed S, Akata Z, Yan X, et al. Generative adversarial textto image synthesis[C]//Proceedings of The 33rd International Conference onMachine Learning. 2016, 3.

  14. Brock A, Lim T, Ritchie J M, et al. Neural photo editingwith introspective adversarial networks[J]. arXiv preprint arXiv:1609.07093,2016.

  15. Pfau D, Vinyals O. Connecting generative adversarialnetworks and actor-critic methods[J]. arXiv preprint arXiv:1610.01945, 2016.





本文作者:AI研习社
本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
2月前
|
人工智能 运维 物联网
AI在蜂窝网络中的应用前景
AI在蜂窝网络中的应用前景
55 3
|
4天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
27天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
59 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
5天前
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全能增强
在过去半年,ALB Ingress Controller推出了多项高级特性,包括支持AScript自定义脚本、慢启动、连接优雅中断等功能,增强了产品的灵活性和用户体验。此外,还推出了ingress2Albconfig工具,方便用户从Nginx Ingress迁移到ALB Ingress,以及通过Webhook服务实现更智能的配置校验,减少错误配置带来的影响。在容灾部署方面,支持了多集群网关,提高了系统的高可用性和容灾能力。这些改进旨在为用户提供更强大、更安全的云原生网关解决方案。
66 7
|
7天前
|
数据采集 JavaScript 前端开发
异步请求在TypeScript网络爬虫中的应用
异步请求在TypeScript网络爬虫中的应用
|
2月前
|
存储 监控 物联网
计算机网络的应用
计算机网络已深入现代生活的多个方面,包括通信与交流(电子邮件、即时通讯、社交媒体)、媒体与娱乐(在线媒体、在线游戏)、商务与经济(电子商务、远程办公)、教育与学习(在线教育平台)、物联网与智能家居、远程服务(远程医疗、智能交通系统)及数据存储与处理(云计算、数据共享与分析)。这些应用极大地方便了人们的生活,促进了社会的发展。
61 2
计算机网络的应用
|
2月前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
87 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
1月前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
|
2月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
75 8
|
2月前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
53 2

热门文章

最新文章