当前位置: 首页 > news >正文

贝叶斯网络中四种近似推理方法 CS188 Note15 学习笔记

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

问题引入

我们在Note14中提及到了两种解决计算条件概率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)的方法,分别是Inference by Enumeration和Variable Elimination,这两种方法我们叫做精确推理(Exact_Inference),在面临网格结构复杂还有变量众多的情况下,其计算量会变得巨大。所以说我们就引入了一种近似推理的方法–Sampling,通过牺牲精度来换效率。这种方法我们叫做 (Approximate_Inference)

Prior Sampling

这个方法是在通过拓扑顺序来依次在CPT中随机抽样,进而生成一个完整样本。再之后不断重复这个过程,出现大量样本后,某个事件出现的频率会收敛至它出现的真实频率.每个样本 (x₁, x₂, …, xₙ) 被抽中的概率正是网络的联合概率 P(x₁, x₂, …, xₙ),因为生成过程就是按照联合概率的分解(Chain rule)依次采样。
它的缺点也很明显,在面临计算条件概率的问题时,会浪费大量的样本,进而导致效率十分低下。如果样本很少时,又不能覆盖所有的情况

这里提醒一句,在Bayes Net中,一定一定不能把概率设为0.0,即便这个事件发生的概率很小,也应该赋予一个很小的概率值

实例

样本只是根据概率分布来随机抽取,有时候能完美覆盖我们所需要的问题,有时候又没有我们需要的样本。如果我们需要的情况足够罕见,那么我们很有可能很长时间都找不到这个样本.这是Sampling很明显的缺点

Python实现

importrandomdefget_t():ifrandom.random()<0.99:returnTruereturnFalsedefget_c(t):iftandrandom.random()<0.95:returnTruereturnFalsedefget_sample():t=get_t()c=get_c(t)return[t,c]

Rejection Sampling

这个方法相比Prior Sampling就改进了一点,就是在发现某个变量的取值和已知的evidence有冲突的话,直接舍弃当前的样本
步骤(以查询 P(C | T=false) 为例):

  1. 按照拓扑顺序采样:先采样 T。
  2. 如果 T 的值不等于 false(即证据要求 T=false),则拒绝整个样本,回到步骤 1 重新开始。
  3. 如果 T=false,继续采样 C。
  4. 最终得到一个符合证据的样本 (T=false, C=?)。
  5. 重复多次后,统计 C 的取值频率,即为 P(C | T=false) 的近似。
    我们仍然需要抛弃我们的大量样本,但至少我们避免了在冲突的样本上少花了点算力

我个人在考虑这种算法是想到了一个问题,

Rejection Sampling中,当我发现与evidence不符合的样本的时候,我做的行为是直接舍弃这个样本。难道舍弃这种行为不会出现和Likelihood Weighting算法出现的样本不符合概率联合分布的情况吗

答案是不会,我们观察一下条件概率P ( C ∣ + w ) P(C \mid +w)P(C+w),当我们给定+w时我们注意的是C出现的频率。Rejection Sampling所做的行为是舍弃掉-w出现的情况,不影响给定+w下C出现的频率。;观察拓扑顺序对这个方便理解一点


Likelihood Weighting

我们在Rejection Sampling的思想很有参考价值,当我们发现一些和evidence不符合的情况立马舍弃样本。但是当我们观测到证据变量的取值概率本身就很小,那么就也会产生浪费大量样本的问题。
为了解决这个问题,我们在这里新增一个方法,这个方法成功从根源上解决了产生不符合的样本的情况。当我们发现与evidence不符合的话,我们选择保留而不是舍弃。但是如果保留了与evidence相违背的样本,生成样本的过程中就不符合联合分布。为了避免样本产生偏离联合分布的情况,我们为每个样本引入一个权重的概念,权重的计算公式为证据变量还有其在父节点被observed的情况下的乘积,这样以来我们对于不合理的样本分配小的权重,给合理的样本赋予大权重

之所以有样本权重,是因为我们操纵的这些节点,实际上只有很小的概率能落到我们想要的方向上面,这种概率需要在某个方向体现出来,所以说就是权重的来源

我们对于非证据变量(evidence),投硬币来决定其值来观察其自然结果。对于证据变量我们直接固定其值,并根据其父节点在observed的情况下的概率更新权重。

Likelihood Weighting不同节点的内在联系

其中权重为
w = ∏ evidence P ( e i ∣ p a r e n t s ( e i ) ) = P ( C ∣ B ) \begin{align*} w &= \prod_{\text{evidence}} P\big(e_i \mid \mathrm{parents}(e_i)\big) = P(C \mid B) \end{align*}w=evidenceP(eiparents(ei))=P(CB)
上面二式乘积正为联合概率
s a m p l e p r o b × w = P ( A , B , C ) \begin{align*} sample\,prob×w = P(A, B, C) \end{align*}sampleprob×w=P(A,B,C)

