- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机器学习数据挖掘笔记_20(PGM练习四图模型的精确推理).
前言:
这次实验完成的是图模型的精确推理。exact inference分为2种,求边缘概率和求MAP,分布对应sum-product和max-sum算法。这次实验涉及到的知识点很多,不仅需要熟悉图模型的representation,而且还需明白图模型的inference理论,大家可参考coursera课程:Probabilistic Graphical Models?的课件和视频。多花点功夫去理解每行代码,无形之中会收获不少。新年第一篇博客,继续加油!
?
算法流程:
Sum-product求条件概率过程为(inference I):
(a): 输入factor list F、观察到的变量E
(b): 由F中的factor得到graph所对应的skeleton C.
(c): 依次进行变量消除,首先在图C中采用min-neighbors方法找到需要消除的变量。然后进行消除(其实就是factor的求和积分),消除过程中会用掉一些factor,同时也会生成一个新的factor(注意对新的factor补全各节点之间的边)。每消除一个变量就会得到一个clique,同时更新该clique与前面已得clique之间的edge情况。步骤c一直进行直到所有的变量都被消除掉。结束后得到一棵clique tree.
(d): 由于上面的tree中有冗余的clique(即某个clique可能是其相邻clique的子集)。这时需将这2个clique合并,该过程也称为树的剪枝:首先去点冗余的clique节点,然后将其sepset节点与该冗余节点其它所有邻节点都连接上边。
(e): 前面步骤得到的是clique tree skeleton,还需要对每个clique算出其factor表格,由于clique中对应的子factor信息已掌握,所以直接factor相乘即可(注意观察变量E).该步骤完成后就真正得到了一棵clique tree了。
(f): 接着对上面的clique tree进行message passing. 首先选出一个message通道,即找到那些clique i,和其连接的cliques中,只剩下一个clique j没有与之传递消息了,那么(I--j即为通道)。不过这还是得按照某种节点顺序进行。
(g): 计算clique i发射到clique j的message,采用的方法是求和积分掉非公共元素。
(h): 当clique tree中所有的message都传递完成后,clique tree就变成calibrate了,而calibrate具有很多良好的性质,首先可以获得calibrate时每个clique的belief.
(i): 如果要求某个变量的边缘概率,则找到包含该变量的一个clique(随便哪个都行),在该clique上,对其belief求和积分掉其它所有变量,然后归一化即可。
?
Max-sum求概率最大时的assignment过程为(inference II):
(a)~(e): 和sum-product过程一样。
(f): 将factorlist中的val都取log值。因为需要将max-product转换成对应的max-sum问题。
(g): 和sum-product一样,对clique tree进行message passing. 首先选出一个message通道(I→j).
(h): 计算(I→j)之间的message. 采用的方法是max掉非公共元素。
(i): 当clique tree中所有的message都传递完成后,clique tree就变成calibrate了,采用factorsum计算每个clique的belief.
(j): 如果要求某个变量的max-marginal,则找到包含该变量的一个clique(随便哪个都行),在该clique上, max掉其belief 上其它所有变量,此时不需要归一化。
(k): 通过步骤j,可以得到每个变量的max-marginal factor,找到需要assigment中元素对应的factor,取出其val中最大概率值对应的var,组合在一起为最终的结果。
?
Belief propagation流程如下:
?
matlab知识:
C = unique(A):
如果A是向量,则C表示去掉了A中重复的元素(只保留1个)。
C = union(A,B):
如果A和B是向量,则C为A和B的并集,且去掉了重复的元素(只保留1个)。
在matlab中,true只表示数字1,其它非1的数都不能表示,而false只表示0.所以其它整数既等于false也不等于true.
您可能关注的文档
- 机动车驾驶模拟考试_(适用车型A2_B2)..doc
- 机动车驾驶培训教练员考试300题库..doc
- 机动车驾驶题库..doc
- 机器人创新设计与技能挑战..doc
- 机器人初始调试操作流程..doc
- 机器人发展历史及未来发展趋势..docx
- 机器人发展方向..doc
- 机器人在包装工程中的实际应用..doc
- 机器人基本操作培训..doc
- 机器人学仿真课题设计..docx
- 公司客服部工作总结2023年5篇.docx
- 甲基四氢叶酸对紫外线有防护作用.pdf
- field wiring diagram package-01 e3500现场接线图套件01reve.pdf
- 2015-16作者商份附加信息anderson l2nd year all mendation全部修改.pdf
- 订单iouser training培训复件.pdf
- 雷克萨斯es350原厂维修手册.pdf
- 约有名居民简介-vammala english sficea模板.pdf
- ece 661计算机视觉作业2 yandong guohw2.pdf
- 程序化创意研究参考celtra.pdf
- 企业人力资源管理师之一级人力资源管理师综合提升训练试卷附答案详解.docx
文档评论(0)