-->

机器学习40讲_32_30_无向图模型马尔可夫随机场

你好,我是王天一。

今天我和你分享的主题是无向图模星、马尔可夫飞机场。

作为有向图模型的代表,贝叶斯网络将随机变量之间的条件、独立性和依赖关系嵌入到图结构当中。

这既有助于直观表示,还能简化计算,但这是不是意味着贝叶斯网络它可以通吃所有概率关系呢?并非如此,下面这个例子就说明了贝叶斯网络它的局限之处。

这个例子来自于达芙妮科勒的经典教材概率图模型是里面的例三点八。

这个例子是这样的,四个学生,alice、 bob、 charles,还有debby在一个学习小组当中,但是由于a和CB和d两两之间因为感情的纠葛而导致没有交流,所以呢每个人可以交流的对象都只有两个。

那这样的关系应该如何来表示呢?这四个学生呢可以建模成为概率图当中的四个节点,也就是四个随机变量。

用贝叶斯网络来构造这种关系的时候呢,由于a和c之间不存在交流,那两者之间也就没有信息的流动。

所以在给定b和d的前提之下,a和c呢是条件独立的。

同样的道理,在给定a和c的前提下,b和d也是条件独立的。

这样一来呢,我要构造这个贝叶斯网络的话,就需要同时的表达这两组条件,独立性。

点击文稿,你可以看到两种可能的贝叶斯网络结构,但他们的共同特点是都没有办法同时表示这两个条件独立性。

在左边的子图当中呢,从a到c的两条通路都是这个顺联的结构。

那中间的节点分别是b和d固定的BD,堵塞了信息流动的通道,从而呢保证了a和c两者的条件独立性。

但是反过来,我们看看b和d是不是独立的呢?这两个节点和a共同构成了分联结构。

所以呢他们关于a是条件独立的,可是同时他没有和c构成了汇联结构,这意味着c的确定就会导致b和d的变化,那么条件独立性也就无从谈起了。

左边的子图呢存在着问题,右侧的子图同样存在缺陷。

从上向下看,这是两个分联结构的拼凑,保证了a和c的条件独立性。

可如果换个角度,从下往上看的话,这又是两个汇联结构的拼凑。

无论是a还是c都搭建了从b到d的通路。

所以这个结构呢也不能够同时形成两组条件独立性。

说到底啊,这个例子当中的结构就像是咬住自己尾巴的一个贪吃蛇,这是一个典型的环状结构。

每一个节点呢只和和它相邻的这两个节点相关和其他的节点全部都条件独立。

这其实呢就相当于把这个顺联结构的首尾给它扣到一起,可就是这么简单的操作,就足以让作为无环图的这个毕叶斯网络无能为力。

环状结构当中呢,它不存在方向的概念,不管是顺时针还是逆时针,这个信息的流动呢都能够回到原点。

就像环路、公交车,不管是从正向出发还是反向出发,最终呢都要回到始发站。

在这样的循环依赖的结构上强加方向限制的话,反而会起到适得其反的效果。

将贝叶斯网络中边的方向去掉,得到的就是马尔可夫随机场。

马尔可夫随机场,它又叫马尔可夫网络,也是一种用来表示随机变量之间关系的概率图模型。

但它的特点和贝叶斯网罗恰恰相反,连接顶点的边没有方向图中呢,也可以存在环路的结构。

那么和贝叶斯网络相比呢?马尔可夫随机场,它侧重于表示随机变量之间的相互作用,虽然它不能够进行因果的推理,却可以呢对上面的这种循环依赖关系所建模。

点击文稿。

你可以看到上面这个例子所表示的。

马尔可夫随机场飞机场的结构确定之后呢,接下来就要对它进行这个参数化,以完成定量的计算。

由于马尔可夫随机场当中变量之间的相互作用,它不再是明确的这个条件依赖的关系。

那贝斯网络里的条件概率分布用来描述这个有向边的条件,概率分布也就不再适用了。

在参数化的过程当中呢,马尔可夫斯机长他会着重刻画变量之间的连接关系,并由此引入了因子的概念。

所谓因子也叫是函数,是定义在节点所表示的这个变量子集上的一个非负的函数随机变量,每一个可能的取值都对应着一个因子的值。

如果两个随机变量在某个特定值上的因子越大,说明这两个变量在这一组取值上的兼容性越好。

也就意味着这一组取值同时出现的可能性比较大。

