作者: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算法求解哪种问题,如上图所示:节点分别代表随机变量,代表图中所有其他节点,Max-Product算法可以用于寻找最优的随机变量的组合已使得概率最大,公式表示为:
既然说Max-Product算法是Belief Propagation算法的改进,先回顾一下BP算法实现:
BP算法是在求图中随机变量的边缘概率分布,而Max-Product算法是在求最大后验条件概率分布。Belief Propagation算法又被称为Sum-Product算法,看起来和Max-Product算法只差了Sum和Max的区别,实际在公式上也只需要求和符号换成Max符号即可,因此这里先给出Max-Product算法的实现公式:
结合上图再来理解一下Max-Product算法的实现过程,以及图中的含义。如果基于上图我们使用Max-Product算法求解如下最优化问题:
则第一步需要计算随机变量c取何值时取到最大值:
然后同理计算随机变量d取何值时取到最大值:
基于和求解随机变量b取何值时取到最大值:
最后b,c,d的值都确定了,再随机变量a取何值时最终取到最大值
最终我们求得是的取到最大值得随机变量的最优值。这边是Max-Product算法的实现流程。
参考视频资料:【机器学习】【白板推导系列】 作者:shuhuai008
参考书籍资料:Pattern Recognition and Machine Learning 作者:Christopher Bishop