机器学习 —— 概率图模型(推理:团树算法)

摘要:
假设要推断变量CD,我们应该找到Belief=deta2-˃3*deta4-˃3*phi。可以看出,团树算法是一种精确的推断算法。每个群体的信念实际上是无差别的联合概率。要计算单个变量的概率,您只需要对其他变量进行边际计算。1.集群树传输的消息实际上是两个集群之间的公共变量。

  在之前的消息传递算法中,谈到了聚类图模型的一些性质。其中就有消息不能形成闭环,否则会导致“假消息传到最后我自己都信了”。为了解决这种问题,引入了一种称为团树(clique tree)的数据结构,树模型没有图模型中的环,所以此模型要比图模型更健壮,更容易收敛。

1.团树模型

  链模型是一种最简单的树模型,其结构如下图所示,假设信息从最左端传入则有以下式子。

机器学习 —— 概率图模型(推理:团树算法)第1张

  假设要对变量 CD 进行推断,则应该求 Belief(3)  = deta 2->3 *deta 4->3 * phi(3).

机器学习 —— 概率图模型(推理:团树算法)第2张

  从这里可以看出,团树算法是一种精确推断算法。它和变量消除算法在理论推导上是等价的。

  上面的例子只是一种非常简单的团树,团树的本质还是聚类图,只不过是一种特殊的聚类图。对于更一般的概率图,也可以生成团树图。

机器学习 —— 概率图模型(推理:团树算法)第3张

  其中,每个cluster都是变量消除诱导图中的一个最小map。

 

2.团树模型的计算

  从上面分析可知,团树模型本质上和变量消除算法还有说不清道不明的关系(团树模型也是精确推理模型)。但是这个算法的优势在于,它可以利用消息传递机制达到收敛。之前提过,聚类图模型中的收敛指的是消息不变。除此之外,聚类图的本质是一种数据结构,它可以储存很多中间计算结果。如果我们有很多变量 ABCDEF,那么我们想知道P(A),则需要执行一次变量消除。如果要计算P(B)又要执行一次变量消除。如果中途得到了某个变量的观测,又会对算法全局产生影响。但是使用团树模型可以巧妙的避免这些问题。

  首先,一旦模型迭代收敛之后。所有的消息都是不变的,每个消息都是可以被读取的。

  机器学习 —— 概率图模型(推理:团树算法)第4张

  每个团的belief,实际上就是未归一划的联合概率,要算单个变量的概率,只需要把其他的变量边际掉就行。这样一来,只需要一次迭代收敛,每个变量的概率都是可算的。并且算起来方便。

  其次,如果对模型引入先验知识比如 A = a 时, 我们需要对 D 的概率进行估计。按照变量消除的思路又要从头来一次。但是如果使用团树结构则不用,因为 A的取值只影响 deta1->2以及左向传递的消息,对右向传递的消息则毫无影响,可以保留原先对右向传递消息的计算值,只重新计算左向传递结果即可。

  总而言之,使用团树算法相对于变量消除算法,可以大幅降低计算规模,也便于对任意一个随机变量进行查询。

 

3.团树算法与独立性

  聚类图是由概率图分析得到的。同样,聚类图中也继承了概率图在独立性方面的某些特性。团树图有以下性质:

  如果能观测到edge上的变量,则edge两端的变量的独立的。

  机器学习 —— 概率图模型(推理:团树算法)第5张机器学习 —— 概率图模型(推理:团树算法)第6张

  显然,如果给定 GS , CDI 与 HJL 就是独立的。

4.团树算法与VE算法的联系

  之前提到团树算法和VE算法都是精确推理的算法。本质上他们之间存在对应关系。

  1.团树传递的消息实际上是两个cluster之间共同变量。从1 - > 2 消除了1 中2 不包含的变量。这与VE算法中把 势函数边际成 τ 是一样的。也就是说 deta ---> tau. 

  2.团树的cluster 是多个 phi相乘得到的。多个phi相乘是VE算法构造初始的因子相乘。

  利用团树算法和VE算法之间的关系,我们可以利用模拟VE算法运行,来生成团树图。也就是说,假设我在执行VE算法(顺序由概率图决定),用VE算法生成团树图,再利用团树结构简化VE的计算,最终达到变量推断的目的。图中显示了一个简单的例子。

  机器学习 —— 概率图模型(推理:团树算法)第7张

 

