首发于 我不爱机器学习 公众号


[PRML]图模型-有向图模型_父节点




1 简介

概率在现代模式识别中起着核心作用。概率论可以用两个简单的方程来表示,它们分别对应着求和法则和乘积法则。因此,完全可以通过代数操作来建立和解决复杂的概率模型。

然而,使用概率分布的图解表示(称为概率图模型,probabilistic graphical models)来增强分析是非常有利的。它提供了几个有用的属性:


  • 提供了一种可视化概率模型结构的简单方法,并可用于设计和激发新模型。
  • 通过查看图,可以深入了解模型的属性,包括条件独立属性。
  • 复杂的计算需要在复杂的模型中执行推理和学习,可以用图形化操作来表示,其中隐含的数学表达式是隐式的。

​图由节点(nodes)(也称为顶点,vertices)通过链接(links)(也称为边或弧,edges or arcs)连接而成。​​在概率图形模型中,每个节点表示一个随机变量(或一组随机变量),链接表示这些变量之间的概率关系。

​这个图捕捉到所有随机变量的联合分布可以分解成因子的乘积(decomposed into a product of factors),每个因子只依赖于变量的一个子集。​

首先讨论贝叶斯网络(Bayesian networks),也称为有向图模型(directed graphical models),其中图的链接具有特定的方向性,用箭头表示。

另一类主要的图模型是马尔可夫随机场(Markov random fields),也称为无向图模型(undirected graphical models),其中的链接没有箭头,没有方向意义

​有向图用于表示随机变量之间的因果关系(causal relationships),而无向图更适合表示随机变量之间的软约束(soft constraints)。​

为了解决理问题,通常将有向图和无向图换为另一种称为因子图(factor graph)的表示形式,这样比较方便。

在本章中,我们将重点讨论图形模型在模式识别和机器学习中应用的关键方面。

2 贝叶斯网络

首先考虑任意的三个变量 a a a b b b c c c的联合分布 p ( a , b , c ) p (a,b,c) p(a,b,c)。根据概率的乘积法则,可以把联合分布写成这种形式:

p ( a , b , c ) = p ( c ∣ a , b ) p ( a , b )   ( 式 1 ) p ( a , b , c ) = p ( c ∣ a , b ) p ( b ∣ a ) p ( a )   ( 式 2 ) \begin{aligned} p(a,b,c)&=p(c|a,b)p(a,b) \ (式1)\\ p(a,b,c)&=p(c|a,b)p(b|a)p(a) \ (式2) \end{aligned} p(a,b,c)p(a,b,c)=p(ca,b)p(a,b) (1)=p(ca,b)p(ba)p(a) (2)

这种分解适用于联合分布的任何选择。现在用一个简单的图形模型来表示(式2)的右边:


  • 首先,为每个随机变量 b c 入一个节点,并将每个节点与右侧相应的条件分布相关联(式2)。
  • 然后,对于每个条件分布,从对应于分布所依赖的变量的节点向图添加定向链接(箭头)。因此,对于因子 p(ca,b),节点 a和节点 b到节点 c之间将有链接,而对于因子 p(a),将没有传入链接,结果如下图所示。如果有链接从节点 a到节点 b,则节点 a是节点b的父节点(parent node),节点 b叫子节点(child node)。

[PRML]图模型-有向图模型_有向图_02


该图表示三个变量 a a a b b b c c c的联合概率分布的有向图模型,对应于式2右边的分解。

注:式2左边是关于三个变量 a a a b b b c c c对称的,但右边不是。在式2进行分解时,我们隐式地选择了一个特定的顺序,即 a a a b b b c c c。若选择不同的顺序,将得到一个不同的分解,从而得到一个不同的图形表示。

现在对上面的图进行扩展,假设基于 K K K个变量的联合分布的概率为 p ( x 1 , . . . , x K ) p(x_1,...,x_K) p(x1,...,xK)。通过反复应用概率乘积法则,这个联合分布可以写成条件分布的乘积,每个变量对应一个条件分布:

p ( x 1 , . . . , x K ) = p ( x K ∣ x 1 , . . . , x K − 1 ) . . . p ( x 2 ∣ x 1 ) p ( x 1 )   ( 式 3 ) p(x_1,...,x_K)=p(x_K|x_1,...,x_{K-1})...p(x_2|x_1)p(x_1) \ (式3) p(x1,...,xK)=p(xKx1,...,xK1)...p(x2x1)p(x1) (3)

对于给定的 K K K,可以再次将其表示为一个有 K K K个节点的有向图,在式3右侧的每个条件分布都有一个节点,每个节点都有来自所有编号较低的节点的传入链接。我们说这个图是完全连通的,因为每一对节点之间都有一个链接。

目前为止,已经研究了通用的联合分布,它们的分解可以用全连通图(fully connected graphs)表示,适用于分布的任何选择。下面的图不是一个完全连通的图,因为从 x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 7 x_7 x7没有任何链接。



[PRML]图模型-有向图模型_父节点_03


该图描述了变量 x 1 , x 2 , . . . , x 7 x_1,x_2,...,x_7 x1,x2,...,x7的联合分布。联合分布的相应分解如式4

现在将上面的图用相应的联合分布的条件分布项的乘积表示,每个节点对应一个条件分布。每一个条件分布只对应图中有父节点的节点。7个变量的联合分布:

