机器学习 —— 概率图模型(推理:消息传递算法)

摘要:
概率图模型G(V,E)由节点V和边缘E组成。通过这个联合概率公式,我们得到了一个新的图模型,称为聚类图。多个潜在函数可以相乘成为某人的消息函数。消息彼此交互。我们以以下形式编写消息传输。2.在集群图中传递的消息不能形成环。例如,在图中,当xy强相关时,消息传递算法的性能不好。当使用消息传递算法时,最好构建这个聚类图。

  概率图模型G(V,E)由节点V和边E构成。在之前马尔科夫模型相关的博客中,我谈到马尔科夫模型的本质是当两个人交流后,其意见(两个随机变量)同意0与不同意1的概率组合。而势函数表达的是两个意见相同或者相左的程度

  我们搞的那么麻烦,最后想要得到的不就是每个意见正确与否(随机变量取不同值的概率)吗?与其采用解析的方法去算,去把所有其他的变量边际掉,那干脆采用模拟的方法,让这个消息传递跑起来,把系统迭代N次以后的结果拿出来分析。这种朴素(Naive)的想法,就是 Message Passing 算法。

1. 聚类图

  在执行消息传递之前,我们需要指定两件事情:1.掌握消息的人有哪些,手里都有哪些消息。2.他把这个消息告诉了谁。为了解答这两个问题,需要从我们手里仅有的材料去构造。

  P(ABCD) = P(AB)*P(BC)*P(CD)*P(DA)  -------  这里的P是未归一化的概率。 通过这个联合概率计算式,我们获得一种叫做聚类图的全新图模型。从概率图到聚类图如下所示。

  机器学习 —— 概率图模型(推理:消息传递算法)第1张

  其中,聚类图中存在 Cluster 和 Edge. Cluster 就是掌握消息的人,Cluster 里的内容就是人所掌握的消息。Edge 连接了两个交互消息的人,Edge上是两个人交换的消息。当然,聚类图不仅仅是这么简单的结构。还有更复杂的聚类图如下.

机器学习 —— 概率图模型(推理:消息传递算法)第2张

  势函数表达的是两个人意见相同或者相左的程度,两个势函数相乘则会表达多个消息相同或相左的程度。多个势函数相乘可以成为某个人的消息函数。

  对于聚类图,有以下性质:

  1.C(Clusters)由节点组成。2. 边上传递的消息,是两个C的交集(必须要两个人同时知道的消息才能交流)。3.消息函数是势函数的乘积。

  总结一下:消息是随机变量,并且都是相关的。人掌握消息之间的关系。人和人之间可以传递消息。

  我们假设消息A:明天下雨 B:明天下雪 C:地上有水  那么人们一般都会认为 A1B1C1的可能性肯定大于A1B1C0。而E有可能是明天有洒水车。总之,不同的人掌握着不同的消息。消息与消息之间会相互影响。

2.消息传递 

  有了消息之后,两个都知道同一件事情的人就会交流和这件事有关的内容,比如 2 会告诉 1 关于C(地上有没有水)的事情,这会改变1对消息C的看法(概率)。我们把消息传递写成以下形式。

  机器学习 —— 概率图模型(推理:消息传递算法)第3张

  i->j 表示消息从 i 传递到 j。Sij表示被传递的消息。通式的物理意义有以下三点:

  1.消息从 i 传递到 j, i 会综合所有人给他说的信息(把所有的δ 相乘)

  2.加上自己对消息组合的认知(把 δ 相乘 的结果乘以消息之间的关系)

  3.去除掉不需要传递的部分 (把其他变量边际掉)

  以上循环一定次数后,达到某种稳定状态。

  最终计算某个人对所有消息的看法Belief (所有稳态输入消息δ 乘以消息关系)

机器学习 —— 概率图模型(推理:消息传递算法)第4张

 

  这种算法会和精确解法存在一定偏差,故此仅为一种近似算法。

  机器学习 —— 概率图模型(推理:消息传递算法)第5张

  

3.聚类图的性质

  不是随便一幅图都可以作为聚类图。聚类图有3个基本要素:

  1.每个势函数都被使用,且被使用一次。

  2.聚类图中消息传递不能形成环。

  3.每个消息如果存在两个知道的人,这两个人必须要有交流途径

  关于第一点,势函数描述了消息之间的关系,如果漏了,则失去了消息之间的某个信息,如果重复使用,则某种关系被多余的加强了。

  第二点则比较有意思,其实际上描述的是一个正反馈的情况。假设有个人,编了一个谎话:明天会下雨。并且把这个谎话告诉了A,然后A又告诉B,B->C,C-D。如果恰好编这个谎话的人正好和D认识,又正好交流了明天是否会下雨的情况。那么就“谎话到最后自己都信了”。这就对“明天下雨”这个随机变量的概率产生较大的估计偏差。简而言之就是,消息不能成环。

  第三点要表达的是,如果甲乙两个人都知道一件事情A,那么他们一定要有交流途径,无论直接交流还是通过其他人转达,总之消息A一定要有在甲乙两人之间联通的路径。

  值得注意的一点是,明天下雨A和地上有水C之间可能存在较强的相关性,就算A没有形成环,却通过C形成了环,最终也会对结果产生较大影响。比如图中,xy强相关时,消息传递算法的表现并不好。

