InfoGAN论文笔记+源码解析

本文探讨了InfoGAN(信息最大化生成对抗网络)的改进原理,旨在通过互信息最大化创建可解释的隐变量c。InfoGAN解决了原始GAN中噪声信号z的不可解释性问题,将z分解为不可压缩的噪声和可解释的隐变量。通过约束c与生成数据的相关性,InfoGAN能够在MNIST等数据集上学习到数字种类、倾斜度等可解释信息。文章还详细解析了InfoGAN的源码实现,包括连续和离散隐变量的生成以及互信息的计算过程。
摘要由CSDN通过智能技术生成

论文地址:InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets

源码地址:InfoGAN in TensorFlow

GAN,Generative Adversarial Network是目前非常火也是非常有潜力的一个发展方向,原始的GAN模型存在着无约束、不可控、噪声信号z很难解释等问题,近年来,在原始GAN模型的基础上衍生出了很多种模型,如:条件——CGAN、卷积——DCGAN等等,在本博客的前几篇博文里均进行了大致的解读,本篇博文将提到的InfoGAN也是GAN的一种改进成果,甚至被OPENAI称为去年的五大突破之一。今天我们就来看看,InfoGAN到底做出了什么样的改进,能达到一个什么样的效果呢。

2014年,Ian J. Goodfellow提出了生成对抗网络:Generative Adversarial Networks,通过generator和discriminator的对抗学习,最终可以得到一个与real data分布一致的fake data,但是由于generator的输入z是一个连续的噪声信号,并且没有任何约束,导致GAN无法利用这个z,并将z的具体维度与数据的语义特征对应起来,并不是一个Interpretable(可解释) Representation,而这正好是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 late

  • 21
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
ACGAN是Auxiliary Classifier GAN的缩写,InfoGANInformation Maximizing Generative Adversarial Network的缩写。 ACGAN是一种生成对抗网络,它在生成器和判别器之间引入了一个辅助分类器。这个分类器的目的是帮助生成器学习生成更真实的样本,并且可以控制生成图像的特定属性。ACGAN在生成图像的同时可以生成对应的标签信息,因此可以用于生成带有特定标签的图像。 InfoGAN也是一种生成对抗网络,但它与ACGAN的不同之处在于,它通过最大化输入噪声和生成图像之间的互信息来学习可解释的表示。互信息可以用于发现生成图像的潜在因素和属性,并且可以通过调整这些属性来生成具有不同特征的图像。 所以,ACGANInfoGAN都是生成对抗网络的变种,它们在生成图像时具有不同的特性和功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pytorch-GANs:pytorch环境中的各种GAN](https://download.csdn.net/download/weixin_42144604/18486083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [GAN及其变体C_GAN,infoGAN,AC_GAN,DC_GAN(一)](https://blog.csdn.net/weixin_42111770/article/details/83928691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值