为了避免误导,首先声明,这不是一篇教程,只是记录一些学习过程中的思考与疑惑,内容可能也不够准确,只是一件“半成品”。

今天重新看了一下EM算法,对EM算法的数学原理总算是搞明白了,只是还有一点疑惑,那就是隐变量z能否求出分布?EM算法的讲解一般是以混合高斯模型为例,其中z表示选取数据采样于哪一个高斯分布,z是离散值,最终求出的z也是各个高斯分布被采样的概率。

假设数据很复杂,混合高斯分布中包含无穷多个高斯分布,那z也就变成了连续值,z是一个连续的分布,有概率密度函数。假设z的分布服从正态分布,那么求z就变成了求z分布(正态分布)的均值和方差。这种情况下,求隐变量z的后验概率变成了求隐变量z的后验概率分布。

变分自动编码器中VAE的变分推断正是通过观测变量x推断出隐藏变量z的分布,上述问题变成了和VAE同样的问题。VAE的求解方法是用简单的后验概率分布q(z|x)来近似真实的隐变量z的后验概率分布p(z|x),使用KL散度衡量分布的相似度。对KL散度进行一顿变形操作,将代价函数变成两部分:重构误差和q(z|x)与p(z)之间的KL散度。其中p(z)是隐变量z的先验概率分布,VAE论文中直接假设为标准正态分布,在没有任何z任何信息之前假设为标准正态分布也没毛病,作者解释说任何分布都可以对标准正态分布进行组合变换得到。EM算法中提到,混合高斯模型可以拟合任意复杂的分布,大概说的是同一个意思。有了p(z),通过求解q(z|x)和p(z)之间的KL散度的极值就可以求出q(z|x)。

不少博客和文章在解释q(z|x)时认为,要使得q(z|x)逼近p(z),这样才能是的q(z)不至于过拟合变得方差为0,方差为0的话VAE就退化为AE了,从而失去了生成能力。这一点挺让人困扰的,要求方差为0可以理解,要求均值也靠近0就难以理解了。如果均值接近0的话,VAE中的编码器岂不是失去了任何作用?这点不知道是不是自己理解不到位,现在还是不甚明了。




emqx 下载地址_正态分布


还是放个公式吧,Latex不熟,只好盗图

如果单纯从q(z|x)与p(z|x)之间的KL散度公式推导来看,不难推导出最终的两部分代价,但是直观上尚未理解。重构误差部分好理解,后面一部分直观上看是要求q(z|x)与p(z)的概率分布差异最小,即要求z的后验概率分布趋近z的先验概率分布,这种要求的依据是什么呢?这是现阶段理解VAE最大的困惑,后面要好好看看原论文了。

再回到最开始的问题,如果EM算法中z是一个连续函数,服从某种概率密度函数,那么能够直接利用EM算法中求得这种分布?有的文章中提到,正是因为后验概率密度分布难以求出来,导致不能使用EM算法。难点在哪里?

稍微浏览了一下VAE的论文原文,好像涉及到概率模型,图模型,看起来VAE后面是一个庞大的领域,想要深入了解来龙去脉的话,感觉需要学习的内容好多,真是学无止境。。。

好在现在接触的内容多了之后,以前一些一知半解的可以融会贯通了,一些以前不知所以的数学知识在应用中看到了其强大的威力。

刚刚看到一篇文章,提到了变分推断VI和EM算法之间的联系与差别,很神奇。链接如下:


川陀学者:变分推断——深度学习第十九章zhuanlan.zhihu.com

emqx 下载地址_em在聊天中是什么意思_02


上面链接中提到,为了能够求解ELBO,对q(z)做了平均场分布族假设,即z的所有属性相互独立。现在可以回答最开始的第一个问题,即EM算法中的z能不能是一个分布,现在看来是可以的。求后验概率分布的难点在于边缘概率p(x)难求,



z是连续的情况下,只是把求和换成积分即可。EM算法中,以上一步的p(z)来求p(x),所以是能够求出边缘分布的,因此通过EM算法求出z的概率密度函数不是问题。

问题在于,当z是多维变量时,涉及到多重积分,对于高维数据难以处理,导致p(x)难以求出。所以ELBO求解才对z做了平均场假设。

如果在EM算法中做同样的假设,将多重积分化为累次积分,似乎也可以处理。再者,平均场假设会损失部分信息,因为属性之间并不一定相互独立。 我记得PCA算法的准则之一就是对各个属性进行解耦,使的特征向量在新的极坐标下个属性之间相互独立,能否先对z变量进行属性解耦再进行处理,解耦后的属性就符合平均场了,而且不会损失信息。