「自行科技」一文了解生成式对抗网络GAN

电子说

1.3w人已加入

描述

一、什么是GAN网络

生成式对抗网络(Generative adversarial network, GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。

主要包含两个模块:生成器(Generator)和判别器(Discriminator)。生成器要不断优化自己生成的数据让判别器判断不出来,判别器也要进行优化让自己判断得更准确。二者关系形成对抗,因此叫生成式对抗网络。

二、 GAN的意义及用途

意义:GAN网络可以帮助我们建立模型,相比于在已有模型上进行参数更新的传统网络,更具研究价值。同时,GAN网络是一种无监督的学习方式,它的泛化性非常好。用途:(1)数据生成,主要指图像生成。图像生成:基于训练的模型,生成类似于训练集的新的图片。

文本描述生成图像:给定一个文本描述句,生成符合描述句内容的图像。

(2)图像数据增强:增强图像中的有用信息,改善图像的视觉效果。

(3)图像外修复:从受限输入图像生成具有语义意义结构的新的视觉和谐内容来扩展图像边界。

(4)图像超分辨率:由一幅低分辨率图像或图像序列恢复出高分辨率图像。

(5)图像风格迁移:通过某种方法,把图像从原风格转换到另一个风格,同时保证图像内容没有变化。

三、 GAN的发展

自2014年GAN的第一次提出,GAN在图像领域、语音与自然语言处理(Natural language processing, NLP)领域以及其他领域开始快速发展,衍生出了一系列模型。其中,比较流行的有DCGAN(Deep convolutional generative adversarial networks),StyleGAN,BigGAN,StackGAN,Pix2pix,CycleGAN等。

DCGNN:这是第一次在GAN中使用卷积神经网络(Convolutional neural network, CNN)并取得了非常好的结果。它是GAN研究的一个里程碑,因为它提出了一个重要的架构变化来解决训练不稳定,模式崩溃和内部协变量转换等问题。从那时起,基于DCGAN的架构就被应用到了许多GAN架构。StyleGAN:GAN研究领域的重大突破,在面部生成任务中创造了新纪录。算法的核心是风格转移技术或风格混合。除了生成面部外,它还可以生成高质量的汽车,卧室等图像。BigGAN:用于图像生成的最新进展,生成的图像质量足以以假乱真,这是GAN首次生成具有高保真度和低品种差距的图像。StackGAN:2017年,由“StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks”论文中提出。作者使用StackGAN完成文本到图像的生成过程,并得到了非常好的结果。Pix2pix:对于图像到图像的翻译任务,Pix2pix也显示出了令人印象深刻的结果。无论是将夜间图像转换为白天的图像还是给黑白图像着色,或者将草图转换为逼真的照片等,Pix2pix都呈现出很好的效果。CycleGAN:将对偶学习与GAN进行结合,能将一类图片自动转化为另一类图片。其中对偶学习是一种类似于双语翻译任务的双重学习机制,利用原始任务和双重任务之间的反馈信号对模型进行训练。与输入必须是成对数据的Pix2pix模型相比,CycleGAN对非成对数据也能进行训练,更具普适性。

四、 GAN的网络结构

在介绍GAN网络结构之前,我们先了解两个概念:生成器和判别器。

生成器:输入为随机数据,输出为生成数据(通常是图像)。通常这个网络选用最普通的多层随机网络即可,网络太深容易引起梯度消失或者梯度爆炸。判别器:我们把生成器生成的数据称为假数据,对应的,来自真实数据集的数据称为真数据。判别器输入为数据(这里指代真实图像和生成图像),输出是一个判别概率。需注意的是,这里判别的是图像的真假,而非图像的类别。输入一个图片后,我们并不需要确认这张图片是什么,而是判别图像来源于真实数据集,还是由生成器输出得到。网络实现同样可用最基本的多层神经网络。

深度学习

图1 GAN网络结构

GAN 的主要思想就是在生成数据的过程中加入一个可以判断真实数据和生成数据的判别器,使生成器和判别器相互对抗,判别器的作用是努力地分辨真实数据和生成数据,生成器的作用是努力改进自己从而生成可以迷惑判别器的数据。GAN的网络结构如图1所示。GAN网络结构主要包含判别器D和生成器G,判别器D和生成器G通常由包含卷积或全连接层的多层网络实现。判别器D:使用了混合整流器线性激活函数和sigmoid激活函数,输入为真实数据x和生成器G输出的假数据G(z)。目标是实现对数据来源的二分类判别:真(来源于真实数据的分布)或者假(来源于生成器的假数据G(z))生成器G:使用了maxout激活函数,输入为随机噪声z。目标是使自己生成的假数据G(z)在D上的表现D(G(z)),和真实数据x在D上的表现D(x)一致。GAN的训练包括两个方面:最大化判别器分类准确率的判别器的参数和找到最大程度混淆判别器的生成器的参数。当更新一个模型生成器的参数时,另一个模型判别器的参数是固定的,反之亦然。通常是两个网络单独且交替训练,先训练判别器,再训练生成器,再训练判别器,如此反复,直到达到纳什均衡。

深度学习

图2 生成器样本示例

GAN网络训练用到的数据集:MNIST,the Toronto Face Database(TFD)和CIFAR-10数据集。图2展示了经过训练后从生成器中抽取的样本示例,其中,最右边的列显示了邻近样本的最近训练示例,以证明模型没有记忆训练集。样本是公平随机抽取,而不是精心挑选。图2中,a)表示GAN网络在MNIST数据集上的生成效果,b)表示GAN网络在TFD数据集上的生成效果。c)和d)均表示GAN网络在CIFAR-10数据集上的生成效果,只是c)中GAN网络采取全连接模型,而d)中是卷积判别器和反卷积生成器。在使用GAN进行图像生成任务时,比较典型的网络结构有DCGAN网络和基于先验知识的StackGAN网络。DCGAN将CNN与GAN进行了融合,利用CNN强大的特征提取能力来提高GAN的学习效果。DCGAN主要是在网络结构上对 GAN 进行了改进。生成器相当于反卷积网络,而判别器相当于卷积网络。DCGAN的生成器网络结构如图3所示。

