• 贝叶斯网络详解


    0x01 贝叶斯网络概述

    有时我们需要计算一个不确定原因的概率给出一些观察到的证据,在这些情况下可以使用贝叶斯方法。
    贝叶斯网络(bayesian network)
    是一种概率图形模型,它在图形模型中显式捕获已知的有向边的条件依赖性,它通过有向无环图(DAG)表示一组变量及其条件依赖关系。

    贝叶斯网络非常适合用于获取已发生的事件并预测几种可能的已知原因中的任意一种。例如,贝叶斯网络可以表示疾病和症状之间的概率关系。给定症状,该网络可用于计算各种疾病存在的概率。

    高效的算法可以在贝叶斯网络中进行推理和学习。
    对变量序列(例如 语音信号或蛋白质序列)进行建模的贝叶斯网络称为动态贝叶斯网络,可以表示和解决不确定性下的决策问题的贝叶斯网络的推广称为影响图。

    与手动构建不同,自动学习不需要底层领域的专家知识。贝叶斯网络可以直接从数据库中使用通常内置在适当软件中的基于经验的算法自动学习。但缺点是自动化建设对数据的要求较高。

    0x02 贝叶斯网络模型

    在0x01中已经提到,贝叶斯网络是有向无环图(DAG),其节点代表贝叶斯意义上的变量。

    • 变量有很多种类型,有可观察量、潜在变量、未知参数或假设。
    • 用边表示条件依赖;未连接的节点表示有条件地相互独立的变量。

    每个节点都与一个概率函数相关联,该概率函数将节点父变量的一组特定值作为输入,并给出由节点表示的变量的概率。

    最简单的图,可以这么表示:

    维基给了一个例子

    造成小草变湿有两种方法:洒水车&下雨。
    下雨会影响洒水车的出行,小草变湿的结果有两个:T(代表真)和 F(代表假)。

    联合概率函数的概率的链式法则:

    • G =“小草变湿(真/假)”
    • S =“洒水器打开(真/假)”
    • R =“下雨(真/假)”

    该模型可以回答有关在存在效应(所谓的逆概率)的情况下是否存在原因的问题。
    通过使用条件概率公式并对所有的变量求和:

    使用联合概率函数的展开Pr(G,S,R)}以及图中所述的条件概率表 (CPT)中的条件概率,可以评估分子和分母中的每个项。

    然后数值结果(由相关变量值下标)是

    推断未观察到的变量

    贝叶斯网络经常用来回答关于它们的概率查询,当有其他变量时,网络可用于更新变量子集状态的知识。这种计算后验分布的过程称为概率推理。当选择变量子集的值时,可以最小化某些期望损失函数,例如决策错误的概率。所以贝叶斯网络可以被认为是一种自动应用贝叶斯定理的机制复杂的问题。

    参数学习

    指定以 X 的父节点为条件的 X 的概率分布,X 以父代为条件的分布可以有任何形式。通常使用离散或高斯分布,因为这简化了计算。有时只知道分配的限制;然后可以使用最大熵原理来确定单个分布,即在给定约束条件下具有最大熵的分布。

    结构学习

    贝叶斯网络的模型有分为几种形态:
    直连:表示有向图的方向成直线状,并指向同一方向。
    表示为:G -> S -> R

    汇连:两个独立的节点指向同一个节点。
    表示为:G -> S <- R

    分连:一个节点分别指向两个不同的节点。
    表示为:G <- S -> R

    一种特别快速的精确 BN 学习方法是将问题转换为优化问题,并使用整数规划求解。在求解过程中以切割平面的形式将非循环约束添加到整数程序 (IP) 中,这种方法可以处理多达 100 个变量的问题。

    软件

    对于处理图形模型的有用软件,有几种选择。最常见的软件包有Genie、Hugin、BUGS等。

  • 相关阅读:
    java计算机毕业设计行星中小学教辅平台源码+数据库+系统+lw文档+mybatis+运行部署
    vue基本基本语法
    python使用LRU缓存算法,利用带缓存的动态规划法求解斐波那契数列
    【背景渐变】 —— 就算没接触过也能 一遍学会哦
    山东省瞪羚企业申报时间?
    2023 收入最高的十大编程语言
    Java 基本数据类型
    [mit6.s081] 笔记 Lab7: Multithreading
    早餐与风景
    容器镜像基础(nydus)
  • 原文地址:https://blog.csdn.net/weixin_43211186/article/details/125452636