infoGAN公式推导(信息最大化生成对抗网络(理论部分))

对抗生成网络(GAN)和贝叶斯变分自编码是最为主要的两种数据生成模型,目前的生成对抗网络的一些改良技术已经实现了非常逼真的图像。

此外生成模型也是非监督学习的主要驱动力之一,假若人工神经网络已经具备了自我生成栩栩如生的真实图像的能力,我们亦可以说人工神经网络已经具备了想象和创作的能力,具有了想象和创作能力的个体当然已经掌握了一些抽象的概念,而非监督学习不就是让人工智能自我去摸索这个世界并掌握一定的抽象概念吗?

而从非监督学习研究角度来看,GAN仍然有一些美中不足的地方,现有的很多具有很好效果的GAN并不是完全非监督的,而是人为的加入了很多带标签数据的半监督学习。传统的GAN生成数据是通过一组完全随机的z隐含变量得到,这个z基本是不可控的,我们很难通过控制z中某数的大小变化让生成的图像变大变小或进行旋转等等简单操作,如果人工智能连这样的简单特性都不能稳定控制,那么我们很难说它已经具备了这些非常显著的人类易于掌握的概念。

infogan正是基于这一问题而提出的GAN修正模型,其在GAN优化函数中引入了一个有互信息最小下界得来的正则项。非常简单却又非常精彩。

互信息

这样可得特性(2),这个在物理层面上也很好理解,X中包含Y的信息量等于Y的信息量减去在X条件下Y的信息量,如果两者相减等于0,那么给定X和Y就无关。
而infogan的核心思想正是利用互信息这个正则项来使得隐空间中有那么几个可控变量来控制生成数据的属性。假设我们给定属性cc,那么生成数据中所包含的隐含变量c′c′与cc的互信息应该尽量的大,这样infoGAN的损失函数为


互信息的下界及infogan的求解

故 LI (G, Q) 是互信息的一个下界。作者指出,用蒙特卡罗模拟(Monte Carlo simulation)去逼近 LI (G, Q) 是较为方便的,这样我们的优化问题就可以表示为:

实现

在实现中,D(x)、G(z, c) 和 Q(x) 分别用一个 CNN (Convolutional Neural Networks)、CNN、DCNN (DeConv Neural Networks) 来实现。同时,潜码 c 也包含两部分:一部分是类别,服从 Cat(K = N,p = 1/N),其中 N 为类别数量;另一部分是连续的与生成数据有关的参数,服从 Unif(−1,1) 的分布

在此应指出,Q(c|x) 可以表示为一个神经网络 Q(x) 的输出。对于输入随机变量 z 和类别潜码 c,实际的 LI(G, Q) 可以表示为:

 其中 · 表示内积(inner product),c 是一个选择计算哪个 log 的参数,例如 ci = 1 而 cj = 0(∀j = 1,2,···,i − 1,i + 1,···,n),那么 z 这时候计算出的 LI(G,Q) 就等于 log(Q(z,c)i)。这里我们可以消去 H(c),因为 c 的分布是固定的,即优化目标与 H(c) 无关:

而对于参数潜码,我们假设它符合正态分布,神经网络 Q(x) 则输出其预测出的该潜码的均值和标准差, 我们知道,对于均值 μ,标准差 σ 的随机变量,其概率密度函数为:

要计算参数潜码 c 的,就是要计算 log p(c),即:

设 Q(x) 输出的参数潜码 c 的均值 μ,标准差 σ 分别为 Q(x)μ 和 Q(x)σ,那么对于参数潜码 c:

同样的,我们可以消去 H(c),因为 c 的分布是固定的,那么:

再论InfoGAN的LI

对于类别潜码,这个 LI 本质上是 x 与 G(z, c) 之间的 KL 散度:

也就是说:

而 min DKL(c||Q(G(z, c))) 意味着减小 c 与 Q(G(z, c)) 的差别。

如果我们不考虑 Q(x)σ 的影响,LI 的优化过程:

也意味着减小 c 与 Q(G(z, c))μ 的差。

纵观整个模型,我们会发现这一对 LI 优化的过程,实质上是以 G 为编码器(Encoder), Q 为解码器(Decoder),生成的图像作为我们要编码的码(code),训练一个自编码器(Autoencoder),也就是说,作者口中的信息论优化问题,本质上是无监督训练问题。

来源:

https://blog.csdn.net/dagekai/article/details/53953513 

http://aistudio.baidu.com/#/projectdetail/29156

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值