因子图与和-积算法.ppt

上传人:灯火****19 文档编号:137320582 上传时间:2020-07-07 格式:PPT 页数:28 大小:832.50KB
返回 下载 相关 举报
因子图与和-积算法.ppt_第1页
第1页 / 共28页
因子图与和-积算法.ppt_第2页
第2页 / 共28页
因子图与和-积算法.ppt_第3页
第3页 / 共28页
因子图与和-积算法.ppt_第4页
第4页 / 共28页
因子图与和-积算法.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《因子图与和-积算法.ppt》由会员分享,可在线阅读,更多相关《因子图与和-积算法.ppt(28页珍藏版)》请在金锄头文库上搜索。

1、因子图 与 和-积算法 Factor graph and sum-product algorithm,概述: 图模型( graphical model )、因子图(factor graph) 、和-积 算法(sum-product algorithm): 1)常见的电路图、信号流程图、格子图以及各种框图都属于图模型的范畴; 2)因子图(factor graph)是图模型的一种; 3)因子图的典型代表是Forney-style factor graph,简称FFG。 4)和-积算法 又称“概率传播(probability propagation )算法”或“置信传播(belief propaga

2、tion)算法”, 意味着图模型(graphical model)中的信息传递; 5)编码领域、信号处理、人工智能方面的大量算法实际上都可看作和-积算法的实例; 检测、估计方面的一些新算法也可看作和-积算法的衍生实例。,编码领域、信号处理、人工智能等方面的大量算法实际上都可看作和-积算法的实例: 具体的应用实例: 1)卡尔曼滤波(Kalman filtering)(especially in the form of the RLS algorithm); 2)隐马尔可夫模型的前向-后向算法(forward-backward algorithm for hidden Markov models)

3、; 3)贝叶斯网络中的概率传播(probability propagation in Bayesian networks); 4)解码算法:例如针对纠错码的Viterbi 算法,BCJR算法等解码算法; 例如针对turbo codes,LDPC codes等的循环解码算法。,1. 因子图(factor graph): 1)典型代表FFG(Forney-style factor graph) FFG优点:支持分层建模,兼容标准框图; 以后都用FFG来描述; 2)FFG:代表对一个函数的因子分解(一个全局函数分解为若干个局部函数) 例:函数f(u, w, x, y, z) 可以分解成下面三个因子式

4、,其FFG如下图所示。,3)FFG的定义规则 一般而言,FFG由结点,边缘,半边缘(只与一个结点连接)组成; FFG的定义规则如下: a) 每个因子对应唯一的结点; b) 每个变量对应唯一的边缘或者半边缘; c) 代表因子g的结点与代表变量x的边缘(或半边缘)相连,当且仅当g是关于x的函数。,例:在左图中, 3个结点对应3个因子 2个边缘对应2个变量 x, z; 3个半边缘对应3个变量 u, w, y;,割集独立原理(Cut-Set Independence Theorem): 假设一个FFG代表关于若干随机变量的联合概率分布(或联合概率密度),进一步假设对应于其中一些变量 的边缘组成了一个割

5、集(换言之,移除这些边缘将图表分割成了不相连的两部分)。在这种情况下,以 (即任何确定值 )为条件,一部分图表中的每个随机变量(或这些随机变量组成的任意集合)与另一部分图表中的每个随机变量(或这些随机变量组成的任意集合)都是相互独立的。 例:下图是一个表示一个马尔可夫链的FFG。 变量x, y, z的联合概率密度 若将边缘Y移除,则图表被分割成不相连的两部分,运用割集独立原理,则有,FFG应用举例:线性状态空间模型(linear state-space model) 注1:若假定U.和W.是高斯白噪声过程,则图表中的相应结点就代表高斯概率分布函数 (例:如果U.是个标量,则左图中最左上方的结点

6、就代表函数 ) 注2:由此例可看出,在一个FFG中, “可见的”外部变量由半边缘表示, “隐藏的”内部变量由(全)边 缘表示。 显然,一个子系统的外部变量可能是整个大系统的内部变量。,2. 和-积 算法(sum-product algorithm) 汇总传播算法(summary propagation algorithm): 和-积 算法(sum-product algorithm); 最大值-积 算法(max-product algorithm)(or min-sum algorithm) 这里重点讲述 和-积 算法; 和-积 算法的推导:由求解边缘函数推导出和-积 算法 前面的例子说明引入

7、辅助变量(状态变量)可以得到结构更优的模型, 现在我们考虑消除某些变量。 实际上,求解边缘函数就是通过汇总运算(”summary operator”)实现对变量的消除。,由求解边缘函数推导出 和-积 算法: 例:假设函数 f 可用如下左图所示的FFG表示,即 考虑边缘函数(边缘概率) ,即 则 可用如下右图所示公式表示。,求解边缘函数的思路: 对内部变量分别进行汇总计算,“关闭”盒子(closing the box),即分块消除内部变量。 因子 :对左图中左边虚线所围盒子的内部变量的信息汇总; 因子 :对左图中右边虚线所围小盒子的内部变量的信息汇总; 因子 :对左图中右边虚线所围大盒子的内部变

