Expectation Propagation (EP)

Expectation Propagation (EP) 是一个迭代算法,其中使用一个密度概率g(\theta)(包含具体参数组)来近似目标概率密度f(\theta)。类似于重要性抽样。

EP属于一组消息传递算法,该算法使用一组局部推断推断目标密度。首先我们假设目标概率密度f(\theta)有一些便利的因式分解:

f(\theta) \propto \prod ^{K}_{k=0}f_k(\theta)

在贝叶斯推理中,目标概率密度f通常是后验概率p(\theta|y),举个例子其中可以将因子k=0分配给先验p(\theta),并将因子从1到K当作似然函数(将数据划分成k个部分p(y_k|\theta),且每一个都是独立于给定的模型参数)。消息传递算法的工作原理是用概率密度g(\theta)

迭代逼近目标概率密度 f(\theta)

g(\theta) \propto \prod ^{K}_{k=0}g_k(\theta)

 并且使用一些合适的初始化所有的g_k(\theta)。其中因子f_k(\theta)与近似的g_k(\theta)合起来称为位置群,而近似的分布g(\theta)被称为全局近似。

 因为分成了K份,对于算法的每次迭代,加上先验,则有k=0,...,K。我们采用当前的近似函数g(\theta)同时将目标f(\theta)中的因子f_k(\theta) 替换成 g_k(\theta),这样定义了 cavity distribution 如下:

g_{-k}(\theta) \propto \frac{g(\theta)}{g_k(\theta)}

 和一个tilted distribution:

g_{\setminus k}(\theta)\propto f_k(\theta)g_{-k}(\theta)

扫描二维码关注公众号,回复: 14824417 查看本文章

 该算法首先构造了一个对 tilted distribution (g_{\setminus k}(\theta))的近似值g^{new}(\theta),之后用g_k^{new}(\theta) \propto g^{new}(\theta)/g_{-k}(\theta) 来更新对于目标因子f_k(\theta)的近似值。按顺序活并行迭代这些更新如一下算法所示:

 在某些来源中,上述步骤2b有更严格的表述:

g_k^{new}(\theta)=argmin_{g_k(\theta)}D(f_k(\theta)g_{-k}(\theta)\left | \right |g_k(\theta)g_{-k}(\theta))

 其中D\left ( \cdot ||\cdot \right )表示离散度方法。在定义中,该算法可以更自由地实现任何近似方法,而不必最小化任何发散。

全局近似g(\theta)和位置近似g_k(\theta)被限制在一个选定的指数族中,例如多元正态分布。由于步骤2b通常被定义了,位置近似g_k(\theta)被更新,导致产生的KL离散度是KL(f_k(\theta)g_{-k}(\theta)||g_k(\theta)g_{-k}(\theta))最小的。

猜你喜欢

转载自blog.csdn.net/qq_44785318/article/details/123230746