机器学习 [白板推导](七)[概率图模型]
9. 概率图模型
9.1. 背景
概率模型的四大法则:
- 加法法则:p(x1)=∫p(x1,x2)dx2p(x_1)=\int p(x_1, x_2)dx_2p(x1)=∫p(x1,x2)dx2.
- 乘法法则:p(x1,x2)=p(x1)⋅p(x2∣x1)=p(x2)⋅p(x1∣x2)p(x_1, x_2)=p(x_1)\cdot p(x_2|x_1)=p(x_2)\cdot p(x_1|x_2)p(x1,x2)=p(x1)⋅p(x2∣x1)=p(x2)⋅p(x1∣x2).
- 链式法则:p(x1,x2,⋯,xp)=∏i=1Np(xi∣x1,⋯,xi−1)p(x_1, x_2, \cdots, x_p)=\prod _{i=1}^Np(x_i|x_1, \cdots, x_{i-1})p(x1,x2,⋯,xp)=∏i=1Np(xi∣x1,⋯,xi−1).
- 贝叶斯法则:p(x2∣x1)=p(x1,x2)p(x1)=p(x1,x2)∫p(x1,x2)dx2=p(x2)⋅p(x1∣x2)∫p(x1,x2)dx2p(x_2|x_1)=\frac{p(x_1, x_2)}{p(x_1)}=\frac{p(x_1, x_2)}{\int p(x_1, x_2)dx_2}=\frac{p(x_2)\cdot p(x_1| x_2)}{\int p(x_1, x_2)dx_2}p(x2∣x1)=p(x1)p(x1,x2)=∫p(x1,x2)dx2p(x1,x2)=∫p(x1,x2)dx2p(x2)⋅p(x1∣x2).
概率模型的困境:当样本特征维度较高时,计算非常复杂。
简化方法:
- 朴素贝叶斯假设:假设特征之间相互独立,则 p(x1,x2,⋯,xp)=∏i=1Np(xi)p(x_1, x_2, \cdots, x_p)=\prod_{i=1}^N p(x_i)p(x1,x2,⋯,xp)=∏i=1Np(xi),但该假设过强,很多时候无法保证成立。
- 马尔可夫假设:假设每个特征变量只与前面的m个特征有关,与其他特征都独立,即 p(xi∣x1,x2,⋯,xi−1,xi+1,⋯,xp)=p(xi∣xi−1,⋯,xi−m)p(x_i|x_1, x_2, \cdots, x_{i-1}, x_{i+1}, \cdots, x_p)=p(x_i| x_{i-1}, \cdots , x_{i-m})p(xi∣x1,x2,⋯,xi−1,xi+1,⋯,xp)=p(xi∣xi−1,⋯,xi−m),称为m阶马尔可夫假设,但该假设依然过强,且依赖关系的建设较为随意,不符合真实分布。
- 条件独立性假设:假设特征之间存在一组三个集合,{xi}A,{xi}B,{xi}C\{ x_i \}_A, \{ x_i \}_B, \{ x_i \}_C{xi}A,{xi}B,{xi}C,三个集合互不相交且无顺序性,使得 {xi}A⊥{xi}B∣{xi}C\{ x_i \}_A\perp \{ x_i \}_B |\{ x_i \}_C{xi}A⊥{xi}B∣{xi}C,即在给定集合 {xi}C\{ x_i \}_C{xi}C 作为条件的情况下,{xi}A\{ x_i \}_A{xi}A 与 {xi}B\{ x_i \}_B{xi}B 的内部变量相互独立。条件独立性假设为了解决朴素贝叶斯假设和马尔可夫假设存在的问题而提出,是概率图模型的理论基础。
概率图模型可以由以下分类:
- 表示(Representation):
- 有向图:贝叶斯网络。
- 无向图:马尔可夫网络。
- 高斯图(连续):有高斯贝叶斯网络和高斯马尔可夫网络。
- 推断(Inference):
- 精确推断。
- 近似推断:确定性近似推断——变分推断;随机近似推断(MCMC)。
- 学习(Learning):
- 参数学习:完备数据或隐变量学习(EM)。
- 结构学习。
概率图模型,又叫贝叶斯网络,常见模型有(后续章节都会介绍):
- 单一变量:朴素贝叶斯。
- 混合变量:高斯混合模型(GMM)。
- 时间贝叶斯网络:
- 马尔可夫链。
- 高斯过程(无限维高斯分布)。
- 将时间贝叶斯网络与混合变量结合,即为动态模型:
- 隐马尔可夫模型—离散时间。
- 线性动态系统(LDS):卡曼滤波等(Kalman Filter)—连续时间。
- Particle Filter,非高斯,非线性。
- 空间:高斯贝叶斯网络。
9.2. 条件独立性的图结构表示
下图是最简单的概率图模型,其概率模型可以写作 p(a,b,c)=p(a)⋅p(b∣a)⋅p(c∣a)p(a,b,c)=p(a)\cdot p(b|a)\cdot p(c|a)p(a,b,c)=p(a)⋅p(b∣a)⋅p(c∣a),这就是条件独立性用图结构表示的方法,条件变量在父节点,独立变量是同层的无边节点,该过程也被称为因子分解。
条件独立性的三种图结构:
- T2T(tail to tail):如下图,概率模型已经写过是,可以理解为三个随机变量相互之间可能有联系(如 b=2⋅a+1,c=a+5b=2\cdot a+1,\ c=a+5b=2⋅a+1, c=a+5,此时 bbb 和 ccc 也有联系),也可能只有 aaa 和 bbb 之间、 aaa 和 ccc 之间有联系(如 b=2⋅x+a,c=y+5⋅ab=2\cdot x+a,\ c=y+5\cdot ab=2⋅x+a, c=y+5⋅a,此时 bbb 和 ccc 没有联系),但一旦被观测(值已定,不再是随机变量),且 bbb 和 ccc 依然是随机变量(例如前面提到的第二种情况),则 bbb 和 ccc 独立(如果是第一种情况,那是定值,也可以按照独立处理)。
- H2T(head to tail):如下图,概率模型为 p(a,b,c)=p(b)⋅p(a∣b)⋅p(c∣b)p(a,b,c)=p(b)\cdot p(a|b)\cdot p(c|b)p(a,b,c)=p(b)⋅p(a∣b)⋅p(c∣b),若 bbb 被观测,则 aaa 和 ccc 独立。
- H2H(head to head):如下图,概率模型为 p(a,b,c)=p(a,b)⋅p(c∣a,b)=p(a)⋅p(b)⋅p(c∣a,b)p(a,b,c)=p(a,b)\cdot p(c|a,b)=p(a)\cdot p(b)\cdot p(c|a,b)p(a,b,c)=p(a,b)⋅p(c∣a,b)=p(a)⋅p(b)⋅p(c∣a,b),当 ccc 未被观测时,aaa 和 bbb 独立,但如果当 ccc 被观测,此时 c=f(a)=g(b),a=f−1(g(b))c=f(a)=g(b),a=f^{-1}(g(b))c=f(a)=g(b),a=f−1(g(b)),aaa 和 bbb 不再独立。值得注意的是,若 ccc 的后继子节点被观测,同样会导致连通,aaa 和 bbb 二者不再独立。
9.3. D-Seperation介绍
利用条件独立性的图结构来划分整个概率图模型的集合,即为D划分(D-Seperation)方法.,具体来说,图的部分节点分别属于 {xi}A,{xi}B,{xi}C\{ x_i \}_A, \{ x_i \}_B, \{ x_i \}_C{xi}A,{xi}B,{xi}C 三个集合,三者互不相交且无顺序性,当满足下面两个条件时,使得 {xi}A⊥{xi}B∣{xi}C\{ x_i \}_A\perp \{ x_i \}_B |\{ x_i \}_C{xi}A⊥{xi}B∣{xi}C,即在给定集合作为条件的情况下,{xi}A\{ x_i \}_A{xi}A 与 {xi}B\{ x_i \}_B{xi}B 内变量相互独立:
- 当 {xi}A\{ x_i \}_A{xi}A 中节点 aaa 和 {xi}C\{ x_i \}_C{xi}C 中节点 ccc 以T2T或H2T结构存在时,其中间的连通节点 bbb 一定在 {xi}B\{ x_i \}_B{xi}B 中。
- 当 {xi}A\{ x_i \}_A{xi}A 中节点 aaa 和 {xi}C\{ x_i \}_C{xi}C 中节点 ccc 以H2H结构存在时,其中间的连通节点 bbb 一定不在 {xi}B\{ x_i \}_B{xi}B 中。
同时可以对某一个节点求其相关节点时,可以用全局节点作为条件求概率密度(设 x−i=x1,x2,⋯,xi−1,xi+1,⋯,xpx_{-i}=x_1, x_2, \cdots, x_{i-1}, x_{i+1}, \cdots, x_px−i=x1,x2,⋯,xi−1,xi+1,⋯,xp,即为除了 xix_ixi 以外所有节点),即:
p(xi∣x−i)=p(xi,x−i)p(x−i)=p(x⃗)∫p(x⃗)dxi=∏j=1pp(xj∣xpa(j))∫∏j=1pp(xj∣xpa(j))dxi=∏xjrelate xip(xj∣xpa(j))⋅∏xknot relate xip(xk∣xpa(k))∫∏xjrelate xip(xj∣xpa(j))dxi⋅∫∏xknot relate xip(xk∣xpa(k))dxi=∏xjrelate xip(xj∣xpa(j))⋅∏xknot relate xip(xk∣xpa(k))∫∏xjrelate xip(xj∣xpa(j))dxi⋅∏xknot relate xip(xk∣xpa(k))=∏xjrelate xip(xj∣xpa(j))∫∏xjrelate xip(xj∣xpa(j))dxi,(9.1)\begin{aligned} p(x_i|x_{-i})&=\frac{p(x_i, x_{-i})}{p(x_{-i})}=\frac{p(\vec{x})}{\int p(\vec{x}) dx_i}=\frac{\prod _{j=1}^pp(x_j|x_{pa(j)})}{\int \prod _{j=1}^pp(x_j|x_{pa(j)}) dx_i} \\ &= \frac{\prod _{x_j\text{ relate }x_i}p(x_j|x_{pa(j)}) \cdot \prod _{x_k\text{ not relate }x_i}p(x_k|x_{pa(k)})}{\int \prod _{x_j\text{ relate }x_i}p(x_j|x_{pa(j)})dx_i \cdot \int \prod _{x_k\text{ not relate }x_i}p(x_k|x_{pa(k)})dx_i}\\ &= \frac{\prod _{x_j\text{ relate }x_i}p(x_j|x_{pa(j)}) \cdot \prod _{x_k\text{ not relate }x_i}p(x_k|x_{pa(k)})}{\int \prod _{x_j\text{ relate }x_i}p(x_j|x_{pa(j)})dx_i \cdot \prod _{x_k\text{ not relate }x_i}p(x_k|x_{pa(k)})}\\ &= \frac{\prod _{x_j\text{ relate }x_i}p(x_j|x_{pa(j)})}{\int \prod _{x_j\text{ relate }x_i}p(x_j|x_{pa(j)})dx_i}, \tag{9.1} \end{aligned} p(xi∣x−i)=p(x−i)p(xi,x−i)=∫p(x)dxip(x)=∫∏j=1pp(xj∣xpa(j))dxi∏j=1pp(xj∣xpa(j))=∫∏xj relate xip(xj∣xpa(j))dxi⋅∫∏xk not relate xip(xk∣xpa(k))dxi∏xj relate xip(xj∣xpa(j))⋅∏xk not relate xip(xk∣xpa(k))=∫∏xj relate xip(xj∣xpa(j))dxi⋅∏xk not relate xip(xk∣xpa(k))∏xj relate xip(xj∣xpa(j))⋅∏xk not relate xip(xk∣xpa(k))=∫∏xj relate xip(xj∣xpa(j))dxi∏xj relate xip(xj∣xpa(j)),(9.1)
只留下了与 xix_ixi 相关的节点。
与 xix_ixi 相关的节点如下图所示,只有 xix_ixi 的父节点、子节点及其子节点的其他父节点与 xix_ixi 有关,这种关系图被称为马尔可夫毯(Markov Blanket)。
9.4. 马尔可夫随机场
马尔可夫随机场(Markov random field),又叫概率无向图模型(probabilistic undirected graphical model),每个节点表示一个随机变量,边表示变量之间的相关性,可以用于表示联合概率分布。
马尔可夫随机场有三种马尔可夫性质:
- 成对马尔可夫性(Pair Markov Property):设 {x}−i−j\{x\}_{-i-j}{x}−i−j 为除了 xix_ixi 和 xjx_jxj 的其他所有节点,则当 xix_ixi 和 xjx_jxj 没有边连接时,则 xi⊥xj∣{x}−i−jx_i\perp x_j \ | \ \{x\}_{-i-j}xi⊥xj ∣ {x}−i−j。
- 局部马尔可夫性(Local Markov Property):设 {x}connect(i)\{x\}_{connect(i)}{x}connect(i) 为与 xix_ixi 连接的所有节点,则 xi⊥{x}−i−connect(i)∣{x}connect(i)x_i\perp \left \{ x \right \}_{-i-connect(i)} \ | \ \{x\}_{connect(i)}xi⊥{x}−i−connect(i) ∣ {x}connect(i).
- 全局马尔可夫性(Global Markov Property):设为一个节点的集合,若存在三个集合则,,,其中中任意节点与中节点想要连接,都需要经过中节点,则。
团(clique):对于一组节点,如果任意两两之间都存在边连接,则称为一个团,若此时这个团无法再加入新的节点,加入任意一个节点都不能满足两两连通,则称为最大团(类比最大全连通子图)。
Hammersley-Clifford定理:可以将马尔可夫随机场的联合概率分布表示为:p(x⃗)=1Z∏C=1KΨC(xC)p(\vec{x})=\frac{1}{Z}\prod _{C=1}^K \Psi _C(x_C)p(x)=Z1∏C=1KΨC(xC),其中:
- Z=∑x1∑x2⋯∑xp∏C=1KΨ(xC)Z=\sum _{x_1}\sum _{x_2} \cdots \sum _{x_p}\prod _{C=1}^K\Psi (x_C)Z=∑x1∑x2⋯∑xp∏C=1KΨ(xC) 为一个权,用于将等号右侧化为概率值:
- ΨC(xC)\Psi _C(x_C)ΨC(xC) 是图模型中某个最大团 xC{x}_CxC 的势函数,势函数的概念由统计物理得来,可以表示为 ΨC(xC)=exp{−E(xC)}\Psi _C(x_C)=\exp\{ -E(x_C) \}ΨC(xC)=exp{−E(xC)},E(xC)E(x_C)E(xC) 为能函数,如此可以将概率密度化简为:p(x⃗)=1Z∏C=1Kexp{−E(xC)}=1Zexp{−∑C=1KE(xC)}p(\vec{x})=\frac{1}{Z}\prod _{C=1}^K \exp\{ -E(x_C) \}=\frac{1}{Z} \exp\{ -\sum _{C=1}^KE(x_C) \}p(x)=Z1∏C=1Kexp{−E(xC)}=Z1exp{−∑C=1KE(xC)},该形式满足之前章节的机器学习 [白板推导](六)指数族分布的形式,即可以说,马尔可夫随机场等价于指数族分布,等价于最大熵原理。
9.5. 推断(Inference)
推断的本质工作就是求概率,或求分布,例如边缘概率、条件概率、后验概率等;
推断有两种类型:
- 精确推断:
- Variable Elimination (VE),变量消除法,具体应用见17.3. CRF的边缘概率密度——Smoothing;
- Belief Propagation (BP),又叫Sum-Product算法,由VE改进而来,是精确推断的重要算法,常用于树结构的推断;
- Junction Tree Algorithm,是BP在普遍图结构上的拓展算法;
- 近似推断:
- Loop Belief Propagation,常用于有环图;
- 蒙特卡罗推断(Mente Carlo Inference):例如Importance Sampling,MCMC等;
- 变分推断(Variational Inference);