机器学习 —— 概率图模型(推理:消息传递算法)第6张

  有一种一定能够满足上诉性质的聚类图成为Bethe Clusters Graph。在使用消息传递算法时,优先考虑构造此聚类图。该聚类图中有两种不同的人,一种掌握多个消息,一种掌握单种消息。这样的聚类图一定不会存在环。其形式如下所示:

机器学习 —— 概率图模型(推理:消息传递算法)第7张

4. 传播算法的性质

  一群人交换意见,如果大家最后意见都相同了。比如 甲乙都认为明天下雨的概率是0.6,乙丙都认为明天地上有水的概率是0.7.........这种情况称为聚类图校准了。

机器学习 —— 概率图模型(推理:消息传递算法)第8张

  机器学习 —— 概率图模型(推理:消息传递算法)第9张

  公式表示,边际掉无关量,两个人对交流消息的看法是一致的。

  意见相同还有一个说法,就是交流过程稳定,也就是说,在经过无数次迭代后,消息收敛了。

  机器学习 —— 概率图模型(推理:消息传递算法)第10张

机器学习 —— 概率图模型(推理:消息传递算法)第11张——————消息传递公式

机器学习 —— 概率图模型(推理:消息传递算法)第12张 ————————δj-i与求和无关,因为不在求和域内,故可以乘出去。发现i,j是对称轮换的

机器学习 —— 概率图模型(推理:消息传递算法)第13张——————————最终得出收敛和校准是等价的

机器学习 —— 概率图模型(推理:消息传递算法)第14张——————————一种新的符号

机器学习 —— 概率图模型(推理:消息传递算法)第15张————此式证明了,消息传递算法无论如何运行,初始设定都没有引入新的信息

 

5.总结

  消息传递算法是一种朴素的模拟推断算法,用于求解随机变量的给定依赖条件下的概率。这种算法的计算结果是有偏的,但该算法却可以大幅降低推断所需要的计算量。

  

免责声明:文章转载自《机器学习 —— 概率图模型(推理:消息传递算法)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt WebKit学习笔记(3)---实战QWebView--1el-checkbox点击无法回显下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

全同态加密算法

摘要本文主要讲述完全同态加密算法。1. 是什么?同态加密是一种对称加密算法,由Craig Gentry发明提出。其同态加密方案包括4个算法,即密钥生成算法、加密算法、解密算法和额外的评估算法。全同态加密包括两种基本的同态类型,即乘法同态和加法同态,加密算法分别对乘法和加法具备同态特性。2. 算法的原理全同态加密的原理:如果E为针对function_a的全同...

一致性hash算法

一致性哈希算法的应用 一致性哈希算法在分布式缓存领域的 MemCached,负载均衡领域的 Nginx 以及各类 RPC 框架中都有广泛的应用 一致性哈希算法解决的问题 普通的哈希表算法一般都是计算出哈希值后,通过取余操作将 key 值映射到不同的服务器上但是当服务器数量发生变化时,取余操作的除数就会发生变化,所有 key 所映射的服务器几乎都会改变,这对...

二分图的最大匹配、完美匹配和匈牙利算法(转载)

摘自: http://www.renfei.org/blog/bipartite-matching.htm 最大匹配数:最大匹配的匹配边的数目 最小点覆盖数:选取最少的点,使任意一条边至少有一个端点被选择 最大独立数:选取最多的点,使任意所选两点均不相连 最小路径覆盖数:对于一个 DAG(有向无环图),选取最少条路径,使得每个顶点属于且仅属于一条路径。路径...

魔棒工具--RegionGrow算法简介

原地址:http://www.cnblogs.com/easymind223/archive/2012/07/04/2576964.html ps里面的魔棒工具非常好用,是图像处理中非常常用的一个工具,它现在已经是我的c++工具箱中很重要的一员了,我会在以后的时间里把我的工具箱逐渐介绍给大家。 魔棒工具的核心算法是RegionGrow区域成长法,它的概念很...

数据挖掘中分类算法小结_数据分析师

数据挖掘中分类算法小结_数据分析师 数据仓库,数据库或者其它信息库中隐藏着许多可以为商业、科研等活动的决策提供所需要的知识。分类与预测是两种数据分析形式,它们可以用来抽取能够描述重要数据集合或预测未来数据趋势的模型。分类方法(Classification)用于预测数据对象的离散类别(Categorical Label);预测方法(Prediction )...

R语言-混合型数据聚类

利用聚类分析,我们可以很容易地看清数据集中样本的分布情况。以往介绍聚类分析的文章中通常只介绍如何处理连续型变量,这些文字并没有过多地介绍如何处理混合型数据(如同时包含连续型变量、名义型变量和顺序型变量的数据)。本文将利用 Gower 距离、PAM(partitioning around medoids)算法和轮廓系数来介绍如何对混合型数据做聚类分析。 --...