InfoGAN

Chen X., Duan Y., Houthooft R., Schulman J., Sutskever I., Abbeel P. InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets. arXiv preprint arXiv 1606.03657, 2016.

既然都能生成图片了, 那至少得能够抓住数据的特征信息, 解耦.

主要内容

一些GAN的输入会包括(z,c), 其中z是噪声, 而c是一些别的信息, 比如标签信息, 一个很自然的问题是, 怎么保证GAN会利用这部分信息呢? 换言之, 怎么保证生成器生成的图片G(z,c)c有不可否认的关联呢?

衡量两个随机变量关联性的指标, 经典的便是互信息

I(X,Y)=H(X)H(X|Y),

在这个问题里就是

I(c,G(z,c))=H(c)H(c|G(z,c)).

直接估计互信息是很困难的, 利用变分方法可以得到一个有效的下界(这也是VAE的灵魂):

I(c,G(z,c))=ExPGEP(c|x)logP(c|x)+H(c)=ExPG[KL(P(c|x)Q(c|x))+EP(c|x)logQ(c|x)]+H(c)ExPGEP(c|x)logQ(c|x)+H(c)=:LI(G,Q).

其中Q是我们用来近似P(c|x)的. 上述还是存在一个问题, 即P(c|x)依然无法处理, 不过注意到

LI(G,Q)=EcP(c),xG(z,c)[logQ(c|x)]+H(c).

我们可以给出一个合理的先验分布.

cC是离散的时候, 令Q的输出向量的长度为|C|, 可直接令该向量的softmax后的向量为概率向量;

c是连续的时候, 倘若x=G(z,c), 则可以假设Q(c|x)N(c,σ2I), 此时

logQ(c|x)logexp(cc222σ2)cc22.

最后的损失便为

minG,QmaxDVInfoGAN(D,G,Q)=V(D,G)λLI(G,Q).

其中V(D,G)是普通的GAN的损失.

看一些InfoGAN的实现: z服从[0, 1]均匀分布, 类别标签服从均匀分布(1/K), 其他的用于描述角度宽度的c服从[-1, 1]的均匀分布.

实际上, 应该还是有一个超参数σ2的, 但是当我们假设其与x无关的时候, 在损失部分其为一常数, 所以就不用管了(这和VAE在decoder部分的处理也是一致的).

估计是没弄好啊, 这没看出变化来.

image-20201125200554855

posted @   馒头and花卷  阅读(154)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示