(《机器学习》完整版系列)第14章 概率图模型——14.5 学习与推断之信念传播(消息传递的画法及消息计算)

本文主要是介绍(《机器学习》完整版系列)第14章 概率图模型——14.5 学习与推断之信念传播(消息传递的画法及消息计算),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

信念传播算法是利用图的可视化表达。
有向图时必须是先画完了再计算,因为,后退画出当前传递线时,“余入”并没有画出,当然不知道“余入”的值,故不能计算当前“一出”的值。 无向图是在画的过程中,同时计算出该传递线的消息值。在无向无环图情形下,可采用双向传递线画法。

信念传播

将上述“ m m m化”的过程抽象到一般,称之为信念传播算法,中途的任一个“ m m m化”由【西瓜书式(14.19)】表达,即
m i j ( x j ) = ∑ x i ψ ( x i , x j ) ∏ k ∈ n ( i ) ∖ { j } m k i ( x i ) \begin{align} m_{ij}{(x_j)}=\sum_{x_i}\psi (x_i,x_j)\prod _{k\in n(i)\setminus \{j\}}m_{ki}(x_i) \tag{14.36} \end{align} mij(xj)=xiψ(xi,xj)kn(i){j}mki(xi)(14.36)

所谓的消息传递,是图上的可视化表达,其实质是依式(14.36)进行的计算。

1.有向无环图

对于有向无环图的情形,我们对照【西瓜书图14.7】的例子进行理解。

(1)画消息传递线:先不考虑图中边的方向,画出所有消息传递线【西瓜书图14.7(b)】,而消息传递线本身是有方向的。

i. 找出最终要求的边际概率结点 x 5 x_5 x5,画出以其为终点,以邻接结点为始点的所有传递线,这种先确定终点的画法称为后退画法,如 x 5 ← x 3 x_5\leftarrow x_3 x5x3

ii. 对每个已画的传递线的始结点(如, x 3 x_3 x3),画出以其为终点,始点为邻接结点(剔除已画线的边)的所有传递线(如, x 3 ← x 2 x_3\leftarrow x_2 x3x2 x 3 ← x 4 x_3\leftarrow x_4 x3x4,没有 x 3 ← x 5 x_3\leftarrow x_5 x3x5);

iii. 对于无环连通图,反复用ii. 后退地画 即可使得图的每条边上都有唯一一条传递线;

iv. 在所有传递线上标上消息记号( m i j ( x j ) m_{ij}(x_j) mij(xj)),其中,下标 i j ij ij对应于传递线的方向 x i → x j x_i\rightarrow x_j xixj,显然,每结点的消息传递线是“一出余入”的,这是后退画法的必然结果。

(2)再确定消息 m i j ( x j ) m_{ij}(x_j) mij(xj)

为强调有向图的特点,我们将式(14.36)中的 ψ ( x i , x j ) \psi (x_i,x_j) ψ(xi,xj)调整 Q ( x i , x j ) Q (x_i,x_j) Q(xi,xj),即设
m i j ( x j ) = ∑ x i Q ( x i , x j ) ∏ k ∈ n ( i ) ∖ { j } m k i ( x i ) \begin{align} m_{ij}{(x_j)}=\sum_{x_i}Q (x_i,x_j)\prod _{k\in n(i)\setminus \{j\}}m_{ki}(x_i) \tag{14.37} \end{align} mij(xj)=xiQ(xi,xj)kn(i){j}mki(xi)(14.37)
从前述画传递线过程可知:对于结点 x i x_i xi而言的“一出余入”消息传递线是:“一出”是指“ x i → x j x_i\rightarrow x_j xixj”对应于式(14.37)中左侧要计算的消息 m i j m_{ij} mij,“余入”是指计算时需要用到其它所有“入边”(即右侧和式 ∑ x i \sum_{x_i} xi),每条“入边”有两个因子:消息积 ∏ k ∈ n ( i ) ∖ { j } m k i ( x i ) \prod _{k\in n(i)\setminus \{j\}}m_{ki}(x_i) kn(i){j}mki(xi)和因子 Q Q Q,端点情况特殊。

i. 消息积 ∏ k ∈ n ( i ) ∖ { j } m k i ( x i ) \prod _{k\in n(i)\setminus \{j\}}m_{ki}(x_i) kn(i){j}mki(xi)

