news 2026/5/27 0:11:05

贝叶斯网络中精确推理方法--变量消除法 CS188 Note14 学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
贝叶斯网络中精确推理方法--变量消除法 CS188 Note14 学习笔记

强烈推荐的更好的阅读体验

Inference

在Bayes Net中,Inference的目标是求解一个条件概率P ( Q 1 … Q k ∣ e 1 … e k ) P\big(Q_1 \ldots Q_k \mid e_1 \ldots e_k\big)P(Q1Qke1ek),也就是给出一些观测的变量( evidence ),计算查询变量( query variables )的后验概率
比如P ( T ∣ + e ) P(T \mid +e)P(T+e)就表示着我们要求解当我们已经观察到事件e为真时,T为真的概率是多少?
我们首先能想到的最基础的方法就是,直接构造一个完整的概率联合表,然后我们用在Note11中提及到的Inference by Enumeration方法,先选择与evidence一致的行再求和最后归一化。但是这样做的问题也很明显,问题就在于第一步构造完整概率联合表上,假设每个变量都是binary,如果有n个变量那么就会有2 n 2^n2n个rows,构造这样大的表很有难度。这就引出来了我们解决问题的方法Variable Elimination。我们在本讲引入的方法就是 #Exact_Inference


Variable Elimination

首先我们需要定义Factor为一个未归一化的概率表,比如P ( A ∣ B ) P(A \mid B)P(AB)或者P ( A , B ) P(A, B)P(A,B)

Variable Elimination实例

模型结构:

Step1:首先列出所有因子

Step2:Join所有包含C的factors以便下一步求和消除C
包含C的因子有:

Step3:消除C
f 2 ( + e , T , S ) = ∑ c P ( C ∣ T ) P ( + e ∣ C , S ) = ∑ c f 1 ( C , + e , T , S ) \begin{align*} f_2(+e, T, S) &= \sum_{c} P(C \mid T)\,P(+e \mid C, S) = \sum_{c}f_1(C, +e, T, S) \end{align*}f2(+e,T,S)=cP(CT)P(+eC,S)=cf1(C,+e,T,S)
用求和公式把C消除

Step4:Join所有包含S的factors以便下一步求和消除S
包含S的因子有:

Step5:消除S
f 4 ( + e , T ) = ∑ s f 3 ( + e , S , T ) \begin{align*} f_4(+e, T) &= \sum_sf_3(+e, S, T) \end{align*}f4(+e,T)=sf3(+e,S,T)

Step6:乘上剩余因子
还剩下一个P ( T ) P(T)P(T),就可以得到
f 5 ( + e , T ) = P ( T ) f 4 ( + e , T ) \begin{align*} f_5(+e, T) &= P(T)f_4(+e, T) \end{align*}f5(+e,T)=P(T)f4(+e,T)

Step7:归一化

伪代码实现

与Enumeration的本质区别

Enumeration:
α ∑ s ∑ c P ( T ) P ( s ∣ T ) P ( c ∣ T ) P ( + e ∣ c , s ) \begin{align*} \alpha\sum_s\sum_cP(T)\,P(s \mid T)\,P(c \mid T)\,P(+e \mid c, s) \end{align*}αscP(T)P(sT)P(cT)P(+ec,s)
Variable Elimination:
α P ( T ) ∑ s P ( s ∣ T ) ∑ c P ( c ∣ T ) P ( + e ∣ c , s ) \begin{align*} \alpha P(T)\sum_{s}P(s\mid T)\sum_{c}P(c\mid T)\,P(+e\mid c,s) \end{align*}αP(T)sP(sT)cP(cT)P(+ec,s)
Variable Elimination 把:

与求和无关的项提前移出求和符号

这大大减少了中间表的大小。
同时需要注意的是如果先消除 S,可能中间因子大小会不同。通过合理选择消除顺序,可以使最大因子尽可能小,从而降低计算复杂度。通常我们会采用贪心策略:每次选择“最小规模”的变量进行消除,其中规模可定义为当前涉及该变量的因子合并后的大小。这被称为“最小缺陷”或“最小边”启发式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 0:05:06

别再只怪内存不够了!Linux服务器上Java应用报‘Cannot allocate memory’的深层排查与修复(附overcommit_memory详解)

别再只怪内存不够了!Linux服务器上Java应用报‘Cannot allocate memory’的深层排查与修复当Java应用在Linux服务器上抛出Cannot allocate memory错误时,许多工程师的第一反应往往是"内存不够用了"。但现实情况往往更加复杂——你可能已经反复…

作者头像 李华
网站建设 2026/5/27 0:03:49

基于深度自编码器与PAM聚类的光伏发电典型日模式自动提取实战

1. 项目概述:从海量数据中“看见”光伏发电的脉搏光伏发电的出力曲线,就像是大自然的“心电图”,每一分钟的波动都记录着阳光与云层的博弈。对于电网调度员和电站运维人员来说,理解这些曲线背后隐藏的典型模式,是应对光…

作者头像 李华
网站建设 2026/5/26 23:56:29

深度学习钓鱼攻击检测:从URL分析到混合特征模型的实战解析

1. 项目概述:钓鱼攻击检测的智能化演进在网络安全领域,钓鱼攻击(Phishing Attack)始终是悬在用户和企业头顶的达摩克利斯之剑。它不像那些利用复杂漏洞的零日攻击,其核心手段是“欺骗”——通过精心伪装的电子邮件、社…

作者头像 李华
网站建设 2026/5/26 23:56:08

如何快速实现智能搜索:bootstrap-select完整实战指南

如何快速实现智能搜索:bootstrap-select完整实战指南 【免费下载链接】bootstrap-select :rocket: The jQuery plugin that brings select elements into the 21st century with intuitive multiselection, searching, and much more. 项目地址: https://gitcode.…

作者头像 李华