p ( x 1 ) p ( x 2 ) p ( x 3 ) p ( x 4 ∣ x 1 , x 2 , x 3 ) p ( x 5 ∣ x 1 , x 3 ) p ( x 6 ∣ x 4 ) p ( x 7 ∣ x 4 , x 5 )   ( 式 4 ) p(x_1)p(x_2)p(x_3)p(x_4|x_1,x_2,x_3)p(x_5|x_1,x_3)p(x_6|x_4)p(x_7|x_4,x_5) \ (式4) p(x1)p(x2)p(x3)p(x4x1,x2,x3)p(x5x1,x3)p(x6x4)p(x7x4,x5) (4)

现在我们可以用一般的术语来描述给定的有向图和变量相应分布之间的关系。由图定义的联合分布由图中所有节点的乘积给出,每个节点的条件分布取决于图中该节点的父节点对应的变量。因此,对于一个有 K K K个节点的图,其联合分布:

p ( x ) = ∏ k = 1 K p ( x k ∣ p a k )   ( 式 5 ) p(\mathbf{x})=\prod_{k=1}^Kp(x_k|pa_k) \ (式5) p(x)=k=1Kp(xkpak) (5)

p a k pa_k pak表示 x k x_k xk的父节点集合, x = { x 1 , . . . , x K } \mathbf{x}=\{x_1,...,x_K\} x={x1,...,xK}

这个方程表达了有向图模型的联合分布的因式分解性质。虽然我们认为每个节点都对应一个单独的变量,但我们同样可以将一组变量和向量值变量与一个图的节点关联起来。假设各个条件分布是标准化的,则很容易证明式5右侧的表示总是标准化的。

有向图必须考虑一个重要的约束即不存在有向循环。 换句话讲就是图不能有闭环即从一个节点沿着链接的箭头方向移动,最终可以回到起始节点。这种图又叫有向无环图(directed acyclic graphs, or DAGs)。​​这等价于节点间存在排序,因此没有从任何节点到任何编号较低的节点的链接。​​后面会给出说明。

证明:式5右侧的表示是标准化的。

对于式5,想要证明:

∑ x 1 ⋯ ∑ x K p ( x ) = ∑ x 1 ⋯ ∑ x K ∏ k = 1 K p ( x k ∣ p a k ) = 1 \sum_{x_1}\cdots \sum_{x_K}p(\mathbf{x})=\sum_{x_1}\cdots \sum_{x_K}\prod_{k=1}^Kp(x_k|pa_k)=1 x1xKp(x)=x1xKk=1Kp(xkpak)=1

假设图中的节点已经编号, x 1 x_1 x1是根节点,并且没有箭头从编号较高的节点指向编号较低的节点。因此可以在节点上以相反的顺序边缘化,从 x K x_K xK开始:

∑ x 1 ⋯ ∑ x K p ( x ) = ∑ x 1 ⋯ ∑ x K p ( x K ∣ p a K ) ∏ k = 1 K − 1 p ( x k ∣ p a k ) = ∑ x 1 ⋯ ∑ x K − 1 ∏ k = 1 K − 1 p ( x k ∣ p a k ) \begin{aligned} \sum_{x_1}\cdots \sum_{x_K}p(\mathbf{x})&=\sum_{x_1}\cdots \sum_{x_K}p(x_K|pa_K) \prod_{k=1}^{K-1}p(x_k|pa_k)\\ &=\sum_{x_1}\cdots \sum_{x_{K-1}}\prod_{k=1}^{K-1}p(x_k|pa_k) \end{aligned} x1xKp(x)=x1xKp(xKpaK)k=1K1p(xkpak)=x1xK1k=1K1p(xkpak)

因为每个条件分布都被假定为标准化的且其他变量不依赖 x K x_K xK,则重复这个过程 K − 2 K-2 K2次,最终得到:

∑ x 1 p ( x 1 ∣ ∅ ) = 1 \sum_{x_1}p(x_1|\varnothing) =1 x1p(x1)=1

证明:在有向图中不存在有向循环,即存在节点的有序编号,对于每个节点,都没有到编号较低节点的链接。

考虑一个有向图,其中图的节点被编号,没有从一个节点到编号较低的节点的边。如果图中存在一个有向循环,那么属于这个有向循环的节点子集也必须满足相同的编号属性。如果我们沿着边的方向遍历循环,节点数不能是单调递增的,因为我们必须回到起始节点。因此,这个循环不可能是一个有向循环。

3 应用

为了说明如何使用有向图来描述概率分布,我们考虑了​​贝叶斯多项式回归(2.2部分)​​、生成模型、离散变量和线性高斯模型。

3.1 多项式回归

模型中的随机变量为多项式系数 w \mathbf{w} w向量,观测数据 t = ( t 1 , . . . , t N ) T \mathbf{t}=(t_1,...,t_N)^T t=(t1,...,tN)T。此外,该模型还包含输入数据 x = ( x 1 , . . . , x N ) \mathbf{x}=(x_1,...,x_N) x=(x1,...,xN),噪声方差 σ 2 \sigma^2 σ2,超参数 α \alpha α(表示 w \mathbf{w} w的高斯先验精度),所有这些都是模型的参数,而不是随机变量。

