贝叶斯网络基础(Probabilistic Graphical Models)
本篇博客是Daphne Koller课程Probabilistic Graphical Models(PGM)的学习笔记。
概率图模型是一类用图形模式表达基于概率相关关系的模型的总称。概率图模型共分为三个部分,分别为表示理论,推理理论和学习理论。基本的概率图模型包括贝叶斯网络、马尔科夫网络和隐马尔科夫网络。
Student Example
一个学生,拥有成绩、课程难度、智力、SAT的分、推荐信等变量。
通过一张图可以把这些变量的关系表示出来,可以想象成绩由课程难度和智力决定,SAT成绩由智力决定,而推荐信由成绩决定。
在这个例子中,将变量简单化,建立一个CPD(Conditional probability distribution)条件概率密度。按下表进行假设:
|
变量 |
值 | 含义 |
| d | 0、1 | 课程简单、课程难 |
| i | 0、1 | 智力一般、智力超常 |
| g | A、B、C | 课程获得A、B、C的成绩 |
| s | 0、1 | SAT成绩一般、成绩优秀 |
| l | 0、1 | 无推荐信、有推荐信 |
并表示为下图:

使用概率中的chain rule,可以将上图的整体概率表示为:

比如说P(d0, i1, g3, s1, l1)的概率就等于0.6*0.3*0.02*0.8*0.01。
贝叶斯网络定义为:
- 一个有向无环图表示随机变量x1...xn。
- 每个节点都有一个CPD,是一个父节点的条件概率分布。
- BN可以表示为一个联合概率分布。
其中有一些性质:
- 每个BN的P>=0
- 所有BN的P和为1
令G为一个关于x1...xn的贝叶斯网络,如果G的联合概率密度能够表达为链式P,则称P factorizes over G。

Genetic Inheritance Example
以一个家族的血型作为研究对象。每个节点是每一个家庭成员的血型(即显血型),隐节点则为遗传血型。显血型包括A、B、O、AB,而遗传血型则包括AA、AB、AO、AO、BB、OO。


模式推理:
- 因果推理
因果推理从顶向下,以父节点或者祖先节点为条件。

- 证据推理
证据推理从下向上,以子孙节点为条件。

- Intercausal Reasoning(原因之间的推理??)
方向是横向的,以其他原因和结果为条件。

在贝叶斯网络中,满足一定条件,变量之间就会概率相关,这个之后会提到,比如下例:某学生Grade为C,SAT成绩优异,那么该门课程太难的概率为多少呢。

概率影响流:
X-->Y D会影响G
X<--Y G会影响G
X-->W-->Y D会影响到L
X<--W<--Y 知道L,影响对L的估计
X<--W-->Y 知道G,也会影响对S的估计
X-->W<--Y 知道D,不会影响对I的估计,这种被称为V结构。

除了V结构,概率影响的流动是顺畅的。
在给出条件Z的情况下,X与Y还是相互影响的吗?
X-->Y 有弧直接相连,相互影响
X<--Y 有弧直接相连,相互影响
下面的四种要分两种情况考虑,1:W不是Z的子集,2:W是Z的子集
X-->W-->Y 以DGL为例 1:条件S下,D会影响L 2:条件G下,D不影响L
X<--W<--Y 以LDG为例 1:条件S下,L会影响D 2:条件G下,L不影响D
X<--W-->Y 以GIS为例 1:条件D下,S会影响G 2:条件I下,G不影响S
X-->W<--Y 以DGI为例 1:条件S下,D不影响I 2:条件G下,D影响I
对于X-->W<--Y,可以扩展为W的子孙。比如,在条件L下,D也会影响到I。

对于轨迹x1---xn,激活这条路径的条件为:
- 对于任何V结构,xi-1-->xi<--xi+1,xi或者它的子孙节点必须为观察值。
- 对于其他的xi,必须不为观察值。

贝叶斯网络中的独立:
当在条件Z的情况下,X和Y在G中没有一条激活的路径(acvitve trail),则称X和Y在图G中是d-separated。
如果P factorizes over G,则在条件Z下d-separated的X和Y满足条件Z下的独立性。

在BN中,出给X,则以X的父节点为条件,X与任何它的非子孙d-separated。
下图中,Letter与SAT、Intelligence、Difficulty、Coherence都d-separated,也就以为着L与S、I、D、C都概率独立。

Imaps:
G中所有的d-separation,都对应P满足的一个相互独立。所以
当P满足I(G)时,G为P的一个Imap,当G为空集时,是所有P的I-map。
有下列理论:
- 如果P factorizes over G,那么G是P的一个I-map。
- 如果G是P的一个I-map,那么P factorizes over G。

朴素贝叶斯:
贝叶斯模型:一个样本具有n个特征,而每个特征关于类别的条件概率分布是相互独立的。

文本的伯努利朴素贝叶斯分类:
对于许多文本,分别关于宠物、财经或者其他。有N个特征作为字典,字典中包括“cat”、“dog”、“buy”,而每个特征都是一个伯努利分布。

根据贝叶斯公式,在x1...xn条件下,可以求出C=C1与C=C2的比。
介绍两种朴素贝叶斯的分类:
- 伯努利朴素贝叶斯分类
- 多项式朴素贝叶斯分类
第一种:以字典为特征,特征数量为字典中单次总数。每一个特征都是伯努利分布的,整个树可以表述成一个CPD。它的假设是:在Label条件下,每一个字出现的概率与其他字出现的概率是不相关的,这是有违常识的。所以伯努利朴素贝叶斯分类仅仅是一个not bad的方法。
第二种:以每个单词为特征,特征数量为文档的长度,每一个特征都是一个多项式分布,每个特征的CPD可以不同也可以相同。它的假设是:在Label条件下,一个字在位置a出现的概率与这个字才位置b出现的概率是不相关的。这种分类被广泛使用。


