自己根据Jordan大神的资料写的(算翻译?完全不记得了,这是半年前整理的,反正不记得了,如果大神有看到部分重合,那肯定是我借鉴了人家的,本来是一个群里的人大家兴致高说写DL的书(所以这一章并不是书的重点,只是为了引出DBN而已,所以才不需要PGM的大神参合),我算负责这一章,这是初稿,也就是先和对应的章节审稿人定框架结构,然后在改,所以这节粗糙是一定的,只是本以为等着审稿人的意见,然后大改特改的,结果就没有然后了,完全没有下文啊,想想还不如发出来当作学习笔记好了!),PGM菜鸟试水级别理解,喷我
完全接受,因为对pgm绝对的菜鸟。

概率图模型简介

4.1 概率模型图简介

概率图模型是概率论和图论相结合的产物。它提供了一个有力的工具去解决在数学和工程之间的不确定性和复杂性这两大问题,而且在机器学习算法的设计和分析中,概率图模型也扮演着越来越重要的角色。概率图模型的根本思想是建立在模块概念上的,即那些复杂的系统是由简单的模块组合而来的。概率论提供了类似于粘合剂的作用,它能确保整个系统在各个部分都是连续的,并为数据提供了输入模型接口。而概率图模型中的图论部分则为人们提供了直观的方式去观测如何将高度变化的变量集与高效的通用算法的数据结构结合起来。[1]

许多经典的多变量概率系统,例如:统计学,系统工程,信息论,模式识别和统计力学都是通用图模型范式的特殊情形,图模型框架可以将所有的这些系统都视为一个普通的潜在范式的例子。这种观点有着许多的优势,具体来说,当一个领域中已经发展起来的技术可以在不同的研究领域之间传播,而且能够被广泛的使用。更进一步的说,图模型方式提供了一个如何设计新系统的框架。[3]

4.1.1概率图模型的表示

概率图模型使用基于图的表征去表示高维空间中复杂分布紧凑编码的基[2]。在概率图模型的图中,点表示随机变量,边表示条件独立假设。因此能够提供一个联合概率分布的紧凑的表征。例如,如果我们有N个二值随机变量,一个表示联合的函数,那么就需要个参数,也就是说一个图模型的指数级的参数,是由我们定义的条件假设决定的[4]。概率图模型一般有两种,有向图模型和无向图模型。

有向图模型是在有向无环图中将局部条件概率与每个节点关联起来进行数值指定,对应于有向无环图的概率模型称为贝叶斯网络,之所以称之为贝叶斯网络不是因为暗示着会使用贝叶斯方法,而是在推理的过程中使用的贝叶斯规则。对于任意一条边和它所连接的两个顶点,A
称为B 的父节点,B 称为A 的子节点[6]。条件概率是在给定他们父节点的值的情况下指定节点的概率,即
 ,这里
 表示节点
的父节点的索引集,
表示相对应的父节点集(如图1),为了获得图中所有节点的联合概率分布,即 ,我们可以从所有的局部点概率上获得这个分布[5]:

               
                                                                                      (公式4-1)

图4.1通过联合每个节点的局部条件概率来对有向图进行参数化

对应于无向图的概率模型称之为马尔可夫网络,无向图模型是更一般的构造概率分布的方法,不同于有向图模型中用诺干条件概率分布的乘积构造联合分布,它是通过将图中每个团的势函数进行联合来达到数值指定的目的[6]。每条边所在的最大的团(全连通子图)称为一个因子[6],每一条边都属于一个因子,由于是通过这样的构造概率分布的方法,只需为每个因子指定一个非负函数,并对所有因子的成绩归一化,就可以构造出马尔可夫网络表示的概念模型。这其中基于图中团的非负函数就是势函数。因此,对于由节点集
的子集组成的一个团(见图2),我们可以得到一个相关的势函数
,它的所有节点的联合概率分布可以通过基于团的势能来获得:

                                         
                                                     (公式4-2)

这里M是团的总数,归一化因子Z是通过对所有的状态进行求和得到的:

                                         
                                                   (公式4-3)

图4.2 联合图中每个团的势能来对整个无向图进行参数化。

图中的团即 
。团的每个不同的状态对应于一个势能函数。联合概率是通过所有的团势能之和来进行归一化的。

归一化常数是马尔可夫网络与贝叶斯网络的重要区别之一。直接计算这个常数的时间复杂度往往是指数级的,所以通常都需要寻找其他的替代方法来解决。

4.1.2 概率图模型的推论

