概率图模型-推断|机器学习推导系列(十一)

简介: 概率图模型-推断|机器学习推导系列(十一)

一、概述


总的来说,推断的任务就是求概率。假如我们知道联合概率MV0(Y0W}GE9O28Z8A$W$5K3.png


,我们需要使用推断的方法来求:


ZH%9AM90Z%MQ2(K`@WW0HC8.png


以下是一些推断的方法:


①精确推断:


Variable Elimination(VE,变量消除法)(针对树结构);


Belief Propagation(BP,信念传播,Sum-Product Algo)(针对树结构);


Junction Tree Algorithm(针对图结构)


②近似推断:


Loop Belief Propagation(针对有环图);


Mente Carlo Inference(例如Importance Sampling,MCMC);


Variational Inference


二、Variable Elimination(变量消除法)


  1. 变量消除法


_QE[ZHWHLU$R5$B%S%X)TWY.png

                                                            图结构


对于上述图结构,假如我们希望求边缘概率$@_8YQFKY]%X9I6YFKR79)K.png,我们就可以应用变量消除法:

[0NVL%W){RLP@_LR~9WB2UY.png


  1. 解释

2(T8CT6QCDRP4L}@DPQA4$B.png


如果直接计算上式中的每一项再加起来就会需要相当大的计算量,而且上式只是每个变量都是二值变量的情况下,如果每个变量能取更多的值就会有更大的计算量。变量消除法就是根据某些节点只与图中自己的邻接节点有关这一特性来简化计算,相当于应用了乘法分配律W(Y]NIU~F2TME_VCPZ@Q634.png来避免计算每一项在加起来。变量消除法在上式中的计算过程为:


M1R@}UH~84B)_H%HJX(3Z9N.png


  1. 缺点


变量消除的缺点很明显:


①计算步骤⽆法存储:每次计算一个边缘概率就要重新计算一遍整个图;


②消除的最优次序是⼀个NP-hard问题:对于复杂的图来说,想要找到一个最优的消除次序是困难的。


三、Belief Propagation(信念传播算法)


  1. Variable Elimination算法的计算重复问题


对于以下图结构:


)OF@X~A)E[6BHGI57BAFOUT.png

                                          马尔可夫链


已知联合概率:


4CD0(`]8_S94JO0FZ8S}HL2.png


我们发现在计算Y~}YL(JVG{9X2@D1H7~0J@N.png的边缘概率时的前一部分与在计算K89UQ7YOAK0`]X%JS]D5$]2.png的边缘概率时的一部分重复了,可以想象在求其他边缘概率的分布时也会有大量的重复,而Belief Propagation算法就是来解决这个问题。


  1. Belief Propagation的引出


上面我们一直计算的是有向图的马尔可夫链,现在我们将问题从链结构引申到树结构,从有向图引申到无向图(Belief Propagation只针对树状结构)。举例来说,有如下无向树:


0]]WJ9{)Y@5G2`Z7%YSX4_6.png

                                               无向树


现在我们知道该联合概率的因子分解可以写为:


HDC$3XP7Y6ZB)1FC`A{1[LL.png

SSM07}L{DTRQ8W5]H5(JG{M.png

2BIR6WS8G6_0LJZXF$TOD`Y.png

                                               信息传递


可以想象,在求其他边缘概率时势必会有很多重复的消去过程,但是由于我们已经有了计算%6]45WTZD)%H}([2$KU7[V4.png的通项,我们就可以利用这个公式来消除计算上的重复,而Belief Propagation算法正是利用了这个通项解决了这个问题。


  1. Belief Propagation


Belief Propagation算法的思想是:


@4Z_D~H{0V$JU6YNDVM@@WL.png


Belief Propagation算法首先求所有的信息传递(收集或分发)的过程得到所有的7(WPHU41(MZD`~RQFW%9Q~6.png(图的遍历),然后套用公式计算边缘概率,总的来说也就是RU%`S@@{_BUJ%NWW0O1)4)5.png

U_]W9Y`_HS8C)@7}UY_~AUS.png

                  Belief Propagation算法的信息传递


Belief Propagation算法遍历图的一种方法(Sequential Implementation)如下:


①Get root,assume a is root;


②Collect Message:

3X`3)M)U3XOUXT71ZN{`U`P.png

③Distribute Message:


MX0}G42RDZ1}90G`II7YZWJ.png


还有另外一种遍历的方法(Parellel Implementation),这是一种应用在分布式计算中的方法,可以并行计算,这里不做过多介绍。


  1. Max-product


事实上,信念传播算法分为Max-product和 Sum-product,上面讲的属于Sum-product,与Sum-product不同的是Max-product只需要将把求和符号换成求最大值MBD)T@XH68QUF5W[0S{B250.png的符号即可。Max-product是 Sum-Product算法的改进,也是在HMM中应用到的 Viterbi算法的推⼴。


 8@9%GSHS~LAR74@]KRQ{AB1.png

                                                  无向树


Max-product的作用是用来求一个序列来使得后验概率最大,也就是:


)`3XI0N`G(0IL3OM@XZ12TS.png


求解过程如下:


15NS)E2VPLWQ@Q{Q[QII{45.png


这里也进行了一次类似收集信息的过程:


}9MCGHAJ(J3POU)2XNXZ(_X.png

                                          信息传递


@$9~%N8ZG2NW~5N5DWG~`E1.png

四、概念补充


  1. 道德图


我们常常想将有向图转为⽆向图,从⽽应⽤更⼀般的表达式。对于有向图中的三种结构,有不同的转换方法:


  • 链式(head to tail)


S55E)[UX68OFAOJ_ZK98C12.png

              head to tail


`I@(3U@6{A@3%WX5D6R5K2L.png


这说明A,B和B,C是团,因此可以直接去掉箭头:


FRMSO38}X02TL_TA~450I3H.png

                       无向图


  • V形(tail to tail)


1XYZK[P227`NCFS1F}DRS9W.png

                            tail to tail


