专栏首页灯塔大数据生成对抗网络(GAN)的应用与发展

生成对抗网络(GAN)的应用与发展

前言

近年来,生成对抗网络(GAN)得到广泛的研究,已经在一些特定应用上与其它机器学习算法相结合,针对有监督学习、半监督学习、无监督学习任务都有许多新型算法涌现出来。同时,由于 GAN 无需显式建模任何数据分布就可生成Real-like的样本,因此已经广泛应用到了诸如计算机视觉、自然语言处理等领域中。

一、GAN与不同任务

1.1 GAN与有监督学习

机器学习中的监督式学习,是通过有标签数据集训练模型的一种机器学习方式,训练后的模型可以对未标签数据进行分类或回归分析。将有监督学习与GAN结合,目标在于期望根据网络输入的标签生成对应的输出。针对带标签数据的生成问题,一些研究者基于GAN的结构提出了条件式生成对抗网络的变体,其中典型的变体有 CGAN 和LAPGAN。

如图1所示,条件式生成对抗网络(CGAN),在原始GAN的判别器和生成器的输入部分x与z,都加上一个额外的辅助信息y,一般是类别标签c。即生成器同时输入随机噪声z和类别标签c,判别器则将生成样本、真实样本与类别标签作为输入,以此学习标签和图片之间的关联性。

1.2 GAN与半监督学习

对于许多实际场景中,有标注数据其实只占少数,而大量无标签数据更容易获取。因此,衍生出半监督学习,以同时利用少量标签数据与大量无标签数据进行协同训练,从而实现对未标签数据的分类问题。而对于生成对抗网络训练中的真实数据集,可以被看作有标签数据,而由生成器随机生成的数据则可以被看作是无标签数据,基于此思路衍生的变体中比较典型的有SGAN与ACGAN。

如图2所示,半监督式GAN(SGAN),相比于原始 GAN,主要区别在于判别器输出一个类别数+1 维度的信息。因此对于判别器,其损失包括两部分,一部分是判断样本真假的损失,另一部分是判断样本类别的损失。而生成器则只需要尽量生成逼真的样本即可。

提出SGAN的目标是希望能够做到同时训练生成器与半监督式分类器,最终得到一个更优的半监督式分类器,以及一个样本生成质量更高的生成模型。其训练完成后,判别器就可以作为一个分类模型去分类。但是,上述SGAN的结构中,训练判别器进行半监督学习过程中存在一个问题,其既要区分真假样本,也要学习预测分类,二者目标不一致,容易导致二者都达不到最优。一个直观的想法就是把预测标签和区分真假样本分开。

1.3 GAN与无监督学习

相对于有监督学习方法,无监督学习不使用任何标签信息。因此,无监督学习方法需要对隐空间进行分解得到有意义的特征表示,类似于自动编码器,生成对抗网络通过输入隐向量,来模拟真实数据空间的低维表征,然后来生成对应的高维数据。但是,此时生成的数据表征并非可解释型特征,对后续分类等任务帮助有限。于是,有研究者提出InfoGAN,对传统GAN结构进行了一系列修改,从而使得生成模型可以产生有意义且可解释的特征。

如图4所示,InfoGAN将输入噪声分解为隐变量 z 和条件变量 c,期望在两个维度上都生成可解释型特征。区别于传统GAN仅输入随机噪声z,InfoGAN的生成器同时输入z和c,以生成概率PG(x|c)得到G(z, c)分布的样本。为了约束c与生成样本之间的关系,在训练过程中需要对隐含编码c和生成分布G(z, c)求互信息I(c; G(z, c)),并通过最大化此互信息,以实现变量解耦。具体来说,互信息表示c里面关于G(z, c)的信息有多少,如果最大化互信息I(c; G(z, c)),即最大化生成样本与条件变量c的关联性。

二、GAN的应用

2.1 图像

目前GAN在图像处理和计算机视觉方面应用最为广泛,例如图像翻译、图像生成、图像超分辨率、目标检测、视频生成等领域的应用。