推论的主要目的是为了在给定观测点的值的情况下,评估隐藏点的值。如果我们观测到一个生成模型的“叶子”,并试图去找到隐藏的原因,这就是所谓的诊断,或者称之为自底向上的推论;如果我们观测到一个生成模型的“根”,并试图去预测他的结果,这既是所谓的预测,或者称之为自顶向下的推论。

4.1.2.1变量消去算法

变量消去算法是最直观且容易推到的精确推论算法,而且也是其他更高级的精确推论算法的基础。考虑贝叶斯网络(图4.1)所定义的联合分布 ,如果观测到变量
(这里y是样本对应的标签),并且想计算变量
的条件概率
,则可以简单的写成[6]:

                                         
                          (公式4-4)

其中,

通过使用贝叶斯网络的独立性,以上求和可以分别简化为:

               (公式4-5)

简单来说,变量消去法就是利用了乘法对加法的分配律,将对多个变量的积的求和分解为对部分变量交替进行的求积和求和。

4.1.2.2 近似推论

运行这些精确推论算法的时间是指数级的(假设隐藏点都是离散的),它的指数大小是最大聚类的尺寸;这个尺寸被称之为图的感应宽度,最小化感应宽度是NP-难的。对于许多图,例如网格或有向图,他们都包含有着高扇入、大感应宽度的节点,所以才需要使用近似推论。当一些节点表示的是连续随机变量时,即使有着小感应宽度(即,树和链)近似推论也是必需的;在许多情况下,相对应的积分需要贝叶斯规则在不封闭的情况下进行。这里简单的介绍几种流行的近似推论方法。

采样(蒙特卡罗)方法:最简单的是重要性采样,我们从在隐藏变量上的无约束分布 中提取随机样本x,这里的 X 是可视层的随机变量,X是单个输入样本。然后通过似然函数 来对样本进行权值化,这里的y是单个样本x的标签。在高维度空间中一个更高效的方法是马尔可夫链蒙特卡罗(MCMC),这个方法包含了特俗的情形Gibbs采样和Metropolis-Hastings算法。

变分法:最简单的是均值场近似,它通过使用大数定律去通过他们的均值逼近随机变量的和。具体的说,我们是解耦所有的节点,并引入一个新的参数叫做变分参数,随后通过对这些变分参数的迭代达到对近似值和真实概率分布之间的交叉熵(KL距离)的最小化。更新这个变分参数变成了一个推理代理。这个均值场在似然函数上近似生成一个下限。

环路信念传播:这个算法是通过turbo代码的经验性成功获得的灵感,这个turbo代码是这个算法的一个实例。更进一步的经验性的工作显示这些工作在其他上下文,例如低等级视觉中有着很好的表现。

4.1.3概率图模型的应用

        在许多概率图模型的应用中,实际模型的精确推论是办不到的。但是可以通过评估一个问题去拟合数据并通过训练后的模型去对数据进行预测或者诊断。这里通过有向图上的应用-神经网络和无向图上的应用-玻尔兹曼机来说明这个问题。

神经网络是在每个节点都有着非线性激活函数的层状概率图。这里假定激活函数的值域是 ,激活函数为逻辑函数 。我们可以将这样一个神经网络看成是一个概率图模型,其中每个节点都是有着二值变量
,每个节点的概率都是由它们的激活函数给出,并在0和1中取值。例如,使用逻辑函数,我们可以写成以下形式:

                                                                   (公式)

这里 是连接点 i 点 j 之间的边的值, 是点 i 的“偏置”。这就是所谓的“sigmoid置信网”,由Neal在1992年引入。将神经网络以这种方式来看待的好处是能够执行诊断计算,并且能够处理丢失的数据和在与有监督学习的相同步骤下进行无监督学习。考虑到这些好处,这个概率图模型的推论必须以一种高效的方法来进行。

事实上,可以看出在一般的层状神经网络中精确的推论是无法完成的。神经网络中的一个节点通常有着另一层的所有节点作为它的父节点。因此如何正确的处理层间的数量众多的连接,这对于神经网络来说非常重要。在训练的过程中,输出层节点是作为分类诊断节点,因此对于倒数第二层的隐藏节点来说,它们就变得概率依赖了,依赖于它们之前的祖先节点所得到的概率分布来得到自己的概率。

因此,假如在一层中有N个隐藏节点,那么在忽略因为团尺寸变化所带来的额外时间开销外,它们的时间复杂度至少是 。在当神经网络以二十或上百个隐藏节点作为普通图来看,我们使用精确推论来训练一个神经网络的任务是几乎不可能的。

