InfoGAN利用互信息和变分自编码(VAE,参考我这篇博客)将样本的label信息加入了GAN中。
首先我们列出一些基本公式:
熵: H(X)=−∫XP(X)logP(X) H ( X ) = − ∫ X P ( X ) l o g P ( X )
H(Y|X)=−∫XP(X)∫YP(Y|X)logP(Y|X) H ( Y | X ) = − ∫ X P ( X ) ∫ Y P ( Y | X ) l o g P ( Y | X )
仔细回想一下期望的计算公式,我们发现H(X) = E(log(P(X))),这个后面会用到。
互信息: I(X;Y)=H(X)−H(Y|X) I ( X ; Y ) = H ( X ) − H ( Y | X )
KL散度: DKL(X||Y)=∫XlogXY D K L ( X | | Y ) = ∫ X l o g X Y
好了,我们步入正题。为了让G网络生成的图片更有语义意思,论文中在z向量的基础上加入了隐藏编码c变量。隐藏编码c表示了所要生成图片的语义,比如mnist中的0-9数字。以mnist为例,隐藏编码c,其实就是一个one-hot向量,比如要生成内容为7的图片,则c向量中的第7索引则为1,其余的位置为0。因此来自G网络的图片可写成G(z,c)。
为了确保隐藏编码c能够起到引导G网络生成的图片有语义信息。论文使用了互信息 I(c;G(z,c))

本文介绍了InfoGAN(信息增益生成网络)如何通过互信息和变分自编码器将标签信息融入GAN中,以增强生成图像的语义意义。通过在原始GAN损失函数中加入互信息,InfoGAN旨在最大化隐藏编码c与生成图像的互信息,从而提高生成内容的可解释性。在实践中,InfoGAN区分了离散和连续的隐藏编码,并在判别器中引入Q网络分支进行优化。离散编码用交叉熵损失函数,连续编码则利用对数高斯函数进行优化。
最低0.47元/天 解锁文章
1128

被折叠的 条评论
为什么被折叠?



