视频链接:吴恩达DeepLearning.ai之生成对抗网络(GANS)专业化〔Andrew Ng〕
4-2 Conditional generation intuition
- Unconditional Generation:从随机类中得到输出,每次输出的类也都是随机的,无法得到指定输出类。
- Conditional Generation:允许生成指定的类。如下图,就像自动售货机
总结:
Conditional Generation需要标注的数据集,可以从选择的类中生成实例
4-3 conditional generation inputs
- Generator Input:Noise vector(指定类中的随机实例)+one-hot vector(指定类,也叫class vector)
- Discriminator Input: feature(图片等) + label(描述该feature的标注信息)
-
若feature和label可以对应,则Discriminator输出的打分高
-
若feature和label不对应,则Discriminator输出的打分低
以上图为例,其中Discriminator的输入实际为image+one-hot matrix(注意这里为了和image channel对应,是matrix而不是vector),而该种image又有3通道,即Discriminator的输入如下图所示:
-
总结:
- 类信息以one-hot vector形式传给generator,以one-hot matrix形式传给discriminator
- vector长度 = matrix个数 = 类数量
4-4 Controllable generation
- 调整输入Generator的noise可以得到特征不同的输出
- Controllable Generation和Conditional Generation的对比:
4-5 Vector algebra in the z-space
z1和z2是z-space中的两个维度,v1=[5,10],v2=[4,2] 是z-space中的两个向量,g(v1)和g(v2)生成的两张图像如下。如果想得到这两张图像的中间值(通过这些中间值可以看到这两张图像相互转换的中间过程),可以在z1和z2维度中对v1和v2进行中间插值
那么一旦我们找到了从一个特征到另一个特征的矢量d,就可以从一张图像g(v1)生成另一张g(v1+d)
4-6 Challenges with controllable generator
- Feature correlation:有的特征和其他特征是有相关关系的,比如给不能给女生加上胡子,而是需要将其性别调整为男性之后再添加胡子
- Z-space Entanglement
由Feature correlation导致的Z-space中的特征纠缠问题,即若想改变输出的某一特征,不能只改变noise vector中的一项,即需要改变noise vector中的多项,而这又会导致输出的其他特征发生改变。特别是当噪声 z 维度不够时,就更容易发生z-space entanglement。
总结:
当我们试图去改变一个特征,其他关联特征也会被改变。当z维度不够时会发生Z-space entanglement问题,使得特征控制问题变得困难。
4-7 Classifier gradients
如下图所示,g(noise)生成一个图像后,用pre-trained classifier来识别该图像内容的特征(在这里是图像中的人是否佩戴了太阳镜),classifier返回的识别结果再用来修改noise vector z的值,而不用修改Generator的权重值。其中每一张被归类为“没有佩戴太阳镜”的图像都会受到梯度惩罚,重复以上过程直至Generator生成的图像中的人都是佩戴了太阳镜
总结:
classifier可以找到改变某一特征的方向,即4-8中从v1到v2的方向矢量d。这一过程中只更新noise vector的值。
4-8 Disentanglement
解决Z-space Entanglement需要改变一个向量的同时不改变其他向量。
解决方法一:将类信息嵌入到噪声向量中。但是这种方法会对连续类生成有问题
解决方法二:不给任何实例加标注,而是在损失函数是中加入一个正则化项,来鼓励模型将 噪声向量中的每个索引 与 输出中的不同特征 相关联。而这一正则化项可以来自classifier gradients或者其他无监督方法等。