概率图模型使用图的方法来表示概率分布,在该模型中,结点表示变量,节点之间的边表示变量之间的概略关系。

概率图的分类

概率图依据边的属性不同主要分为两大类:
第一类是有向图无环图,表示依赖关系,称为有向图模型或贝叶斯网。
第二类是使用无向图,表示变量之间的关系,称为无向图模型或马尔科夫网。
当变量间存在显著地因果关系时,常使用贝叶斯网;当难以获得显式的因果关系,则常使用马尔科夫网。

根据图模型中的边是否有向,将概率图的代表模型如下:

各个图模型的演变关系如下:

其中横向,由点到线(序列结构),最终到面。
纵向则是在一定的条件下生成式模型转换为判别式模型。
下面假设有观测序列x,状态序列y,并依次来说明生成式与判别式模型的区别。

生成式模型

生成式模型的定义是:“状态(输出)序列y按照一定的规律生成观测(输入)序列x”。生成式模型的本质是对于联合概率分布p(x,y)进行建模,并根据生成概率最大的生成序列来获取y。

这类模型中,一般有严格的独立性假设,模型变量之间的关系清楚,处理单类问题时较为灵活。

弱点是模型的推导与学习较为复杂。

主要的模型有:n-gram,HMM、朴素贝叶斯、概率上下文无关文法。

判别式模型

判别式模型的定义是:“状态(输出)序列y是由观测序列(输入)所决定的。”判别式模型的本质是对后验概率p(y|x)进行建模,优点是处理多累问题或分辨某一类与其他类差异时更为灵活,模型构造简单。

缺点是模型的描述能力有限,变量之间的关系不清楚。大多数模型都是有监督学习,不能很好地扩展为无监督学习。

主要模型有:最大熵模型、最大熵马尔科夫模型、支持向量机、条件随机场、感知机。

贝叶斯网络

贝叶斯网络也称为belief networks,是一种基于概率推理的数学模型,理论基础为贝叶斯公式。

贝叶斯网络形式上是一个有向无环图(DAG directed acyclic graph),结点表示随机变量,结点之间的边表示条件依存关系,箭头出发的节点为父节点,箭头到达的节点为子节点,子节点依存于父节点。

如果两个节点没有连接关系,表示两个随机变量能够在某些特定情况下条件独立。

构造贝叶斯网络

构造贝叶斯网络是一个复杂的任务,其主要有三个方面的问题:表示、推断、学习

表示

在简单某一随机变量的组合上

即便是随机变量只有两个取值,那么联合概率分布P需要对 2^n 种不同取值下的概率情况进行说明,然而这件事的计算代价非常高。

推断

由于贝叶斯网络是变量以及关系的完整模型,那么在观测到某些变量变化的时候就需要使用一些推断方法,来得知另一些变量子集的变化。
概率推理:在已知某些证据的情况下,计算变量的后验分布的过程。
常用的精确推理方法有两种

  • 变量消除法 variable elimination
  • 团树法 clique tree

常用的近似推理

  • 重要性抽样 importance sampling
  • 随机马尔科夫链蒙特卡洛模拟法 Markov chain Monte Carlo,MCMC
  • 循环信念传播法 loopy belief propagation
  • 泛化信念传播法 generalized belief propagation

学习

参数学习的目的就是得知各个变量结点之间相互依存的强度。
比如给定某个节点X,需要计算 P(X|父节点1,父节点2...),这些概率分布可以是任意形式,通常是离散分布与高斯分布。

常用的参数学习方法包括:

  • 最大似然估计 MLE
  • 最大后验概率 MAP
  • 期望最大 EM
  • 贝叶斯估计方法,贝叶斯图模型中,使用较多的是该种方法

除了参数学习,还需要结构学习来学习各个变量之间的图关系,简单的贝叶斯可以由有经验的专家来构造,但一般情况下人工构造一个贝叶斯网络的结构几乎不可能,所以自动结构学习是一项颇具挑战的任务。

MLE MAP 贝叶斯估计之间的关系

其中,最大似然估计(MLE)是频率派的代表,贝叶斯估计(Bayes)是贝叶斯派的代表,最大后验估计是频率派和贝叶斯派的合成,是一种规则化后的最大似然估计。

一般来说,在我们对于先验概率一无所知时,只能假设每种猜测的先验概率是均等的(其实这也是人类经验的结果),这个时候就只有用最大似然了,但不能忘记一个重要的前提是所有的采样都是独立同分布。