现在只关注随机变量,我们看到联合分布是由先验 p ( w ) p(\mathbf{w}) p(w) N N N个条件分布 p ( t n ∣ w ) p(t_n|\mathbf{w}) p(tnw)的乘积给出的( n = 1 , . . . , N n=1,...,N n=1,...,N),因此:

p ( t , w ) = p ( w ) ∏ n = 1 N p ( t n ∣ w )   ( 式 6 ) p(\mathbf{t},\mathbf{w})=p(\mathbf{w})\prod_{n=1}^Np(t_n|\mathbf{w}) \ (式6) p(t,w)=p(w)n=1Np(tnw) (6)

该联合分布可以用如下图模型表示:



[PRML]图模型-有向图模型_有向图_04


上图是贝叶斯多项式回归模型相对应的联合分布(式6)的有向图模型。

当我们处理更复杂的模型时,会发现显示地写出 t 1 , … , t N t_1,…, t_N t1tN是不方便的。因此,我们引入了一种图形表示法,这种表示法允许这样的多个节点更紧凑地表达。在这种表示法中,我们绘制一个具代表性的节点 t n t_n tn,然后用一个框(称为板,plate)包围它,用 N N N标记,表示有 N N N个这样的节点。以这种方式重写上面的图形,我们得到了如下所示的图形。



[PRML]图模型-有向图模型_概率分布_05


我们有时会发现,将模型的参数及其随机变量显式化是有帮助的。在本例中,式6变为:

p ( t , w ∣ x , α , σ 2 ) = p ( w ∣ α ) ∏ n = 1 N p ( t n ∣ w , n , σ 2 ) p(\mathbf{t},\mathbf{w}|\mathbf{x},\alpha,\sigma^2)=p(\mathbf{w}|\alpha)\prod_{n=1}^Np(t_n|\mathbf{w},_n,\sigma^2) p(t,wx,α,σ2)=p(wα)n=1Np(tnw,n,σ2)

相应的,我们可以让 x , α \mathbf{x},\alpha x,α在图表示中显示。​​随机变量用开放的圆表示(open circles),确定性参数用小的实圆表示(solid circles)​​,如下图所示:



[PRML]图模型-有向图模型_有向图_06


当我们将图模型应用于机器学习或模式识别中的问题时,我们通常会将一些随机变量设置为特定的观察值,如多项式曲线拟合中训练集中的变量 { t n } \{t_n\} {tn}

​在图形模型中,我们将通过给相应的节点着色来表示这些观察到的变量。​​因此,观察到的变量 { t n } \{t_n\} {tn}所对应的图如下图所示。

注意, w \mathbf{w} w的值没有被观察到,因此 w \mathbf{w} w是一个潜变量(latent variable),也称为隐变量(hidden variable)。这些变量在许多概率模型中起着至关重要的作用。



[PRML]图模型-有向图模型_机器学习_07


通过观察值 { t n } \{t_n\} {tn},我们可以评估多项式系数 w \mathbf{w} w的后验分布:

p ( w ∣ T ) ∝ ∏ n = 1 N p ( t n ∣ w )   ( 式 7 ) p(\mathbf{w}|\mathbf{T}) \propto \prod_{n=1}^Np(t_n|\mathbf{w}) \ (式7) p(wT)n=1Np(tnw) (7)

为了保持符号的整洁,忽略了确定性参数(deterministic parameters)。

一般来说,像 w \mathbf{w} w这样的模型参数本身没什么直接的意义,因为我们的最终目标是预测新的输入值。

假设我们给出一个新的输入值 x ^ \hat{x} x^,希望找到 t ^ \hat{t} t^在给定观测数据下的相应概率分布。用图模型描述该问题,如下图所示。该模型中所有随机变量在确定参数的条件下,对应的联合分布为:

p ( t ^ , t , w ∣ x ^ , x , α , σ 2 ) = [ ∏ n = 1 N p ( t n ∣ x n , w , σ 2 ) ] p ( w ∣ α ) p ( t ^ ∣ x ^ , w , σ 2 )   ( 式 8 ) p(\hat{t},\mathbf{t},\mathbf{w}|\hat{x},\mathbf{x},\alpha,\sigma^2)=[\prod_{n=1}^Np(t_n|x_n,\mathbf{w},\sigma^2)]p(\mathbf{w}|\alpha)p(\hat{t}|\hat{x},\mathbf{w},\sigma^2) \ (式8) p(t^,t,wx^,x,α,σ2)=[n=1Np(tnxn,w,σ2)]p(wα)p(t^x^,w,σ2) (8)



[PRML]图模型-有向图模型_父节点_08


t ^ \hat{t} t^的预测分布已经获取,然后根据概率的和规则,对模型参数 w \mathbf{w} w进行积分:

p ( t ^ ∣ x ^ , x , t , α , σ 2 ) ∝ ∫ p ( t ^ , t , w ∣ x ^ , x , α , σ 2 ) d w p(\hat{t}|\hat{x},\mathbf{x},\mathbf{t},\alpha,\sigma^2)\propto \int p(\hat{t},\mathbf{t},\mathbf{w}|\hat{x},\mathbf{x},\alpha,\sigma^2)d\mathbf{w} p(t^x^,x,t,α,σ2)p(t^,t,wx^,x,α,σ2)dw

在这里,我们隐式地将 t \mathbf{t} t中的随机变量设置为数据集中观察到的特定值。

