概率图模型

机器学习领域内很多常见问题都涉及到对彼此相互独立的孤立数据点进行分类。比如:预测图像中的手写字符是 0 到 9 中的哪一个,预测一句话是高兴还是伤心等。

但很多问题都不在上述范围内,例如词性标注、实体识别等。词性标注中目标词的词性与上下文词的词性相关,实体识别中,目标实体与上下文语句相关。

引入

概率图模型(PGM/probabilistic graphical model)是一种用于学习这些带有依赖(dependency)的模型的强大框架。

概率图模型(或简称图模型)在形式上是由图结构组成的。图的每个节点(node)都关联了一个随机变量,而图的边(edge)则被用于编码这些随机变量之间的关系。

根据图是有向的还是无向的,我们可以将图的模式分为两大类——贝叶斯网络( Bayesian network)和马尔可夫网络(Markov networks)。

贝叶斯网络

学生网络

贝叶斯网络的一个典型案例是学生网络(student network),如下图所示:

Student_Network

描述了某个学生注册某个大学课程的设定。该图中有 5 个随机变量:

  • 课程的难度(Difficulty):可取两个值,0 表示低难度,1 表示高难度
  • 学生的智力水平(Intelligence):可取两个值,0 表示不聪明,1 表示聪明
  • 学生的评级(Grade):可取三个值,1 表示优,2 表示中,3 表示差
  • 学生的 SAT 成绩(SAT):可取两个值,0 表示低分,1 表示高分
  • 在完成该课程后学生从教授那里所得到的推荐信的质量(Letter):可取两个值,0 表示不好,1 表示很好

该图中的边编码了这些变量之间的依赖关系。

  • 学生的 Grade 取决于课程的 Difficulty 和学生的 Intelligence;
  • 而 Grade 又反过来决定了学生能否从教授那里得到一份好的 Letter;
  • 另外,学生的 Intelligence 除了会影响他们的 Grade,还会影响他们的 SAT 分数。

其中箭头的方向表示了因果关系——智力会影响成绩,但成绩不会影响智力。

而每个节点关联的表格,它们的正式名称是条件概率分布(CPD/conditional probability distribution)。

条件概率分布

课程难度和智力的CPD并不依赖于其它任何变量。这两个表格编码了这两个变量取值为 0 和 1 的概率。由于是概率分布,所以每个表格中的值的总和都必须为 1。

成绩的CPD,每一行都对应于其父节点(Intelligence)的取值,每一列对应于成绩可以取的值。每个单元格都有条件概率 p(SAT=s|Intelligence=i),也就是说:给定 Intelligence 的值为 i,则其为 SAT 的值为 s 的概率。

类似地,Letter 的 CPD 编码了条件概率 p(Letter=l|Grade=g)。因为 Grade 可以取 3 个值,所以这个表格有 3 行。

Grade 的 CPD ,学分评级有两个父节点,所以它的条件概率是这种形式:p(Grade=gDifficulty=d,SAT=s)p(Grade=g|Difficulty=d,SAT=s)

即当 Difficulty 为 d 且 SAT 为 s 时 Grade 为 g 的概率。

贝叶斯网络的一个基本要求是图必须是有向无环图(DAG/directed acyclic graph)

马尔可夫网络

malkov

为了简洁地说明,我们只探讨这个抽象的图,节点不与真实案例对应。边依旧表示节点变量之间的相互作用。

我们可以看到 A 和 B 彼此之间有直接的影响关系,而 A 和 C 之间则没有。

注意:马尔可夫网络可以有环如ABC构成一个环。

可能的用途

正如贝叶斯网络有 CPD 一样,马尔可夫网络也有用来整合节点之间的关系的表格。但是,这些表格和 CPD 之间有两个关键差异。

  1. 这些值不需要总和为 1,也就是说这个表格并没有定义一个概率分布。它只是告诉我们值更高的配置有更高的可能性。
  2. 其中没有条件关系。它与所涉及到的所有变量的联合分布成正比,这与 CPD 中的条件分布不同。

这样得到的表格被称为「因子(factor)」或「势函数(potential function)」,使用希腊字母φ 表示。

我们可以使用下面的势函数来描述变量 A、B 和 C 之间的关系,其中 C 是 A 和 B 的「软」异或(XOR),也就是说:如果 A 和 B 不一样,那么 C 很可能为 1;如果 A 和 B 一样,那么 C 很可能为 0:

img

一般而言,你要为图中的每个极大团(maximal clique)定义一个势函数。

图结构和表格就可以简洁地表示在这些随机变量上的联合概率分布。

现在你可能会有一个问题:为什么我们需要有向图,也需要无向图?原因是有些问题使用有向图表示会更加自然,比如上面提到的学生网络,有向图可以轻松描述变量之间的因果关系——学生的智力水平会影响 SAT 分数,但 SAT 分数不会影响智力水平(尽管它也许能反映学生的智力水平)。

而对于其它一些问题,比如图像,你可能需要将每个像素都表示成一个节点。我们知道相邻的像素互有影响,但像素之间并不存在因果关系;它们之间的相互作用是对称的。所以我们在这样的案例中使用无向图模型。

参考: