Conditional Generative Adversarial Nets
前言
GAN虽然厉害,但有个问题,其生成模型生成的样本完全是随机的。也就是完全取决于输入的噪声z,根本无法预测会生成数字1还是数字2。因此有人提出了条件GAN,其思想也是很简单,就是想要生成哪个数字,你输入的时候告诉我你想要的标签即可。为了达到这个目标,在训练的时候,就要加上标签。也就是G想伪造数字1,就要在原本的z向量后面加十维的one hot向量。在D那里也是,要判别是什么,也要在尾部加上十维的one hot向量。
直观上很难解释这是为什么,但多层感知机,乃至CNN,就是有那么强大的力量,你传什么,我训练出来的结果我都不知道是为什么,就是对的!这也是神经网络被称为黑箱的原因。
介绍
具体的论文介绍等日后有再看论文再来填坑,其实真的就只是比GAN多了一个输入,即真实标签y。
如图所示,原本的GAN是没有绿色部分的,条件GAN在生成器和判别器的训练过程中都添加了绿色的y标签,即数字的one hot。公式变成下面这个
[Math Processing Error] min G max D E x ∼ p d a t a ( x ) [ l o g D ( x | y ) ] + E z ∼ p z ( z ) [ l o g ( 1 − D ( G ( z | y ) ) ) ]