一、概率图模型的特点及优势
概率图模型提供了一个描述框架,使我们能够将不同领域的知识抽象为概率模型,将各种应用中的问题都归结为计算概率模型里某些变量的概率分布,从而将知识表示和推理分离开来.模型的设计主要关心如何根据领域知识设计出反映问题本质的概率模型,同时兼顾有效推理的可行性,而推理算法的设计只需关心如何有效地在一般的或者特定的概率模型中进行推理。
其次,它能够评估未知量取值的可能性,对不同取值的概率给出量化的估计.这在涉及风险的决策系统中非常重要。
另外,它常常具有良好的复用性.例如,我们不需要为预测父亲和儿子患上某种家族遗传病的概率分别设计算法,只需一个关于基因和表现型的家族遗传路径的概率模型,就能处理关于遗传病风险的各种推理问题.
二、概率图模型的使用范围
概率图模型的推断和学习已广泛应用于机器学习、计算机视觉、自然语言处理、语音识别、专家系统、用户推荐、社交网络挖掘、生物信息学等研究领域的最新成果中,成为人工智能相关研究中不可或缺的一门技术.概率图模型的研究方兴未艾,而且应用范围和研究热度仍在继续增长.
例如,在计算机视觉应用中,人们可能感兴趣一个图像区域所表示的物体类别;在自然语言处理应用中,人们可能感兴趣一句汉语文本的语法分析结果;而在用户推荐应用中,人们可能感兴趣某用户对某产品的喜好程度.这些来自不同领域的问题都可以表示成概率模型中的推断问题,并得到统一的处理.
以上描述中,要计算感兴趣变量的条件概率,需要知道感兴趣变量及其相关变量包含可观测变量的联合分布或以可观测变量为条件的条件分布.一般情况下,设全体随机变量的集合为 S,感兴趣的变量集合为{X1 ,X2 ,…,Xn }=X⊂S,可观测变量集合为{O1 ,O2 ,…,Om }=O⊂S,其他变量的集合记为 Y=S\(X∪O),则生成式模型确定了联合分布P(X,Y,O),而判别式模型确定了条件分布P(X,Y|O).给定观测值,即O的一个赋值{o1 ,o2 ,…,om },在生成式模型中,我们需要使用概率求和规则消去Y中的变量,并重新归一化,得到条件概率分布 P(X|O),在判别式模型中,我们只需求和消去Y中的变量即可.
然而在实际的推断问题中,我们还要考虑到数据结构的表示开销和运算开销。因此,我们必须寻找更紧凑的表示概率分布的数据结构以及能够在其中有效运行的推断算法.
我们希望设计算法从已往的数据中学习得到模型的参数和结构.从更一般的角度来讲,学习问题可以看作是推断问题的一类特例:我们感兴趣的随机变量是模型的参数或结构.学习问题特有的困难在于:用于学习的训练样本通常是有限的,并且算法允许的训练时间也是有限的.当我们允许复杂的模型尝试从数据中估计联合分布的每一项概率时,我们将面对所谓的维数灾难.相对于呈指数增长的参数,样本量往往太少,以至于我们对真实分布的估计几乎必定有很大的误差.
三、概率图模型的表示
率图模型的表示刻画了模型的随机变量在变量层面的依赖关系,反映出问题的概率结构以及推理的难易程度,也为推理算法提供了可以操作的数据结构.
3.1 贝叶斯网络
对应于有向无环图的概率模型称为贝叶斯网络(如图1所示).图的每个顶点代表随机变量或随机向量,边代表变量间的条件相关关系,常常也被用于表示因果关系.对于任意一条边和它所连接的两个顶点 A→B,A 称为 B的父节点,B 称为 A 的子节点.贝叶斯网络中每个顶点 X 和它的父节点 U(X)表示一个条件分布 P(X|U(X)),称为一个因子.
贝叶斯网络中的独立性
在贝叶斯网络中 , 条件独立性可以直接根据图的结构判定 . 我们首先考虑 3 个变量之间的相互关系 . 由 X,Y,Z这 3 个变量构成的 X,Y 不直接相关的贝叶斯网络 ,X,Y 之间的关系有以下几种形式 :
1) X 到 Y 是成因路径 (X→Z→Y). 当且仅当 Z 未被观测时 ,X,Y 不相互影响 ( 即 X 的取值不影响 Y 的条件分布 , 反之亦然 ). 因此 ,X,Y 不相互独立 , 但给定 Z 时 ,X,Y 条件独立 .
2) X 到 Y 是证据路径 (X←Z←Y). 当且仅当 Z 未被观测时 ,X,Y 不相互影响 . 因此 ,X,Y 不相互独立 , 但给定 Z时 ,X,Y 条件独立 .
3) X,Y 有共同原因 (X←Z→Y). 当且仅当 Z 未被观测时 ,X,Y 不相互影响 . 因此 ,X,Y 不相互独立 , 但给定 Z 时 ,X,Y 条件独立 .
4) X,Y 有共同效果 (X→Z←Y). 当且仅当 Z 或 Z 的一个子代节点被观测时 ,X,Y 相互影响 . 因此 ,X,Y 相互独立 , 但给定 Z 或其子代节点时 ,X,Y 不相互独立 .
对于贝叶斯网络中的一条路径 X 1↔...↔ X n 和观测变量的子集 Z , 当 X 1 和 X n 的取值能够相互影响时 , 我们称路径 X 1↔...↔X n 是有效的 . 在一般情况下 , 我们有以下结论 : 给定 Z 时 ,X 1↔...↔ X n 是有效的当且仅当 :
1) 对该路径上的每个 V 字结构 X i−1 →X i ←X i+1 , 存在 X i 或其子代在 Z 中 ;
2) 路径上的其他任何节点都不在 Z 中
3.2马尔可夫网络
马尔可夫网络中的独立性情况比贝叶斯网络要简单。与之前定义类似,对马尔可夫网络中的一条路径X1 -…-Xn 和观测变量的子集 Z,当 X1和 Xn 的取值能够相互影响时,我们称路径 X1-…-Xn 是有效的。在一般情况下,我们有以下结论:给定 Z 时,X1-…-Xn是有效的,当且仅当路径上的其他任何节点都不在Z中。
3.3因子图
图模型的另一种常见表示是因子图[]。wikipedia上是这样定义因子图的:将一个具有多变量的全局函数因子分解,得到几个局部函数的乘积,以此为基础得到的一个双向图叫做因子图(Factor Graph)。在因子图 G=(X,F)中,我们规定存在两种顶点:随机变量和因子,随机变量如图2中的ABC,因子为矩形黑块。边是无向的,连接因子和它所包含的随机变量。因此,每个随机变量的邻居顶点是包含它的各个因子,而每个因子的邻居顶点是它的辖域内的各个随机变量。
因子图是一种比马尔可夫网络更精细的模型表示,例如在图2的因子图中,我们可以区分不同的分布究竟是定义为因子ΨAB ,ΨBC ,ΨAC 的乘积还是一个辖域为 A,B,C 的大因子ΨABC;而在马尔可夫网络中,它们有相同的表示而无法从图结构上进行区分。
从马尔可夫网络的特征和因子图的定义中容易推导,在因子图中设边集为E,变量Xi的马尔可夫网络是由B(Xi)={Xj:(Xj,α)∈E 且 (Xi,α)∈E 且 j≠i} 构成的变量集合。
因子图数据结构由于显式地表示出构造概率分布的因子,因此特别适合一类通过在变量与因子之间传递消息的推理算法的执行,所以它主要应用与推理的任务当中。包括微软的Infer.NET项目在内许多采用这类算法的推理系统都采用了因子图的表示。
当表示一个概率分布时:
3.4盘式记法、模板
盘式记法 (plate notation) 是一种常用的图模型的简化记法 , 考虑如下简单的概率模型 : 在一个装有白球和黑球的盒子里进行有放回抽样 ,n 次抽样的结果记为 X 1 ,…,X n , 盒子中白球的比例记为 θ , 则该概率模型可以采用标准的记法表示 , 也可以用盘式模型表示 ( 如图 3 所示 ). 在盘式模型中 , 我们用一个框 ( 称为盘 ) 圈住图模型中重复的部分 , 并在框内标注重复的次数。
盘式记法能够为我们表示和分析许多概率模型提供很大的方便 , 但它也有一定的局限性 . 例如 , 它无法表示盘内变量不同拷贝间的相关性 , 而这种相关性广泛出现于动态贝叶斯网络中 . 在动态贝叶斯网络中 , 概率模型符合 k 阶马尔可夫假设 , 因此 ,t 时刻的系统状态只与 [max(0,t−k)] 时刻的状态有关 . 为了简明地表示这类含有重复的基本结构的动态贝叶斯网络 , 我们可以使用称为 kBN 的模板 . 例如 , 图 4 展示了隐马尔可夫模型及其 2BN 模板记法。
四、概率图模型的推理
在本节中,我们介绍图模型推理所使用的一些重要算法。这些算法可大致分为 3 类 :
• 精确推理算法。能够计算查询变量的边缘分布或条件分布的精确值,但其计算复杂度随着图模型的树宽呈指数增长,因此适用范围有限。
• 基于优化的推理算法。将图模型的推断形式化为优化问题 , 通过松弛优化问题的约束条件或者调整优化的目标函数,算法能够在较低的时间复杂度下获得原问题的近似解;对于多数难以进行精确推理的图模型,对其变量进行抽样并不困难。
• 基于抽样的推理算法。试图产生所求边缘分布或条件分布的抽样 , 使用样本的经验分布来近似真实分布
从推理的目标来区分,有时我们希望计算目标变量的 ( 条件 ) 边缘分布,称为后验推理;有时我们希望计算目标变量 ( 集合 ) 最可能的 ( 联合 ) 赋值 ,称为最大后验推理。
4.1精确推理
图模型的精确推理算法实质是一类动态规划算法,它利用条件独立性导致的联合分布的因子化特征,压缩图模型变量之间传递的信息。
变量消去算法 [12] 是最直观且容易推导的精确推理算法 , 然而它却是其他更高级的精确推理算法的基础 . 考虑贝叶斯网络 ( 如图 1 所示 ) 所定义的联合分布 P(A,B,C,D,E), 我们如果观测到变量 E=e, 并且想要计算变量 C=c的条件概率 P(c|e), 则可以简单地写出:
简而言之 , 变量消去算法实际是利用了乘法对加法的分配律 , 将对多个变量的积的求和分解为对部分变量交替进行的求积与求和 . 变量消去算法的缺点在于 : 一次变量消去只能求出本次查询变量的条件分布 , 不同的查询将带来大量的重复计算 . 为实现一次计算、多次使用 , 就需要更加仔细地进行算法设计 . 为了保证算法的正确性 , 需要保证所有与求和变量有关的项都在求和符号内 , 这也是以下两种常用精确推理算法的理论基础。