本文记录的是李弘毅老师的GAN的第二节课,bilibili视频链接为:https://www.bilibili.com/video/av24011528/?p=2,相关的课程课件链接为:http://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2018/Lecture/CGAN.pdf
目录
1 什么是 Condition GAN
一般形式的GAN在上一篇博客已经介绍过,今天这节课讲的是conditional GAN,翻译过来就是条件GAN,所谓条件呢就是指我们现在生成的网络不仅仅需要逼真,而且还要有一定的条件。比如图1所示的网络,输入一段文字,输出不仅仅是接近真实的图像,同时还要满足输入文字的条件,比如输入一只狗在奔跑,输出即为一直狗狗在奔跑的图。由于增加了条件,所以生成网络和判别网络的原理和训练均有所改变。

2 Conditional GAN 的原理
原理图如图2所示,上半部分是生成网络,输入增加了一个条件,比如图中所示的“train”说明输出应该是一个火车。下半部分是判别网络,输入除了生成的图片,还有与生成网络输入同样的条件,输出是一个综合打分。若接近实际而且与条件符合则为1分,若输出图片质量低或图片与条件不符则为0分。判别网络的两种形式如图3所示,上面一种是常规形式,及将两种因素综合成为一个分数,而下面这种形式也有一些人在研究,输出两个分数,分别表示真实程度和图片与条件的相符程度。


3 Conditional GAN 的训练
同一般形式的GAN类似,也是先训练判别网络,再训练生成网络,然后再训练判别网络,两个网络交替训练。只是训练判别网络的样本稍有不同,如图4所示,训练判别网络的时候需要这三种样本,分别是:(1)条件和与条件相符的真实图片,期望输出为1;(2)条件和与条件不符的真实图片,期望输出为0;(3)条件和生成网络生成的输出,期望输出为0。

4 Conditional GAN 的一些应用
(1)image-to-image
输入是一种图片,输出是另一种图片,则将输入的那种图片作为条件,及替换掉上文所例子中的“train”。示意图如图5所示,其中z是一个向量,训练时使用正态分布随机生成向量。

(2)语音增强
其实也是类似于图像到图像,示意图如图6所示

(3)视频生成
根据视频的前几帧生成后一帧,与前两个应用不同的是输入的条件是一系列图片,示意图如图7所示。

5 其他技术
(1)Stack GAN
原理为先生成小图,再生成大图。
(2)Patch GAN
主要用作生成大图,判别网络不在根据一整副图来判断,而是整幅图中的一块。
注:上文中所有的图片均来自李弘毅老师的课件。