6.0 GAN入门

一、生成的定义

输入是分布,输出也是分布的网络结构。其中,输入包含另外的条件x的,称为条件生成(conditional generation);输入仅有下面的随机分布的,称为无条件生成(unconditional generation)。
在这里插入图片描述
为什么输入要采用分布?
比如图中的动漫人脸生成任务,输入要求有红眼睛,这样对应的输出是不确定的,具有随机性。也就是说相同的输入可能有不同的输出,所以输入也得具有随机性。
在这里插入图片描述

二、生成对抗网络(GAN)

由于网络架构、损失函数、梯度下降算法等等的不同,衍生出各种各样的GAN,但其基本结构都是由生成器(generator)和判别器(discriminator)组成。
在这里插入图片描述

2.1GAN的架构(无条件生成)

下面以动漫人脸生成作为案例分析GAN的架构。

2.1.1生成器generator

**动漫人脸生成的输入只有随机生成的低维度向量,是无条件生成。**比如输入是100维的向量,每个维度的值都由标准正态分布生成。这个100维的向量通过生成器(多个卷积层的组合)会生成一张图片。
Generator

2.1.2判别器discriminator

判别器生成的图片传入判别器,每张图片会生成一个标量数值,类似二分类,越接近1代表图片越接近真实照片,接近0则相反。
判别器的原理是对于真实的输入,预测输出是1;对于生成的图片作为输入,预测输出是0。
Discriminator

2.1.3GAN的直观理解

生成器和判别器组合形成基本的GAN架构。
生成器逐渐进步生成更加逼真的图片,判别器不断提高区分生成或者真实图片的能力,两者相互促进提高,这就是名称中对抗的由来。
在这里插入图片描述

2.2条件生成(conditional generation)

2.2.1条件生成的错误结构案例

前面讲到条件生成,输入出了随机向量z之外,还有一个条件x。这里x和z一起作为输入,通过生成器产生图片y,然后y再传给判别器,判别器给出图片是否为真实图片的判断。这种结构的问题是判别器会忽视了输入条件,因为它的输入只要是真实图片,不管是否为红眼睛,都会标记为1。很明显没办法达到想要生成红眼睛的要求。
在这里插入图片描述

2.2.2正确的结构

正确的网络结构应该要把条件x也作为判别器的输入,这样判别器的输入会有以下三种情形:

  • 真实图片并且图片人物满足红眼睛的条件,标记为1
  • 真实图片但图片人物并非红眼睛,标记为0
  • 生成图片、图片人物满足红眼睛的条件,标记为0

总结就是,判别器的输入只有同时满足真实图片和条件x,判别器才会判定为有效图片,即标记为1;其他的情况,判别器都会标记为0。这样的网络结构最终生成的图片才会满足输入的条件。

在这里插入图片描述

2.3GAN的计算过程

初始化生成器和判别器的参数,在每次迭代中(先学习判别器,再学习生成器),重复以下操作:

  1. 固定生成器的参数,更新判别器的参数(可以连续更新多次判别器再更新一次生成器)
  2. 固定判别器的参数,更新生成器的参数,使得判别器输出的数值尽可能提高
  3. 重复1和2
    在这里插入图片描述

三、GAN的损失函数和评估指标

原始GAN的损失函数就是简单的二分类交叉熵损失,不同的GAN比如WGAN、StyleGAN等损失函数和网络结构都不同。评估指标的话主要从生成图片的多样性,图片与真实图片的距离等角度进行评估。目前没有太深入研究这些问题,后续又遇到再补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值