利用这个因子的概念呢,就可以对前面的这个马尔可夫斯机场进行参数化的处理。

假设ABCD四个随机变量,它都是二元的变量,取值非零即一。

那么点击文稿,你可以看到对每两个相互关联的变量之间,它因子的一个定义。

这个定义呢是以表格的形式来出现在第一个因子斐一AB当中,a零b零对应的因子值最大,这说明什么呢?说明两个变量可能同时取零啊,这个概率是最大的。

斐一的a零,b一大于斐一的a一b零则说明当alice和bob啊两个人意见相左的时候,鲍b更容易占据上风啊,因为b取零a取一的概率小于h零,b取一的概率。

同理,可以得到bob和charles aleice和dviby之间啊都容易达成共识。

而charles和dvby在一起啊,就容易吵架定义的所有因子呢都有相同的作用。

那就是定量描述直接关联的这个随机变量啊,也就是由一个边直接连接起来的这样的随机变量,它们之间的关联性将所有局部上的因子组合起来,得到的就是马尔可夫飞机场。

它整体的一个分布和贝斯网络一样,局部因子也是通过相乘的方式加以结合,从而呢形成所有变量的联合概率分布。

但是由于对因子的计算结果呢并不一定会等于一,所以要把它转化成概率的话,还需要额外的归一化的过程。

那么点击文稿,你可以看到从因子函数到概率分布的一个数学表达式。

在这个表达式当中呢,分母上的这个取值是归一化的常数。

这个常数呢被称为划分函数,它的取值取决于因子的趋势。

可以看出无向的马尔可夫飞机场实际上建模了所有变量的一个联合分布。

这就和贝叶斯网络对条件分布的建模形成了对比。

在上面这个例子当中,如果要计算四个随机变量,分别等于a等于零b等于零c等于一。

D等于一的概率就需要先将反映它们之间依赖关系的因子给它乘到一块儿,再进行规划的处理。

那么在计算当中呢,需要注意的一个问题是在两个因子相乘的时候,将这两个因子联系起来的中间变量的取值必须是匹配的。

那么上面求出来的呢只是一种可能出现的取值。

对于四个二值变量来说,所有取值的组合共有二的四次方等于十六种。

那么计算出所有十六个值之后啊,我再对这所有的因子值进行归一化就可以得到a等于零b等于零c等于一d等于一的这个概率它等于多少呢?是等于四点一乘以十的负六次方。

点击文稿,你可以看到这个计算的过程。

这个表达式呢其实还蕴藏着另外一层含义,那就是因子的概念。

它不仅适用于单个的随机变量,也适用于随机变量的组合。

如果不做归一化的话啊,那么按照上面的方法计算出来的就是斐一AB乘以斐二BC乘以斐三CD乘以斐四DA这个表达式实际上就是ABCD这四个变量共同的因子。

如果我把这四个变量看成一个整体,那这个整体呢可能又是一个更大的马尔可夫随机场它的一个部分。

那这四个变量所构成的变量级,它的因子就是这么定义的。

需要说明的是,虽然因子在形式上看起来和条件概率很像,但两者的意义是不同的。

这种不同呢也会体现在数值上,每个因子都是联合分布的一部分,因子之间呢也会产生相互的作用。

只有对因子之间的相互作用进行边际化的处理之后,这时候得到的才是真正的条件概率因子本身呢不能作为条件概率来进行计算。

如果把单个的因子视为概率的话,那么前文当中因子的归一化所形成的概率分布,它就是吉布斯分布。

如果进一步把吉布斯分布当中,所有的因子都改写成指数函数的形式,他就又变成了这个波尔兹曼分布。

在统计力学当中,波尔兹曼分布可以用于描述系统的这个能量分布。

那相关的内容属于物理学的范畴,在这儿呢就不多说了。

但关于吉布斯分布啊,我们还要多说一点。

马尔可夫随机场和吉布斯分布的等价性是由哈姆斯利克里福德定理所保证。

这个定理的内容呢比较复杂。

但其中最主要的一点是什么呢?只有当非负的概率分布可以进行因子分解的时候,它才能和无向的图结构等价。

那么可以进行因子分解的概率分布就是吉布斯分布,它等价的图结构,也就是马尔可夫随机场对马尔可夫随机场进行因子分解呢,它的目标是将原始的图结构整合成为若干个团。

所有的团呢是由节点的组合所形成的,全连接结构团当中的任意两个节点之间都存在着相互连接的边。

