0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

自行科技 来源:自行科技 作者:自行科技 2022-09-16 09:25 次阅读

一、什么是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网络结构之前,我们先了解两个概念:生成器和判别器。

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

bb7607ac7e3f45a7b627be478f55c561~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=XSCePeGgL%2Fils61w%2FwM2YlXaCTU%3D

图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的训练包括两个方面:最大化判别器分类准确率的判别器的参数和找到最大程度混淆判别器的生成器的参数。当更新一个模型生成器的参数时,另一个模型判别器的参数是固定的,反之亦然。通常是两个网络单独且交替训练,先训练判别器,再训练生成器,再训练判别器,如此反复,直到达到纳什均衡。

6dc17019175b4ac8a23857844b7c398b~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=fOusrrd58047vGm0V4AzJoBvohY%3D

图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所示。

1ed704fcb2cd4b13b22cf8d3dc2f2351~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=JDbHAdZuTP%2ByMjRLlII9cUZ24%2Bk%3D

图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的卷积层去连接跨文本和图像学到的特征。最后,会通过只有一个节点的全连接层去产生图像真假的概率。

d86f744ed3b24a519e53b7a617100a96~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=XPAN687P4hLS4TCRll5hm9c6988%3D

图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生成的高分辨率的图像,细节信息较丰富,且能较好地反映相应的文本描述。

6a813559535946bf8203d46eead0e51f~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=HoMCC7vCBtxtt10aBraagn%2BQLng%3D

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

五、 GAN的实际应用示例图

(1)生成人脸:

fb74ae67eddd4a799f52035f9798ee7a~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=L8rW2B3THzmcP0ghTZrjuzkcWEs%3D

图6 基于GAN方法生成人脸

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

4ae1be5926364717b1c28c9b3797b00d~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=0D8Ush0PloJ1UnIKizN6N9uhayY%3D

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

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

72b4685c039c413e89e76dc3cc68c9ec~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=p%2FSgwFxDUZQlWJjN7rMs%2BMibS1M%3D

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

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

25dc239df8f342ac8c1108be14968389~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=esrwokKvYpan9LdkokilKtJQRDg%3D

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

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

2dc8ed2df326433c96658e390cbf5b75~noop.image?_iz=58558&from=article.pc_detail&x-expires=1663895976&x-signature=9f766TwEUQANvaZsxm0ZCfFfMPc%3D

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



审核编辑 黄昊宇

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

    关注

    73

    文章

    5424

    浏览量

    120630
收藏 人收藏

    评论

    相关推荐

    GaN有体二极管吗?了解GaN的第三象限运行

    电子发烧友网站提供《GaN有体二极管吗?了解GaN的第三象限运行.pdf》资料免费下载
    发表于 09-19 12:55 0次下载
    <b class='flag-5'>GaN</b>有体二极管吗?<b class='flag-5'>了解</b><b class='flag-5'>GaN</b>的第三象限运行

    生成对抗网络(GANs)的原理与应用案例

    生成对抗网络(Generative Adversarial Networks,GANs)是种由蒙特利尔大学的Ian Goodfellow等人在2014年提出的深度学习算法。GANs通过构建两个
    的头像 发表于 07-09 11:34 494次阅读

    生成AI与神经网络模型的区别和联系

    生成AI与神经网络模型是现代人工智能领域的两个核心概念,它们在推动技术进步和应用拓展方面发挥着至关重要的作用。本文将详细探讨生成AI与神
    的头像 发表于 07-02 15:03 376次阅读

    原来这才是【生成AI】!!

    随着ChatGPT、言等AI产品的火爆,生成AI已经成为了大家茶余饭后热议的话题。可是,为什么要在AI前面加上“生成
    的头像 发表于 06-05 08:04 290次阅读
    原来这才是【<b class='flag-5'>生成</b><b class='flag-5'>式</b>AI】!!

    深度学习生成对抗网络GAN)全解析

    GANs真正的能力来源于它们遵循的对抗训练模式。生成器的权重是基于判别器的损失所学习到的。因此,生成器被它生成的图像所推动着进行训练,很难知道生成
    发表于 03-29 14:42 3987次阅读
    深度学习<b class='flag-5'>生成对抗</b><b class='flag-5'>网络</b>(<b class='flag-5'>GAN</b>)全解析

    pcb应变测试有多重要?了解

    pcb应变测试有多重要?了解
    的头像 发表于 02-24 16:26 920次阅读

    生成人工智能和感知人工智能的区别

    生成新的内容和信息的人工智能系统。这些系统能够利用已有的数据和知识来生成全新的内容,如图片、音乐、文本等。生成人工智能通常基于深度学习技术,如生成
    的头像 发表于 02-19 16:43 1207次阅读

    带你了解 DAC

    了解 DAC
    的头像 发表于 12-07 15:10 8023次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>带你<b class='flag-5'>了解</b> DAC

    了解相控阵天线中的真时延

    了解相控阵天线中的真时延
    的头像 发表于 12-06 18:09 1597次阅读

    深入了解 GaN 技术

    深入了解 GaN 技术
    的头像 发表于 12-06 17:28 5920次阅读
    深入<b class='flag-5'>了解</b> <b class='flag-5'>GaN</b> 技术

    了解刚柔结合制造过程

    了解刚柔结合制造过程
    的头像 发表于 12-04 16:22 575次阅读

    了解 PCB 的有效导热系数

    了解 PCB 的有效导热系数
    的头像 发表于 11-24 15:48 1625次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b> PCB 的有效导热系数

    了解pcb电路板加急打样流程

    了解pcb电路板加急打样流程
    的头像 发表于 11-08 14:21 6097次阅读

    使用Pytorch实现频谱归一化生成对抗网络(SN-GAN)

    自从扩散模型发布以来,GAN的关注度和论文是越来越少了,但是它们里面的些思路还是值得我们了解和学习。所以本文我们来使用Pytorch 来实现SN-GAN
    的头像 发表于 10-18 10:59 467次阅读
    使用Pytorch实现频谱归<b class='flag-5'>一化生成对抗</b><b class='flag-5'>网络</b>(SN-<b class='flag-5'>GAN</b>)

    图像分类的主流深度神经网络模型有哪些 深度神经网络搜索方法总结

    生成对抗网络(Generative adversarial net,GAN)是另种常见的基于深度学习技术的生成模型,包括
    发表于 10-12 10:24 1321次阅读
    图像分类的主流深度神经<b class='flag-5'>网络</b>模型有哪些 深度神经<b class='flag-5'>网络</b>搜索方法总结