其中,图像翻译是指从一副(源域)图像到另一副(目标域)图像的转换,类似于机器翻译,从一种语言转换为另一种语言的过程,这个翻译过程中会保持源域图像内容不变,但是风格或者一些其他属性变成目标域。该任务根据有无成对训练数据分为成对图像翻译、无成对图像翻译两类。对于成对图像翻译,典型的变体就是pix2pix,其使用成对数据训练了一个条件GAN,损失包括原始GAN 的判别损失以及逐像素差损失。另外一种变体 PAN 则使用特征图上的逐像素差替代图片上的逐像素差作为损失,以生成人眼感知上更加接近源域的图像。

图像生成是GAN另一个最经典的应用,比如目前最为常见的人脸生成,旨在将视频或图片中的人脸进行互换。其中一种经典的变体faceswap-GAN,在训练阶段通过算法将人脸A数据进行扭曲,变得与人脸A不同,再通过自动编码器在重建的人脸上生成遮罩,最终通过遮罩信息与之前输入的信息还原人脸A数据。然后,在测试阶段,网络输入人脸B数据,视为训练集中扭曲过的训练集人脸,并采取同样的步骤将其还原为人脸A 的状态,实现换脸。

而在图像超分辨方面,一种经典变体SRGAN,通过结合传统GAN和感知损失生成细节丰富的图像。其中,感知损失重点关注中间特征层的误差,而不是输出结果的逐像素误差,从而避免了生成的高分辨图像缺乏纹理细节信息的问题。同时,正是得益于GAN 在图像超分辨中的应用,针对目标检测问题,就可以首先利用GAN生成目标的高分辨率图像,再进行检测,从而提高目标检测精度。

另外,对于视频生成任务,通常来说,视频由相对静止的背景和运动的前景组成,因此,VideoGAN使用一个两阶段的生成器,由3D CNN生成器生成运动前景,由2D CNN生成器生成静止的背景。而Pose GAN则使用VAE和GAN生成视频,首先VAE结合当前帧和前几帧的姿态特征预测下一帧的运动信息,然后用3D CNN基于运动信息生成后续视频帧。MoCoGAN则提出将隐空间按运动部分和内容部分进行分离,对于运动部分使用 RNN 建模。

2.2 序列

近几年,GAN也逐渐被应用于序列数据上,比如自然语言、音乐、语音、音频等序列数据。不过,相比于其在图像领域的应用,这方面的应用要少很多。主要原因有两个:1)优化GAN需要使用 BP 算法,而对于文本、语音这类离散数据,GAN没法直接映射到目标值,只能根据梯度一步步靠近;2)对于序列生成问题,比如文本生成任务,每生成一个单词就需要判断这个序列是否合理,可是GAN里面的判别器是没法做到的,除非GAN针对每一步都设置一个判别器,但这显然不合理。于是,针对上述问题,研究者引入强化学习中的策略梯度下降来解决序列生成问题。

比如音乐生成任务,一种经典变体RNN-GAN使用 LSTM 作为生成器和判别器,直接生成整个音频序列。然而,音乐需要生成的歌词和曲都是离散数据,正如上述问题,此时直接使用GAN会导致生成的数据缺乏局部一致性。相比之下,另一种变体SeqGAN把生成器的输出作为一个智能体的策略,而判别器的输出作为奖励,使用策略梯度下降来训练模型。

另外,对于语言和语音方面的数据,研究者提出一种VAW-GAN的结构,通过结合VAE和WGAN实现了一个语音转换系统。具体来说,其由编码器编码语音信号的内容,由解码器重建音色。但是由于VAE容易导致生成结果过于平滑,所以此处一般使用WGAN来生成更加清晰的语音信号。

结语

如今,虽然GAN已经衍生出许多的变体,商业应用场景变得非常广泛。但GAN本身仍然存在许多开放性研究问题需要继续深入探索,比如GAN的评估优化,由于其训练过程实质是一个无监督学习过程,导致有许多指标在训练过程中虽然高,但是生成效果却未必好,所以目前还很难找到一个比较客观且可量化的评估指标。再比如GAN的模型崩溃问题,尽管已经有很多相关研究,但是对于高维数据,这个问题依然还没完全解决。

[1]Hong Y, Hwang U, Yoo J, et al. How Generative Adversarial Networks and Their Variants Work[J]. ACM Computing Surveys (CSUR), 2019.

[2]Gui Jie, Sun Zhenan, Wen Yonggang, et al. A Review on Generative Adversarial Networks:Algorithms, Theory, and Applications[J]. 2020.