把消息理解成收到消息的概率,则该“消息积”表示 x i x_i xi收到它应收的所有消息的概率, x i x_i xi的应收消息为: x i x_i xi的所有邻接点除 x j x_j xj外( k ∈ n ( i ) ∖ { j } {k\in n(i)\setminus \{j\}} kn(i){j})都应向它传递消息 m k i ( x i ) m_{ki}(x_i) mki(xi)(路径“ x k → x i x_k\rightarrow x_i xkxi”)。 如,【西瓜书图14.7(b)】中 x 3 x_3 x3的消息积为 ∏ k ∈ n ( 3 ) ∖ { 5 } m k 3 ( x 3 ) = m 23 ( x 3 ) m 43 ( x 3 ) \prod _{k\in n(3)\setminus \{5\}}m_{k3}(x_3)=m_{23}(x_3)m_{43}(x_3) kn(3){5}mk3(x3)=m23(x3)m43(x3)

ii. 因子 Q Q Q

需要结合有向图的方向确定因子 Q Q Q
Q ( x i , x j ) = { P ( x i ∣ x j ) , (有向图中有边 x j → x i ) P ( x j ∣ x i ) , (有向图中有边 x i → x j ) \begin{align} Q (x_i,x_j)= \begin{cases} P(x_i\,|\,x_j),\quad \text{(有向图中有边$x_j\rightarrow x_i$)} \\ P(x_j\,|\,x_i),\quad \text{(有向图中有边$x_i\rightarrow x_j$)} \\ \end{cases} \tag{14.38} \end{align} Q(xi,xj)={P(xixj),(有向图中有边xjxiP(xjxi),(有向图中有边xixj(14.38)
如,【西瓜书图14.7(a)】知, Q ( x 3 , x 5 ) = P ( x 5 ∣ x 3 ) Q (x_3,x_5)=P (x_5\,|\,x_3) Q(x3,x5)=P(x5x3)

上述公式表明:在画消息传递线时,并不考虑有向图中边的方向,而是在计算式(14.37)中的因子 Q ( x i , x j ) Q (x_i,x_j) Q(xi,xj),通过式(14.38)使边的方向起作用。

结合上述i.和ii.中的举例,由式(14.37)有
m 35 ( x 5 ) = ∑ x 3 Q ( x 3 , x 5 ) ∏ k ∈ n ( 3 ) ∖ { 5 } m k 3 ( x 3 ) = ∑ x 3 P ( x 5 ∣ x 3 ) m 23 ( x 3 ) m 43 ( x 3 ) \begin{align*} m_{35}{(x_5)} & =\sum_{x_3}Q (x_3,x_5)\prod _{k\in n(3)\setminus \{5\}}m_{k3}(x_3)\notag \\ & =\sum_{x_3}P (x_5\,|\,x_3)m_{23}(x_3)m_{43}(x_3) \end{align*} m35(x5)=x3Q(x3,x5)kn(3){5}mk3(x3)=x3P(x5x3)m23(x3)m43(x3)

iii. 端点情况

特别,当结点 x i x_i xi为图中的端点时,结点 x i x_i xi只有一个邻近结点,设它为 x j x_j xj,即 n ( i ) ∖ { j } = ∅ n(i)\setminus \{j\}=\varnothing n(i){j}=,式(14.37)中“连积”定义为
∏ k ∈ n ( i ) ∖ { j } = ∅ m k i ( x i ) = { 1 , (图的有向边为 x j → x i ,消息逆向) P ( x i ) , (图的有向边为 x i → x j ,消息顺向) \begin{align} \prod _{k\in n(i)\setminus \{j\}=\varnothing}m_{ki}(x_i)= \begin{cases} 1, & \text{(图的有向边为$x_j\rightarrow x_i$,消息逆向)} \\ P(x_i), & \text{(图的有向边为$x_i\rightarrow x_j$,消息顺向)} \\ \end{cases} \tag{14.39} \end{align} kn(i){j}=mki(xi)={1,P(xi),(图的有向边为xjxi,消息逆向)(图的有向边为xixj,消息顺向)(14.39)
如,【西瓜书图14.7(a)(b)】中由式(14.37)、式(14.39)有
m 12 ( x 2 ) = ∑ x 1 Q ( x 1 , x 2 ) ∏ k ∈ n ( 1 ) ∖ { 2 } m k 1 ( x 1 ) = ∑ x 1 P ( x 2 ∣ x 1 ) P ( x 1 ) (【西瓜书图14.7(a)】中 x 1 → x 2 ) = P ( x 2 ) m 43 ( x 3 ) = ∑ x 4 Q ( x 4 , x 3 ) ∏ k ∈ n ( 4 ) ∖ { 3 } m k 4 ( x 4 ) = ∑ x 4 P ( x 4 ∣ x 3 ) (有向图中 x 3 → x 4 ) m 35 ( x 5 ) = ∑ x 3 Q ( x 3 , x 5 ) ∏ k ∈ n ( 3 ) ∖ { 5 } m k 3 ( x 3 ) = ∑ x 3 P ( x 5 ∣ x 3 ) P ( x 3 ) (有向图中 x 3 → x 5 ) = P ( x 5 ) \begin{align*} m_{12}{(x_2)} & =\sum_{x_1}Q (x_1,x_2)\prod _{k\in n(1)\setminus \{2\}}m_{k1}(x_1) \\ & =\sum_{x_1}P (x_2\,|\,x_1)P(x_1)\quad \text{(【西瓜书图14.7(a)】中$x_1\to x_2$)} \\ & =P(x_2)\\ m_{43}{(x_3)} & =\sum_{x_4}Q (x_4,x_3)\prod _{k\in n(4)\setminus \{3\}}m_{k4}(x_4) \\ & =\sum_{x_4}P (x_4\,|\,x_3)\quad \text{(有向图中$x_3\to x_4$)}\\ m_{35}{(x_5)} & =\sum_{x_3}Q (x_3,x_5)\prod _{k\in n(3)\setminus \{5\}}m_{k3}(x_3) \\ & =\sum_{x_3}P (x_5\,|\,x_3)P(x_3)\quad \text{(有向图中$x_3\to x_5$)} \\ & =P(x_5) \end{align*} m12(x2)m43(x3)m35(x5)=x1Q(x1,x2)kn(1){2}mk1(x1)=x1P(x2x1)P(x1)(【西瓜书图14.7(a)】中x1x2=P(x2)=x4Q(x4,x3)kn(4){3}mk4(x4)=x4P(x4x3)(有向图中x3x4=x3Q(x3,x5)kn(3){5}mk3(x3)=x3P(x5x3)P(x3)(有向图中x3x5=P(x5)
故有【西瓜书式(14.16)】的计算式。

2.无向无环图

在无向无环图中,针对具体需要求的边际概率结点,可仿前述有向图的传递线画法处理,但换一个边际概率结点又要再画,对应的计算量就重复了,能否有与所求边际概率结点无关的画法呢?在无向无环图情形下,可采用双向传递线画法【西瓜书图14.8(a)(b)】对应的画法:

i. 建树: 对于无向无环图,任取一个结点为根,将其拎起来,则形成一棵树(倒立的);

ii. 向上画:先从叶子结点向根的方向前进地画传递线,即画以叶子结点为起点的传递线,逐层前进到根,形成一个从底向上指向的有向图。 注:在有向图时采用的是后退式(先定终点,“终点 ← \leftarrow 起点”)画法,而无向图采用的是前进式(先定起点,“起点 → \rightarrow 终点”)画法。

在画的过程中,同时计算出该传递线的消息值。
注:这也是与有向图的区别:有向图时必须是先画完了再计算,因为,后退画出当前传递线时,“余入”并没有画出,当然不知道“余入”的值,故不能计算当前“一出”的值。 无向图是在画的过程中,同时计算出该传递线的消息值。

如图14.8 (a)中,虚线表示当前所画传递线,非端点结点处的消息均依式(14.36)采用“一出余入”方式计算:“一出”指需要计算的虚线消息 m i j ( x j ) m_{ij}{(x_j)} mij(xj),“余入”指需要用到该结点其余所有边上的消息 ∏ k ∈ n ( i ) ∖ { j } m k i ( x i ) \prod _{k\in n(i)\setminus \{j\}}m_{ki}(x_i) kn(i){j}mki(xi),对比有向图时的式(14.37),这时,将其中的 Q ( x i , x j ) Q (x_i,x_j) Q(xi,xj)调整成了势函数 ψ ( x i , x j ) \psi (x_i,x_j) ψ(xi,xj),同样地, k ∈ n ( i ) ∖ { j } {k\in n(i)\setminus \{j\}} kn(i){j}体现了“一出余入”的要求。
图14.8 画传递线及计算消息(局部)

图14.8 画传递线及计算消息(局部)

iii. 向下画:再从根结点向叶子的方向(前进地)画传递线,即画以根结点为起点的传递线,逐层前进到叶子。 在画的过程中,同时计算出该传递线的消息值。 如图14.8 (b)中,虚线表示当前所画传递线,依式(14.36)计算“一出”的虚线消息 m i j ( x j ) m_{ij}{(x_j)} mij(xj)时,“余入”不足(右边枝上没有“入”),因此,需要借用图14.8 (a)中向上以画的的“入”,为示区别我们在图14.8 ©图用粗线表示,形成©图后,即可用“一出余入”方式计算了。 因此,ii. 与iii. 画的次序不要弄反了,否则在分叉前进时没有“借”的了。

上述依式(14.36)计算时,端点 x i x_i xi处会出现 k ∈ n ( i ) ∖ { j } = ∅ {k\in n(i)\setminus \{j\}}=\varnothing kn(i){j}=,需要作出合理规定:
∏ k ∈ n ( i ) ∖ { j } m k i ( x i ) = 1 \begin{align} \prod _{k\in n(i)\setminus \{j\}}m_{ki}(x_i)=1 \tag{14.40} \end{align} kn(i){j}mki(xi)=1(14.40)

消息的双向传递(画图并计算)后,则可用【西瓜书式(14.20)】计算图上任一结点变量的边际概率分布(的正比例),
如,【西瓜书图14.8(b)】中:
P ( x 2 ) ∝ m 12 ( x 2 ) m 32 ( x 2 ) \begin{align} P(x_2)\propto m_{12}(x_2)m_{32}(x_2) \tag{14.41} \end{align} P(x2)m12(x2)m32(x2)(14.41)
如何把“ ∝ \propto ”变为“ = = =”呢?这就是找规范因子 Z Z Z,设 x 2 x_2 x2的所有取值为 x 2 t , t = 1 , 2 , ⋯ , k x_2^t,\,t=1,2,\cdots,k x2t,t=1,2,,k,则
∑ t = 1 k P ( x 2 = x 2 t ) = 1 即:  1 Z ∑ t = 1 k m 12 ( x 2 t ) m 32 ( x 2 t ) = 1 即:  Z = ∑ t = 1 k m 12 ( x 2 t ) m 32 ( x 2 t ) \begin{align} & \sum_{t=1}^kP(x_2=x_2^t)=1\notag \\ \text{即: } & \frac{1}{Z} \sum_{t=1}^km_{12}(x_2^t)m_{32}(x_2^t)=1\notag \\ \text{即: } & {Z} =\sum_{t=1}^km_{12}(x_2^t)m_{32}(x_2^t) \end{align} 即: 即: t=1kP(x2=x2t)=1Z1t=1km12(x2t)m32(x2t)=1Z=t=1km12(x2t)m32(x2t)
一般地,【西瓜书式(14.20)】的规范化因子为
Z = ∑ x i ∏ k ∈ n i m k i ( x i ) \begin{align} {Z} =\sum_{x_i}\prod _{k\in n{i}} m_{ki}(x_i) \tag{14.42} \end{align} Z=xiknimki(xi)(14.42)

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:14.4 学习与推断之变量消去法(“边际化”,“m化”逐步消元)
下一篇:14.6 采样:马尔可夫链蒙特卡罗MCMC方法(为何要采样?如何变通采样?)

这篇关于(《机器学习》完整版系列)第14章 概率图模型——14.5 学习与推断之信念传播(消息传递的画法及消息计算)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188098

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

hdu4865(概率DP)

题意:已知前一天和今天的天气概率,某天的天气概率和叶子的潮湿程度的概率,n天叶子的湿度,求n天最有可能的天气情况。 思路:概率DP,dp[i][j]表示第i天天气为j的概率,状态转移如下:dp[i][j] = max(dp[i][j, dp[i-1][k]*table2[k][j]*table1[j][col] )  代码如下: #include <stdio.h>#include

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了