Probabilistic Graphical Model
概率图模型有什么用?概率图是在图的基础上添加了概率信息,通过图可以得到概率密度分布函数。对于离散或者连续型N维向量,用N个结点的图表示出样本的概率密度分布。当学到了事物的概率模型,就可以完成很多有意思的任务,比如说图像降噪、图像生成、语音识别。了解概率图模型,就要从模型的表示、学习、推理进行学习。
表示
前情提要:
概率链式法则如下
边缘概率
图分为两种:有向图和无向图
有向图模型
有向图表示了变量之间的依赖关系,一般称为贝叶斯网络
如下图,b依赖于a,c依赖于a、b,那么这个有向图表示的全概率公式
同样的对于下图贝叶斯网络,有全概率公式
对于有向图,有个叫做条件独立性的特性。条件独立性指的是当条件给定是,某两个变量在这个条件下相互独立。在有向图中,如果两个结点直接相连,那么这两个结点一定是非条件独立的,他们具有因果性。父节点为因,子结点为果。如果两个结点不是直接相连的,但是他们之间有一条经过其他结点的路径连接,此时他们的条件独立性比较复杂。
对于ab,当x2给定时,x1、x3条件独立
对于c,当x2给定时,x1、x3条件独立,当x2未定,不独立
对于d,当x2给定时,x1、x3非条件独立,x2未定,条件独立
无向图模型
无向图模型,一般称为马尔可夫随机场
由于无向图没有指定变量依赖关系,因此没有办法通过条件链式法则表示出概率密度函数。因此需要引入其他概念来表示概率密度函数。
团:
团是一个连同的子图,最大团指的是:团添加任意顶点后,不能成为团,则称之为最大团。如下图,一共有:{x1,x3}{x1,x2}{x2,x4}{x3,x4}{x2,x3}{x1,x2,x3}{x2,x3,x4}7个团,最后两个团为最大团。
无向图的联合概率密度定义为一系列最大团上的非负函数(也称为势函数)的乘积形式。式中E(Xc)为能量函数,Z为配分函数(用于归一化)
对于不同的无向图模型,选择的能量函数也各不相同,这里就不再详述
我们可以看到无向图和有向图的区别实际上还是蛮大的,那么有没有一种方法将有向图转换为无向图,这样我们就可以直接研究无向图。
对于链:
分别写出有向和无向的概率密度分布函数,可以发现条件概率似乎和势函数有着某种对应关系。为了将一般的有向图转换成无向图,有学者提出了道德化方法。它的思想是将一个结点的多个父节点两两之间用无向边进行连接。如下图,x4的父节点为x1、x2、x3,将父节点两两相连并将有向箭头变为无向边
学习
由于学习不是课程的重点,此处仅对一些常用的学习方法进行总结:
不含隐结点的
极大似然估计、梯度下降
含隐结点的
EM
推理
概率图模型的推理方式主要有两种:精确推断和近似推断。
精确推断主要是将边缘概率的计算通过某种方式组合在一起,及减少时间复杂度。比如变量消去、信念传播、sum-product、max-sum。前三者是计算边际分布,最后一个是计算概率值
由于精确推断仅适用于树状图,计算量也比较大,近似计算弥补了这个缺陷。比如变分推断、马尔可夫蒙特卡洛采样
精确推断
变量消去
根据全概率公式,我们可以通过下式计算出边际概率
但是发现这样的计算复杂度非常大。有没有一种办法可以减少计算量?考虑乘法的分配律,ab+ac=a(b+c),经过分配后算式的计算量减少了一个乘法。因此在计算边际概率时,我们可以将算式进行分配以减少计算复杂度。下式为调整后的边际概率计算公式
当然这种方法存在着一定的问题:考虑db+dc=d(b+c),按理来说(b+c)我们之前已经计算过了,可以直接拿来用。但是变量消去法在每次计算新的边际概率时,都会重新算,即使公式里会有一些之前算过的因式,这就导致了很多重复计算。为了解决上述问题,引入了信念传播
信念传播
信念传播是将变量消去法的和积(sum-product)看成消息并保存,以此减少重复计算。定义
可以发现每次消息的传播仅与x_i的邻域有关,并且一个结点只有接收到来自其他所有结点的消息后才能向另一个结点发送消息,结点的边际分布正比于它接收消息的乘积
如何计算信念传播呢?由于每个结点必须接收到所有的消息后才能传出消息,因此需要给定顺序进行计算:先给定根节点,从所有的叶子节点向根节点传递消息,直到根节点接收到所有消息。然后再从根节点向叶子节点传递消息,直到传到所有的叶子节点。
链上相邻顶点的联合概率:
sum-product
信念传播就是一种sun-product方法,信念传播适合树状图,但现实情况会出现多树(其中一个结点有两个父节点,并且树中两个节点之间仅有一条连接),sum-product就可以处理这种情况。
在讲述sum-product之前,需要先说明因子图这个概念。概率密度函数可以分解成多个因子乘积的形式,那是不是可以通过一个新的图结构显式地表示因子—因子图。
因子图包含了两种节点:变量节点和因子结点,如下图,全概率公式可以表示为
那么对于多树结构,将其道德化后可以变成树状因子图。那sum-product如何进行推断呢?
μf->x表示因子结点向变量结点传递的消息,μx->f表示变量结点向因子结点传递的消息。定义:如果叶子节点为变量节点,μx->f=1;如果叶子节点为因子结点,μf->x=f(x)
max-sum
max-sum是在给定联合概率分布函数时,求出使得函数值最大的变量取值。max-sum的思想与sum-product的思想基本一致,sum-product是将求和乘积交换位置,max-sum是将max算子和乘积交换位置,避免大量的重复计算,例如:max(ab,ac)=a*max(b,c) s.t. a>=0
在实际运算时,可能会出现多个小概率乘积出现的数值问题,需要将计算式取对数,product变成了sum,顺滑地从sum-product转移到max-sum:将求和转换成max,将函数product变成对数函数求和
当然在计算时,需要记录概率取最大值时的变量取值
近似推断
精确推断都是在计算边际概率分布,目的是为了计算变量的期望。近似推断则直接计算或者逼近这个期望。采样法选择独立抽取N个样本,计算这N个样本的均值,根据大数定律,当N趋于无穷大时,样本的均值收敛于期望。MCMC(马尔可夫链蒙特卡罗)就是在做这样的事情。
MCMC
MCMC的核心思想是将采样过程看作一个马尔科夫链,需要构造出平稳分布为p(x)的马尔科夫链。吉布斯采样(Gibbs Sampling)是一种有效地对高维空间中的分布进行采样的MCMC方法。
需要注意的是,马尔可夫链需要经过一段时间的随机游走才能达到平稳状态,这段时间称为预烧期(Burn-in Period)。预烧期内的采样点并不服从分布p(x),需要丢弃。基于马尔可夫链抽取的相邻样本是高度相关的。而在机器学习中,我们一般需要抽取的样本是独立同分布的。为了使得抽取的样本之间独立,我们可以每间隔M 次随机游走,抽取一个样本。如果M 足够大,可以认为抽取的样本是独立的。
变分推断
通过使用已知简单分布来逼近需推断的复杂分布,引入KL距离来度量分布的逼近程度,变分推断将推断问题转换成优化问题。