InfoGAN 论文阅读笔记 基本知识总结

最近的一些工作是在使用InfoGAN,查看了一些资料,发现相关的资料并不是很多,所以,写了这个博客,一方面希望对最近两个周看到的文献进行一个归纳总结,另一方面希望遇到在做这方面的工作的大佬们,请教学习,不足之处请指正,谢谢大家~。

一、什么是InfoGAN

InfoGAN是一种常见的GAN 的变种,是由InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets这篇论文中提出,论文的地址为:https://arxiv.org/pdf/1606.03657.pdf,在众多GANs中,最突出的特点就是在于,它增加了互信息的判断的部分,在进行进行生成器生成的假的图片等结果是否是真实的时候,需要进行计算互信息的值的大小,我们在进行计算的时候,期望互信息的值越大越好,这样就说明在生成器生成的fake data 越来越真实,判别器在进行判别的时候,会更大概率的将其判别为real data ,而对于最终达到的效果,也是非常棒的,我们在输出的部分,是可以按照类别进行输出的,例如对于手写体数字的数据集来说,我们可以只输出我们想要的那一种类别,而在进行控制这个类别的时候,是由参数c决定的,c可以使长短、粗细、以及哪个数字等。

论文的abstract部分也做出了相应的说明,具体如下:

InfoGAN 论文阅读笔记 基本知识总结

二、InfoGAN的网络结构和基本的参数

(一)网络结构,在githu上找到了一个大牛画的各种GAN的网络结构图,如下,地址是https://github.com/hwalsuklee/tensorflow-generative-model-collections,很详细,供大家进行参考。

InfoGAN 论文阅读笔记 基本知识总结

在论文中,我们会发现,和传统的GAN是一样的,InfoGAN也是由生成器和判别器两部分组成,但是,在对生成器进行输入的部分做了一定的改变,由原来的只输入噪声Z,改变为输入噪声Z和label c。在判别器输出的部分,也做出了一定的调整,会输出类别C',与此同时,会有一个简单的Q网络输出(如上图所示),对于Q网络来说,其实,Q网络和D网络共享同一个网络,只是在最后一层作出了改变,其他部分都是一样的。

论文中是具体介绍如下:

InfoGAN 论文阅读笔记 基本知识总结

三、什么是互信息,以及互信息的左右是什么

首先来说一下互信息的定义,在这里参考了百度百科的介绍,定义如下:

互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。

在这里附上百度百科的地址,https://baike.baidu.com/item/%E4%BA%92%E4%BF%A1%E6%81%AF/7423853?fr=aladdin,这部分的知识讲述的蛮详细的。

具体的互信息的其他知识以及在InfoGAN中的应用,下次有时间再更新。