PGM学习之五 贝叶斯网络

时间:2023-01-13 17:20:12

本文的主题是“贝叶斯网络”(Bayesian Network)

贝叶斯网络是一个典型的图模型,它对感兴趣变量(variables of interest)及变量之间的关系(relationships)进行建模。当将贝叶斯模型与统计技术一起使用时,这种图模型分析数据具有如下几个优势:

(1)    贝叶斯学习能够方便的处理不完全数据。例如考虑具有相关关系的多个输入变量的分类或回归问题,对标准的监督学习算法而言,变量间的相关性并不是它们处理的关键因素,当这些变量中有某个缺值时,它们的预测结果就会出现很大的偏差。而贝叶斯学习则提供了较为直观的概率关联关系模型。
(2)    贝叶斯学习能够学习变量间的因果关系。因果关系是数据挖掘中极为重要的模式。原因有二:在数据分析中,因果关系有利于对领域知识的理解;在干扰较多时,便于作出精确的预测。
(3)    贝叶斯网络与贝叶斯统计相结合能够充分利用领域知识和样本数据的信息。任何从事过实际建模任务的人都会知道先验信息或领域知识在建模方面的重要性,尤其是在样本数据稀疏或数据较难获得的时候,一些商业方面的专家系统完全根据领域专家知识来构建就是一个很好的例证。贝叶斯网络用弧表示变量间的依赖关系,用概率分布表来表示依赖关系的强弱,将先验信息与样本知识有机结合起来。

贝叶斯学习理论在数据挖掘中获得了成功的应用。对贝叶斯学习理论研究最大的动力就是它在实际应用中的巨大作用和潜力。目前,贝叶斯学习理论已成功地应用到智能用户接口、信息滤波、车辆自动导航、武器制导、医疗诊断、经济预测和文本分类等诸多领域。

(4)贝叶斯统计方法可以和贝叶斯网络一起使用,避免了数据过度拟合(the overfiting of data)。

本文,主要讨论如何从先验知识构造贝叶斯网络,总结如何使用贝叶斯统计方法来改进贝叶斯网络的构造方法 。同时,得益于前人的工作,本文还将讨论贝叶斯网络的参数学习方法。贝叶斯网络所依赖的一个核心概念是条件独立,Conditional Independence。

一 基本概念

贝叶斯网络(Bayesian network),又称有向无环图模型(directed acyclic graphical model),是一种概率图型模型,借由有向无环图(directed acyclic graphs, or DAGs )中得知一组随机变量{PGM学习之五 贝叶斯网络}及其n组条件概率分配(conditional probability distributions, or CPDs)的性质。举例而言,贝叶斯网络可用来表示疾病和其相关症状间的概率关系;倘若已知某种症状下,贝叶斯网络就可用来计算各种可能罹患疾病之发生概率。
    一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,抑或是隐变量、未知参数等。连接两个节点的箭头代表此两个随机变量是具有因果关系或是非条件独立的;而节点中变量间若没有箭头相互连接一起的情况就称其随机变量彼此间为条件独立。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(descendants or children)”,两节点就会产生一个条件概率值。
    令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有向连接线段的集合,且令X = (Xi)i ∈ I为其有向无环图中的某一节点i所代表之随机变量,若节点X的联合概率分配可以表示成:
PGM学习之五 贝叶斯网络
则称X为相对于一有向无环图G 的贝叶斯网络,其中PGM学习之五 贝叶斯网络表示节点i之“因”。
    对任意的随机变量,其联合分配可由各自的局部条件概率分配相乘而得出:
       PGM学习之五 贝叶斯网络
   依照上式,我们可以将一贝叶斯网络的联合概率分配写成:
       PGM学习之五 贝叶斯网络, 对每个相对于Xi的“因”变量Xj 而言)
 
    上面两个表示式之差别在于条件概率的部分,在贝叶斯网络中,若已知其“因”变量下,某些节点会与其“因”变量条件独立,只有与“因”变量有关的节点才会有条件概率的存在。这就是后面我们要重点理解的,影响因子的推理规则。

二 独立与分割

PGM学习之五 贝叶斯网络

独立:令X,Y,Z代表概率事件。如果X,Y的概率满足P(X,Y)=P(X)*P(Y),那么就称X和Y相互独立(independent);

如果P(X,Y,Z)正比于φ1(X,Z)*φ2(Y,Z),那么就称X和Y在条件X下独立。

PGM学习之五 贝叶斯网络

