对于根据文字生成图像的问题,传统的做法就是训练一个NN,然后输入一段文字,输出对应一个图片,输出图片与目标图片越接近越好。存在的问题就是,比如火车对应的图片有很多张,如果用传统的NN来训练,模型会产生多张图像的平均,结果就会很模糊。
Conditional GAN与普通GAN的区别在于输入加入了一个额外的condition,并且在训练的时候使得输出的结果拟合这个 condition。
此时的discriminator的输入是generator的输出和conditional vector,此时discriminator有两个任务:
训练D(固定G):
训练G(固定D):
具体设计条件GAN判别器,有两种方式:
第一个网络生成小的图片,第二个网络生成大的图片。
传统做法存在的问题就是产生的图片很模糊,是因为它是许多张图片的平均。
Conditional GAN的做法就是,generator的输入一张图片和noise z,输出一张图片,discriminator会输入产生的image和input,输出一个scalar。通过算法的迭代,生成下面第三张图片,看起来很清晰,但和真实的图片还是有差异。所以提出了GAN+close,对generator生成的image加上限制,使得生成的image与真实对象越接近越好,得到第四张图片。
这里和image-to-image原理类似,都是把G的输入和输出作为D的输入。
Video Generation能够根据影片的前几帧产生后几帧。conditional 为之前几帧的图片。