02 概率图模型定义

翻开Jordan和Wainwright著作的书,正文开始(第二章)就说概率图模型的核心就是:分解(factorization)。的确是这样的,对于复杂的概率图模型,要在复杂交织的变量中求取某个变量的边缘概率,常规的做法就是套用贝叶斯公式,积分掉其他不相干的变量,假设每个变量的取值状态为N,如果有M个变量,那么一个图模型的配置空间就有M^N,指数增长的哦,就这个配置空间已经让我们吃不消了,不可以在多项式时间内计算完成,求边缘概率就没办法开展下去了。此时分解就派上用场咯,我们想法找到一些条件独立,使得整个概率图模型分解成一个个的团块,然后求取团块的概率,这样就可以把大区域的指数增长降为小区域的指数增长。毕竟100^20这样的计算量比25*(4^20)的计算量大多咯。好了,不说这么抽象了,下面进入正题:

先来看看图的定义,一个图由顶点V和边E组成:G=(V,E)V={1,2,...,m},E⊂V×V,有向边用(s→t)表示,无向边用(t,s)或者(s,t)表示。一个顶点S对应一个随机变量 ,该随机变量的取值状态空间用 来表示,注意取值状态空间的标识和随机变量的标识很像。接着再来个几个变量组成的向量 ,A是几个变量组成的小集合,那么这个向量的取值状态就是所有包含变量的取值状态的笛卡尔乘积,用 表示。有了这些标识,就可以介绍有向图模型和无向图模型了,(图一)是几个有向图模型:

(图一)

在(图一)中要注意下(b)和(c )的区别,因为(b)是有向无环图(Directed acyclic graph-DAG),也就是没有形成回路的,而(c )是有环的,(图一)的下部分也给出了解释。在有向图中给定一个顶点u,那么的祖先就是所有沿着有向边能到达u的所有顶点,如下面的路径中 ,s就是u的祖先。我们用 表示节点s的祖先,让 表示关于变量 的函数,并且这个函数满足 时,那么有向图模型的概率分布可以分解成如(公式一)的形式:

(公式一)

(公式一)得出是用归纳法推导的, 其实就是个条件概率,如果你不向追究原因,只要知道有向图可以按照(公式一)分解就行了,后面也会给出一个直观的解释。下面看看无向图如何分解,无向图如(图二)所示:

(图二)

无向图模型又称马尔科夫随机场(markov random filed)无向图模型的分解就是通过团块(clique)来完成,所谓团块就是 全连接的最大子图,如(图二)所示,(a)图的{1,2,3,4},{4,5,6},{6,7}都是全连接的最大子图,假设团块用C表示,为每个团块分配一个兼容函数(compatibility function)  ,它的作用就是把团块取值状态映射到正实值空间,说白了就是给这个团块一个度量,可以是概率,也可以是取值状态和真实标签之间的差值平方和,根据应用而定,这个兼容函数有时又被称为势函数(potential function),有了兼容函数,无向图模型就可以通过(公式二)分解:

(公式二)

(公式二)中的Z是归一化的常量,学名叫配分函数(partition function),一归一化就成概率了,不归一化不满足概率和为1的性质。为了能在图模型中直观的看到团块,可以用因子图(factor graph)来表示无向图模型,如(图二)(b)所示,和黑块连接的顶点表示全部互相连接(全连接),一个黑块部分表示一个团块,所以上面分解又多了一个名字:因子分解(factorization)。

上面说了很多枯燥的定义,目标只有一个,引出两种图模型的分解公式:(公式一)和(公式二),那为什么可以分解成那个样子?现在通过两个小例子说明一下:

对于有向图模型,如(图三)所示模型,一个人的聪明程度(Intelligence)可以影响他的年级(Grade:痴呆的读高年级的概率低,聪明的一般走的比较远),而且对他的成绩(SAT)也有高低影响。当我们知道一个人的聪明度后,年级和成绩还有关系吗?二本就根本没有关系,在这里不要想多,其实很简单,给定一个物体后,那么这个物体上的两个属性值就决定了,已经存在的事实,所以二者是独立的。朴素贝叶斯就是根据这个条件独立做的分解。

(图三)

另外注意一下,这里给定的是父亲节点,(公式一)中也强调了这点,如果不给父亲节点,条件独立就变的稍微复杂一些,如(图四)中有一个比(图三)稍微复杂一些的有向图模型:

(图四)

在(图四)中Difficulty表示试卷难度,Intelligence表示考生聪明度,如果什么都不给,这二者是独立的,因为试卷难度和考生没有关系,所谓的高考很难,但是这跟我有什么关系?我又不参加高考^.^,但是如果一旦给定空考生的年级(grade),情况就变得不一样了,比如考生考到了博士,如果他不聪明,那说明啥?说明卷子不难,水的很,如果卷子很难,考生一定很聪明,所以这中间有个因果推理关系。这就是Judea peal提出的explain away问题(Even if two hidden causes are independent in the prior, they can become dependent when we observe an effect that they can both influence),在前面的博文《目标检测(ObjectDetection)原理与实现(三)》也解释了这个问题,如果这个例子没有解释清楚,可以看下前面的例子。

对于无向图模型的条件独立就要简单一些,是从图论的可达性(reachability)考虑,也可从图的马尔科夫性入手,如(图五)所示:

(图五)