3.2 生成模型

在多数情况下,我们希望在给定的概率分布中抽取样本。考虑 K K K个变量的联合分布 p ( x 1 , . . . , x K ) p(x_1,...,x_K) p(x1,...,xK),根据式5对有向无环图进行因式分解。假设变量的顺序是这样的:没有从任何节点到任何编号较低的节点的链接,换句话说,每个节点的编号都比其父节点的编号高。

我们的目标是抽取来自联合分布的一个样本 x ^ 1 , . . . , x ^ K \hat{x}_1,...,\hat{x}_K x^1,...,x^K


  • 首先从编号最低的节点开始,抽取来自分布 p(x1)的一个样本 x^1
  • 然后,按顺序遍历每个节点。对于节点 n,我们从条件分布 p(xnpan)中抽取一个样本,其中父变量被设置为它们的采样值。

注意:在每个阶段,这些父值总是可用的,因为它们对应于已经被采样的编号较低的节点。

一旦我们对最终变量 x K x_K xK进行了采样,我们就实现了从联合分布中获得样本的目标。

为了从相应变量子集的某个边际分布中获得样本,我们只需取所需节点的抽样值,而忽略其余节点的抽样值。如要从分布 p ( x 2 , x 4 ) p(x_2,x_4) p(x2,x4)中抽取样本,我们可以从全联合分布中抽样,然后保留 x ^ 2 , x ^ 4 \hat{x}_2,\hat{x}_4 x^2,x^4的值,丢弃剩余的值 { x ^ j ≠ 2 , 4 } \{\hat{x}_{j \neq 2,4}\} {x^j=2,4}

​在概率模型的实际应用中,图的编号较高的变量即终端节点用来表示观测值,编号较低的节点表示潜在变量。​​潜在变量的主要作用是使观察到的变量的复杂分布能够用由简单的(典型的指数族)条件分布构建的模型来表示。

我们可以把这些模型解释为表示观测数据产生的过程。如一个对象识别任务,其中每个观察到的数据点对应于其中一个对象的图像(包含像素强度向量)。在这种情况下,潜在变量可能被解释为对象的位置和方向。给定一个特定的观察图像,我们的目标是找到物体的后验分布,并对所有可能的位置和方向进行积分。我们可以使用下图来表示这个问题。



[PRML]图模型-有向图模型_父节点_09


上图是一种图形化的模型,表示创建对象图像的过程,其中对象的标识(离散变量)和该对象的位置和方向(连续变量)具有独立的先验概率。图像(像素强度的矢量)的概率分布依赖于对象的身份以及它的位置和方向。

图模型捕获了产生观测数据的因果过程(causal process)。因此,这样的模型通常被称为生成模型。相比之下,多项式回归图模型不具有可生性,因为与输入变量 x x x没有关联的概率分布,因此不可能从该模型中生成合成数据点。我们可以通过引入一个合适的先验分布 p ( x ) p(x) p(x),以一个更复杂的模型为代价,使其生成。

然而,概率模型中的隐藏变量不需要有任何明确的物理解释,但可以简单地引入,以允许用更简单的组件构造更复杂的联合分布。

​在这两种情况下,抽样技术应用于生成模型模拟观测数据的创建,并因此产生幻想数据的概率分布(如果模型是现实的完美表述)将与观测数据是相同的。​

在实践中,从一个生成模型中生成合成的观察结果可以证明该模型所表示的概率分布的形式方面的理解是有用的。

3.3 离散变量

如果我们选择有向图中的每个父子对之间的关系作为共轭关系,那么这样的模型具有特别好的属性。

有两种情况特别值得注意,一种是父节点和子节点分别对应离散变量,另一种是分别对应高斯变量。因为在这两种情况下,可以对关系进行层次扩展,构造任意复杂的有向无环图。

我们从研究离散情况开始。

对于有 K K K个可能状态的单个离散变量 x \mathbf{x} x的概率分布 p ( x ∣ μ ) p(\mathbf{x}|\mu) p(xμ)

p ( x ∣ μ ) = ∏ k = 1 K μ k x k   ( 式 9 ) p(\mathbf{x}|\mu)=\prod_{k=1}^K\mu_k^{x_k} \ (式9) p(xμ)=k=1Kμkxk (9)

是由参数 μ = ( μ 1 , . . . , μ K ) T \mu=(\mu_1,...,\mu_K)^T μ=(μ1,...,μK)T控制。由于约束 ∑ k μ k = 1 \sum_k\mu_k=1 kμk=1,因此定义分布时只有 K − 1 K−1 K1 μ k \mu_k μk需要指定。

现在假设我们有两个离散变量, x 1 \mathbf{x_1} x1 x 2 \mathbf{x_2} x2,每一个都有 K K K种状态,我们希望对它们的联合分布建模。

我们用参数 μ k l \mu_{kl} μkl表示观察 x 1 k = 1 x_{1k}=1 x1k=1 x 2 l = 1 x_{2l}=1 x2l=1的概率,其中 x 1 k x_{1k} x1k表示 x 1 x_1 x1的第 k k k个分量, x 2 l x_{2l} x2l也是如此。联合分布可以写成:

