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))=Ex∼PGEP(c|x)logP(c|x)+H(c)=Ex∼PG[KL(P(c|x)∥Q(c|x))+EP(c|x)logQ(c|x)]+H(c)≥Ex∼PGEP(c|x)logQ(c|x)+H(c)=:LI(G,Q).
其中Q是我们用来近似P(c|x)的. 上述还是存在一个问题, 即P(c|x)依然无法处理, 不过注意到
LI(G,Q)=Ec∼P(c),x∼G(z,c)[logQ(c|x)]+H(c).
我们可以给出一个合理的先验分布.
当c∈C是离散的时候, 令Q的输出向量的长度为|C|, 可直接令该向量的softmax后的向量为概率向量;
当c是连续的时候, 倘若x=G(z,c∗), 则可以假设Q(c|x)∼N(c∗,σ2I), 此时
logQ(c|x)∝logexp(−∥c−c∗∥222σ2)∝−∥c−c∗∥22.
最后的损失便为
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部分的处理也是一致的).
估计是没弄好啊, 这没看出变化来.

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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