(图五)是个标准的隐马尔科夫模型(HMM),当给定X2时,就相当于在X2除切了一刀,在X2前后之间的变量都相互独立。独立就可以分解了,比如条件概率独立公式:P(A,B|C)=P(A|C)*P(B|C),团块兼容函数也是如此。如果X1-X5我们都给定,那这个模型分解的团块都是相似的,每个图块都可以用一个通用的标记来表示,因此图模型里又提了一种盘子表示法(plate notation),如(图六)所示:

(图六)

(图六)不是表示的HMM的盘子模型,而是LDA模型的盘子模型,只是让大家了解一下通用分解模版的表示方法,其实很多时候这个表示方法反而不是那么清晰,南加州大学有一个做机器学习的博士生就在吐槽这个表示方法,有兴趣的可以去看看(链接)。今天算是了解一下概率图模型的基本定义和两个分解公式,这两个分解公式只是给出了图模型不好求概率的一个解决方法的切入点,下节就来学习一下概率图模型如何通过分解来进行边缘概率推理求解。

参考文献:

[1] Graphical models, exponential families, and variational inference. Martin Wain wright and Michael Jordan

[2] Probabilistic Graphical Models. Daphne Koller

转载请注明来源:http://blog.csdn.net/marvin521/article/details/10692153

机器学习理论与实战(十四)概率图模型02相关推荐

  1. [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...

  2. k-近邻算法(KNN)(机器学习理论+python实战)

    k-近邻算法(机器学习理论+python实战) 前言 对于其他分类算法:决策树归纳.贝叶斯分类.基于规则的分类.BP-神经网络分类.支持向量机.基于关联规则挖掘的分类,这些都是给定训练集,然后训练得到 ...

  3. 机器学习理论与实战(十五)概率图模型03

    03 图模型推理算法 这节了解一下概率图模型的推理算法(Inference algorithm),也就是如何求边缘概率(marginalization probability).推理算法分两大类,第一 ...

  4. 机器学习理论与实战(十六)概率图模型04

           04.概率图模型应用实例 最近一篇文章<Deformable Model Fitting by Regularized Landmark Mean-Shift>中的人脸点检测 ...

  5. 机器学习理论与实战(九)回归树和模型树

    前一节的回归是一种全局回归模型,它设定了一个模型,不管是线性还是非线性的模型,然后拟合数据得到参数,现实中会有些数据很复杂,肉眼几乎看不出符合那种模型,因此构建全局的模型就有点不合适.这节介绍的树回归 ...

  6. 机器学习知识点(二十六)概率图模型条件随机场CRF

    1.先看概率图模型谱系,有其是MFR和CRF的关系: 这个图源自经典的文章<An Introduction to Conditional Random Fields> 地址:http:// ...

  7. 机器学习理论与实战:逻辑回归

    转载自:http://blog.csdn.net/marvin521/article/details/9263483 从这节算是开始进入"正规"的机器学习了吧,之所以"正 ...

  8. 【神经网络】学习笔记十四——Seq2Seq模型

    本文简要介绍seq2seq,即序列到序列的基本知识,是深度学习和NLP中一个重要的知识. 从三部分来说,seq2seq基本简介,应用场景和原理解析. 一.什么是Seq2Seq 所谓Seq2Seq(Se ...

  9. python相关参考文献_python机器学习理论与实战(六)支持向量机

    上节基本完成了SVM的理论推倒,寻找最大化间隔的目标最终转换成求解拉格朗日乘子变量alpha的求解问题,求出了alpha即可求解出SVM的权重W,有了权重也就有了最大间隔距离,但是其实上节我们有个假设 ...

最新文章

  1. linux 学习过程中的坑之 find 正则表达式
  2. STM32中IO口的8中工作模式
  3. Spark详解(六):Spark集群资源调度算法原理
  4. Android之BroadcastReceiver的使用
  5. 上白泽慧音(tarjan,图的染色)
  6. SHT知识库操作要点
  7. python方差分析模型的预测结果怎么看_statsmodels中方差分析表结果解析
  8. MNIST数据集处理
  9. TCP/IP详解学习笔记(1)
  10. 再看产业地图及《中国2010-2011产业地图》书评
  11. 使用PowerShell SQL Server DBATools的IDENTITY列阈值
  12. noi 9271 奶牛散步
  13. activex java 控件_swt java 内嵌ActiveX控件
  14. 硬件驱动为什么要有WHQL数字签名
  15. C1驾照到期更换,驾照异地入迁,摩托驾驶证报名,记录
  16. 【黑灰产犯罪研究】恶意点击
  17. 『运维自媒体联盟』限时特供学习资源大礼包
  18. Date-如何获取自然天,自然周,自然月,自然年?
  19. MySQL-5.5.32 配置文件优化详解
  20. Vue data 中随意更改一个属性,视图都会被更新吗?

热门文章

  1. MapStruct在Eclipse中的使用
  2. LeetCode Populating Next Right Pointers in Each Node II(dfs)
  3. 题目1033:继续xxx定律
  4. Hive 基础-进阶
  5. tensorflow 之tensorboard 对比不同超参数训练结果
  6. MVC4实现批量更新数据
  7. MATLAB的iptcheckinput函数详解
  8. mysql show语句_mysql常用show语句
  9. setuid与capability
  10. oracle管理 题库,Oracle数据库管理与开发习题集