5.实际置信传播算法的操作

  在之前的分析中,我们已经得到了消息传递算法的性质,执行机制等。但是如果把它编程成代码的时候,我们会遇到以下几个问题:

  1.如果cluster很多,我每次只传递一条消息,那么大部分节点都处于无所事事状态,这样好么

  2.迭代一定次数以后一定会收敛吗

  3.收敛了结果一定对吗

  4.怎样才能尽可能收敛

  

  针对第一个问题,计算机科学家采用的往往是并行消息传递,并行消息传递又分同时传递与非对称传递(主要针对网格聚类图),结果是非同时传递的效果往往更好。此外,还可以在图中选出一棵团树,尽量在这棵团树上达到收敛,以保证尽可能多的节点收敛。本身只有形成环的时候才会不收敛。

机器学习 —— 概率图模型(推理:团树算法)第8张机器学习 —— 概率图模型(推理:团树算法)第9张

  第二个问题,是不是一定会收敛,答案是不是的,奇怪的是有些消息会收敛,有些消息却不会。实际上在传递的过程中,有些消息已经达成平衡,在平衡状态下和其他不收敛的消息解耦了。此外,消息传递顺序对收敛性影响也很大。

机器学习 —— 概率图模型(推理:团树算法)第10张

  第三个问题,结果不一定对。本来这就是蒙特卡洛算法,不能保证一定收敛到正确值。

  

  第四个问题,增加阻尼可以增加收敛的可能性,简而言之,就是把之前的值考虑进去,让下一个值和之前的值尽可能靠近。把新的值”拖住“。

机器学习 —— 概率图模型(推理:团树算法)第11张

 

 

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

上篇js中不同值的替换nodejs面试题下篇

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

相关文章

java中使用MD5进行加密(转)

   在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希望能抛砖引玉。(一)消息摘要简介    一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组)。消息摘要是...

VBA学习_2:数组:同类型的多个变量的集合

声明数组:名称、数据类型和数组大小 1、通过起始和终止索引号定义数组大小   指定开始索引:Public | Dim 数组名称(a To b) As 数据类型, a和b为整数(不能是变量),分别表示数组的开始和终止索引号,可保存数据个个数(b-a+1)个   未指定开始索引:Public | Dim数组名称(a) As 数据类型  ,从0开始到a个元素...

csrf攻击原理和防御-生成token防御代码

前言 CSRF(Cross-site request forgery,跨站请求伪造,恶意网站伪造身份冒充你向目标服务器发送请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。 攻击原理 csrf攻击通过利用浏览器机制:发送请求的域相同时,浏览器会自动携带相...

UCOSII使用之信号量,邮箱

信号量在ucos-II中,为了实现任务之间的同步,用到的同步机制有:信号量,邮箱和消息队列。其中这里我主要说下对信号量的使用经验。信号量在创建时,      调用OSSemCreate(INT16U cnt)函数。cnt为信号量的初始值。对cnt赋予不同的值,所起到的作用不同。如果Semp = OSSemCreate(0), 该信号量表示等待一个事件或者多...

BUAA_2019_MATLAB基础与应用_期末复习纲要

Matlab复习提纲 一、概述 1. Matlab(Matrix Laboratory)概述 1980年,由美国的 Clever Moler 博士开发; 是一款 科学与工程计算软件; 第四代智能计算机语言。 2. 功能与特点 开放性强、可扩展性强,兼容性强,直观灵活; MATLAB提供了丰富的矩阵运算处理功能,是基于矩阵运算的处理工具; 矩阵运...

网页实时聊天之PHP实现websocket

前言 websocket 作为 HTML5 里一个新的特性一直很受人关注,因为它真的非常酷,打破了 http “请求-响应”的常规思维,实现了服务器向客户端主动推送消息,本文介绍如何使用 PHP 和 JS 应用 websocket 实现一个网页实时聊天室; 以前写过一篇文章讲述如何使用ajax长轮询实现网页实时聊天,见链接: 网页实时聊天之js和jQuer...