本文的主题是“贝叶斯网络”(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 )中得知一组随机变量{}及其n组条件概率分配(conditional probability distributions, or CPDs)的性质。举例而言,贝叶斯网络可用来表示疾病和其相关症状间的概率关系;倘若已知某种症状下,贝叶斯网络就可用来计算各种可能罹患疾病之发生概率。
    一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,抑或是隐变量、未知参数等。连接两个节点的箭头代表此两个随机变量是具有因果关系或是非条件独立的;而节点中变量间若没有箭头相互连接一起的情况就称其随机变量彼此间为条件独立。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(descendants or children)”,两节点就会产生一个条件概率值。
    令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有向连接线段的集合,且令X = (Xi)i ∈ I为其有向无环图中的某一节点i所代表之随机变量,若节点X的联合概率分配可以表示成:

则称X为相对于一有向无环图G 的贝叶斯网络,其中表示节点i之“因”。
    对任意的随机变量,其联合分配可由各自的局部条件概率分配相乘而得出:
       
   依照上式,我们可以将一贝叶斯网络的联合概率分配写成:
       , 对每个相对于Xi的“因”变量Xj 而言)
 
    上面两个表示式之差别在于条件概率的部分,在贝叶斯网络中,若已知其“因”变量下,某些节点会与其“因”变量条件独立,只有与“因”变量有关的节点才会有条件概率的存在。这就是后面我们要重点理解的,影响因子的推理规则。

二 独立与分割

独立:令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下独立。

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

三 推理(Inference)

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

1 变量消元算法(Variable elimination)

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

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

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

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. APP测试基本流程以及APP测试要点

    APP测试流程梳理 APP测试要点梳理 链接:http://pan.baidu.com/s/1gfaEZ1x 密码:07yt 1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开 ...

  2. Python对中文的支持

    在Python中,经常会出现中文,出现中文有时候会报错,这时候很多新手在处理中文编码的时候会有点不知所措. Python主要有2.x和3.x版本两个区别,在3.x版本中,已经支持中文直接开发,而不需要 ...

  3. PHP 用户密码加密函数password_hash

    传统的用户名和密码都采用加盐的方式存储加密信息,盐值也需要存储. 自PHP5.5.0之后,新增加了密码散列算法函数(password_hash),password_hash() 使用足够强度的单向散列 ...

  4. 聊聊前段插件之Datatables

    在web开发过程中表格数据展示是一个很常见的功能,而且用户对其要求也比较高,性能.易用性等.今天我推荐一款利器给大家——Datatables:Datatables中文网. 一.介绍 Datatable ...

  5. Unity学习笔记(4): 碰撞相关API

    Unity3D中的碰撞: 在unity中,有普通碰撞体Collider和触发器(Trigger)两种碰撞体,两个普通碰撞体会发生碰撞并产生力学现象,触发器则像是个无法触碰而又真实存在的东西,也会触发碰 ...

  6. 在Maven上Web项目添加Spring框架

    1. pom.xml添加Spring依赖包 <!-- spring 核心依赖--> <!-- context依赖beans,aop,core,expression;core依赖log ...

  7. GIT问题(一)——push冲突

  8. Netty源码分析第7章(编码器和写数据)---->第4节: 刷新buffer队列

    Netty源码分析第七章: 编码器和写数据 第四节: 刷新buffer队列 上一小节学习了writeAndFlush的write方法, 这一小节我们剖析flush方法 通过前面的学习我们知道, flu ...

  9. [Windows][C#][.NET][WPF]基于ArcFace2.0+红外双目摄像头的活体检测

    废话不多说 直接上图这个是demo中用到的双目摄像头,一个是红外的,一个是正常的rgb摄像头两个usb接口,在电脑上呈现两路摄像头通道程序检测RGB输出图像,当检测到有人脸时,用RGB人脸的位置到红外 ...

  10. 【RL系列】Multi-Armed Bandit问题笔记

    这是我学习Reinforcement Learning的一篇记录总结,参考了这本介绍RL比较经典的Reinforcement Learning: An Introduction (Drfit) .这本 ...