如果我们有足够的自信,训练集中的样本分布的确很接近真实的情况,这时就应该用贝叶斯方法。贝叶斯学派强调的是“靠谱的先验概率”。所以说贝叶斯学派的适用范围更广,关键要先验概率靠谱,而频率学派有效的前提也是他们的先验概率同样是经验统计的结果。但也说明了贝叶斯计算要更为复杂,因为需要选择一个常用分布,并确定一个初始参数集作为先验分布。

再者,MAP与MLE最大区别是MAP中加入了模型参数本身的概率分布,即是否考虑了先验知识。或者说。MLE中认为模型参数本身的概率的是均匀的,即该概率为一个固定值。

1. 贝叶斯网络

 贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型。它用网络结构代表领域的基本因果知识。
 贝叶斯网络中的节点表示命题(或随机变量),认为有依赖关系(或非条件独立)的命题用箭头来连接。
 令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有向连接线段的集合,且令X = (Xi), i ∈ I为其有向无环图中的某一节点i所代表的命题,则节点X的联合概率可以表示成:

 其中Pa(i)是i的父结点,是i的因。联合概率可由各自的局部条件概率分布相乘得出:
 p(x1,…,xk)=p(xk|x1,….,xk-1)…p(x2|x1)p(x1)
 这里顺便说一下朴素贝叶斯,由于其中各个变量x相互独立p(x2|x1)=p(x2),得出:
 p(x1,…,xk)=p(xk)…p(x2)p(x1)
 因此说朴素贝叶斯是贝叶斯网络的一种特殊情况。

2. 例程

(1) 功能

 eBay的Bayesian-belief-networks是一个贝叶斯网络的python工具包,此例为使用该库解决蒙提霍尔三门问题。

(2) 问题描述

 蒙提霍尔是概率中的经典问题,出自美国的电视游戏节目。问题的名字来自该节目的主持人蒙提•霍尔(Monty Hall)。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊(主持人不会打开有车的那扇门)。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机率?答案是:不换门的话,赢得汽车的几率是1/3。换门的话,赢得汽车的几率是2/3。
 这是为什么呢?接着往下看。

(3) 下载安装

$ git clone https://github.com/eBay/bayesian-belief-networks

(4) 代码

from bayesian.bbn import build_bbndef f_prize_door(prize_door):return 0.33333333
def f_guest_door(guest_door):return 0.33333333
def f_monty_door(prize_door, guest_door, monty_door):if prize_door == guest_door:  # 参赛者猜对了if prize_door == monty_door:return 0     # Monty不会打开有车的那扇门,不可能发生else:return 0.5   # Monty会打开其它两扇门,二选一elif prize_door == monty_door:return 0         #  Monty不会打开有车的那扇门,不可能发生elif guest_door == monty_door:return 0         # 门已经由参赛者选定,不可能发生else:return 1    # Monty打开另一扇有羊的门if __name__ == '__main__':g = build_bbn(f_prize_door,f_guest_door,f_monty_door,domains=dict(prize_door=['A', 'B', 'C'],guest_door=['A', 'B', 'C'],monty_door=['A', 'B', 'C']))g.q()g.q(guest_door='A')
g.q(guest_door='A', monty_door='B')

(5) 运行结果

(6) 分析

 程序中构建的贝叶斯网络如下图所示。

 先看看库是如何使用的,首先通过三个判别函数(节点对应的是判别函数,并不对应三个门)以及它们之间的依赖关系定义了网络g的结构,节点和连线关系是程序员根据业务逻辑定义的。而机器用来优化和计算在给定的条件下产生结果的概率。
 prize_door和guest_door都是随机的,所以概率都是0.333;而主持人知道哪扇门后是奖,所以monty_door由另外两个结点(父结点)决定的,当参赛者猜对时,Monty会打开另两门之一,没猜对时Monty只能打开另一扇有羊的门。
 从运行结果可以看到:先验是随机抽取的0.333,随着限制条件依次加入,不确定性逐渐变小,最终,参赛者如果选择换门(C)的赢率变为不换门(A)的两倍。

Deep Learning Is Not Good Enough, We Need Bayesian Deep Learning for Safe AI