有向分割(D-Separated):对于变量集合Z中任意一个变量,如果X和Y之间没有活动路径,那么就称X和Y为有向分割。X,Y和Z中所有变量均为图G的点。

三 推理(Inference)

贝叶斯络可以利用变量间的条件独立对联合分布进行分解,降低参数个数。推理(inference)是通过计算来回答查询的过程。

1 变量消元算法(Variable elimination)

PGM学习之五 贝叶斯网络

利用概率分解降低推理复杂度。

@ 使得运算局部化。消元过程实质上就是一个边缘化的过程。

@ 最优消元顺序:最大势搜索,最小缺边搜索

2. 团树传播算法
利用步骤共享来加快推理的算法。

团树(clique tree)是一种无向树,其中每一个节点代表一个变量集合,称为团(clique)。团树必须满足变量连通性,即包含同一变量的所有团所导出的子图必须是连通的。
用团树组织变量消元的算法。计算共享
团树传播算法基本步骤:

将贝叶斯网络转化为团树

团树初始化

在团树中选一个团作为枢纽

全局概率传播:CollectMessage; DistributeMessage

边缘化,归一化

四 构建贝叶斯网络

构建贝叶斯网络包括以下二部分内容:     (1)变量的定义;     (2)结构学习;     (3)参数学习。        
这二个任务之间一般是顺序进行的,然}fu在构造过程中一般需要在以下 两个方面作折中:一方面为了达到足够的精度,需要构建一个足够大的、丰富的网络模型;另一方面,要考虑构建、维护模型的费用和考虑概率推理的 复杂性。
一般来讲,复杂的模型结构它的概率推理的复杂性也较高,这往往是影响贝叶斯网络效率的一个重要方面。实际上建立一个贝叶斯网络往往 是上述二个过程迭代地、反复地交互过程。      
第一个任务主要是在领域专家的指导下选取适肩{的研究问题领域的变 量,同时在有些情况下也需要一定的策略从专家提供的变量中选择重要的因 子。
第二个任务是构建贝叶斯网络的关键点也是难点所在,主要是构建 出一个有向无环图并给出图中每个结点的分布参数,即每个节点都对应一个 条件概率分布表(CPT)。      
一般情况下,有二种不同方式来构造贝叶斯网络。      
(1)完整学习。这种方式完全由人主观定义贝叶斯网络结构及参数,由 领域专家确定贝叶斯网中的变量,通过专家的知识来确定贝叶斯网络的结 构,并指定它的分布参数。这种方式构造的贝叶斯网完全在专家的指导下进 行,由十人类获得知识的有限性,导致构建的网络与实践中积累下的数据具 有很大的偏差。     
 (2)部分学习。这种方式由人主观定义贝叶斯网络中的结点变量,然后 通过大量的训练数据来学习贝叶斯网的结构和参数。这种方式完全是一种数据驱动的方法,具有很强的适应性。随着人工智能、数据挖掘和机器学 习的不断发展,使得这种方法成为可能。如何从数据中学习贝叶斯网的结构 和参数己经成为贝叶斯网络研究的热点之一。      
(3)第二种方式是以上两种方式的结合。由领域专家确定贝叶斯网络中 的结点变量,通过专家的知识来指定网络的结构,再通过机器学习的方法从 数据中学习网络的参数。

PGM学习之五 贝叶斯网络的更多相关文章

  1. 使用 Python 第三方库 daft 绘制 PGM 中的贝叶斯网络

    daft 的官方文档请见 DAFT:BEAUTIFULLY RENDERED PROBABILISTIC GRAPHICAL MODELS. from matplotlib import rc rc( ...

  2. python实现贝叶斯网络的概率推导(Probabilistic Inference)

    写在前面 这是HIT2019人工智能实验三,由于时间紧张,代码没有进行任何优化,实验算法仅供参考. 实验要求 实现贝叶斯网络的概率推导(Probabilistic Inference) 具体实验指导书 ...

  3. PGM学习之六 从有向无环图(DAG)到贝叶斯网络(Bayesian Networks)

    本文的目的是记录一些在学习贝叶斯网络(Bayesian Networks)过程中遇到的基本问题.主要包括有向无环图(DAG),I-Maps,分解(Factorization),有向分割(d-Separ ...

  4. 概率图模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-多项式贝叶斯

    之前忘记强调了一个重要差别:条件概率链式法则和贝叶斯网络链式法则的差别 条件概率链式法则 贝叶斯网络链式法则,如图1 图1 乍一看非常easy认为贝叶斯网络链式法则不就是大家曾经学的链式法则么,事实上 ...

  5. 概率图形模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-贝叶斯多项式

    之前忘记强调重要的差异:链式法则的条件概率和贝叶斯网络的链式法则之间的差异 条件概率链式法则 P\left({D,I,G,S,L} \right) = P\left( D \right)P\left( ...

  6. 概率图模型(PGM)学习笔记(二)贝叶斯网络-语义学与因子分解

    概率分布(Distributions) 如图1所看到的,这是最简单的联合分布案例,姑且称之为学生模型. 图1 当中包括3个变量.各自是:I(学生智力,有0和1两个状态).D(试卷难度,有0和1两个状态 ...

  7. PGM:有向图模型:贝叶斯网络

    http://blog.csdn.net/pipisorry/article/details/52489270 为什么用贝叶斯网络 联合分布的显式表示 Note: n个变量的联合分布,每个x对应两个值 ...

  8. darktrace 亮点是使用的无监督学习(贝叶斯网络、聚类、递归贝叶斯估计)发现未知威胁——使用无人监督 机器学习反而允许系统发现罕见的和以前看不见的威胁,这些威胁本身并不依赖 不完善的训练数据集。 学习正常数据,发现异常!

    先说说他们的产品:企业免疫系统(基于异常发现来识别威胁) 可以看到是面向企业内部安全的! 优点整个网络拓扑的三维可视化企业威胁级别的实时全局概述智能地聚类异常泛频谱观测 - 高阶网络拓扑;特定群集,子 ...

  9. 机器学习&数据挖掘笔记_18(PGM练习二:贝叶斯网络在遗传图谱在的应用)

    前言: 这是coursera课程:Probabilistic Graphical Models上的第二个实验,主要是用贝叶斯网络对基因遗传问题进行一些计算.具体实验内容可参考实验指导教材:bayes ...

随机推荐

  1. [Javascript] 爬虫 模拟新浪微博登陆

     概述: 由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息. 虽然在网上能找到不少信息,但由于新浪微博改版,其登陆机制进行了修改,故很多老的文章就不适合用了. 经过一番摸索,成功模拟新浪微博的登陆 ...

  2. CentOS 下部署 ASP.NET Core环境

    一.安装dotnet 1.下载运行环境 https://www.microsoft.com/net/download/linux 下载Runtime:https://go.microsoft.com/ ...

  3. Process32First 返回FALSE的原因

    一般情况下是不会返回FALSE的,如果发生了,请检查: 1:系统为UNICODE的,一定要设置PROCESSENTRY32的dwSize为sizeof(PROCESSENTRY32)即可..

  4. Codeforces Round #272 (Div. 2) D. Dreamoon and Sets (思维 数学 规律)

    题目链接 题意: 1-m中,四个数凑成一组,满足任意2个数的gcd=k,求一个最小的m使得凑成n组解.并输出 分析: 直接粘一下两个很有意思的分析.. 分析1: 那我们就弄成每组数字都互质,然后全体乘 ...

  5. VIM一些常用命令,方法,配置

    配置文件地址 github 工具只是为了更好的工具,选择一种,坚持使用学习记忆,熬过瓶颈期就可以了. 现在我基本大的项目是IDE+vim 插件,写小代码是VIM. 常用的操作,便捷的方法 1.如何选中 ...

  6. nodejs 机制

    http://news.cnblogs.com/n/190903/ http://www.ruanyifeng.com/blog/2013/10/event_loop.html https://www ...

  7. Java_Activiti5_菜鸟也来学Activiti5工作流_之初识BPMN2.0的简单结构(五)

    <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http:// ...

  8. IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一

    最近,新任职的公司有一台测试服务(Windows Server 2008 R2 + IIS6.1)器因突然停电,造成了意外“损伤”.来电后再次开机,发现IIS里大部分的网站均打不开.均为如下(图01) ...

  9. Mongodb系列之--mongodb的启动与关闭

    Mongodb的开启   默认启动:   $ ./mongodb   默认数据保存路径:/data/db/ 默认端口:27017   修改默认路径:   --dbpath $ ./mongdb --d ...

  10. android 股票K线图

    现在在手上的是一个证券资讯类型的app,其中有涉及到股票行情界面,行情中有K线图等,看到网上很多人在求这方面的资料,所以我特地写了一个demo在此处给大家分享一下. 下面是做出来的效果图: 这个 界面 ...