登堂入室__生成对抗网络的信息论扩展(infoGAN)(五)

简介
InfoGAN是生成对抗网络信息理论的扩展,能够以完全非监督的方式得到可分解的特征表示。它可以最大化隐含(latent)变量子集与观测值之间的互信息(mutual information),并且发现了有效优化互信息目标的下界。
原论文地址:https://arxiv.org/pdf/1606.03657.pdf

infoGAN原理:
2014年提出了生成对抗网络GAN,通过生成器和判别器的对抗学习,最终可以得到一个与真实数据分布一致的假数据,但是由于G的输入z是一个连续的噪声信号,并且没有任何约束,导致GAN无法利用这个z,并将z的具体维度与数据的语义特征对应起来,并不是一个可解释表述,而这正好是InfoGAN的出发点,它试图利用z,寻找一个可解释的表达,于是它将z进行了拆解,一是不可压缩的噪声z,二是可解释的 隐变量c,称作为latent code,而我们希望通过约束c与生成数据之间的关系,可以使得c里面包含有对数据的可解释的信息,如对MNIST数据,c可以分为categorical latent code来表数字种类信息(0~9),以及continuous latent code来表示倾斜度、笔画粗细等等。
在这里插入图片描述
为了引入c,作者利用互信息来对c进行约束,这是因为如果c对于生成数据G(z,c)具有可解释性,那么c和G(z,c)应该具有高度相关性,即互信息大,而如果是无约束的话,那么它们之间没有特定的关系,即互信息接近于0。因此我们希望c与G(z,c)的互信息I(c;G(z,c))越大越好,因此,模型的目标函数也变为:
在这里插入图片描述
但是在I(c;G(z,c))的计算中,真实的P(c|x)并不清楚,因此在具体的优化过程中,作者采用了变分推断的思想,引入了变分分布Q(c|x)来逼近P(c|x),它是基于最优互信息下界的轮流迭代实现最终的求解,于是InfoGAN的目标函数变为:
在这里插入图片描述
在具体的实现中,Q和D共用了所有的卷积层,并只在最后增加了一个全连接层来输出Q(c|x),因此InfoGAN并没有在原始的GAN上增加多少的计算量。
对于c,如果是categorical latent code,可以使用softmax的非线性输出来代表Q(c|x);如果是continuous latent code,可以使用高斯分布来表示。

具体案例:

  • 成功分解了MNIST数据集中数字形状的手写风格特征。
  • 在一个3D人脸数据集中,使用多个连续的编码,得到一些不同的特征:人脸的转向、人脸的仰角、人脸的宽窄以及图片亮度。
  • 在SVHN数据集中,得到不同特征可以分解数字在图像中的亮度以及区分图像中不同的数字。
  • 在CelebA数据集中,同样的可以通过不同的编码获取一些特征,比如人脸不同的转向角度,是否带了眼镜,发型的不同,情绪的变化。

InfoGANs最大的好处就是不需要监督学习以及大量额外的计算花销就能得到可解释的特征。

猜你喜欢

转载自blog.csdn.net/qq_42823043/article/details/89301055