8、量的信息汇总; 最终,“关闭”所有盒子(即消掉了除 以外的其他所有内部变量)之后, 得到 局部消除性质(Local Elimination Property): 一个全局的信息汇总(通过求和或者积分)可以由连续的子系统的局部信息汇总得到。,现在考虑信息的传递,如上图所示,有三种情况: 从“关闭”盒子流出的信息:是盒子内部的信息汇总; 从结点(例 )流出的信息:是结点对应的函数本身; 半边缘(例 )携带的信息:不携带任何信息,或者可认为代表常数因子1;,由上面的分析可推得 和-积 算法 和-积 算法(sum-product rule): 沿着边缘x从结点(因子)g传递出的信息是g和沿着除x以外其

9、余所有边缘传入的信息的乘积,然后对除x以外其余所有相关变量进行求和的结果。 即: 其中, 代表沿着边缘 到达g的信息。,由sum-product rule计算边缘函数 : 1) ,即边缘概率为沿着边缘 的两个方向的信息的乘积; 2)对于所有k,边缘函数 能够同时得到; (分析:在非循环因子图中,初始信息从叶子结点或半边缘传入,在两个 方向上信息各传递一遍,因而所有边缘对应的边缘概率都能同时得到),注: 1)和-积 算法 适用于任何非循环因子图; 2)半边缘(open half-edges)不携带任何的传入信息,或者说携带的信息为常数因子1; 3)已知变量(例如前面提到的 ,可理解为常数)只是简

10、单地融入相应的因子,并不作为相关变量参与到算法中; 4)一般而言,得到正比于一个比例因子(up to a scale factor)的边缘函数 就可以满足需求,在这种情况下,信息只取决于一个比例因子。,补充: 最大值-积 算法(max-product rule): 沿着边缘x从结点(因子)传递出的信息是g和沿着除x以外其余所有边缘传入的信息的乘积,然后对除x以外其余所有相关变量进行最大化的结果。 即: 实际上,sum-product rule和max-product rule都符合下面同一个规则: summary-product rule: 沿着边缘x从结点(因子)传递出的信息是g和沿着除x以

11、外其余所有边缘流入的信息的乘积,然后对除x以外其余所有相关变量进行信息汇总的结果。 注:运用这个规则的前提条件是因子图没有循环。,因子图MATLAB程序 3.1 因子图MATLAB程序设计流程 非循环因子图: 1)instantiate nodes:即用唯一的整数标注每一个结点,让每一个结点拥有唯一的ID; 2)define connections:用setup_link()函数和connect()函数定义连接; 3)initialize parameters:例如对cpt_node的参数cpt进行初始化,对Is_gain2_node的参数gain进行初始化; 4)give evident:通

12、过setup_init_msg()函数给予结点(evident_node)相应的已观测事件的信息(这种信息称为“evident”,承载这种信息的结点称为“evident_node”); 5)get marginal values:通过marginal()函数或者Is_marginal()函数计算得到边缘概率。,循环因子图: 1)初始化全局变量loopy,将其置为1; 2)对于线性标量因子图,初始化linear_scalar,将其置为1; 3)instantiate nodes:即用唯一的整数标注每一个结点,让每一个结点拥有唯一的ID; 4)define connections:用setup_l

13、ink()函数和connect()函数定义连接; 5)initialize parameters:例如对cpt_node的参数cpt进行初始化,对Is_gain2_node的参数gain进行初始化; 6)give evident:通过setup_init_msg()函数给予结点(evident_node)相应的已观测事件的信息(这种信息称为“evident”,承载这种信息的结点称为“evident_node”); 7)通过update_node()函数对每一个结点进行更新; 8)通过设置迭代终止条件或者完成预设的迭代次数之后,终止更新。,3.2 具体实例应用分析 1)因子图测试程序(facto

14、r graph test); 2)隐马尔可夫链(hidden markov chain); 3)卡尔曼滤波(kalman filtering),程序段1 程序段2 程序段3,这是一个因子图的测试程序,目的是实现偶校验: 1)p, q, r, s四个结点都是代表相应已观测事件的evident_node (如前所述,这种结点只是为了承载相应事件的观测信息, 并非因子结点); m, n二个因子结点都是偶校验结点(even_parity_node); 2)从程序段3和程序段4可以看出, 对p, q, r, s四个evident_node赋予的初始观测信息为“0,0,1,0”, 即evidents :

15、p, q, r, s = 0,0,1,0时,计算每个边缘对应的边缘概率; 3)从程序段5可以看出, 将q重置为1,即evidents:p, q, r, s = 0,1,1,0时,计算每个边缘对应的边缘概率。,程序段4 程序段5,1):factor graph test,程序运行结果:,实验结果分析: 从边缘概率来看, 1)在p, q, r, s=0,0,1,0时,link mn:0.5000,0.5000, 即上面两个叶子结点的偶校验结果和下面两个叶子结点的偶校验结果为1,0(或0,1)的概率相等,即上下两部分偶校验的结果必然为:一个是偶数个1,另一个是奇数个1。 2)在p, q, r, s=

16、0,1,1,0时,link mn:0.0460,0.9540 ,即上面和下面的偶检验的结果都是1的可能性非常大(0.04600.9540),可判定为1,即上下都是奇数个1。 3)下图以p, q, r, s =0,0,1,0 为例呈现了因子图中的信息传递过程,即通过和-积算法计算边缘概率。,2):隐马尔可夫链(hidden markov chain) 问题: 两个朋友Alice 和 Bob,他们住的地方离彼此很远,每天通过电话告知对方当天在做什么事情。Bob只对三种活动感兴趣:散步,购物,打扫。他选择做什么主要取决于当天的天气。Alice对Bob那边的天气没有确切消息,但是她知道一般的趋势。基于Bob告诉她的他当天

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号