p ( x 1 , x 2 ∣ μ ) = ∏ k = 1 K ∏ l = 1 K μ k l x 1 k x 2 l p(\mathbf{x_1},\mathbf{x_2}|\mu)=\prod_{k=1}^K\prod_{l=1}^K\mu_{kl}^{x_{1k}x_{2l}} p(x1,x2μ)=k=1Kl=1Kμklx1kx2l

因为参数 μ k l \mu_{kl} μkl受到约束 ∑ k ∑ l μ k l = 1 \sum_k\sum_l\mu_{kl}=1 klμkl=1,这个分布由 K 2 − 1 K^2-1 K21个参数控制。很容易看出, M M M个变量的任意联合帆布,必须指定的参数总数是 K M − 1 K^M-1 KM1,因此随着变量数 M M M的增加呈指数增长

利用乘积法则,我们可以将联合分布 p ( x 1 , x 2 ) p(\mathbf{x_1},\mathbf{x_2}) p(x1,x2)分解成 p ( x 2 ∣ x 1 ) p ( x 1 ) p(\mathbf{x_2}|\mathbf{x_1})p(\mathbf{x_1}) p(x2x1)p(x1)。其对应于一个双节点图,如下图 ( a ) (a) (a)所示,有一条从 x 1 \mathbf{x_1} x1节点到 x 2 \mathbf{x_2} x2节点的链接。

边缘分布 p ( x 1 ) p(\mathbf{x_1}) p(x1) K − 1 K-1 K1个参数控制。相似的,对于 x 1 \mathbf{x_1} x1 K K K个可能状态的每一个,条件分布 p ( x 2 ∣ x 1 ) p(\mathbf{x_2}|\mathbf{x_1}) p(x2x1)也需要指定 K − 1 K-1 K1个参数。因此,在联合分布中必须指定的参数总数是 ( K − 1 ) + K ( K − 1 ) = K 2 − 1 (K−1)+K(K−1)=K^2-1 (K1)+K(K1)=K21



[PRML]图模型-有向图模型_概率分布_10


现在假设变量 x 1 \mathbf{x_1} x1 x 2 \mathbf{x_2} x2是独立的,对应于上图 ( b ) (b) (b)所示的图模型。每个变量都可以用一个单独的多项式分布来描述,参数总数是 2 ( K − 1 ) 2(K-1) 2(K1)。对于 M M M个独立离散变量的分布,每个变量有 K K K个状态,则参数总数是 M ( K − 1 ) M(K-1) M(K1),因此参数的总数随变量的个数线性增长

从图形的角度来看,我们通过删除图中的链接减少了参数的数量,代价是限制了分布的类别。

一般情况,如果我们有 M M M个离散变量 x 1 , . . . , x M \mathbf{x_1},...,\mathbf{x_M} x1,...,xM,可以用一个有向图对联合分布建模,每个节点对应一个变量。每个节点的条件分布由一组非负参数给出,这些参数受归一化约束。如果图是完全连通的那么我们就得到了一个具有 K M − 1 K^M-1 KM1参数的完全一般分布,而如果图中没有链接那么联合分布就分解成边缘分布的乘积,参数的总数就是 M ( K − 1 ) M(K-1) M(K1)

具有中间连通性的图允许比完全因式分解的图更一般的分布,同时比一般联合分布需要更少的参数。作为一个例子,考虑下图所示的节点链。边际分布 p ( x 1 ) p(\mathbf{x_1}) p(x1)需要 K − 1 K-1 K1个参数,对于 M − 1 M-1 M1个条件分布的每一个 p ( x i ∣ x i − 1 ) p(\mathbf{x_i}|\mathbf{x_{i-1}}) p(xixi1)需要 K ( K − 1 ) K(K-1) K(K1)个参数, i = 2 , . . . , M i=2,...,M i=2,...,M。因此参数总数为 K − 1 + ( M − 1 ) K ( K − 1 ) K-1+(M-1)K(K-1) K1+(M1)K(K1),其是 K K K的二次函数,并随着链的长度 M M M线性(而不是指数)增长。



[PRML]图模型-有向图模型_父节点_11


​另一种减少模型中独立参数数量的方法是共享参数(sharing parameters)(也称为绑定参数,tying of parameters)。​​例如在上图链的例子中,我们可以安排所有的条件分布 p ( x i ∣ x i − 1 ) p(\mathbf{x_i}|\mathbf{x_{i-1}}) p(xixi1),对于 i = 2 , . . . , M i=2,...,M i=2,...,M由同一组 K ( K − 1 ) K(K-1) K(K1)个参数控制。连同控制 x 1 \mathbf{x_1} x1分布的 K − 1 K-1 K1个参数。为了定义联合分布,则需要指定 K 2 − 1 K^2-1 K21个参数。

可以通过引入参数的Dirichlet priors,将离散变量上的图化为贝叶斯模型。从图形化的角度来看,每个节点都需要一个额外的父节点,其表示与相应的离散节点相关联的参数上的Dirichlet分布,下图的链模型说明了这一点。



[PRML]图模型-有向图模型_父节点_12


在相应的模型中,我们绑定了控制条件分布 p ( x i ∣ x i − 1 ) p(\mathbf{x_i}|\mathbf{x_{i-1}}) p(xixi1)的参数, i = 2 , . . . , M i=2,...,M i=2,...,M,如下图所示。



[PRML]图模型-有向图模型_机器学习_13