概率图模型-贝叶斯网络相关推荐

  1. 机器学习-白板推导-系列(九)笔记:概率图模型: 贝叶斯网络/马尔可夫随机场/推断/道德图/因子图

    文章目录 0 笔记说明 1 背景介绍 1.1 概率公式 1.2 概率图简介 1.2.1 表示 1.2.2 推断 1.2.3 学习 1.2.4 决策 1.3 图 2 贝叶斯网络 2.1 条件独立性 2. ...

  2. 斯坦福 CS228 概率图模型中文讲义 四、贝叶斯网络

    四.贝叶斯网络 原文:Bayesian networks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们从表示的话题开始:我们如何选择概率分布来为世界的一些有趣方面建模? ...

  3. 贝叶斯网络( Bayesian network)和马尔科夫网络(Markov networks)

    概率图模型(PGM)(或简称图模型)在形式上是由图结构组成的.图的每个节点(node)都关联了一个随机变量,而图的边(edge)则被用于编码这些随机变量之间的关系. 根据图是有向的还是无向的,我们可以 ...

  4. Stanford概率图模型: 第一讲 有向图-贝叶斯网络

    原文链接(系列):http://blog.csdn.net/yangliuy/article/details/8067261 概率图模型(Probabilistic Graphical Model)系 ...

  5. 西瓜书+实战+吴恩达机器学习(二一)概率图模型之贝叶斯网络

    文章目录 0. 前言 1. 贝叶斯网络结构 2. 近似推断 2.1. 吉布斯采样 3. 隐马尔可夫模型HMM 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 概率 ...

  6. 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)

    概率图模型是图论与概率方法的结合产物.Probabilistic graphical models are a joint probability distribution defined over ...

  7. 【人工智能】— 贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

    [人工智能]- 贝叶斯网络 频率学派 vs. 贝叶斯学派 贝叶斯学派 Probability(概率): 独立性/条件独立性: Probability Theory(概率论): Graphical mo ...

  8. 概率图模型中的贝叶斯网络

    目录 一.概率图 二.贝叶斯网络 什么是贝叶斯网络? 贝叶斯网络结构怎么构建? 三.概率知识 四.贝叶斯网络知识 网络 条件独立性 结构 六.概率推断 七.案例分析 八.贝叶斯学习 九.Netica ...

  9. 概率图模型(一):贝叶斯网络

    这部分文章主要是总结斯坦福大学的概率图模型课程(coursera链接) Graohical Model主要分为两种: 贝叶斯网络(Bayesian Network)和马尔科夫随机场(Markov Ne ...

  10. 机器学习笔记之概率图模型(四)基于贝叶斯网络的模型概述

    机器学习笔记之概率图模型--基于贝叶斯网络的模型概述 引言 基于贝叶斯网络的模型 场景构建 朴素贝叶斯分类器 混合模型 基于时间变化的模型 特征是连续型随机变量的贝叶斯网络 动态概率图模型 总结 引言 ...

最新文章

  1. 计算机网络信息安全的含义,计算机网络信息安全内涵及其重要性
  2. 创业者说:我从创业者大会看到了什么
  3. mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法
  4. OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据...
  5. iOS 通用宏定义 高效全局宏汇总
  6. 超9000万LoRa节点,全球物联网的事实标准已形成?
  7. elementUI table 表格表头居中 颜色、内容居左
  8. Spark Streaming 原理剖析
  9. 反转 鼠标_灵动轻巧也有好体验,电竞鼠标不能仅看“块头”
  10. Opencores 无法点击submit的问题解决方案
  11. 37种传感器(四)之光敏电阻传感器模块+Stduino NanoUNO
  12. sqlmap基本命令
  13. Linux下查看日志常用命令
  14. 分布式 | zabbix 监控 dble
  15. 记一次Android第三方日历控件CalendarView的使用
  16. 转:通信十年:前辈对通信行业的分析与经历
  17. 支付宝固码php模拟,【推荐】PC_支付宝收款助手【支持支付宝固码+自动生成】...
  18. PDF转TXT免费脚本
  19. 好消息!华为EUV光刻新专利公开
  20. 论文笔记_Optimal Brain Damage

热门文章

  1. 将数组A中的内容和数组B中的内容进行交换,计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,1到 100 的所有整数中出现多少次数字9。
  2. Flink CDC 系列 - Flink MongoDB CDC 在 XTransfer 的生产实践
  3. 收藏+下载!Flink 社区最全学习渠道汇总
  4. 30万奖金等你拿!Apache Flink 极客挑战赛入门指南(附Demo)
  5. GitHub 标星 8w!这个开源面试总结屌爆了!
  6. python 流程控制基础知识总结 和九九乘法表、质数、水仙花数、猜拳游戏练习
  7. java文件上传中间件_maven工程 java 实现文件上传 SSM ajax异步请求上传
  8. arduino超声波测距接线图详细_Arduino超声波测距模块使用
  9. modbus地址扫描_西门子PLC通信编程MODBUS通信举例
  10. python运行空白_解决pyecharts运行后产生的html文件用浏览器打开空白