一、学习目标
1.学习概率图模型中两种重要的模型:贝叶斯网络和马尔科夫随机场
2.学习使用概率图模型去进行实际问题的学习与推断
3.学习近似推断
二、贝叶斯网络
概率图模型基于图,而图这种数据结果分为两种:有向图和无向图,针对有向(无环)图结构,实现的是贝叶斯网络,针对无向图,则为马尔可夫随机场。
1.有向无环图
根据图中每个结点不同,可提取出不同的相关结点,如以x3为例
2.联合概率分布
我们之所以搞出这么一个图,最终目的是想求解出所有x同时发生的概率,即联合概率,因为有了联合概率分布,我们就可以随意求解其他情况的概率,如下图中3.所写。
在贝叶斯网络,其联合概率计算是由图来定义的,如下图1.所展示,而如果没有贝叶斯网络,我们无法了解各个变量之间是否有联系,就认为都有联系,于是列出的联合概率公式为0.所示
。可以发现,贝叶斯网络的作用就是消除了部分变量之间的联系,或者说得到了某些变量之间存在独立性,从而方便联合概率的计算。
以一个例子来看看贝叶斯网络的运用:
显然,第一题是比较简单的,直接查表计算就行:
而如果要计算条件概率,就会稍微麻烦:(特别是缺少某一个变量时,我们需要用积分法消去这个变量)
3.条件独立性
对于一个很大的贝叶斯网络,我们需要有一个很高效的方法的快速辨别两个变量之间是不是独立的,但我们这里考虑条件独立性,条件独立性不同于独立性,条件独立性,必须要在某一条件下,考虑另外两个变量之间的独立性。三个重要准则如下:
例如以t2t,可以进行证明:
而如果抛去C的条件,考虑A和B之间的独立性,则A不与B独立:(实例化证明不是什么高大上的方法,就是高中数学求选项错误的方法)
知道上面的三个情况后,就可以判别网络上各个点的条件独立性,其原理为全局马尔科夫性:
以例子来说明:
再讲一个反例:
除此之外,我们还有另外两条规则来判断独立性,是为局部马尔科夫性,是全局马尔科夫性的一些特例,但相比于上面,更常用:
二、马尔科夫随机场
马尔科夫随机场是针对无向图结构的一种技术,由于缺少有向无环图的上下级关系,无法像贝叶斯一样可以列出各变量之间的联系,于是其引入团和极大团的概念:
在马尔科夫随机场中,既然无法确定结点之间的关系,那就认为两点有连线就有联系,是相互影响的关系。为了计算所有变量的联合概率,那就变成计算所有团(或者极大团)的概率。于是引入势函数来计算团内部变量之间的相关性(相当于贝叶斯网络中计算联合概率分布中的条件概率):
以一个例子来看这条公式:(使用了极大团)
而马尔科夫随机场一个伟大的应用是受限玻尔兹曼机,其结构和相关定义如下:
如上面所写,受限玻尔兹曼机实际上就相当于一层神经网络,只是受限玻尔兹曼机是从马尔科夫随机场的角度得到的结果,而神经网络是从感知机的角度得到的。受限玻尔兹曼机的过程实际上也跟神经网络一致,也是前向计算出概率,再误差反向传回,修改参数。最后可以得到其联合概率值:
通过受限玻尔兹曼机无法直接得到联合概率分布,而根据我们使用神经网络的习惯,我们也确实不用得到联合概率分布,只要得到具体的v的概率是多少就行,而非要得到联合概率分布,也只能不断采点来得到。
2.条件独立性
马尔可夫随机场也有其对应的条件独立性,首先是全局马尔可夫性,比贝叶斯的简单,看图就懂:
还有局部马尔可夫性和成对马尔可夫性:
四、学习与推断
用概率图模型去解决实际问题的两个关键性步骤就是学习和推断。
1.学习
学习是要通过实际数据学习到概率图的结果,和概率图中的概率参数:
目前,结构学习的能力还没能力实现,一般都是人为假定的某种结构,比如隐马尔可夫模型、条件随机场模型。参数学习是可以进行的,一般使用EM算法来学习。后面会详解。
2.推断
推断的任务,就是求解出某种变量组合的概率(单变量概率、联合概率、条件概率,一般先求条件概率,因为可以使用条件独立性)。详细描述如下:
推断方法分为准确推断和近似推断两种方法。这里先讲精确推断方法,近似推断法放到下一节讲。
(1)变量消去
我们以一个例子讲述其过程,下面要求解P(x5)的具体解,我们可以按照贝叶斯网络的规则列出其联合概率并积分掉其他变量:
然后从叶节点(x1和x4都是)开始消去,这里先选x1。用m12代替积分结果:
消去x1也就表明可以在有向图种消去x1,然后按照上面消去的方法迭代到x5:
最终结果为:
针对无向图,则是使用势函数代替上面式子中的条件概率:
优缺点:
为了避免重复计算,我们显然可以将计算结果保存下来;这就是信念传播对其的改进。
(2)信念传播
其中,信念或者说消息,与方向性是无关的,并不是说,m35(x5)=m53(x3),而是说,消息可以逆着有向边的方向传播:(正因为如此,需要保证图是紧凑无环的)
想要计算出所有边的消息值,显然只需要正向计算一遍,反向计算一遍,而其非要定义一个名字:二次扫描算法:
最后,我们可以得到各个结点的概率分布是正比于其他结点对其的消息总和:
五、近似推断
先对比一下精确推断和近似推断:
特别实际任务中,经常会有连续性变量,从而导致不好积分,所以一般都使用近似推断的方法来求解。
1.前向采样
在上图的例子中,图中的各个概率值是通过统计现有数据库的数据得到的结果,而我们计算的概率是右上角的部分,将其展开可以得到右边式子,然后我们的做法就不是再统计数据库中的(B=1,E=0,J=1)的数量和(E=0,J=1)的数量了。而是按照左图的概率开始采点:
通过采到的样本点,再统计(B=1,E=0,J=1)的数量和(E=0,J=1)的数量,相除得到最后的概率。可能有同学会好奇采样的概率是数据库统计概率,那我直接统计数据库不就行了。还真不一定,毕竟我们只用到数据库的一些边缘统计概率作为概率图的概率,而概率图得到P(B=1|E=0,J=1)和统计数据库得到的(B=1,E=0,J=1)的数量除以(E=0,J=1)的数量真不好说一样。
2.吉布斯采样
在实际任务中,比如上面的Earthquake的概率是很小的,可能用前向算法采到很多点都采不到E=1的点,这显然不利于我们计算的,毕竟会得到0的结果。于是有了吉布斯采样,其思想是我们可以固定某些变量,再去采其他点的值:
由于上图中要求E=1,M=1的条件下B=1的概率,于是我们就可以将E、M都固定为1。然后随机初始化一组数据(E、M保证为1):
不同于前向采样,每次都采一组(BEAJM),吉是一个一个采,比如现在要采B是什么,依据是前面最近的另外(EAJM)的数据:
根据B点的马尔科夫毯,列出B的条件概率公式,化简之后可以发现其结果(右下)(上面式子和文字写明了其化简过程,如果只记结果,就是右下红字所写部分):
比对两个概率值,B=0的概率更大。下一步是求E的值,因为固定,所以是1:
然后是A,同B的理,列出其马尔可夫毯,并计算A=1,A=0的概率:
计算得到A=1的概率更大,故采点A=1:(当然,也可以根据上面两个概率进行随机采点)
最后得到采样结果为:
然后按照正常的方法,认为一行就是一个样本点,统计具体要求的概率。
显然,吉布斯采样的优势是很大的:
六、实例模型
前面我们就说过,我们暂时没有技术通过实际数据去学习概率图的结构是怎么样的,于是人们都是假定数据服从某种模型,最出名的就是隐马尔可夫模型和条件随机场。这里重点讲解隐马尔可夫模型(HMM)。
1.HMM的定义
根据贝叶斯网络,我们可以列出所有结点的联合概率公式:
看上面的式子,可以将其分为三个部分,分别为p(y1),p(xi|yi),p(yi+1|yi),对应在图中就是,y1结点的概率,所有向下箭头边的概率,所有向右箭头边的概率。将这三个部分整合为三个矩阵,即:
在HMM中:
2.HMM的生成过程
有了一个HMM过程,我们就可以产生一系列的观察变量,其过程如下:
如果,每次产生的yi和xi都选概率最大的可能,那结果唯一,所以我们可以根据概率来采样,从而得到不同的结果。
3.HMM的三个基本问题
4.HMM的概率问题
由于是计算给定模型参数后计算实际数据x的概率,如果概率很低,要么说明这个数据x发生概率确实很小,要么说明我们的模型不好,不能反映实际情况。
其有两种方法来求解,直接计算法和前向后向算法。
直接计算法由于是指数级的计算复杂度,所以只适合问题规模小的HMM。其计算步骤如下:
前向后向算法:
(1)前向算法:
定义了一个前向概率,其计算的图中红框部分变量的联合概率。
我们先不管这个概率有啥用,先看看它的迭代,其分三个步骤:
通过前向算法,我们最后可以得到(x1-xn,yn)的联合概率公式,然后将yn积分掉,显然就是我们想要的结果P(x|λ):(其结果与直接求解法结果是一致的,但复杂度明显下降了)
(2)后向算法:
与前向算法一样,定义了一个后向概率,但它的形状不是像前向概率的L字型,是为了后面的前后向算法做的准备:
跟后向算法一样,其迭代也分三个步骤,分别是1乘上转移概率、2乘上观测概率、3积分掉上一个状态变量:
后向算法的算法过程如下:
(3)前后向算法
有了前向和后概率,我们可以将其整合:
相比于前向、后向算法,前向-后向算法更加全面,其不仅可以求P(x|λ)的概率,还可以求观察为x的情况下yt的情况:
其中变量为:
5.HMM的预测问题
上面所说的精确算法并非说其找到的状态是最优的,而是说其是确定的,而近似算法算出来的结果是不一定正确的。贪婪算法的思想是,一步一步求解yt,选择yt时总保证其当前的联合概率(即P(x1-xt,y1-yt))最大,其中x1-xt,y1-yt-1都是确定的,所以唯一变量是yt,十分好找。
维特比算法也是一个一个状态确定,但每次保留联合概率前n(一般为3)大的状态,直到最后才选择联合概率最大的那条路径。
近似算法如下:
6.HMM的学习问题
如果使用监督学习方法,那么该方法得到的模型是马尔可夫模型,如果是非监督学习方法得到的结果,那就是隐马尔科夫模型。辨别方法就是看状态值y是否被人为确定。
只需要知道分别用什么方法实现即可,就不用记怎么实现的了。
(1)监督学习方法:
(2)非监督学习方法:
七、本章小结
1.概率图中的有向图、无向图模型
2.概率图中的条件性独立如何判断
3.概率图如何进行学习和推断,特别是近似推断方法
4. 由于无法学习结构,人为假定的隐马尔科夫模型的相关理论和三个基本问题。