一、前言
在机器学习问题中,从观测变量推测潜变量或者说计算潜变量的后验分布
很多时候,因为潜变量z的维度很高,在z为离散时导致分母里这个求和很难算,又或者是在连续时因为分母积分符号里的表达式很复杂,导致这个积分没有解析解。从而导致后验分布很难得到,这个时候我们就要采取近似的办法来算后验(近似推理approximate inference)。
approximate inference常用的思路有两种,一种叫做stochastic approximate,就是通过蒙特卡洛采样的方法来做,另一种叫deterministic approximations,思想是用简单的分布
期望传播算法是deterministic approximations方法的一种,常见的deterministic approximations方法还有变分推理(variational inference)。
二、expectation propagation(EP)算法
上一节说过,deterministic approximations是用简单的分布
当q是指数族分布的时候,q可以被表示为(参见PRML2.4节),这里η是q分布的参数(如果是高斯的话就是均值和方差)。
![a8ca05fa5a33c53ab528de66d96358d4.png](https://i-blog.csdnimg.cn/blog_migrate/645b5e66d4f90aa7e3f0bf13dc2daa42.png)
把q的这个形式代入KL散度。因为p是固定的,而我们要优化q,所以只保留与q有关的项,其他都放到常数项里,从而有
![3005d941fad1860a04ceb5e4bb78517e.png](https://i-blog.csdnimg.cn/blog_migrate/c03a26f6bcabd015d7d0076050dc9c3b.png)
对上式关于η求导,得到
![f5a2219d9aed997c44ce15f211d3043e.png](https://i-blog.csdnimg.cn/blog_migrate/e2f8e8ff14cf4aa6a0ae3e7b97dc97c7.png)
又有(参见PRML2.4节)
![19c2162941947eef904cf501a30ef4f0.png](https://i-blog.csdnimg.cn/blog_migrate/7cb86ce195878a6e3e6d071f2fd5a29c.png)
可以得到
![56d228024a896c164b7856bee1faf02c.png](https://i-blog.csdnimg.cn/blog_migrate/e49dc1b53dc8f0450f3067eb70e8d531.png)
上式是同一个东西关于不同分布的期望,因此我们只要匹配这两个分布的充分统计量,就可以做到让上式成立,例如,若q是高斯分布,只要让q和p的均值和方差匹配就行了。这通常叫做moment matching,关于moment matching的理论证明我具体也不太明白,后面再看一些材料后再补上说明。这里记住就行。
后面我们用θ来表示模型的参数和潜变量,用D来表示已经观测到的数据。
在很多概率图模型中,潜变量的真实后验分布可以写成多个因⼦乘积的形式
![7c06b31ca244f282ab1ffe05b3f43dee.png](https://i-blog.csdnimg.cn/blog_migrate/400e0b8ccbb6fab5438755ee6b63ec99.png)
我们除了假设q是指数族分布形式,还假设用来近似后验分布的这个q也能写成多个因⼦的乘积
![e82f54a9056fce522082dc7320402534.png](https://i-blog.csdnimg.cn/blog_migrate/f916e0c60a0d163f6533616d05d0ce98.png)
直接优化下式不可行,因为散度左边那项是真实的后验分布,形式复杂。
![80dc406f4d13a17a803ded2137212d08.png](https://i-blog.csdnimg.cn/blog_migrate/c60154943a4b9731402355ab2fe1755a.jpeg)
所以我们选择让q的每个因⼦
那么如何让q的每个因⼦分别近似p中相应的因⼦呢?在优化
![a262ac2a6e7c9e5320a012c47b776674.png](https://i-blog.csdnimg.cn/blog_migrate/81e52a23ea33bb4c1f6f966dd9bb73ca.jpeg)
乘以真实后验分布中的对应项