如何简单易懂地理解变分推断(variational inference)?
简单易懂的理解变分其实就是一句话:用简单的分布q去近似复杂的分布p。
首先,为什么要选择用变分推断?
因为,大多数情况下后验分布很难求啊。
如果后验概率好求解的话我们直接EM 就搞出来了。
当后验分布难于求解的时候我们就希望选择一些简单的分布来近似这些复杂的后验分布,至于这种简单的分布怎么选,有很多方法比如:Bethe自由能,平均场定理。
而应用最广泛的要数平均场定理。
为什么?
因为它假设各个变量之间相互独立砍断了所有变量之间的依赖关系。
这又有什么好处呢?我们拿一个不太恰当的例子来形象的说明一下:用古代十字军东征来作为例子说明一下mean field。
十字军组成以骑兵为主步兵为辅,开战之前骑兵手持重标枪首先冲击敌阵步兵手持刀斧跟随,一旦接战就成了单对单的决斗。
那么在每个人的战斗力基本相似的情况下某个人的战斗力可以由其他人的均值代替这是平均场的思想。
这样在整个军队没有什么战术配合的情况下军队的战斗力可以由这些单兵的战斗力来近似这是变分的思想。
当求解Inference问题的时候相当于积分掉无关变量求边际分布,如果变量维度过高,积分就会变得非常困难,而且你积分的分布p又可能非常复杂因此就彻底将这条路堵死了。
采用平均场就是将这种复杂的多元积分变成简单的多个一元积分,而且我们选择的q是指数族内的分布,更易于积分求解。
如果变量间的依赖关系很强怎么办?那就是structured mean field解决的问题了。
说到这里我们就知道了为什么要用变分,那么怎么用?
过程很简单,推导很复杂。
整个过程只需要:
1、根据图模型写出联合分布
2、写出mean filed 的形式(给出变分参数及其生成隐变量的分布)
3、写出ELBO(为什么是ELBO?优化它跟优化KL divergence等价,KL divergence 因为含有后验分布不好优化)
4、求偏导进行变分参数学习
这样就搞定了!
摘自 Wikipedia: Variational Bayesian methods
Variational Bayesian methods are primarily used for two purposes:
1.To provide an analytical approximation to the posterior
probability of the unobserved variables, in order to do
statistical inference over these variables.
2.To derive a lower bound for the marginal likelihood
(sometimes called the "evidence") of the observed data (i.e.
the marginal probability of the data given the model, with
marginalization performed over unobserved variables). This
is typically used for performing model selection, the general
idea being that a higher marginal likelihood for a given model
indicates a better fit of the data by that model and hence
a greater probability that the model in question was the one
that generated the data. (See also the Bayes factor article.) 前面两位答主说的主要是第1点,不过在深度学习中第2点更常见。
来看深度学习中两类强大的概率模型,基于隐变量和基于配分函数的模型。
它们都需要算积分,而说到快速估算积分,非常自然的选择是 Importance weighted sampling,即
现在问题变成了如何选择一个,使得估算的效率最高。
不难看出,和
越接近,估算就越稳定。
另一方面,我们知道,,等号成立当且仅当为常数。
因此,假如我们关心的是,那么我们得到的就是一个下界。
对它作就可以得到最佳的.。