​另一种控制离散变量模型中参数数量指数增长的方法是对条件分布使用参数化模型,而不是使用条件概率值的完整表。​​如下图所示,其中所有节点都表示二进制变量。每个父变量 x i x_i xi都由一个参数控制 μ i \mu_i μi控制,其表示概率 p ( x i = 1 ) p(x_i=1) p(xi=1),为父节点总共提供 M M M个参数。



[PRML]图模型-有向图模型_概率分布_14


但是条件分布 p ( y ∣ x 1 , . . . , x M ) p(y|x_1,...,x_M) p(yx1,...,xM)需要 2 M 2^M 2M个参数,表示父变量的 2 M 2^M 2M个可能设置中的每一个的概率 p ( y = 1 ) p(y=1) p(y=1)。因此,一般来说指定这个条件分布所需的参数数量将随 M M M呈指数增长。我们可以通过使用逻辑方程作用于父变量的线性组合得到一个更简洁的条件分布形式:

p ( y = 1 ∣ x 1 , . . . , x M ) = σ ( w 0 + ∑ i = 1 M w i x i ) = σ ( w T x )   ( 式 10 ) p(y=1|x_1,...,x_M)=\sigma(w_0+\sum_{i=1}^Mw_ix_i)=\sigma(\mathbf{w}^T\mathbf{x}) \ (式10) p(y=1x1,...,xM)=σ(w0+i=1Mwixi)=σ(wTx) (10)

上式中, σ ( a ) = ( 1 + e x p ( − a ) ) − 1 \sigma(a)=(1+exp(-a))^{-1} σ(a)=(1+exp(a))1是逻辑方程, x = ( x 0 , x 1 , . . . , x M ) T \mathbf{x}=(x_0,x_1,...,x_M)^T x=(x0,x1,...,xM)T ( M + 1 ) (M+1) (M+1)维的向量,该向量表示父节点状态以及扩增的一个附加变量 x 0 x_0 x0,其值固定为1。 w = ( w 0 , w 1 , . . . , w M ) T \mathbf{w}=(w_0,w_1,...,w_M)^T w=(w0,w1,...,wM)T M + 1 M+1 M+1个参数的向量。在这个意义上,它类似于多元高斯分布中协方差矩阵(例如对角矩阵)的限制性形式的选择。

3.4 线性高斯模型

通过前面我们了解了如何通过将变量表示为有向无环图中的节点来构造一组离散变量的联合概率分布。接下来,我们看一下多元高斯函数是如何表示成一个有向图,其对应于一个线性高斯模型的分量变量。

考虑 D D D个变量上的任意有向无环图,其中节点 i i i表示具有高斯分布的单个连续随机变量 x i x_i xi。该分布的均值取为节点 i i i的父节点 p a i pa_i pai状态的线性组合:

p ( x i ∣ p a i ) = N ( x i ∣ ∑ j ∈ p a i w i j x j + b i , v i )   ( 式 11 ) p(x_i|pa_i)=\mathcal{N}{\Large{(}}x_i {\Large{|}}\sum_{j\in pa_i}w_{ij}x_j+b_i,v_i{\Large{)}} \ (式11) p(xipai)=N(xijpaiwijxj+bi,vi) (11)

其中 w i j w_{ij} wij b i b_i bi是控制均值的参数, v i v_i vi x i x_i xi的条件分布的方差。联合分布的对数是这些条件对图中所有节点的乘积的对数,因此采用这种形式:

ln ⁡ p ( x ) = ∑ i = 1 D ln ⁡ p ( x i ∣ p a i )   ( 式 12 ) = − ∑ i = 1 D 1 2 v i ( x i − ∑ j ∈ p a i w i j x j − b i ) 2 + c o n s t   ( 式 13 ) \begin{aligned} \ln p(\mathbf{x})&=\sum_{i=1}^D\ln p(x_i|pa_i) \ (式12)\\ &=-\sum_{i=1}^D\frac{1}{2v_i}(x_i-\sum_{j\in pa_i}w_{ij}x_j-b_i)^2+const \ (式13) \end{aligned} lnp(x)=i=1Dlnp(xipai) (12)=i=1D2vi1(xijpaiwijxjbi)2+const (13)

x = ( x 1 , . . . , x D ) T \mathbf{x}=(x_1,...,x_D)^T x=(x1,...,xD)T c o n s t const const表示与 x \mathbf{x} x无关的项。上式是 x \mathbf{x} x分量的二次函数,因此联合分布 p ( x ) p(\mathbf{x}) p(x)是一个多元高斯函数。

我们可以递归地确定联合分布的均值和协方差。每个变量 x i x_i xi(取决于其父变量的状态)的形式为高斯分布(式11):

x i = ∑ j ∈ p a i w i j x j + b i + v i ϵ i   ( 式 14 ) x_i=\sum_{j\in pa_i}w_{ij}x_j+b_i+\sqrt{v_i}\epsilon_i \ (式14) xi=jpaiwijxj+bi+vi ϵi (14)

ϵ i \epsilon_i ϵi是均值为0,方差为1的高斯随机变量,满足 E [ ϵ i ] = 0 E[\epsilon_i]=0 E[ϵi]=0 E [ ϵ i ϵ j ] = I i j E[\epsilon_i\epsilon_j]=I_{ij} E[ϵiϵj]=Iij I i j I_{ij} Iij是单位矩阵的第 i , j i,j i,j个元素。

