1、Generator

Unconditional generation:不含x输入。
z:从Normal Distribution中simple出来的一个向量,维度自己决定。
Generator:生成一个高维向量,从z中生成一个正确的输出;输入的向量不同的时候,输出也不相同。

image.png

2、Discriminator

GAN不光要训练 Generator,还要训练 Discriminator。Discriminator 输出是一个数字 Scalar,这个数字越大,表示当前的输入越像是真实的模型。
image.png
Generator 和 Discriminator 互相选择,互相进化。前者调整参数,使生成结果更符合要求;后者的评估标准逐步完善,要求更加复杂。二者之间有着对抗的关系。(比喻:前者是假钞,后者是警察)
image.png

3、算法

初始化 Generator 和 Discriminator 的参数。
每次训练的步骤:
Step 1:
随机sampled输入给 Generator,用其输出和正确的一组答案来训练更新 Discriminator,目的是使 Discriminator 具有分辨生成的结果和正确结果的能力。
image.png
Step 2:
将 Generator 和 Discriminator 连接起来当做一个大的网络,固定 Discriminator 的参数,不断更新 Generator的参数。该步的目的是使 Generator 具有“以假乱真”的能力,即使其生成的结果更接近真实结果,能够让 Discriminator 给予其生成结果更高的分数。
image.png
Step 3:
反复交替训练 Discriminator 和 Generator。
image.png

4、评估 Generator

Mode Collapse 问题:
Generator 总是生成某一种结果,不具有多样性。
image.png
Mode Dropping问题:
Generator在某一特征方面过于单一(例如肤色,虽然人脸样貌多样,但肤色单一)
image.png
评估方法:
如果classification结果平均下来某一类非常多,而其他类很少,则表示多样性较差,如下图所示:
image.png
如果classification结果平均下来非常平坦,则表示多样性足够,如下图所示:
image.png
Quality 平均结果越集中,代表 Quality 越好;
Diversity 平均结果越平坦,代表 Diversity 越好;
区别:Quality 只看一张图片,Diversity 是看多张图片。

5、Conditional Generation

应用:Text-to-image、Image translation(pix2pix)
image.png
训练方法:Discriminator 不光要判断图像是否是真实的,还需要判断是否符合x条件。
image.png
其他应用:
image.png
image.png