fjxmlzn/InfoGAN-CR

如何理解附录A对INFOGAN偏差的解释呢

Closed this issue · 8 comments

在附录A.1对Remark2的证明中

我的理解是:根据原文对Q的假设,L_info可以分为两个部分。 实际上,InfoGAN仅优化了第二部分,因此最优解也会产生第一部分的偏差。
但是这样来说岂不是,产生这种偏差的原因就是,先验分布不一定是方差为0的独立高斯分布?

期待并感谢您的指正!

InfoGAN同时优化3个部分:I(x;c)-H(c)-implicit bias。因为第3部分(implicit bias)的存在,导致与最终的目标(优化I(x;c))存在偏差。

产生第三部分的原因是InfoGAN假设P_{c|x}的分布是factorized Gaussian(方差不一定要0),但是实际上并不一定成立。

但是从optimization的可行性和稳定性来讲,这样的假设是必要的(见Appendix A的讨论)。

如果我没有回答清楚,欢迎继续讨论~

谢谢,您的回答很清晰!
个人还有稍微迷惑的地方,希望得到您的解答与帮助!
又仔细看了下Appendix A中的描述,确实在不给定假设下会产生互信息趋于无穷的情况。

但我的理解是L_info这项关于Q求max是互信息和熵的差,也就是负条件熵。负条件熵有上界0,等价于L_info存在上界0,那么更新时为什么会出现不稳定的问题呢?
不知道您原文中关于infoGAN这个偏差的小问题是否有其他相关论文,或者参考资料呢?
以及我想在这个理解下尝试直接计算式6的解析解,不过个人在积分和期望的数学基础方面有些薄弱,如果方便的话能否告知式6如何写为积分形式吗?
谢谢您

这是连续分布上的熵(differential entropy),可以为负的。

在我读过的论文里,没有见到过讨论这个问题的。

用期望的定义展开就是积分形式了。

非常感谢您上次的解答!!回去又恶补了数学相关的知识理解那部分的证明,很抱歉没有及时回复您。

自上次之后也一直在钻研您的代码,在解耦指标评估的部分又遇到了一点不解之处,如果您还愿意解答将不胜感激。
在阅读InfoGAN-CR/InfoGAN-CR_dSprites/gan/metric.py 中 FactorVAE测度的部分(253-288行)
发现好像并没有使用生成数据进行测试,而是使用了提前提取的真实数据
这部分好像和认知不太相符,也和原论文对算法的描述不太一样
不知道是看漏了还是有其他的设计呢?

真的麻烦您了,感谢!

FactorVAE metric 就是用真实数据以及训练出来的encoder算出来的。建议您再仔细阅读一下FactorVAE metric的文章 https://arxiv.org/pdf/1802.05983.pdf ,以及它相关的beta-VAE metric的文章 https://openreview.net/pdf?id=Sy2fzU9gl。

最近仔细阅读了您说的这两篇文章,对此还是有些疑惑。
虽然两篇文章都反复提到fix one factor,generate data(例如FactorVAE的figure 2 以及Sec.4,beta-VAE的Sec.3)然后送入训好的encoder,但是最终这里的generate似乎都是从真实数据里sample的。

这样做是否足够合理呢,因为生成任务实际上最终需要的应该是Decoder的部分,也就是生成可解耦控制的图像,而最终的测试却是基于Encoder Q来进行的,一个可能的解释是Encoder和Decoder在训练过程中能保持平衡,所以可以通过测试Encoder的性能来反应Decoder的生成情况?但这应该并不能得到保证,希望得到您的解答。
实际上,我希望对Q的输入结构和输出目标都做出改动,因此无法对齐目前已有的Mertric测试方法。假如对比“不同模型将fix one factor后生成的结果输入一个固定的训好的Q测试得到的指标”,这样是否会具有说服力呢?

是的,就是从真实数据里sample的。

你的理解没错,这样做是不够理想。

我们可以邮件交流,可能更方便一点:zinanl AT andrew.cmu.edu

好的!感谢大佬!我的邮箱是jianghongxiang@buaa.edu.cn,我整理下思路后再邮件向您请教~