Daibingh Less is more, slow is fast.

浅谈生成对抗网络

2019-09-10
hdb
DL
 

学习资料

GAN 基础

GAN 的组成

GAN 有两个部分组成:Generator 和 Discriminator,本质上是两个独立的 Network,在用的时候我们往往只用 Generator,而 Discriminator 是在训练中帮助提升 Generator 性能(陪练角色)

  • Generator
    • 输入:一个随机 vector(服从高斯分布或均匀分布等)
    • 输出:期望输出的 sample(比如图片或句子等)
  • Discriminator
    • 输入:一个 sample
    • 输出:对应 sample 为真的概率

例子利用 GAN 生成二次元头像:

值得注意的是,我们可以操纵输入的 vector,得到 vector 某一维与 sample 某个特征的关系,比如:

GAN 训练算法

Structured Learning

机器学习是解决这样一个问题:找出一个函数 $f$

  • 回归问题:输出一个 scalar
  • 分类问题:输出一个 class probability distribution
  • 结构化学习或预测:输出一个句子、矩阵、图、树,…(内部各个元素之间有依赖关系

为何结构化学习具有挑战性?

  • 从 One-shot/Zero-shot Learning 理解,在训练集中几乎没有完全重合的样本
  • 模型必须学习到“大局观”,学习输出各个元素之间的关系。

单独用 Generator 作生成

通过 GAN 的训练算法看出,Generator 的训练必须配合 Discriminator,那么 Generator 能否自己完成 GAN 的工作呢?虽然具有挑战性,但是仍然是可以的,可以利用 Auto-Encoder 的方法,比如 VAE, 问题是它也不容易学习到结构化信息

单独用 Discriminator 作生成

Discriminator 能否自己完成 GAN 的工作呢?答案也是可以的

  • 在特征空间随机产生 samples, 交给 Discriminator 判断,将得分高的作为输出
  • Discriminator 可以采用迭代式训练方式

总之,只有配合 Generator 和 Discriminator 才能更好的完成生成任务

Conditional GAN

上面的 GAN 模型只接收一个随机向量,生成对应的图片,但是我们无法通过改变输入来获得期望的输出,比如我们的模型可以生成各种各样的二次元人物图像,但是当我们想生成诸如“长头发”的图片时,却无法实现。

再比如文字生成图片的问题,模型输入“火车”,返回火车的图片,但是每次的结果不能完全一样。这个任务如果用监督学习,则输入“火车”,输出为各式各样火车图片的平均图像,无法完成。

条件 GAN 可以解决上面这些问题。

训练算法

Discriminator 架构

条件 GAN 的 Discriminator 常见的两种架构:

  • 单网络
  • 双网络

相关应用

  • Text-to-Image
  • Image-to-Image
  • Video Generation
  • Speech Enhancement

Unsupervised Conditional Generation

上面介绍的 Conditional GAN 是有监督的,比如产生“长头发”和“短头发”的二次元人物图片,需要事先标注头发长短的标签,在计算 score 时利用标签信息。

现在假设要作风格迁移,将一幅照片变成梵高画作,实际上是 Image-to-Image 问题,但是,我们手头上没有这样一一对应的图像对,只有一堆是照片,另一堆是梵高画作,现在要模型“看过”这堆梵高画作后,将照片变成对应的梵高画作。

实现这个任务有两个方法:

方法 1:直接变换

直接变换的方法是训练一个 Generator,直接完成风格变换。

与普通的 GAN 类似,该 Generator 的训练必须辅以一个 Discriminator,该 Discriminator 的作用是判断一幅画是否是梵高画作。在 Generator 层数较浅时,这样做可行,但是层数过深,Generator 可能会使得输入输出两幅图片差异多大。因此,当层数较深时,必须对输出施加约束

对输入输出分别作 encode, 然后使得它们尽可能相似

另一种是使用 CycleGAN, 它使用两个 Generator $G_{X \rightarrow Y}$ 和 $G_{Y \rightarrow X}$ 保证循环一致性( Cycle Consistency)

方法 2:投影到共享的特征空间

投影到同一个特征空间,保证同一特征投影到同一个维度上

参数绑定,

引入 Domain Discriminator,

Cycle Consistency,

Semantic Consistency,

相关应用

  • 图片风格迁移
  • 声音转换

对比 GAN、条件 GAN、和无监督条件 GAN(以图片生成为例)

  • GAN 目的是生成更真实的图片
  • 条件 GAN 目的是有条件的生成更真实的图片
  • 无监督条件 GAN 目的是不利用标签有条件的生成更真实的图片

示例

基于 mnist 数据集,利用 GAN 生成手写数字

下面是隐变量维度设置成 2 训练模型,然后在 latent space 等间隔采样生成的图片。


Similar Posts

上一篇 lingo 基础

下一篇 强化学习笔记

Comments