式14的期望:

E [ x i ] = ∑ j ∈ p a i w i j E [ x j ] + b i   ( 式 15 ) E[x_i]=\sum_{j\in pa_i}w_{ij}E[x_j]+b_i \ (式15) E[xi]=jpaiwijE[xj]+bi (15)

因此,我们可以找到 E [ x ] = ( E [ x 1 ] , . . . , E [ x D ] ) T E[\mathbf{x}]=(E[x_1],...,E[x_D])^T E[x]=(E[x1],...,E[xD])T的成分通过从编号最低的节点开始并在图中递归地工作(这里我们再次假设节点编号是这样的,即每个节点的编号都比其父节点的编号高)。同样地,我们可以使用式14式15以递归关系的形式得到 p ( x ) p(\mathbf{x}) p(x)的协方差矩阵的 i , j i, j i,j元素:

c o v [ x i , x j ] = E [ ( x i − E [ x i ] ) ( x j − E [ x j ] ) ] = E [ ( x i − E [ x i ] ) { ∑ k ∈ p a j w j k ( x k − E [ x k ] ) + v j ϵ j } ] = ∑ k ∈ p a j w j k c o v [ x i , x k ] + I i j v j   ( 式 16 ) \begin{aligned} cov[x_i,x_j]&=E[(x_i-E[x_i])(x_j-E[x_j])]\\ &=E{\Huge{[}}(x_i-E[x_i]){\Huge{\{}} \sum_{k\in pa_j}w_{jk}(x_k-E[x_k])+\sqrt{v_j}\epsilon_j{\Huge{\}}}{\Huge{]}}\\ &= \sum_{k\in pa_j}w_{jk}cov[x_i,x_k]+I_{ij}v_j \ (式16) \end{aligned} cov[xi,xj]=E[(xiE[xi])(xjE[xj])]=E[(xiE[xi]){kpajwjk(xkE[xk])+vj ϵj}]=kpajwjkcov[xi,xk]+Iijvj (16)

因此,协方差同样可以从编号最低的节点开始递归计算。

现在考虑两个极端的情况:


  • 首先,假设图中没有链接,因此图中包含 D个孤立的节点。在这种情况下,没有参数 wij,只有 D个参数 bi D个参数 vi。从递归关系式15式16可以看出, p(x)的均值由 (b1,,bD)T和对角线协方差矩阵 diag(v1,...,vD)给出。联合分布有一组2D参数,表示一组独立的 D个单变量高斯分布。
  • 现在考虑一个全连通图,其中每个节点都有编号较低的节点作为父节点。矩阵 wij在第 i行有 i1个元素,因此是一个下三角矩阵(在主对角线上没有元素)。参数 wij的总数是通过 D×D矩阵的元素数量 D2,减去 D占主对角线上的缺失元素,然后除以2获得。因为矩阵只有对角线以下的元素,总共有 D(D1)/2个。因此,协方差矩阵中独立参数 {wij} {vi}的总数为 D(D+1)/2,对应于一般对称协方差矩阵(general symmetric covariance matrix)。

具有一定中间复杂度的图对应于带有部分约束的协方差矩阵的联合高斯分布。以下图为例,它在变量 x 1 x_1 x1 x 3 x_3 x3之间缺少一个链接。利用递归关系式15式16,我们可以看到联合分布的均值和协方差:

μ = ( b 1 , b 2 + w 21 b 1 , b 3 + w 32 b 2 + w 32 w 21 b 1 ) T   ( 式 17 ) \mu=(b_1,b_2+w_{21}b_1,b_3+w_{32}b_2+w_{32}w_{21}b_1)^T \ (式17) μ=(b1,b2+w21b1,b3+w32b2+w32w21b1)T (17)

Σ = ( v 1 w 21 v 1 w 32 w 21 v 1 w 21 v 1 v 2 + w 21 2 v 1 w 32 ( v 2 + w 21 2 v 1 ) ) w 32 w 21 v 1 w 32 ( v 2 + w 21 2 v 1 ) v 3 + w 32 2 ( v 2 + w 21 2 v 1 ) )   ( 式 18 ) \Sigma=\begin{pmatrix} v_1 &w_{21}v_1 &w_{32}w_{21}v_1 \\ w_{21}v_1&v_2+w_{21}^2v_1 &w_{32}(v_2+w_{21}^2v_1)) \\ w_{32}w_{21}v_1 &w_{32}(v_2+w_{21}^2v_1) &v_3+w_{32}^2(v_2+w_{21}^2v_1) \end{pmatrix}\ (式18) Σ=v1w21v1w32w21v1w21v1v2+w212v1w32(v2+w212v1)w32w21v1w32(v2+w212v1))v3+w322(v2+w212v1) (18)



[PRML]图模型-有向图模型_机器学习_15


式17式18导:‘

根据式11式15,均值 μ \mu μ

