2.10概率图模型的学习
在给定一个关于随机向量X的数据样本集合S={x1,x2,…,xN}时,常常需要对X的概率分布进行建模。不妨假设S中的每个样本都是独立同分布的(independent and identically distributed,i.i.d),且都服从未知的真实联合概率分布P(X)。学习概率图模型的任务可以描述为:给定样本集合S,返回一个对P(X)逼近最好的概率图模型。这种类型的学习称为生成学习(generative learning),其目标是对数据的生成过程进行建模。一般说来,精确计算P*(X)几乎是不可能的,尤其是在可以利用的样本相对较少时。
贝叶斯网络的生成学习就是在给定网络结构和数据样本集S的条件下,对所定义概率分布中的局部参数Θ={θ1,θ2,…,θN}进行极大似然估计(maximumlikelihood estimation,或译为最大似然估计),其中相应概率分布表达为:
P(X)=∏Ni=1P(XiPa(Xi),θi)(2.101)
如果令Pai=Pa(Xi)和xPai=x(Pa(Xi)),那么对于独立同分布样本集S,贝叶斯网络的总体对数似然L(B;S)可以分解为单个样本对数似然(θi,S)的和,即:
L(B;S)=∑Nl=1∑Li=1logP(xlixlPai,θi)=∑Li=1(θi,S)(2.102)
其中(θi,S)又可以分解为局部条件概率的对数和:
(θi,S)=∑Nl=1logP(xlixlPai,θi)(2.103)
因此,在(θi,S)仅依赖于θi的条件下,最大化总体对数似然等价于分别通过最大化单个样本对数似然,对每个局部参数θi进行估计。否则,问题可能变得非常复杂。
马尔可夫网络M的生成学习就是在给定网络结构和数据样本集S={x1,…,xN}的条件下,对一个通过能量函数定义的概率分布族中的参数θ进行极大似然估计。如果用p(x)表示马尔可夫网络的概率分布,那么相应的对数似然函数如下:
L(M;S)=log∏Nl=1p(xlθ)=∑Nl=1logp(xlθ)(2.104)
如果S中的每个样本都是独立同分布的且都服从未知的真实概率分布q(x),那么最大化L(M;S)等价于最小化q和p之间的KL散度,即:
KL(qp)=∑q(x)logq(x)p(x)=∑q(x)logq(x)-∑q(x)logp(x)(2.105)
KL散度可以用来度量两个概率分布的差异,具有非对称性和非负性,并且当且仅当两个分布相同时值为0。如公式(2.105)所示,在最小化KL散度时,只有第二项依赖于需要优化的参数。
一般说来,对于马尔可夫网络的吉布斯分布,计算最优的极大似然参数θ几乎是不可能的,通常需要采用近似方法,如梯度上升(gradient ascent)[110]、梯度下降(gradient descent)[111]和变分学习(variational learning)[112]等方法。梯度上升(或下降)是近似计算函数极值的基本方法,变分学习则是一类在机器学习中近似计算积分或期望的常用方法。
除了生成学习之外,概率图模型的学习还包括结构学习和判别学习等内容。生成学习的根本目标是确定数据样本的真实概率分布。结构学习的根本目标是确定数据样本的概率图结构,主要方法有两种:基于约束的方法(constraintbased approach)[113]和基于打分的方法(scoringbased approach)[114]。判别学习的根本目标是确定数据样本的类别,但判别学习模型的出发点并不一定是概率图模型,主要方法包括:生成分类器(generative classifier)[115]、类别后验概率建模[116],以及支持向量机[117]和神经网络[118]等模型。这里不再一一赘述。
生成学习和判别学习的区别在于,生成学习得到的是联合概率模型P(X),而判别学习得到的是条件概率模型P(yX)。如果有足够表达能力的模型和有充足的训练数据,那么原则上通过生成方式学习和训练模型,可以得到最优的分类器。使用判别学习的原因在于,判别模型在解决分类问题时,不仅更简单、更直接,而且常常能够取得更好的效果。