这篇文章很简短,主要描述的是一个很有用、也不复杂、但是我居然这么久才发现的事实~
在 《深度学习的互信息:无监督提取特征》 一文中,我们通过先验分布和最大化互信息两个loss的加权组合来得到Deep INFOMAX模型最后的loss。在那篇文章中,虽然把故事讲完了,但是某种意义上来说,那只是个拼凑的loss。而本文则要证明那个loss可以由变分自编码器自然地导出来。
不厌其烦地重复一下,变分自编码器(VAE)需要优化的loss是 \begin{equation}\begin{aligned}&KL(\tilde{p}(x)p(z|x)\Vert q(z)q(x|z))\\ =&\iint \tilde{p}(x)p(z|x)\log \frac{\tilde{p}(x)p(z|x)}{q(x|z)q(z)} dzdx\end{aligned}\end{equation} 相关的论述在本博客已经出现多次了。VAE中既包含编码器,又包含解码器,如果我们只需要编码特征,那么再训练一个解码器就显得很累赘了。所以重点是怎么将解码器去掉。
其实再简单不过了,把VAE的loss分开两部分 \begin{equation}\begin{aligned}&KL(\tilde{p}(x)p(z|x)\Vert q(z)q(x|z))\\ =&\iint \tilde{p}(x)p(z|x)\log \frac{p(z|x)}{q(z)} dzdx-\iint \tilde{p}(x)p(z|x)\log \frac{q(x|z)}{\tilde{p}(x)} dzdx\end{aligned}\end{equation} 第一项是先验分布的KL散度,第二项的$\log \frac{q(x|z)}{\tilde{p}(x)}$其实不也就是$x,z$的点互信息吗?假如$q(x|z)$具有无限的拟合能力,最终必然也会有$\tilde{p}(x)p(z|x) = q(x|z)p(z)$(贝叶斯公式),所以第二项也就是 \begin{equation}KL(q(x|z)p(z)\Vert \tilde{p}(x)p(z))=KL(\tilde{p}(x)p(z|x)\Vert \tilde{p}(x)p(z))\end{equation} 就是$x,z$两个随机变量的互信息了,前面的负号意味着我们要最大化互信息。
剩下的处理过程就跟 《深度学习的互信息:无监督提取特征》 一样了,略。
开头已经说了,这篇文章会很简短,没有什么内容。主要目的就是给出变分自编码器的loss的新理解(最小化先验分布 + 最大化互信息),然后就可以自然而言地导出Deep INFOMAX的loss。
如果我还没有写 《深度学习的互信息:无监督提取特征》 ,那么我肯定会用这个出发点来讲解Deep INFOMAX,不过既然那篇文章都写了好几天了,所以只好另开这个简短的小文,来补充说明一下~
转载到请包括本文地址: https://spaces.ac.cn/archives/6088
更详细的转载事宜请参考: 《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎 分享 / 打赏 本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Oct. 10, 2018). 《变分自编码器 = 最小化先验分布 + 最大化互信息 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/6088
苏神你好,我有个问题,既然VAE和之前那篇DEEP INFOMAX的优化目标都是最小化先验分布 + 最大化互信息,那么之前那篇DEEP INFOMAX不就没意义了吗?相当于DEEP INFOMAX重新推导了VAE?
如果从VAE角度看,DEEP INFOMAX有两点贡献: 1、引入了局部互信息,这个大大提升了特征提取效果; 2、使用f散度的估计方法取代了$q(x|z)$的直接计算(也就是说不用重构原图)。
还有,如果按照你的解释,最优解的情况下就有p(z)=q(z),那么把公式2的第一项中的q(z)直接换成p(z),那不是就直接等于X和Z的互信息了吗?这个loss就变成了互信息-互信息?期待苏神针对这个想法做进一步的推导哈哈~
我修改了一下,应该是目前这样描述才对。
根据贝叶斯公式$q(x|z)$满足$q(x|z)p(z)=p(z|x)\tilde{p}(x)$,这里$p(z)$是真实的隐变量分布,这个结果不依赖于对$p(z)$的先验分布假设,所以还不能直接替换为$q(z)$,应该用回原始的$p(z)$。
我的理解是第二项有两层含义吧,$\frac{q(x|z)}{\bar{p}(x)}=\frac{q(x|z)}{p(x|z)}\frac{p(x|z)}{\bar{p}(x)}$,前一个代表了$q(x|z)$的强拟合能力,后一项代表了互信息吧
不是,就是直接拿 $$p(z|x)\tilde{p}(x)/p(z)=\frac{p(z|x)\tilde{p}(x)}{\int p(z|x)\tilde{p}(x) dx}$$ 去替换$q(x|z)$的意思。因为我们已经知道了$q(x|z)$的最优解是它,而且这里我们又不需要$q(x|z)$做生成模型。所以从理论角度,这个替换没有问题。后面就是用f-gan的结果进行近似了。
不知道可不可以这样简单的证明,$p(x,z)$是真实联合分布,在最优解的情况下,$KL(p(x,z)||q(x,z))=0$, $p(x,z)=q(x,z)$, $p(z)p(x|z)=q(z)q(x|z)$, 因为$q(x|z)$具有无限拟合的能力,所以$q(x|z)=p(x|z)$, 得出$p(z)=q(z)$. 请指教。
看完这个推导很好奇,能不能从这里出发做一些关于在VAE上disentangle变量的工作呢?近期的一系列paper,比如beta-VAE,FactorVAE和今年NIPS的isolating sources of disentanglement in variational autoencoders都是在VAE的loss的KL项上面做拆解和reweight,那可不可以从这里得到一些新的思路呢?
我已经做了一些探究了,但是普适性不强,在图像上有类似infomax( https://kexue.fm/archives/6024 )的表现,在nlp中却不够好。而且我发现,原来的infomax在nlp上的表现也不好。
感觉你经常能从别人提出的模型或者loss function里面找到一些新的insight,佩服佩服。因为我最近对VAE的disentangle非常感兴趣,不知道你是否对上述提到的那一系列文章的loss有新的见解呢?
$q(x|z)$理论上可以具有无限的拟合能力,而且如果$q(x|z)$真的具有无限的拟合能力,能够完成重构出$x$出来,这是好事。
但是实际上我们做不到这一点,VAE中,真正实验的时候,我们通常只是让$q(x|z)$是高斯分布,这就没有无限的拟合能力。如果做不到这一点,强迫重建,可能会让模型在特征提取的时候抓不到重点,所以干脆还不如不重构。
至于本文,是希望给出一个VAE的分解理解的理论视角,在这种纯分析的情况下,我们可以假设$q(x|z)$具有无限的拟合能力。正如VAE本身并没有假设$q(x|z)$是高斯分布,理论上它可以是任意复杂的分布,只是落实到实验中我们迫不得已而已。
信息瓶颈告诉我们尽量用最少的信息来完成任务。
注意要先有任务,然后完成任务,然后才减少互信息。而VAE中的任务其实就是最大化$x,z$的互信息,而最小化先验分布的KL散度会产生两个效应:1、确实也在降低互信息;2、使得$z$的分布更符合正态分布。
虽然第一个效应与任务本身矛盾,但事实上第二个loss的增大效应会比KL散度的降低效应会强很多,因此第一个效应虽然矛盾,但无伤大雅;所以最小化KL散度主要是“使得$z$的分布更符合正态分布”。
谢谢你的回答。 请问这里可以这样来理解吗,第一项最小化的是编码器的输入与输出间的互信息,从而可以促使编码器学习到更有效、更泛化的特征;第二项最大化的是解码器的输入与输出间的互信息,促使解码器在解码时能够充分利用到z的信息。 这两项虽然都是关于x与z的互信息,但一个是对于编码器的,另一个是对于解码器的。
博主你好,我不明白这个VAE的objective怎么从最大化p(x)变成KL散度了。 结论也与我现在的观察冲突。在beta-vae中,beta=0近似于AE,beta=1为VAE。我目前观察到的现象是beta越大I(x,z)越小。
如果从VAE角度看,DEEP INFOMAX有两点贡献:
1、引入了局部互信息,这个大大提升了特征提取效果;
2、使用f散度的估计方法取代了$q(x|z)$的直接计算(也就是说不用重构原图)。
还有,如果按照你的解释,最优解的情况下就有p(z)=q(z),那么把公式2的第一项中的q(z)直接换成p(z),那不是就直接等于X和Z的互信息了吗?这个loss就变成了互信息-互信息?期待苏神针对这个想法做进一步的推导哈哈~
我修改了一下,应该是目前这样描述才对。
根据贝叶斯公式$q(x|z)$满足$q(x|z)p(z)=p(z|x)\tilde{p}(x)$,这里$p(z)$是真实的隐变量分布,这个结果不依赖于对$p(z)$的先验分布假设,所以还不能直接替换为$q(z)$,应该用回原始的$p(z)$。
我的理解是第二项有两层含义吧,$\frac{q(x|z)}{\bar{p}(x)}=\frac{q(x|z)}{p(x|z)}\frac{p(x|z)}{\bar{p}(x)}$,前一个代表了$q(x|z)$的强拟合能力,后一项代表了互信息吧
不是,就是直接拿
$$p(z|x)\tilde{p}(x)/p(z)=\frac{p(z|x)\tilde{p}(x)}{\int p(z|x)\tilde{p}(x) dx}$$
去替换$q(x|z)$的意思。因为我们已经知道了$q(x|z)$的最优解是它,而且这里我们又不需要$q(x|z)$做生成模型。所以从理论角度,这个替换没有问题。后面就是用f-gan的结果进行近似了。
不知道可不可以这样简单的证明,$p(x,z)$是真实联合分布,在最优解的情况下,$KL(p(x,z)||q(x,z))=0$, $p(x,z)=q(x,z)$, $p(z)p(x|z)=q(z)q(x|z)$, 因为$q(x|z)$具有无限拟合的能力,所以$q(x|z)=p(x|z)$, 得出$p(z)=q(z)$. 请指教。
看完这个推导很好奇,能不能从这里出发做一些关于在VAE上disentangle变量的工作呢?近期的一系列paper,比如beta-VAE,FactorVAE和今年NIPS的isolating sources of disentanglement in variational autoencoders都是在VAE的loss的KL项上面做拆解和reweight,那可不可以从这里得到一些新的思路呢?
我已经做了一些探究了,但是普适性不强,在图像上有类似infomax( https://kexue.fm/archives/6024 )的表现,在nlp中却不够好。而且我发现,原来的infomax在nlp上的表现也不好。
感觉你经常能从别人提出的模型或者loss function里面找到一些新的insight,佩服佩服。因为我最近对VAE的disentangle非常感兴趣,不知道你是否对上述提到的那一系列文章的loss有新的见解呢?
$q(x|z)$理论上可以具有无限的拟合能力,而且如果$q(x|z)$真的具有无限的拟合能力,能够完成重构出$x$出来,这是好事。
但是实际上我们做不到这一点,VAE中,真正实验的时候,我们通常只是让$q(x|z)$是高斯分布,这就没有无限的拟合能力。如果做不到这一点,强迫重建,可能会让模型在特征提取的时候抓不到重点,所以干脆还不如不重构。
至于本文,是希望给出一个VAE的分解理解的理论视角,在这种纯分析的情况下,我们可以假设$q(x|z)$具有无限的拟合能力。正如VAE本身并没有假设$q(x|z)$是高斯分布,理论上它可以是任意复杂的分布,只是落实到实验中我们迫不得已而已。
信息瓶颈告诉我们尽量用最少的信息来完成任务。
注意要先有任务,然后完成任务,然后才减少互信息。而VAE中的任务其实就是最大化$x,z$的互信息,而最小化先验分布的KL散度会产生两个效应:1、确实也在降低互信息;2、使得$z$的分布更符合正态分布。
虽然第一个效应与任务本身矛盾,但事实上第二个loss的增大效应会比KL散度的降低效应会强很多,因此第一个效应虽然矛盾,但无伤大雅;所以最小化KL散度主要是“使得$z$的分布更符合正态分布”。
谢谢你的回答。
请问这里可以这样来理解吗,第一项最小化的是编码器的输入与输出间的互信息,从而可以促使编码器学习到更有效、更泛化的特征;第二项最大化的是解码器的输入与输出间的互信息,促使解码器在解码时能够充分利用到z的信息。
这两项虽然都是关于x与z的互信息,但一个是对于编码器的,另一个是对于解码器的。
博主你好,我不明白这个VAE的objective怎么从最大化p(x)变成KL散度了。
结论也与我现在的观察冲突。在beta-vae中,beta=0近似于AE,beta=1为VAE。我目前观察到的现象是beta越大I(x,z)越小。