深度学习

图3 DCGAN生成器网络结构

DCGAN网络最先采用CNN结构实现GAN模型,介绍了如何使用卷积层,并给出一些额外的结构上的指导建议来实现。另外,它还讨论如何可视化GAN的特征、隐空间的插值、利用判别器特征训练分类器以及评估结果。关于DCGAN的应用主要集中在图像处理方面,可以说这个模型是最典型、应用最广泛的GAN变种模型。StackGAN是一种新的堆叠生成对抗网络,用于从文本描述合成照片真实感图像,其网络结构如图4。StackGAN首次从文本描述生成256×256分辨率的图像,且生成的图像具有照片般逼真的细节。StackGAN网络结构分为两个部分:Stage-ⅠGAN和Stage-ⅡGAN。 Stage-ⅠGAN:根据给定的文本描述,绘制对象的原始形状和原始颜色,并根据随机噪声向量绘制背景布局,生成低分辨率图像。生成器G0:首先是经过一个CA(调节增强技术)模块,对文本嵌入进行降维。StackGAN没有直接将降维后的文本嵌入作为condition,而是将它接了一个全连接层,并从得到的独立的高斯分布中随机采样得到高斯条件变量。接着,将高斯条件变量与噪声向量经过级联得到的一组向量输入到生成器中,然后,经过上采样之后生成一张64*64的图像。判别器D0:首先,文本嵌入经过一个全连接层被压缩到128维,然后经过空间复制将其扩成一个4×4×128的张量。同时,图像会经过一系列的下采样到4×4。然后,图像过滤映射会连接图像和文本张量的通道。随后,张量会经过一个1×1的卷积层去连接跨文本和图像学到的特征。最后,会通过只有一个节点的全连接层去产生图像真假的概率。

深度学习

图4 StackGAN网络结构

Stage-Ⅱ GAN:

修正第一阶段低分辨率图像的缺陷,通过再次文本描述来完成对象的细节,生成了高分辨率的真实感图像。与通常的GAN不同,本阶段不使用随机噪声。

生成器G:将第二阶段生成器设计为一个具有残差块的编解码网络。Stage-Ⅰ GAN生成的64×64的图片,加上对文本嵌入进行CA操作得到的高斯条件变量,与前一阶段相似,高斯条件变量被扩成一个16×16×128的张量(绿色部分)。同时,由前一个GAN生成的64×64的图像,会经过下采样变成16×16(紫色部分)。连接图像特征和文本特征后,经过残差块,再上采样,生成图片。判别器D:对于判别器,其结构类似于第一阶段判别器,仅具有额外的下采样块。另外,为了明确地强制GAN更好地学习图像和条件文本之间的对齐,我们在两个阶段都采用了匹配感知判别器。StackGAN训练用到的数据集:CUB,Oxford-102和MS COCO数据集。图5中a),b)和c)分别展示了基于这三个数据集的测试集,StackGAN网络生成的图像示例。总体来说,StackGAN生成的高分辨率的图像,细节信息较丰富,且能较好地反映相应的文本描述。

深度学习

图5 StackGAN网络生成的图像示例

五、 GAN的实际应用示例图

(1)生成人脸:

深度学习

图6 基于GAN方法生成人脸

(2)语义图像-图片转化:

深度学习

图7基于GAN方法将语义图像转化成图片

(3)生成动漫人物形象:

深度学习

图8基于GAN方法生成动漫人物

(4)路况预测:图9中,奇数列显示解码图像,偶数列显示目标图像:

深度学习

图9基于GAN方法的路况预测结果

(5)人脸图像修复:图10中,依次显示真实图像,缺失图像,修复图像:

深度学习

图10基于GAN方法修复人脸图像



审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分