图 神经网络的层状图结构。

玻尔兹曼机是有着二值节点和受限势函数集的无向图模型,具体来说,团势函数是通过“玻尔兹曼因子”来得到的,这里的因子是 中不超过两次的指数函数,由Hinton等在1986年提出。因此每个团势函数是因子 和因子合的产物,这里

因此对于给定的节点 和节点
对来说,它们可以出现在多个、重叠的团中。对于这样的团来说,我们假定
都是有且仅存在于一个团势能中。在所有的团势能上,我们可以得到如下的式子:

                                                                               (公式)

这样的定义被称为玻尔兹曼分布。

Saul和Jordan在1994年指出对于玻尔兹曼机的某些具体情况的精确分布是易于处理的,比如:树,链和耦合链对等,并提出了抽取因子算法来计算这些分布。然而,对于更普通的玻尔兹曼机来说,和其他方法一样,抽取因子算法也无法避免指数时间复杂度的困扰。确实,不管玻尔兹曼机是无向图模型的一个特殊情况,它仍然是受它的参数化影响的,而不是受它的结构影响。因此那些准确算法,例如抽取因子和决策树算法都是基于玻尔兹曼机结构获得较好的结果,在其他图模型上也得不到比在玻尔兹曼机结构上更好的结果。

(图中 即为w)

图 玻尔兹曼机,介于节点  和节点  之间的边的因子是

参考文献:

[1] Murphy K. A brief introduction tographical models and Bayesian networks[J]. 1998.

[2] Koller D, Friedman N. Probabilistic Graphical Models: Principles and Techniques.[D] MIT Press, 2009

[3] M. I. Jordan, Learning in GraphicalModels.[D]MIT Press,1999

[4] Murphy K. An introduction to graphicalmodels[J]. 2001.

[5] M. I. Jordan, Z. Ghahramani, T. S. Jaakkola, and L.K. Saul. An introduction to variational methods for graphical models.[D].  MIT Press, 1999.

[6] 张宏毅, 王立威, 陈瑜希. 概率图模型研究进展综述[J]. 软件学报, 2013, 24(11): 2476-2497.

PGM1.1-简介的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

  10. 1.Hibernate简介

    1.框架简介: 定义:基于java语言开发的一套ORM框架: 优点:a.方便开发;           b.大大减少代码量;           c.性能稍高(不能与数据库高手相比,较一般数据库使用者 ...

随机推荐

  1. JAVA generic array 泛型数组

    在JAVA中是不支持泛型数组的,不能通过 Z[] array=new Z[10] 这样的方式来创建数组,而是使用反射Aarry.newInstance来创建: 具体代码如下: public Z[][] ...

  2. 【代码笔记】iOS-可拷贝的label

    一,效果图. 二,工程图. 三,代码. ViewController.m #import "ViewController.h" #import "MKBeCopyLabe ...

  3. 【读书笔记】iOS-网络-负载

    负载指的是在服务的请求响应事务中交换的数据.常见的负载格式包括XML,JSON与HTML. 进入与发出的负载数据存在很多形式与大小.比如,有些开发者会使用原生的字符串或是以分隔符分开的数据与Web S ...

  4. iTerm通过堡垒机自动登录服务器

    为了保障网络和数据安全,越来越多公司使用堡垒机.iTerm作为一个好用的终端利器,要实现自动通过堡垒机登录服务器的方式有多种.下面我就来介绍一种通过expect脚本的方式完成配置. 第一步,进入/us ...

  5. jQuery事件和JSON点语法

    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" ...

  6. python学习笔记之——python面向对象

    Python是一门面向对象语言. 1.面向对象技术介绍 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个 ...

  7. React Native 如何做轮播图 react-native-swiper

    //:仿饿了么github:https://github.com/stoneWeb/elm-react-native 欢迎各位同学加入: React-Native群:397885169 大前端群:54 ...

  8. Bootstrap源码分析系列之核心CSS

    本节主要介绍核心CSS,从整体架构中的7个Less文件对应的源码分别进行分析 scaffolding.less 这个文件编译后的css文件(886~989行)其作用就像定义全局样式. //调整css盒 ...

  9. oracle 忘记了scott用户的密码,该怎么修改

    sqlplus / as sysdba,进入sys用户下,alter user scott identified by 123456,改成自己需要的密码

  10. C#中使用反射遍历一个对象属性和值以及百分数

    对某个类的实例化对象, 遍历获取所有属性(子成员)的方法(采用反射): using (var context = new YZS_TRAEntities()) { ).FirstOrDefault() ...