μ 1 = Σ j ∈ ∅ w 1 j E [ x j ] + b 1 = b 1 μ 2 = Σ j ∈ { x 1 } w 2 j E [ x j ] + b 2 = w 21 b 1 + b 2 μ 3 = Σ j ∈ { x 2 } w 3 j E [ x j ] + b 3 = w 32 ( w 21 b 1 + b 2 ) + b 3 \begin{aligned} \mu_1&=\Sigma_{j\in \varnothing}w_{1j}E[x_j]+b_1=b_1\\ \mu_2&=\Sigma_{j\in \{x_1\}}w_{2j}E[x_j]+b_2=w_{21}b_1+b_2\\ \mu_3&=\Sigma_{j\in \{x_2\}}w_{3j}E[x_j]+b_3=w_{32}(w_{21}b_1+b_2)+b_3 \end{aligned} μ1μ2μ3=Σjw1jE[xj]+b1=b1=Σj{x1}w2jE[xj]+b2=w21b1+b2=Σj{x2}w3jE[xj]+b3=w32(w21b1+b2)+b3

根据式11式16,协方差 Σ \Sigma Σ

c o v [ x 1 , x 1 ] = Σ k ∈ ∅ w 1 j c o v [ x 1 , x k ] + I 11 v 1 = v 1 c o v [ x 1 , x 2 ] = Σ k ∈ { x 1 } w 2 j c o v [ x 1 , x k ] + I 12 v 2 = w 21 v 1 c o v [ x 1 , x 3 ] = Σ j ∈ { x 2 } w 3 j c o v [ x 1 , x k ] + I 13 v 3 = w 32 w 21 v 1 c o v [ x 2 , x 2 ] = Σ j ∈ { x 1 } w 2 j c o v [ x 2 , x k ] + I 22 v 2 = w 21 2 v 1 + v 2 c o v [ x 2 , x 3 ] = Σ j ∈ { x 2 } w 3 j c o v [ x 2 , x k ] + I 23 v 3 = w 32 ( w 21 2 v 1 + v 2 ) c o v [ x 3 , x 3 ] = Σ j ∈ { x 2 } w 3 j c o v [ x 3 , x k ] + I 33 v 3 = w 32 ( w 21 2 v 1 + v 2 ) + v 3 \begin{aligned} cov[x_1,x_1]&=\Sigma_{k\in \varnothing}w_{1j}cov[x_1,x_k]+I_{11}v_1=v_1\\ cov[x_1,x_2]&=\Sigma_{k\in \{x_1\}}w_{2j}cov[x_1,x_k]+I_{12}v_2=w_{21}v_1\\ cov[x_1,x_3]&=\Sigma_{j\in \{x_2\}}w_{3j}cov[x_1,x_k]+I_{13}v_3=w_{32}w_{21}v_1\\ cov[x_2,x_2]&=\Sigma_{j\in \{x_1\}}w_{2j}cov[x_2,x_k]+I_{22}v_2=w_{21}^2v_1+v_2\\ cov[x_2,x_3]&=\Sigma_{j\in \{x_2\}}w_{3j}cov[x_2,x_k]+I_{23}v_3=w_{32}(w_{21}^2v_1+v_2)\\ cov[x_3,x_3]&=\Sigma_{j\in \{x_2\}}w_{3j}cov[x_3,x_k]+I_{33}v_3=w_{32}(w_{21}^2v_1+v_2)+v_3 \end{aligned} cov[x1,x1]cov[x1,x2]cov[x1,x3]cov[x2,x2]cov[x2,x3]cov[x3,x3]=Σkw1jcov[x1,xk]+I11v1=v1=Σk{x1}w2jcov[x1,xk]+I12v2=w21v1=Σj{x2}w3jcov[x1,xk]+I13v3=w32w21v1=Σj{x1}w2jcov[x2,xk]+I22v2=w212v1+v2=Σj{x2}w3jcov[x2,xk]+I23v3=w32(w212v1+v2)=Σj{x2}w3jcov[x3,xk]+I33v3=w32(w212v1+v2)+v3

我们可以很容易地将线性-高斯图模型扩展到图的节点表示多元高斯变量的情况。在这种情况下,我们可以将节点 i i i的条件分布写成这种形式:

p ( x i ∣ p a i ) = N ( x i ∣ ∑ j ∈ p a i W i j x j + b i , Σ i )   ( 式 19 ) p(\mathbf{x}_i|pa_i)=\mathcal{N}{\Large{(}}\mathbf{x}_i {\Large{|}}\sum_{j\in pa_i}\mathbf{W}_{ij}\mathbf{x}_j+\mathbf{b}_i,\mathbf{\Sigma}_i{\Large{)}} \ (式19) p(xipai)=N(xijpaiWijxj+bi,Σi) (19)

W i j \mathbf{W}_{ij} Wij是一个矩阵(如果 x i x_i xi x j x_j xj具有不同的维数,则为非平方矩阵)。同样,很容易证明所有变量的联合分布是高斯分布。

一个高斯变量 x \mathbf{x} x的均值 μ \mu μ的共轭先验(conjugate prior)本身就是一个高斯分布。因此 x \mathbf{x} x μ \mu μ的联合分布也是高斯分布。这对应于一个简单的双节点图,其中表示 μ \mu μ的节点是表示 x \mathbf{x} x的节点的父节点。分布的均值 μ \mu μ是一个控制先验的参数,因此可以将其视为超参数。因为这个超参数的值本身可能是未知的,我们可以再次从贝叶斯的角度来处理它,方法是在超参数之上引入一个先验,有时被称为超先验(hyperprior),它也是由一个高斯分布给出的。这种类型的构造原则上可以扩展到任何级别,它是分层贝叶斯模型的一个例子(hierarchical Bayesian model)。