Conditional GAN
最初的GAN是输入随机向量,输出一幅图像,这样的话,生成的图像是随机的,不可控的。
Conditional GAN是在输入的地方加上条件限制,譬如,配上文字介绍,生成的图像就是与文字相关的图像
使用传统的supervised learning做到这种需求的方法
右上角是准备的训练数据(文字描述与图像的pairs)
这种方法的缺点:
对于train,训练集中可能有多种,最后生成的train,会是模糊不清的。
Conditional GAN的方法
对应D而言,需要判断两个条件:
- 输入的x是不是真实的
- 输入的条件c与x是不是匹配的
下面是对应的算法:
D的实现方法:
上面的方法是大多数paper中的方法,下面的方法将输出拆分为:x是否是真实,条件c与x是否匹配,这样,方便精确地调整相应的网络。
Stack GAN
Image-to-Image
在这篇文章中,使用的Discriminator是专门做个设计的,内部使用的是下面的Patch GAN的思路。
Patch GAN
为什么需要使用Patch GAN? 当图像很大的时候,D的结果会容易坏掉。原因是:1)D参数也会越来越多,容易过拟合;2)D的参数多,会导致训练时间增长。
Patch GAN的patch size是需要调整参数。
Speech Enhancement
Conditional GAN也可以应用于语音增强,训练集的准备是用clean的语音数据,和增加噪音以后的语音数据。
D的判断条件就变成了下面两个:
- 产生的语音是clean语音的scalar
- 产生的语音与noisy语音是否匹配