AnchorVAE(Auto-Encoding Total Correlation Explanation)
论文:arXiv:1802.05822v1
摘要:我们提出以信息论方法来描述表示学中的 disentanglement 和 dependence。CorEx 规则在非监督学习中应用很成功,但是在一些限定的假设情况下。本文通过介绍灵活的下届估计( variational lower bound)放宽了这些限定,这个下届估计和 VAE 中的下届估计是相等的。信息论视角的 VAE 加深了我们的层级化VAE的理解,并提出新的 VAE 算法 AnchorVAE 可以更好的通过最大化信息解释隐变量和生成更丰富和真实的样本。
介绍:论文没有在一开始使用生成模型的假设,更多关注初始数据 x. 论文考虑尽可能的从统计独立性上的 disentangle 来表示 z 与 x 之间的关系。论文主要贡献有四点:① 使用 variational lower bound 和在神经网络中优化该 lower bound(该 lower bound 和 VAE 的 ELBO 是一样的)② 为多层的更 disentangle 提供更深刻的视角,将目标方程分解为两个互信息项 ③ 修改目标方程公式权重,更好的解释隐变量 ④ 直接在分布中采样,而不是想 VAE 那样使用高斯先验分布
互信息基础:
熵的定义:
互信息的定义:
论文直接抛出了 total correlation 的定义:
TC(X)捕捉 x 之间相互依赖,且当 x 是独立的时候为0
通过计算 total correlation 定义隐变量 z 关于 x 的依赖
在传统 VAE 的视角,我们假设模型的生成模型( z 关于 x ),然后最大化 likelihood. 在信息论视角,我们认为 z 是一个随机关于 x的方程,然后寻找联合分布,下面的公式展示了 informative 和 disentangle 在公式中的关系。
公式的目的是寻找一个最小损失函数的隐变量表示,计算隐变量z之间的依赖,当
时, z 可以被解释为生成模型,
取最大值,x 相互之间非常依赖。
以下是公式推导:
优化:
推导:
公式中表示 x 与 z 之间的互信息,就是两者的相关度,相关度越大,互信息越大,相关度越小,互信息越小。
可看做每个隐变量因素的压缩(此处原文翻译有问题,需改进)
变量下届:折括号里面表示期望
变量上届:
表示一个新的随机分布
将上届和下届融合以后:
论文与 VAE 的比较:
其中,第一项是常量,第二项是 decoder ,表示重建误差,第三项是 encoder 表示 VAE 中的 p 与 a 的散度。
CorEx 与 VAE 相互比较:
CorEx 开始先定义 encoder ,然后通过变量逼近真正的后验分布寻找 decoder
,VAE 是先通过寻找
然后逼近
。
如果采用更加复杂的分布,如 RNN、CNN等,模型将倾向于忽视隐变量,CorEx 可以避免这样的情况,在目标方程中,CorEx明确需要 z 作为 x 的信息来源。这个信息量的项使得CorEx满足上述网络。
当目标方程没有达到全局的最大化时,我们可以再次使用CorEx的规则,学习另外一个层并以z为顶层,方程如下:
推广到L层:
最终得到:
虽然最终的形式是一样的,从信息论角度来看,论文在指定隐变量分布的时候,可以使用 encode 直接从分布中采样,从信息论的角度,可以对方程进行跟多的修正,已达到更好的解释。
由于最终的代码并不是有最终的方程所决定,其实现形式与不同的实现方式如信息论角度或者VAE的角度,所以实验所达到的效果也是不同的。