Infogan-信息最大化生成对抗网络(理论部分)

来源:互联网 发布:win10usb端口上的电涌 编辑:程序博客网 时间:2024/06/05 08:40

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

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

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

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

互信息

互信息一般用来度量一个随机变量中包含的关于另一个随机变量的信息量。其离散形式有下式表示:

I(X;Y)=xXyYp(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)是条件熵等于xXp(x)H(Y|X=x), 继续推导:
H(Y|X)=xXp(x)yYp(y|x)log1p(y|x)=xXyYp(x,y)log1p(y|x)(3)

利用贝叶斯公式p(y|x)=p(x,y)p(x),可知上公式等于如下结果:
=xXyYp(x,y)logp(x)p(x,y)(4)

而I(X;Y)根据对数函数可分解为:
I(X;Y)=yYp(y)log1p(y)xXyYp(x,y)logp(x)p(x,y)

=H(Y)H(Y|X)(5)

这样可得特性(2),这个在物理层面上也很好理解,X中包含Y的信息量等于Y的信息量减去在X条件下Y的信息量,如果两者相减等于0,那么给定X和Y就无关。

而infogan的核心思想正是利用互信息这个正则项来使得隐空间中有那么几个可控变量来控制生成数据的属性。假设我们给定属性c,那么生成数据中所包含的隐含变量cc的互信息应该尽量的大,这样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)xXp(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)))即可。

原创粉丝点击