[3]万字综述之生成对抗网络, https://www.jiqizhixin.com/articles/2019-03-19-12, last accessed 2019/3/19.

本文分享自微信公众号 - 融智未来(DTbigdata),作者:原思平

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 生成对抗网络GAN

    背景 结构 训练 最大似然估计 VGD取代最大似然估计 D的训练 G的训练 算法 问题 G的更新优化不一定朝着最小的方向 通过抽样估计分布 G中的目标函数 利用...

    用户1147754
  • 生成对抗网络(GAN)

    GAN的思想就是:这是一个两人的零和博弈游戏,博弈双方的利益之和是一个常数,比如两个人掰手腕,假设总的空间是一定的,你的力气大一点,那你就得到的空间多一点,相应...

    狼啸风云
  • 生成式对抗网络 GAN

    生成式对抗网络 GAN 是 2014 年由 Goodfellow 提出的一种新颖的生成式模型,随后得到了快速发展。

    echobingo
  • 生成对抗网络(GAN)的18个绝妙应用

    生成模型指在现存样本的基础上,使用模型来生成新案例,比如,基于现存的照片集生成一组与其相似却有细微差异的新照片。

    昱良
  • 综述 | 生成对抗网络(GAN)在图网络中的应用

    ? 导语: 生成对抗网络(Generative Adversarial Network,简称GAN)是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式...

    腾讯技术工程官方号
  • 生成式对抗网络——Gan(二)

    我们简单的说所有模型应用都是给定一个输入,训练产生一个label输出。从直接对一个图片的分类到句子生成(这也是一个分类问题,我们的label是在词空间中,我们会...

    公众号guangcity
  • 使用对抗生成网络(GAN)生成手写字

    这是通过GAN迭代训练30W次,耗时3小时生成的手写字图片效果,大部分的还是能看出来是数字的。

    Awesome_Tang
  • 生成对抗网络 – Generative Adversarial Networks | GAN

    我们在《一文看懂深度学习(概念+优缺点+典型算法)》中讲过,深度学习最特别最厉害的地方就是能够自己学习特征提取。

    easyAI
  • 生成对抗网络(GAN)研究年度进展评述

    编者按:2017 年 4 月 21-23 日,VALSE(视觉与学习青年学者研讨会)在厦门举行,国内 CV 领域顶级专家学者齐聚一堂,参会的青年学者达 2000...

    AI研习社
  • 生成对抗网络(GAN)的直观介绍

    原文来源:freeCodeCamp 作者:Thalles Silva 让我们假设这样一种情景:你的邻居正在举办一场非常酷的聚会,你非常想去参加。但有要参加聚会...

    刀刀老高
  • 塔秘 | 揭密GAN(生成对抗网络)

    前言 生成式对抗网络(GAN),是14年GoodfellowIan在论文Generative Adversarial Nets中提出来的。Yann LeCun曾...

    灯塔大数据
  • GAN生成对抗网络入门介绍

    GAN(Generative Adversarial Network)生成对抗网络,由Ian Goodfellow在2014年提出。

    Minerva
  • 使用Keras实现生成式对抗网络GAN

    生成式对抗网络(GAN)自2014年提出以来已经成为最受欢迎的生成模型。本文借鉴机器之心对 2014 GAN 论文的解读,在本机运行该Keras项目。 传送门:...

    echobingo
  • 利用tensorflow训练简单的生成对抗网络GAN

    对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的。 原理方面,对抗网络可以简单归纳为一个生成器...

    狼啸风云
  • 万字综述之生成对抗网络(GAN)

    前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian Goodfellow 或者自动化所王飞跃老师那篇。可是在深度学习,GAN 领...

    机器之心
  • 万字综述之生成对抗网络:GAN

    前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian Goodfellow 或者自动化所王飞跃老师那篇。可是在深度学习,GAN 领...

    Datawhale
  • 深度学习界明星:生成对抗网络与Improving GAN

    生成对抗网络,根据它的名字,可以推断这个网络由两部分组成:第一部分是生成,第二部分是对抗。这个网络的第一部分是生成模型,就像之前介绍的自动编码器的解码部分;第二...

    博文视点Broadview
  • Ian Goodfellow 生成对抗网络GAN论文解析

    用户1737318
  • 生成对抗网络GAN系列(五)附代码

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    TeeyoHuang

扫码关注云+社区

领取腾讯云代金券