变分推断

来源:互联网 发布:中关村软件下载 编辑:程序博客网 时间:2024/04/30 20:38

        在机器学习中经常会遇到某个分布的期望的情况,简单的情况还好,但是一旦遇到难以计算或者估计的复杂分布,那么问题将变得难以处理。变分推断在机器学习上就是用来解决找到某种简单形式的分布来近似估计某个复杂分布的问题。

        假设模型中存在x为样本变量,z为隐变量,这是机器学习常见的情况,那么我们经常性地碰到需要p(z)或者p(z|x)的情况,但是对于上述两种分布常常过于复杂难以计算,因此需要一种近似地情况来减少计算量或者近似去估计。

现在考虑某个样本自变量为X的对数分布的情况,如下:


        显然,对于某个样本x的对数似然被分解为了两部分。因此,极大这个样本的似然就可以理解成最大化第一部分或者最小化第二部分,那么从最大化第一部分的情况来看,还是没什么值得关注的地方,重要的地方在于,为了简化对于p(z)的计算,我们给一个p(z)的近似估计q(z):


       为什么可以这么估计呢?感兴趣的可以关注mean-field理论。这里不做深入解释,那么这里就简单了,一个高维的联合分布变成了几个低维甚至1维分布的乘积。那么第一部分表达式进一步简化:


        记:


        H表示分布的信息熵,对于上述结果进一步观测,可以得到:


        这个形式很好理解了,可以看做是KL散度,对于KL散度,取最大值的情况就是两个分布相同,即:

        到这里为止,我们已经得到了每个乘积分量的近似估计,但是认真看,这个估计还依赖与其它分量的估计结果,怎么处理呢?首先随机给每个分量一个初始分布参数,轮流更新每个分量的参数,最后收敛即可。那么整个p(z)就可以用每个分量的乘积来近似了。

最后申明:本文学习来源于PRML,全文内容推导都是笔者手敲,转载请注明。




0 0
原创粉丝点击