【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

这是我的李宏毅老师 GAN 系列第2篇笔记,GAN 系列:

本节内容综述

  1. 本节课讲解 Conditional Generation 。本讲将以 Text-to-Image 为例。
  2. 传统的监督学习似乎可以解决 Text-to-Image 这个问题,但其不能生成没见过的 Text 下的图片。
  3. 讲解 cGAN 的结构。
  4. 详细讲了 Discriminator 的设计。
  5. 将生成过程拆成 2 阶的 Stack GAN 。
  6. Image-to-image 技术,其中,因为输出图片很大,其 Discriminator 经过了特殊的设计 Patch GAN 。
  7. 此外,可以用 cGAN 做 Speech Enhancement (去噪音等功能)。
  8. 此外,也可以做图片生成 Video Generation 。

小细节

Conditional GAN

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
如上,除了输入文字“train”外,还输入一个正态分布的向量。此外,我们的 Discriminator 不仅仅判断真假,而要产生一个 scalar :x是否是真实的,且是否与文字相符
【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN

其演算法如上。

Discriminator

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
如上,推荐使用下面的架构(性能不错)。下面的架构,将“是否为真”且“是否匹配”拆开,这样不会让神经网络“困惑”。

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
去年同学的作业效果如上。

Stack GAN

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
如上,两截的 Generator ,先产生小图,再产生大图。

Image-to-image

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
收集一些数据对(抽象数据,真实图片)。如果用传统的监督学习,则生成图片较为模糊。因为训练时,仅仅是为了让各个像素最为接近。
【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
如上,使用 GAN ,输入一个抽象图片+噪音;同时:

  • 在 Discriminator 进行 Generator 生成图片与抽象图片是否匹配的判断;
  • 此外,希望 Generator 生成的图片接近于真实数据。可以看出,GAN+close 效果较好。

Patch GAN

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
如上,上文中 Discriminator 经过特殊设计,防止一下检查大图片,导致结果坏掉。

Speech Enhancement

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
架构与 Image-to-image 很像:

  • G 生成的 output 要尽量接近 clean 的数据;
  • 同时,D 要求 G 的 output 与 noisy 要 match,防止信息变形。

Video Generation

【李宏毅2020 ML/DL】P75 Generative Adversarial Network | Conditional GAN
如上,生成的片段与原有片段接在一起,让 D 判断是否片段的最新一帧是生成的。