【机器学习系列】概率图模型第五讲:Max-Product算法

447 阅读2分钟

作者:CHEONG

公众号:AI机器学习与知识图谱

研究方向:自然语言处理与知识图谱

阅读本文之前,先注意一下两点:

1、机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看

2、文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号【AI机器学习与知识图谱】后回复:概率图模型第五讲,可添加微信号【17865190919】进公众号讨论群,加好友时备注来自掘金。原创不易,转载请告知并注明出处!


本文主要介绍概率图推断问题中精准推断算法:Max-Product算法。


一、本文结论: Belief Propagation又被称为Sum-Product算法,Max-Product算法是Sum-Product算法的改进,Sum-Product算法是求边缘概率分布,Max-Product算法是在求最大后验条件概率分布。

Max-Product算法是Belief Propagation的改进,同时可认为是Viterbi算法的推广。

首先了解一下Max-Product算法求解哪种问题,如上图所示:节点a,b,c,da,b,c,d分别代表随机变量xa,xb,xc,xdx_a,x_b,x_c,x_dEE代表图中所有其他节点,Max-Product算法可以用于寻找最优的随机变量xa,xb,xc,xdx_a,x_b,x_c,x_d的组合已使得概率p(xa,xb,xc,xdE)p(x_a,x_b,x_c,x_d|E)最大,公式表示为:

既然说Max-Product算法是Belief Propagation算法的改进,先回顾一下BP算法实现:

BP算法是在求图中随机变量的边缘概率分布,而Max-Product算法是在求最大后验条件概率分布。Belief Propagation算法又被称为Sum-Product算法,看起来和Max-Product算法只差了Sum和Max的区别,实际在公式上也只需要求和符号换成Max符号即可,因此这里先给出Max-Product算法的实现公式:

结合上图再来理解一下Max-Product算法的实现过程,以及图中mj>im_{j->i}的含义。如果基于上图我们使用Max-Product算法求解如下最优化问题:

则第一步需要计算随机变量c取何值时mc>bm_{c->b}取到最大值:

然后同理计算随机变量d取何值时md>bm_{d->b}取到最大值:

基于mc>bm{c->b}md>bm{d->b}求解随机变量b取何值时mb>am_{b->a}取到最大值:

最后b,c,d的值都确定了,再随机变量a取何值时最终p(xa,xb,xc,xdE)p(x_a,x_b,x_c,x_d|E)取到最大值

最终我们求得是的p(xa,xb,xc,xdE)p(x_a,x_b,x_c,x_d|E)取到最大值得随机变量xa,xb,xc,xdx_a,x_b,x_c,x_d的最优值xa,xb,xc,xdx_a^*,x_b^*,x_c^*,x_d^*。这边是Max-Product算法的实现流程。

参考视频资料:【机器学习】【白板推导系列】 作者:shuhuai008

参考书籍资料:Pattern Recognition and Machine Learning 作者:Christopher Bishop