如果说在已有的团中加入任何一个多余的节点都不能成团的话,这样的团呢就是集大团。

吉大团和吉布斯分布的关系,可以类比为贝叶斯网络当中独立图和概率分布的关系。

那么点击文稿,你可以看到划分集大团的一个实力。

和贝斯网络一样,马尔可夫随机场也可以体现条件独立关系。

如果两组节点x和y通过第三组节点这项连接,其中x里面的任意一个节点到y里面任意一个节点的路径都要经过这个z中的节点的话,那么x和y就可以说是被z所分离。

你不绕过这个z就没有办法从x走到y这样的话,这个z就形成了x和y的分离器。

如果你把概率的变化想象成水的流动的话,那么z就像是上游x和下游y之间的一道水闸。

一旦最终的随机变量不再变化,那么这道大闸呢就会堵住信息的流动,从而让x和y条件独立。

马尔可夫飞机场中的条件独立性啊,就是他的马尔可夫性,这也是名字当中马尔可夫的一个来源。

根据分离集在图结构上不同的特点,马尔可福逊呢可以被分为以下的三种形式。

哪三种呢?第一种呢是全局马尔科夫星给定两个变量子集的分离集。

那么这两个变量就是条件独立。

第二种呢叫局部马尔克夫星。

他说的是给定一个变量,子集的邻接变量啊就和它相连的这个变量。

那么这个变量和其他所有变量条件独立,也就是邻接变量构成了这个变量和其他变量的一个分离器。

第三种叫成对马阿克夫星。

他说的是抛开两个变量而给定其他所有变量的话,那么单独留出来的这两个非邻接的变量条件独立。

这意味着其他的所有变量共同构成了非邻接变量的这个分离器。

这个概念呢可能比较抽象啊,你可以自己想象一下这三种呃马尔可夫性,它不同的含义。

要用python进行马尔可夫斯机场的建模的话啊,同样需要使用PGM派这个库。

这里呢以前文当中四人小组的例子为例,夫随机场的核心是因此建模。

这个随机场的话需要用到markmodels模块当中的markv model类因子的定义呢,则需要调用factors. Discrete啊这个模块当中的discrete factor这个类来实现啊,两个名字差不多。

作为两种最主要的概率图模型啊,贝叶斯网络和马尔可夫斯机场,它虽然结构不同,但都是对概率分布的参数化,还有对条件独立性的表示。

所以呢两者是可以互相转化,把贝叶斯网络变成马尔可夫飞机场,这是比较简单的一个任务。

只需要将所有边的方向给它全部去掉啊,我把有向边变成无向边。

同时呢在汇联结构的两个共负节点之间添加一条无相变,就能够构造出这个马尔可夫随机场。

这个过程呢被称为端正画,得到的结果呢叫做端正图。

点击文稿。

你可以看到贝叶斯网络的端正化,相比之下,要将马尔可夫随机场转化成贝叶斯网络,可就没那么容易了。

这当中最关键的问题在于因果关系的确定,也就是这个有向边到底应该由谁指向谁。

不同的指向呢显然会导致不同的条件独立性。

这时候呢我们不光要给已有的边添加方向,还要给原始马尔可夫随机场当中的环结构来添加额外的边,从而呢形成一个衔途。

这个过程呢被称为三角化,构造出来的闲途呢可以进一步的添加方向啊,给它表述为贝叶斯网络。

整体的过程比较复杂啊,具体的细节在这我们就不做介绍啊。

你只需要知道从马尔可夫随机场到贝叶斯网络,需要进行这个三角化的操作就可以。

今天,我和你分享的马尔可夫随机场,它的基本原理包含着以下四个要点。

第一,马尔可夫随机场是无向图,可以用于建模变量之间的相互作用。

第二,马尔可夫随机场是吉布斯分布因子分解的图结构的表示。

第三,马尔可夫飞机场当中的条件、独立性可以分成全局性、局部性还有成对性。

第四,马尔可夫飞机场和贝叶斯网络可以相互转化,所以说不能够用于因果推断。

但马尔可夫飞机场呢在图像处理当中有非常广泛的应用。

无论是图像分割去噪还是目标识别,这些计算机视觉任务当中,都能够见到马尔科夫随机场的身影。

那么你可以查阅资料,了解马尔可夫随机场在不同图像处理任务当中的应用方式,并在这里呢分享你的见解。