Skip to content

条件高斯分布

写在前面

对于条件高斯分布的推导,主要抓住的是对于二次型系数的把握,这样的推导在形式上帮助我们证明了高斯分布的条件分布仍然是高斯分布.

多元高斯分布的一个重要性质是,如果两组变量是联合高斯分布,那么以其中一组变量为条件,另一组变量同样是高斯分布.这个性质在贝叶斯网络中经常被用到.假设x是一个服从高斯分布N(μ,Σ)的随机变量,其中μ是均值向量,Σ是协方差矩阵.我们可以将x分为两部分:x=[xaxb],其中xa是我们要求的变量,xb是我们已知的变量.我们可以将x的概率密度函数写成如下形式:

p(x)=N([xaxb]|[μaμb],[ΣaaΣabΣbaΣbb])

其中μaμb分别是xaxb的均值,ΣaaΣabΣbaΣbb分别是xaxb之间的协方差矩阵.从协方差矩阵的对称性质,我们可以得到Σab=ΣbaT.

精度矩阵

我们定义精度矩阵Λ为协方差矩阵的逆:

Λ=Σ1

有些性质使用协方差来描述很方便,有些性质使用精度来描述很方便.例如,对于多元高斯分布的指数部分,使用精度矩阵来描述更方便:

12(xμ)TΣ1(xμ)=12xTΛx+xTΛμ+const

接下来我们可以推导出条件概率分布p(xa|xb).条件分布可以根据联合分布p(x)=p(xa,xb)和边缘分布p(xb)的关系得到.通过把xb固定为观测值,然后对得到的表达式进行归一化,我们可以得到xa的一个合法的概率分布.

我们可以通过以下步骤来推导条件概率分布:

p(xa|xb)=p(xa,xb)p(xb)=N([xaxb]|[μaμb],[ΣaaΣabΣbaΣbb])N(xb|μb,Σbb)=1Zexp{12[xaμaxbμb]T[ΣaaΣabΣbaΣbb]1[xaμaxbμb]}=1Zexp{12(xaμa)TΛaa(xaμa)+(xaμa)TΛab(xbμb)+const}

我们知道一个高斯分布的二阶系数应该是Σ1, 一阶项系数是Σ1μ. 基于这个条件,我们可以继续推导出条件概率分布的均值和协方差:

Σa|b=Λaa1μa|b=Σa|b[ΛaaμaΛab(xbμb)]=μaΛaa1Λab(xbμb)

舒尔补

我们可以利用舒尔补来计算分块矩阵的逆.假设我们有一个分块矩阵M=[ABCD],其中AD是方阵.我们可以得到M的逆:

M1=[KKBD1D1CKD1+D1CKBD1]

其中K=(ABD1C)1. 因此我们可以有以下公式:

Λaa=(ΣaaΣabΣbb1Σba)1Λab=(ΣaaΣabΣbb1Σba)1ΣabΣbb1

这个公式可以用来计算Σa|b.

这个结果表明,如果我们知道xb的值,那么xa的条件分布是一个高斯分布,均值是μa+Λaa1Λab(xbμb),协方差是Λaa1.

结合上述的推导,我们可以得到条件概率分布p(xa|xb)的均值和协方差.

p(xa|xb)=N(xa|μa|b,Σa|b)μa|b=μa+ΣabΣbb1(xbμb)Σa|b=ΣaaΣabΣbb1Σba

我们可以看到,对于条件概率分布,使用精度矩阵来描述更方便.