GAN网络学习笔记(三)

GAN网络包括生成模型G和判别模型D,G尝试生成逼真的图片欺骗D,D则努力区分真假图片。在训练过程中,两模型交替优化,理想状态是D无法区分G生成的图片。文章通过DCGAN实例展示了GAN在图像生成上的应用。
摘要由CSDN通过智能技术生成
GAN网络简介

网络结构
GAN网络全称generative adversarial network,即生成式对抗网络。GAN网络中有两个模型:生成模型(generative model G),判别模型(discriminative model D)。
以生成图片的GAN网络为例:

  • G是生成图片的网络,接收随机噪声z,通过噪声生成图片,生成数据记做G(z)
  • D是判别网络,判断图片是否真实。输入参数为x,x代表一张图片,输出D(x)代表x为真实图片的概率;如果输出为1则表示图片一定是真实的,输出为0代表一定不是真实的图片
  • 在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。
  • 训练过程中G和D的能力都在逐渐提高,最理想的情况下D(G(z))=0.5

训练过程
GAN网络的训练可以称为单独交替训练,每一轮单独交替训练都对判别网络和生成网络进行一次训练,交替迭代到一定次数后停止。下面是一次单独交替训练的过程:

  • 判别器的训练: 首先初始化生成器 G,然后输入一组随机向量(Randomly sample a vactor),生成器会根据输入的向量产生图片,我们把这些图片标注成 0(假图片)。同时把已有训练集中真实的图片标注成 1(真图片)。两者同时丢进判别器 D 中,以此来训练判别器 D。使得当输入是真图片的时候,判别器给高分(分数接近于1),而输入假图片的时候,判别器给低分(接近于 0 )。
    在这里插入图片描述
  • 生成器的训练: 针对于D我们有标记为1和0的数据,因此我们可以对其进行训练。那么对于生成器,有x(也就是随机噪声z),那么y在哪里呢?
    对于生成器,我们的目的是使得其能够生成真实的图片,换句话说,我们是希望生成的图片能够骗过D。那么如何通过判别器来产生所谓的y?
    我们可以这样做:我们通过随机向量(噪声数据)经由生成网络产生一组假图片,我们将这些假图片都标记为 1(也就是说,人为的把假的图片当作真实的),然后将这些假图片输入到判别器中,判别器在对这些图片进行判别的时候,会发现这些图片是假的图片,然后给出低分,这样就产生了误差(因为标记的为1,但是判别器给了低分)。
    因此,在训练生成器的时候,这个网络是串接的。而在训练生成器的时候,一个很重要的操作就是保持判别器网络的参数不发生改变,只是把误差一直方向传播,传到生成网络那块后更新生成网络的参数,这样就完成了生成网络的训练了。
    在这里插入图片描述
GAN网络demo

使用DCGAN进行演示,在图像生成方面使用GAN。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值