机器学习笔记之高斯网络——高斯贝叶斯网络
- 引言
- 回顾
- 高斯网络
- 贝叶斯网络:因子分解
- 高斯贝叶斯网络:因子分解
引言
上一节介绍了高斯网络及其条件独立性,本节将介绍高斯贝叶斯网络。
回顾
高斯网络
高斯网络最核心的特点是:随机变量集合中的随机变量均是连续型随机变量,并且均服从高斯分布:
已知某随机变量集合X\mathcal XX中包含ppp个特征,整个高斯网络中所有结点的联合概率分布服从多元高斯分布:
X=(x1,x2,⋯,xp)TP(X)=1(2π)p2∣Σ∣12exp[−12(x−μ)TΣ−1(x−μ)]\begin{aligned} \mathcal X & = (x_1,x_2,\cdots,x_p)^T \\ \mathcal P(\mathcal X) & = \frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}} \exp \left[-\frac{1}{2}(x - \mu)^T\Sigma^{-1}(x - \mu)\right] \end{aligned}XP(X)=(x1,x2,⋯,xp)T=(2π)2p∣Σ∣211exp[−21(x−μ)TΣ−1(x−μ)]
其中期望μ\muμ,协方差矩阵Σ\SigmaΣ表示如下:
μ=(μ1μ2⋮μp)p×1σ=(σ11,σ12,⋯,σ1pσ21,σ22,⋯,σ2p⋮σp1,σp2,⋯,σpp)p×p\mu = \begin{pmatrix} \mu_1\\ \mu_2 \\ \vdots \\ \mu_p \end{pmatrix}_{p \times 1} \quad \sigma = \begin{pmatrix} \sigma_{11},\sigma_{12},\cdots,\sigma_{1p} \\ \sigma_{21},\sigma_{22},\cdots,\sigma_{2p} \\ \vdots \\ \sigma_{p1},\sigma_{p2},\cdots,\sigma_{pp} \\ \end{pmatrix}_{p \times p}μ=⎝⎜⎜⎜⎛μ1μ2⋮μp⎠⎟⎟⎟⎞p×1σ=⎝⎜⎜⎜⎛σ11,σ12,⋯,σ1pσ21,σ22,⋯,σ2p⋮σp1,σp2,⋯,σpp⎠⎟⎟⎟⎞p×p
- 随机变量之间的边缘独立性:如果随机变量xi,xj(i,j∈{1,2,⋯,p};i≠j)x_i,x_j (i,j \in \{1,2,\cdots,p\};i\neq j)xi,xj(i,j∈{1,2,⋯,p};i=j)对应协方差矩阵的结果Cov(xi,xj)=σij=0Cov(x_i,x_j) = \sigma_{ij} = 0Cov(xi,xj)=σij=0,那么称xi,xjx_i,x_jxi,xj是不相关的。也称xi,xjx_i,x_jxi,xj边缘独立或者绝对独立:
σij=0⇒xi⊥xj\sigma_{ij} = 0 \Rightarrow x_i \perp x_jσij=0⇒xi⊥xj - 随机变量之间的条件独立性:如果随机变量xi,xj(i,j∈{1,2,⋯,p};i≠j)x_i,x_j(i,j \in \{1,2,\cdots,p\};i \neq j)xi,xj(i,j∈{1,2,⋯,p};i=j)对应精度矩阵(Precision Matrix)结果λij=0\lambda_{ij} = 0λij=0,称给定除去xi,xjx_i,x_jxi,xj之外其他结点的条件下,xi,xjx_i,x_jxi,xj相互独立:
其中
Λ=[λij]p×p\Lambda = [\lambda_{ij}]_{p \times p}Λ=[λij]p×p表示精度矩阵,它是协方差矩阵的‘逆矩阵’。
λij=0⇒xi⊥xj∣x−i−j\lambda_{ij} = 0 \Rightarrow x_i \perp x_j \mid x_{-i-j}λij=0⇒xi⊥xj∣x−i−j
贝叶斯网络:因子分解
基于贝叶斯网络有向图的性质,针对随机变量集合X\mathcal XX的联合概率分布P(X)\mathcal P(\mathcal X)P(X)进行表达。
已知随机变量集合X\mathcal XX包含ppp个维度特征,因而X\mathcal XX的联合概率分布P(X)\mathcal P(\mathcal X)P(X)表示如下:
P(X)=P(x1,x2,⋯,xp)\mathcal P(\mathcal X) = \mathcal P(x_1,x_2,\cdots,x_p)P(X)=P(x1,x2,⋯,xp)
针对联合概率分布求解,最朴素的方式是条件概率的链式法则(Chain Rule):
P(x1,x2,⋯,xp)=P(x1)⋅∏i=2pP(xi∣x1,⋯,xi−1)\mathcal P(x_1,x_2,\cdots,x_p) = \mathcal P(x_1) \cdot \prod_{i=2}^p \mathcal P(x_i \mid x_1,\cdots,x_{i-1})P(x1,x2,⋯,xp)=P(x1)⋅i=2∏pP(xi∣x1,⋯,xi−1)
但如果随机变量集合X\mathcal XX维度过高,这种链式法则计算代价很大。可以将对应的概率图模型视作完全图——任意两个特征之间都需要求解其关联关系。
而贝叶斯网络的条件独立性 可以极大程度地简化运算过程。给定贝叶斯网络的表达方式,可以直接写出各节点的联合概率分布:
P(x1,x2,⋯,xp)=∏i=1pP(xi∣xpa(i))\mathcal P(x_1,x_2,\cdots,x_p) = \prod_{i=1}^p \mathcal P(x_i \mid x_{pa(i)})P(x1,x2,⋯,xp)=i=1∏pP(xi∣xpa(i))
其中xpa(i)x_{pa(i)}xpa(i)表示xix_ixi结点的父节点组成的集合。
高斯贝叶斯网络:因子分解
已知贝叶斯网络中一共包含ppp个结点,它的联合概率分布(因子分解)表示如下:
P(X)=∏i=1pP(xi∣xpa(i))\mathcal P(\mathcal X) = \prod_{i=1}^p \mathcal P(x_i \mid x_{pa(i)})P(X)=i=1∏pP(xi∣xpa(i))
从 全局模型(Global Model) 角度观察,高斯贝叶斯网络是基于线性高斯模型(局部模型(Local Model))的模型架构。
-
局部模型架构:对于线性高斯模型并不陌生,在卡尔曼滤波中对线性高斯模型又了一定认识。
从宏观角度认识线性高斯模型,即模型中某节点与父结点之间存在线性关系,并且噪声服从高斯分布:
可以理解为:高斯贝叶斯网络中的‘有向边’表示节点与父节点之间的‘具有高斯分布噪声的线性关系’。
这里已知X,Y\mathcal X,\mathcal YX,Y是两个随机变量集合,X\mathcal XX的边缘概率分布P(X)\mathcal P(\mathcal X)P(X)和条件概率分布P(Y∣X)\mathcal P(\mathcal Y \mid \mathcal X)P(Y∣X)表示如下:
{P(X)∼N(μX,ΣX)P(Y∣X)∼N(AX+B,ΣY)\begin{cases} \mathcal P(\mathcal X) \sim \mathcal N(\mu_{\mathcal X},\Sigma_{\mathcal X}) \\ \mathcal P(\mathcal Y \mid \mathcal X) \sim \mathcal N(\mathcal A \mathcal X + \mathcal B,\Sigma_{\mathcal Y}) \end{cases}{P(X)∼N(μX,ΣX)P(Y∣X)∼N(AX+B,ΣY)
局部模型描述结点之间的关联关系 表示如下:
同理,关于结点Y\mathcal YY的边缘概率分布P(Y)\mathcal P(\mathcal Y)P(Y)以及P(X),P(Y∣X)\mathcal P(\mathcal X),\mathcal P(\mathcal Y \mid \mathcal X)P(X),P(Y∣X)的推断结果P(X∣Y)\mathcal P(\mathcal X \mid \mathcal Y)P(X∣Y)同样服从高斯分布。具体结果表示如下:
推导过程详见:
高斯分布——推断任务之边缘概率分布与条件概率分布
P(Y)∼N(Aμ+B,AΣXAT+ΣY)P(X∣Y)∼N(Σ{ATΣY−1(Y−B)+Aμ},Σ)Σ=ΣX−1+ATΣY−1A−1\begin{aligned} \mathcal P(\mathcal Y) & \sim \mathcal N(\mathcal A \mu + \mathcal B,\mathcal A\Sigma_{\mathcal X}\mathcal A^T + \Sigma_{\mathcal Y}) \\ \mathcal P(\mathcal X \mid \mathcal Y) & \sim \mathcal N(\Sigma\left\{\mathcal A^T\Sigma_{\mathcal Y}^{-1}(\mathcal Y - \mathcal B) + \mathcal A \mu\right\},\Sigma) \quad \Sigma = \Sigma_{\mathcal X}^{-1} + \mathcal A^T \Sigma_{\mathcal Y}^{-1}\mathcal A^{-1} \end{aligned}P(Y)P(X∣Y)∼N(Aμ+B,AΣXAT+ΣY)∼N(Σ{ATΣY−1(Y−B)+Aμ},Σ)Σ=ΣX−1+ATΣY−1A−1
实际上,卡尔曼滤波(Kalman Filter)自身就是一个特殊的高斯贝叶斯网络。它的概率图模型表示如下:
由于齐次马尔可夫假设、观测独立性假设的约束,概率图中无论是观测变量O={o1,⋯,oT}\mathcal O = \{o_1,\cdots,o_T\}O={o1,⋯,oT}还是隐变量I={i1,⋯,iT}\mathcal I = \{i_1,\cdots,i_T\}I={i1,⋯,iT},它们均仅有一个父节点:
- 基于齐次马尔可夫假设,相邻隐变量it,it−1i_t,i_{t-1}it,it−1之间的条件概率表示为:
P(it∣it−1)∼N(A⋅it−1+B,Q)\mathcal P(i_t \mid i_{t-1}) \sim \mathcal N(\mathcal A \cdot i_{t-1} + \mathcal B,\mathcal Q)P(it∣it−1)∼N(A⋅it−1+B,Q) - 基于观测独立性假设,隐变量iti_tit与对应时刻观测变量oto_tot之间的条件概率表示为:
P(ot∣it)∼N(C⋅it+D,R)\mathcal P(o_t \mid i_t) \sim \mathcal N(\mathcal C\cdot {i_t} + \mathcal D,\mathcal R)P(ot∣it)∼N(C⋅it+D,R)
基于上述假设,对随机变量之间关联关系的表示(Representation)描述为:
之所以将噪声均值设置为0 -> 均值偏差可以归纳到对应偏置项
B,D\mathcal B,\mathcal DB,D中。
{it=A⋅it−1+B+ϵϵ∼N(0,Q)ot=C⋅it+D+δδ∼N(0,R)\begin{cases} i_t = \mathcal A \cdot i_{t-1} + \mathcal B + \epsilon \quad \epsilon \sim \mathcal N(0,\mathcal Q) \\ o_t = \mathcal C \cdot i_t + \mathcal D + \delta \quad \delta \sim \mathcal N(0,\mathcal R) \end{cases}{it=A⋅it−1+B+ϵϵ∼N(0,Q)ot=C⋅it+D+δδ∼N(0,R)
相比之下,高斯贝叶斯网络并没有假设约束,结点中可能存在多个父节点组成的集合。
给定一个高斯贝叶斯网络的局部图如下:
这里仅讨论
xix_ixi与其父节点们之间的关系,其余部分略掉了。
很明显:x1,x2,⋯,xkx_1,x_2,\cdots,x_kx1,x2,⋯,xk均是xix_ixi的父节点,将局部模型延伸到一个更大的局部模型。
这里x1,x2,⋯,xkx_1,x_2,\cdots,x_kx1,x2,⋯,xk以及xix_ixi均是一维随机变量:
-
假设xix_ixi的父节点集合中仅包含一个随机变量(x1x_1x1为例),那么P(xi∣xpa(i))\mathcal P(x_{i} \mid x_{pa(i)})P(xi∣xpa(i))可表示为:
P(xi∣xpa(i))→P(xi∣x1)∼N(wi1⋅x1,σi2)\mathcal P(x_{i} \mid x_{pa(i)}) \to \mathcal P(x_i \mid x_1) \sim \mathcal N(w_{i1} \cdot x_1,\sigma_{i}^2)P(xi∣xpa(i))→P(xi∣x1)∼N(wi1⋅x1,σi2)
对应xi,x1x_i,x_1xi,x1随机变量之间关联关系的表示 为:
xi=μi+wi1⋅(x1−μ1)+σi⋅ϵiϵ∼N(0,1)x_i = \mu_i + w_{i1} \cdot (x_1 - \mu_1) + \sigma_{i}\cdot \epsilon_i \quad \epsilon \sim \mathcal N(0,1)xi=μi+wi1⋅(x1−μ1)+σi⋅ϵiϵ∼N(0,1)
关于上述公式的一些个人理解:多出来的
μi,μ1\mu_i,\mu_1μi,μ1是哪来的:为了简化运算,通常对‘随机变量的分布’进行平移’,就是去中心化。因而上述式子可以表示为:
xi−μi=wi1⋅(x1−μ1)+σi⋅ϵix_i - \mu_i = w_{i1} \cdot (x_1 - \mu_1) + \sigma_i \cdot \epsilon_{i}xi−μi=wi1⋅(x1−μ1)+σi⋅ϵi执行线性运算之后,方差必然会发生变化。应变化为
wi12⋅σi2w_{i1}^2 \cdot \sigma_i^2wi12⋅σi2,但是
P(xi∣x1)\mathcal P(x_i \mid x_1)P(xi∣x1)并没有变化,依旧是
σi2\sigma_i^2σi2:方差变化是
xix_ixi的边缘概率分布
P(xi)\mathcal P(x_i)P(xi),而不是
P(xi∣x1)\mathcal P(x_i \mid x_1)P(xi∣x1),这也是线性高斯模型的假设方式。
偏置项去哪了:最终都需要‘去中心化’,将分布的均值(中心)回归零点,因而被省略掉了,或者也可理解为‘合并到’
μi\mu_iμi中。
欢迎小伙伴们交流讨论。
-
同理,父结点集合中包含多个随机变量,将父结点集合看成向量形式,因而xpa(i)x_{pa(i)}xpa(i)以及对应权重信息Wi\mathcal W_iWi表示如下:
xpa(i)=(x1,x2,⋯,xk)k×1TWi=(wi1,wi2,⋯,wik)k×1T\begin{aligned} x_{pa(i)} = (x_1,x_2,\cdots,x_k)_{k \times 1}^T \\ \mathcal W_i = (w_{i1},w_{i2},\cdots,w_{ik})_{k \times 1}^T \end{aligned}xpa(i)=(x1,x2,⋯,xk)k×1TWi=(wi1,wi2,⋯,wik)k×1T
至此,P(xi∣xpa(i))\mathcal P(x_i \mid x_{pa(i)})P(xi∣xpa(i))表示如下:
P(xi∣xpa(i))=N(WiTxpa(i),σi2)=N(x1⋅wi1+⋯+xk⋅wik,σi2)\begin{aligned} \mathcal P(x_i \mid x_{pa(i)}) & = \mathcal N(\mathcal W_i^T x_{pa(i)},\sigma_i^2) \\ & = \mathcal N(x_1 \cdot w_{i1} + \cdots + x_k \cdot w_{ik},\sigma_i^2) \end{aligned}P(xi∣xpa(i))=N(WiTxpa(i),σi2)=N(x1⋅wi1+⋯+xk⋅wik,σi2)
因而xi,xpa(i)x_i,x_{pa(i)}xi,xpa(i)随机变量之间的关联关系表示为:
xi−μi=WiT(xpa(i)−μpa(i))+σi⋅ϵi=(wi1,wi2,⋯,wik)1×k[(x1x2⋮xk)−(μ1μ2⋮μk)]k×1+σi⋅ϵi=∑j∈xpa(i)wij(xj−μj)+σi⋅ϵi\begin{aligned} x_i - \mu_i & = \mathcal W_i^T (x_{pa(i)} - \mu_{pa(i)}) + \sigma_i \cdot \epsilon_i \\ & = \begin{pmatrix}w_{i1},w_{i2},\cdots,w_{ik}\end{pmatrix}_{1 \times k} \left[\begin{pmatrix}x_1 \\ x_2 \\ \vdots \\ x_k \end{pmatrix} - \begin{pmatrix}\mu_1 \\ \mu_2 \\ \vdots \\ \mu_k \end{pmatrix}\right]_{k \times 1} + \sigma_i \cdot \epsilon_i\\ & = \sum_{j \in x_{pa(i)}} w_{ij}(x_j - \mu_j) + \sigma_i \cdot \epsilon_i \end{aligned}xi−μi=WiT(xpa(i)−μpa(i))+σi⋅ϵi=(wi1,wi2,⋯,wik)1×k⎣⎢⎢⎢⎡⎝⎜⎜⎜⎛x1x2⋮xk⎠⎟⎟⎟⎞−⎝⎜⎜⎜⎛μ1μ2⋮μk⎠⎟⎟⎟⎞⎦⎥⎥⎥⎤k×1+σi⋅ϵi=j∈xpa(i)∑wij(xj−μj)+σi⋅ϵi
下一节将介绍:高斯马尔可夫随机场。
相关参考:
机器学习-高斯网络(2)-高斯贝叶斯网络