伪代码实现


Gibbs Sampling

我们需要思考一个有关Likelihood Weighting的问题:Fire代表火灾,Alarm代表警报响,他们的网格关系为F -> A

P(F)
+F0.01
-F0.99
FAP ( A ∣ F ) P(A \mid F)P(AF)
+F+A0.99
+F-A0.01
-F+A0.01
-F-A0.99

假设我们想了解P ( + F ∣ + A ) P(+F \mid +A)P(+F+A),用Likelihood Weighting算法来进行的话,我们强制固定+A,然后在F中投硬币。有99%的概率会出现-F +A的样本,我们浪费了大量算力来找一个罕见样本+F +A,这就是我们为什么需要Gibbs Sampling

Markov Blanket

首先需要介绍的一个概念是马尔可夫毯:一个变量的马尔可夫毯包括它的父节点、子节点、以及子节点的其他父节点。在给定马尔可夫毯的条件下,该变量与网络中所有其他变量条件独立。因此,重新采样时只需考虑它的马尔可夫毯。

步骤

伪代码

http://www.jsqmd.com/news/900038/

相关文章:

  • 工业物联网边缘设备自动化部署:基于uOS与代理的零接触配置方案
  • 2026年近期河北省粮食自动装车机企业哪家好?专业测评与选购指南 - 2026年企业资讯
  • 思源宋体TTF字体完全指南:7种样式免费商用,轻松打造专业中文排版
  • Go语言GC源码:三色标记原理深度解析
  • 聚焦2026年Q2:安徽老旧小区改造如何选择专业监理服务团队 - 2026年企业资讯
  • 别再手动写Swagger注释了!用ChatGPT自动生成OpenAPI 3.1文档的6步精准工程法(含安全脱敏模块)
  • AI大模型可靠性突破:GPT-5.5幻觉率从52.5%降至26.3%,OpenAI基于深度学习与机器学习的强化学习+对抗验证技术路线全解析
  • RustSFQ:利用Rust所有权系统保障超导SFQ电路I/O一致性
  • Python核心语法分类详解:从入门到精通
  • 四大模块掌握GenomeScope:从k-mer分析到基因组特性快速解读
  • 2026年苹果舱厂家推荐榜:景区/露营/民宿/移动苹果舱品牌甄选,创意设计+精装品质深度解析 - 品牌企业推荐师(官方)
  • HICO-DET数据集实战:用Python解析anno_bbox.mat,快速提取人-物交互标注信息
  • 2026年 沈阳一站式注册公司榜单:小规模/一般纳税人/无地址注册与创业全流程解析 - 品牌企业推荐师(官方)
  • 告别命令行恐惧:用Xmanager 5在Windows上图形化操作CentOS服务器(保姆级配置)
  • 百考通AI:智能问卷设计,轻松输出专业内容
  • 2026年5月热门的南京洁净室翻新公司有哪些厂家推荐榜,净化板修复/无尘车间翻新/GMP车间维护/洁净室密封优化厂家选择指南 - 海棠依旧大
  • p-Bit非理想特性对组合优化与概率逻辑计算的影响与设计指南
  • LightGlue:突破性自适应特征匹配技术实现10倍速度提升
  • 百考通AI:源码图纸库,轻松输出专业内容
  • 2026年 东莞聚氧乙烯醚推荐榜单:脂肪醇聚氧乙烯醚/异构十醇聚氧乙烯醚/异辛醇聚氧乙烯醚磷酸酯优质厂家精选 - 品牌企业推荐师(官方)
  • 2026现阶段广西农业轮胎市场格局与优质服务商综合指南 - 2026年企业资讯
  • 非具身智能(纯数字 AI)/离身智能
  • 【力扣100题】62.滑动窗口最大值
  • 微信推文发布前必做的4项AI校验:错别字、敏感词、传播力、转化漏斗——ChatGPT自动化实现
  • 开发团队如何通过Taotoken实现API密钥的统一管理与审计
  • AI产品经理学习汇总
  • DeepSeek总结的使用实体-组件-系统和基于存在性处理进行Python编程7-8
  • 2026年上海/贵阳门窗厂家推荐榜单:系统门窗、平开/推拉门窗品质与工艺深度解析 - 品牌企业推荐师(官方)
  • 2026年工业气体/特种气体厂家实力榜单:液氮液氩液氧高纯气体及稀有气体供应商深度推荐 - 品牌企业推荐师(官方)
  • 03、单线通讯—SIF协议在资源受限MCU中的定时器驱动实现与优化