_I%7JWZ49AE405QG4TE$GJH.png


这说明A,B和B,C是团,因此可以直接去掉箭头:


RE6{G9]D_8G4~VEVZF]5`05.png

                      无向图


  • 倒V形(head to head)


IBN[~$)[J%O5K]VUO`~VKGJ.png

                              head to head


PZ~OX[UUGS(O)S5F`%Q8}_0.png


这说明A,B,C是一个团,需要在A,C之间加一条线:


GC3JYF8FI@%D}ZIP}8SF)P5.png

               无向图


观察这三种情况可以将有向图到无向图的转换方法的步骤概括为:


①将每个节点的⽗节点两两相连


②将有向边替换为⽆向边


得到的无向图就是道德图。


  1. 因子图

对于⼀个有向图,可以通过引⼊环的⽅式,可以将其转换为⽆向图(Tree-like graph),这个图就叫做道德图。但是我们上⾯的 BP 算法只对⽆环图有效,通过因⼦图可以变为⽆环图。


联合概率的因子图分解方法为:


{LDI%XZT$0X}OJWT_GOZ]U3.png

其中:


O6}724{2VYCPV3QEFR$LP4C.png


有以下无向图:


ZTH(VGDD6V9HB8PCF_U4T{R.png

                       无向图


可以将其转换成一个简单的因子图:


9}N}3YOQK153$}ME{7]$}PW.png

                        因子图


AB81$NQ`GD[D0M7G1OG5][J.png

因子图不是唯一的,可以看做对因子分解的进一步分解,比如以下分解:


Z7KRAZW4{2TMAP$5J_89AV7.png

                             因子图


8GE`I4O%1K2`K5U(O@GUVYO.png

[XJ_]@CM5~AV}5JMQ_[%O9E.png

                                                          分层


也就是说因子图可以做到随机变量节点之间不直接相连,只与因子节点相连,因子节点只与变量节点相连。

相关文章
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
实战派教学:掌握Scikit-learn,轻松实现数据分析与机器学习模型优化!
【10月更文挑战第4天】Scikit-learn凭借高效、易用及全面性成为数据科学领域的首选工具,简化了数据预处理、模型训练与评估流程,并提供丰富算法库。本文通过实战教学,详细介绍Scikit-learn的基础入门、数据预处理、模型选择与训练、评估及调优等关键步骤,助你快速掌握并优化数据分析与机器学习模型。从环境搭建到参数调优,每一步都配有示例代码,便于理解和实践。
86 2
|
1月前
|
机器人
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领精美计时器
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领精美计时器
86 3
|
1月前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
【10月更文挑战第6天】如何使用机器学习模型来自动化评估数据质量?
|
10天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
7天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
24 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
11天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
32 1
|
1月前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
54 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
20天前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
58 1
|
23天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
29天前
|
机器人
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领 200个 精美计时器等你领
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领 200个 精美计时器等你领
73 2

热门文章

最新文章