Infogan-信息最大化生成对抗网络(理论部分)
2017-11-12 15:25
260 查看
对抗生成网络(GAN)和贝叶斯变分自编码是最为主要的两种数据生成模型,目前的生成对抗网络的一些改良技术已经实现了非常逼真的图像link。
此外生成模型也是非监督学习的主要驱动力之一,假若人工神经网络已经具备了自我生成栩栩如生的真实图像的能力,我们亦可以说人工神经网络已经具备了想象和创作的能力,具有了想象和创作能力的个体当然已经掌握了一些抽象的概念,而非监督学习不就是让人工智能自我去摸索这个世界并掌握一定的抽象概念吗?
而从非监督学习研究角度来看,GAN仍然有一些美中不足的地方,现有的很多具有很好效果的GAN并不是完全非监督的,而是人为的加入了很多带标签数据的半监督学习link。传统的GAN生成数据是通过一组完全随机的z隐含变量得到,这个z基本是不可控的,我们很难通过控制z中某数的大小变化让生成的图像变大变小或进行旋转等等简单操作,如果人工智能连这样的简单特性都不能稳定控制,那么我们很难说它已经具备了这些非常显著的人类易于掌握的概念。
infogan正是基于这一问题而提出的GAN修正模型,其在GAN优化函数中引入了一个有互信息最小下界得来的正则项。非常简单却又非常精彩。
I(X;Y)=∑x∈X∑y∈Yp(x,y)logp(x,y)p(x)p(y)(1)
其具备如下特性:
I(X;Y)=H(Y)−H(Y|X)=H(X)−H(X|Y)(2)
这里注意H(Y|X)是条件熵等于∑x∈Xp(x)H(Y|X=x),
继续推导:
H(Y|X)=∑x∈Xp(x)∑y∈Yp(y|x)log1p(y|x)=∑x∈X∑y∈Yp(x,y)log1p(y|x)(3)
利用贝叶斯公式p(y|x)=p(x,y)p(x),可知上公式等于如下结果:
=∑x∈X∑y∈Yp(x,y)logp(x)p(x,y)(4)
而I(X;Y)根据对数函数可分解为:
I(X;Y)=∑y∈Yp(y)log1p(y)−∑x∈X∑y∈Yp(x,y)logp(x)p(x,y)
=H(Y)−H(Y|X)(5)
这样可得特性(2),这个在物理层面上也很好理解,X中包含Y的信息量等于Y的信息量减去在X条件下Y的信息量,如果两者相减等于0,那么给定X和Y就无关。
而infogan的核心思想正是利用互信息这个正则项来使得隐空间中有那么几个可控变量来控制生成数据的属性。假设我们给定属性c,那么生成数据中所包含的隐含变量c′与c的互信息应该尽量的大,这样infoGAN的损失函数为minGmaxDV(D,G)−λI(c,G(c,z))
根据互信息量的特性,我们有:
I(X;Y)=H(Y)−H(Y|X)=H(Y)−∑x∈Xp(x)H(Y|X=x)(6)
根据期望公式,显然(6)可变为
H(Y)−Ex(H(Y|X=x))
=H(Y)+ExEy|xlogp(y|x)
引入一个估计分布q(y|x)
=H(Y)+ExEy|xlogp(y|x)q(y|x)q(y|x)
=H(Y)+ExEy|xlogq(y|x)+ExEy|xlogp(y|x)q(y|x)(7)
ExEy|xlogp(y|x)q(y|x)是KL散度在x分布下的期望,根据KL散度特征Ex(KL(p(y|x)||q(y|x))≥0
这样我们得到互信息的下界H(Y)+ExEy|xlogq(y|x)。
我们生成x的同时,也采用神经网络来估计c,然后优化损失函数的下界minGmaxDV(D,G)−λ(H(c)+EcEc|G(z,c)logq(c|G(z,c)))即可。
此外生成模型也是非监督学习的主要驱动力之一,假若人工神经网络已经具备了自我生成栩栩如生的真实图像的能力,我们亦可以说人工神经网络已经具备了想象和创作的能力,具有了想象和创作能力的个体当然已经掌握了一些抽象的概念,而非监督学习不就是让人工智能自我去摸索这个世界并掌握一定的抽象概念吗?
而从非监督学习研究角度来看,GAN仍然有一些美中不足的地方,现有的很多具有很好效果的GAN并不是完全非监督的,而是人为的加入了很多带标签数据的半监督学习link。传统的GAN生成数据是通过一组完全随机的z隐含变量得到,这个z基本是不可控的,我们很难通过控制z中某数的大小变化让生成的图像变大变小或进行旋转等等简单操作,如果人工智能连这样的简单特性都不能稳定控制,那么我们很难说它已经具备了这些非常显著的人类易于掌握的概念。
infogan正是基于这一问题而提出的GAN修正模型,其在GAN优化函数中引入了一个有互信息最小下界得来的正则项。非常简单却又非常精彩。
互信息
互信息一般用来度量一个随机变量中包含的关于另一个随机变量的信息量。其离散形式有下式表示:I(X;Y)=∑x∈X∑y∈Yp(x,y)logp(x,y)p(x)p(y)(1)
其具备如下特性:
I(X;Y)=H(Y)−H(Y|X)=H(X)−H(X|Y)(2)
这里注意H(Y|X)是条件熵等于∑x∈Xp(x)H(Y|X=x),
继续推导:
H(Y|X)=∑x∈Xp(x)∑y∈Yp(y|x)log1p(y|x)=∑x∈X∑y∈Yp(x,y)log1p(y|x)(3)
利用贝叶斯公式p(y|x)=p(x,y)p(x),可知上公式等于如下结果:
=∑x∈X∑y∈Yp(x,y)logp(x)p(x,y)(4)
而I(X;Y)根据对数函数可分解为:
I(X;Y)=∑y∈Yp(y)log1p(y)−∑x∈X∑y∈Yp(x,y)logp(x)p(x,y)
=H(Y)−H(Y|X)(5)
这样可得特性(2),这个在物理层面上也很好理解,X中包含Y的信息量等于Y的信息量减去在X条件下Y的信息量,如果两者相减等于0,那么给定X和Y就无关。
而infogan的核心思想正是利用互信息这个正则项来使得隐空间中有那么几个可控变量来控制生成数据的属性。假设我们给定属性c,那么生成数据中所包含的隐含变量c′与c的互信息应该尽量的大,这样infoGAN的损失函数为minGmaxDV(D,G)−λI(c,G(c,z))
互信息的下界及infogan的求解
虽然有了这样一个损失函数,但是我们并不能简单的求解这一问题,因为我们很难得到通过G生成的x条件下c的分布P(c|x),那么怎么办呢,其实推导其下界的目的在于用神经网络来估计x条件下的Q(c|x),然后由于我们优化的时候只用到Q(c|x),就不用处理P(c|x)了。根据互信息量的特性,我们有:
I(X;Y)=H(Y)−H(Y|X)=H(Y)−∑x∈Xp(x)H(Y|X=x)(6)
根据期望公式,显然(6)可变为
H(Y)−Ex(H(Y|X=x))
=H(Y)+ExEy|xlogp(y|x)
引入一个估计分布q(y|x)
=H(Y)+ExEy|xlogp(y|x)q(y|x)q(y|x)
=H(Y)+ExEy|xlogq(y|x)+ExEy|xlogp(y|x)q(y|x)(7)
ExEy|xlogp(y|x)q(y|x)是KL散度在x分布下的期望,根据KL散度特征Ex(KL(p(y|x)||q(y|x))≥0
这样我们得到互信息的下界H(Y)+ExEy|xlogq(y|x)。
我们生成x的同时,也采用神经网络来估计c,然后优化损失函数的下界minGmaxDV(D,G)−λ(H(c)+EcEc|G(z,c)logq(c|G(z,c)))即可。
相关文章推荐
- Infogan-信息最大化生成对抗网络(理论部分)
- 生成对抗网络(GAN)的理论与应用完整入门介绍
- 生成对抗网络(GAN)的理论与应用完整入门介绍
- 【深度学习理论】通俗理解生成对抗网络GAN
- 生成对抗网络(GAN)的理论与应用完整入门介绍
- 深度学习笔记九:生成对抗网络GAN(基本理论)
- <模型汇总_5>生成对抗网络GAN及其变体SGAN_WGAN_CGAN_DCGAN_InfoGAN_StackGAN
- 火热的生成对抗网络(GAN),你究竟好在哪里
- 2017年高校网络信息安全管理运维挑战赛部分题解
- 生成对抗网络入门详解及TensorFlow源码实现--深度学习笔记
- 生成对抗网络GAN(二) 语音相关
- 生成对抗网络(CGAN)(37)---《深度学习》
- 生成对抗网络学习笔记1----论文Generative Adversarial Nets
- 生成对抗网络Generative Adversarial Nets资料
- GAN生成对抗网络发展史-文章整理
- [TensorFlow]生成对抗网络(GAN)介绍与实践
- 生成对抗网络介绍(附TensorFlow代码)
- 深度 | 生成对抗网络初学入门:一文读懂GAN的基本原理(附资源)
- TensorFlow/对抗网络DCGAN生成图片
- C# 教程(基础理论部分出自网络,一些上机结果为原创)