总结:
朴素贝叶斯分类是一种简单的分类方法,拥有计算效率和容易构建的优点,在处理弱相关特征时有惊人的效率,但是由于强独立性的假设,当特征是相关的时候,使用朴素贝叶斯分类效果不好。
贝叶斯网络基础(Probabilistic Graphical Models)的更多相关文章
- 深度学习基础 Probabilistic Graphical Models | Statistical and Algorithmic Foundations of Deep Learning
目录 Probabilistic Graphical Models Statistical and Algorithmic Foundations of Deep Learning 01 An ove ...
- Stanford概率图模型: 第一讲 有向图-贝叶斯网络
原文链接(系列):http://blog.csdn.net/yangliuy/article/details/8067261 概率图模型(Probabilistic Graphical Model)系 ...
- PRML读书会第八章 Graphical Models(贝叶斯网络,马尔科夫随机场)
主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:52:10 今天的内容主要是: 1.贝叶斯网络和马尔科夫随机场的概念,联合概率分解,条件独立表示:2.图的概率推断in ...
- python实现贝叶斯网络的概率推导(Probabilistic Inference)
写在前面 这是HIT2019人工智能实验三,由于时间紧张,代码没有进行任何优化,实验算法仅供参考. 实验要求 实现贝叶斯网络的概率推导(Probabilistic Inference) 具体实验指导书 ...
- PGM学习之六 从有向无环图(DAG)到贝叶斯网络(Bayesian Networks)
本文的目的是记录一些在学习贝叶斯网络(Bayesian Networks)过程中遇到的基本问题.主要包括有向无环图(DAG),I-Maps,分解(Factorization),有向分割(d-Separ ...
- 机器学习&数据挖掘笔记_18(PGM练习二:贝叶斯网络在遗传图谱在的应用)
前言: 这是coursera课程:Probabilistic Graphical Models上的第二个实验,主要是用贝叶斯网络对基因遗传问题进行一些计算.具体实验内容可参考实验指导教材:bayes ...
- 基于MapReduce的贝叶斯网络算法研究参考文献
原文链接(系列):http://blog.csdn.net/XuanZuoNuo/article/details/10472219 论文: 加速贝叶斯网络:Accelerating Bayesian ...
- 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)
概率图模型是图论与概率方法的结合产物.Probabilistic graphical models are a joint probability distribution defined over ...
- PGM:有向图模型:贝叶斯网络
http://blog.csdn.net/pipisorry/article/details/52489270 为什么用贝叶斯网络 联合分布的显式表示 Note: n个变量的联合分布,每个x对应两个值 ...
随机推荐
- java 包之 BeanUtils包的使用
BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作. 在使用BeanUtils工具包之前我们需要的Jar包有以下几种: (1) BeanUtils相 ...
- 解决ios双击页面上移问题
做webapp时,ios有个默认双击事件,会缩放页面,并将当前点击的位置居中到屏幕,本来也没什么,但是当页面中有fixed定位的元素时,这时候你就会神奇的发现,fixed元素所见不所得了! 还有就是页 ...
- MySQL命令记录1
mysql命令行 开启:net start mysql56关闭:net start mysql56(这两种情况必须有管理员权限) 登陆:mysql -h localhost -u root -p(lo ...
- python核心编程-第四章-习题
1.身份.类型.值.其中,身份是每个对象的标识,与内存地址密切相关,可用id()返回:类型决定了对象可以保存什么类型的值,用type()函数.isinstance()函数可以得到对象的类型:值就是对象 ...
- Azure File SMB3.0文件共享服务(3)
在Windows上使用Azure文件共享服务 之前简单介绍过,你可以通过SMB 3.0协议,将Azure文件共享挂载在本地,就如使用一个网络驱动器是一样的,但需要注意不同版本的Windows对于SMB ...
- 添加解压缩版Tomcat到系统服务
一.安装服务 在命令行中进入/Tomcat路径/bin/,执行“service.bat install”: 说明:1.服务名和显示名称:service.bat中设置了默认的服务名称,不同版本分别命名为 ...
- 100个linux站点
(一) 文件下载 (二) 幽默娱乐 (三) 相关新闻 (四) 通用硬体 (五) 专用硬体 (六) 新手站点 (七) 图形/多媒体 (八) 游戏站点 (九) 网路杂志 (十) 入口(教育.链结) (十一 ...
- Unix/Linux环境C编程入门教程(22) C/C++如何获取程序的运行时间
1.问:知道程序运行时间我们可以做什么? 在<C++应用程序性能优化>一书中,如果大家读过相信大家一定对性能优化这一块非常上心,文中总是对优化前后的时间对比非常直观给我们一个感受. 那么我 ...
- 任何时候都适用的20个C++技巧
这些小技巧之所以特别,是因为这些信息通常吧不能在C++书籍或者网站上找到.比如说,成员指针,即使对于高级程序员也是比较棘手,和易于产生bugs的,是应该尽量避免的问题之一. <翻 by凌云健笔& ...
- UIView添加事件
UIView *loadView = [[UIControl alloc]initWithFrame:CGRectMake(0,0,320,480)]; loadView.backgroundColo ...