Gaussian distribution

这篇文章主要是讲一些常用的高斯分布的性质。那么,为什么高斯分布这么常用呢?我觉得主要有两个原因,一个是中心极限定理;第二个则是因为用高斯分布往往能得到漂亮的闭式解。

首先,单元和多元的高斯分布分别如下:
\begin{equation}
\mathcal{N}(x|\mu, \sigma^2)=\frac{1}{(2\pi\sigma^2)^{1/2}}exp\left\{-\frac{1}{2\sigma^2}(x-\mu)^2\right\}
\end{equation}
\begin{equation}
\mathcal{N}(\mathbf{x}|\mathbf{\mu}, \Sigma)=\frac{1}{(2\pi)^{D/2}}\frac{1}{|\Sigma|^{1/2}}exp\left\{-\frac{1}{2}(\mathbf{x}-\mathbf{\mu})^T\Sigma^{-1}(\mathbf{x}-\mathbf{\mu})\right\}
\end{equation}

1. 在support为$[-\infty,\infty]$以及给定均值和方差的情况下,高斯分布是熵最大的分布
首先,熵的定义为
\begin{equation}
H(x) = -\int p(x)lnp(x)dx
\end{equation}
给定方差的情况下,$p(x)$需要满足以下几个约束
\begin{equation}
\int_{-\infty}^{\infty}p(x)dx = 1
\end{equation}
\begin{equation}
\int_{-\infty}^{\infty}xp(x)dx = \mu
\end{equation}
\begin{equation}
\int_{-\infty}^{\infty}(x-\mu)^2p(x)dx = \sigma^2
\end{equation}
用拉格朗日乘子法,我们需要最大化下面的这个函数
\begin{equation}
-\int_{-\infty}^{\infty}p(x)lnp(x)dx+\lambda_1\left(\int_{-\infty}^{\infty}p(x)dx-1\right)+\\
\lambda_2\left(\int_{-\infty}^{\infty}xp(x)dx - \mu\right)+\lambda_3\left(\int_{-\infty}^{\infty}(x-\mu)^2p(x)dx- \sigma^2\right)
\end{equation}
用变分法求解【对函数p(x)求导】,可得
\begin{equation}
p(x)=exp\{-1+\lambda_1+\lambda_2x+\lambda_3(x-\mu)^2\}
\end{equation}
为了让$\int_Rp(x)dx$有限,所以$\lambda_2$应该等于0,$\lambda_3$应该小于0。这样子,剩下的$\lambda_1$和$\lambda_3$可以通过观察得到
\begin{align}
\lambda_1 &= 1 - \frac{1}{2}ln(2\pi\sigma^2)\\
\lambda_2 &= 0\\
\lambda_3 &= -\frac{1}{2\sigma^2}
\end{align}
所以
\begin{equation}
p(x)=\frac{1}{(2\pi\sigma^2)^{1/2}}exp\left\{-\frac{1}{2\sigma^2}(x-\mu)^2\right\}
\end{equation}
多元的推导需要更多的trick,这里暂时不写

2. 变量的联合分布是高斯,则变量的条件分布和边缘分布也是高斯
将变量、均值、协方差矩阵和精度矩阵【precision matrix,协方差矩阵的逆】分块:
\begin{equation}
x=\begin{bmatrix}
x_a \\
x_b
\end{bmatrix},\quad
\mu=\begin{bmatrix}
\mu_a \\
\mu_b
\end{bmatrix},\quad
\Sigma=\begin{bmatrix}
\Sigma_{aa} & \Sigma_{ab}\\
\Sigma_{ba} & \Sigma_{bb}
\end{bmatrix},\quad
\Lambda=\begin{bmatrix}
\Lambda_{aa} & \Lambda_{ab}\\
\Lambda_{ba} & \Lambda_{bb}
\end{bmatrix}
\end{equation}
这里用精度矩阵只是为了表示上的方便。注意精度矩阵也是对称矩阵【对称矩阵的逆也是对称矩阵】。
为了得到$p(x_a|x_b)$和$p(x_a)$,通常采用的方法是配方法【complete the square】。因为高斯分布的的指数可以写成
\begin{equation}
-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)=\frac{1}{2}x^T\Sigma^{-1}x+x^T\Sigma^{-1}\mu+const
\end{equation}
所以对于一般的二次型,如果可以写成上面这样的形式,那么我们就可以直接得到我们想要的均值和协方差。
我们只讨论$p(x_a|x_b)$,对于$p(x_b|x_a)$的情况,其实是对称的。考虑联合分布$p(x_a,x_b)$指数项里的二次型:
\begin{align}
\begin{split}
&-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu) = \\
&\quad-\frac{1}{2}(x_a-\mu_a)^T\Lambda_{aa}(x_a-\mu_a) -\frac{1}{2}(x_a-\mu_a)^T\Lambda_{ab}(x_b-\mu_b) \\
&\quad-\frac{1}{2}(x_b-\mu_b)^T\Lambda_{ba}(x_a-\mu_a) -\frac{1}{2}(x_b-\mu_b)^T\Lambda_{bb}(x_b-\mu_b)
\end{split}
\end{align}
提取出里面$x_a$的二次项:$-\frac{1}{2}x_a^T\Lambda_{aa}x_a$,所以我们可以直接推断出
\begin{equation}
\Sigma_{a|b}=\Lambda_{aa}^{-1}
\end{equation}
现在考虑$x_a$的一次项:
\begin{equation}
x_a^T\{\Lambda_{aa}\mu_a-\Lambda_{ab}(x_b-\mu_b)\} = x_a^T\Sigma_{a|b}^{-1}\mu_{a|b}
\end{equation}
所以
\begin{align}
\mu_{a|b} &= \Sigma_{a|b}\{\Lambda_{aa}\mu_a-\Lambda_{ab}(x_b-\mu_b)\} \\
&= \mu_a - \Lambda_{aa}^{-1}\Lambda_{ab}(x_b-\mu_b)
\end{align}
这里是用分块的精度矩阵来表示的,为了用原来的协方差矩阵来表示,我们需要用到分块矩阵的逆的表达式,即:
\begin{equation}
\begin{bmatrix}
A & B \\
C & D
\end{bmatrix}^{-1}=
\begin{bmatrix}
M & -MBD^{-1} \\
-D^{-1}CM & D^{-1}+D^{-1}CMBD^{-1}
\end{bmatrix}
\end{equation}
这里$M=(A-BD^{-1}C)^{-1})$,$M^{-1}$被叫做舒尔补【Schur Complement】。
所以
\begin{align}
\Lambda_{aa} &= (\Sigma_{aa}-\Sigma_{ab}\Sigma_{bb}^{-1}\Sigma_{ba})^{-1} \\
\Lambda_{ab} &= -(\Sigma_{aa}-\Sigma_{ab}\Sigma_{bb}^{-1}\Sigma_{ba})^{-1}\Sigma_{ab}\Sigma_{bb}^{-1}
\end{align}
把上面两式代替到$\mu_{a|b}$和$\Sigma_{a|b}$的表达式中,即可得到用分块的协方差矩阵的表达形式:
\begin{align}
\mu_{a|b} &= \mu_a + \Sigma_{ab}\Sigma_{bb}^{-1}(x_b-\mu_b)\\
\Sigma_{a|b} &= \Sigma_{aa}-\Sigma_{ab}\Sigma_{bb}^{-1}\Sigma_{ba}
\end{align}
从信息熵的角度来讲,给定$b$的条件下,$a$的不确定性减少了,减少的量与$a,b$之间的协方差的平方成正比——也就是说,$a$和$b$越相关,给定$b$的条件下,$a$的方差越小。
注意到$\mu_{a|b}$是$x_b$的线性函数,而$\Sigma_{a|b}$与$x_a$无关。这实际上是线性高斯模型的例子。

接下来考虑边缘分布:$p(x_b)=\int p(x_a,x_b)dx_a$。要把$x_a$积分积掉,那么我们还是先把跟$x_a$相关的项先挑出来,配方,这在上面其实已经做过了,这回把它完整得写出来
\begin{equation}
-\frac{1}{2}x_a^T\Lambda_{aa}x_a+x_a^T\Lambda_{aa}\mu_{a|b}=-\frac{1}{2}(x_a-\mu_{a|b})^T\Lambda_{aa}(x_a-\mu_{a|b})+\frac{1}{2}\mu_{a|b}^T\Lambda_{aa}\mu_{a|b}
\end{equation}
注意到$\int exp\{-\frac{1}{2}(x_a-\mu_{a|b})^T\Lambda_{aa}(x_a-\mu_{a|b})\}dx_a$积分得到的其实就是$p(x_a|x_b)$的归一化项的倒数,这是一个常数。这样我们就能把$x_a$积分积掉了。上式中剩下的
\begin{align}
&\quad \frac{1}{2}\mu_{a|b}^T\Lambda_{aa}\mu_{a|b} \\
&= \frac{1}{2}(\mu_a - \Lambda_{aa}^{-1}\Lambda_{ab}(x_b-\mu_b))^T\Lambda_{aa}(\mu_a - \Lambda_{aa}^{-1}\Lambda_{ab}(x_b-\mu_b)) \\
&=\frac{1}{2}x_b^T\Lambda_{ba}\Lambda_{aa}^{-1}\Lambda_{ab} -x_b^T\Lambda_{ab}\mu_a - x_b^T\Lambda_{ba}\Lambda_{aa}^{-1}\Lambda_{ab}\mu_a + const
\end{align}
所以式子(15)中剩下的所有项:
\begin{align}
&\quad -\frac{1}{2}x_b^T\Lambda_{bb}x_b + x_b^T(\Lambda_{bb}\mu_b+\Lambda_{ba}\mu_a)+const \\
&= - \frac{1}{2}x_b^T(\Lambda_{bb} - \Lambda_{ba}\Lambda_{aa}^{-1}\Lambda_{ab})x_b + x_b^T(\Lambda_{bb}- \Lambda_{ba}\Lambda_{aa}^{-1}\Lambda_{ab})u_b + const
\end{align}
根据式子(14)和(21),我们很容易得到$p(x_b)$的边缘分布的均值和方差分别就是$\mu_b$和$\Sigma_{bb}$

3. 已知$p(x)$和$p(y|x)$,求$p(y)$和$p(x|y)$
假设
\begin{align}
p(x) &= \mathcal{N}(x|\mu, \Lambda^{-1}) \\
p(y|x) &= \mathcal{N}(y|Ax+b,L^{-1})
\end{align}
注意这是上面所说的线性高斯模型,即$y$的均值与$x$线性相关,而$y$的方差与$x$无关。
考虑$x,y$的log联合分布,首先定义$z=[x,y]^T$,则
\begin{align}
lnp(z) &= lnp(x)+lnp(y|x) \\
&= -\frac{1}{2}(x-\mu)^T\Lambda(x-\mu) + \\
&\quad -\frac{1}{2}(y-Ax-b)^TL(y-Ax-b)+const
\end{align}
和第2节一样,注意到这其实是$z$的二次函数,我们可以对上式进行配方,得到$p(z)$的表达式。首先考虑二次项
\begin{equation}
-\frac{1}{2}(x^T(\Lambda+A^TLA)x + y^TLy - y^TLAx - x^TA^TLy \\
= \frac{1}{2}[x, y]
\begin{bmatrix}
\Lambda+A^TLA & -A^TL \\
-LA & L
\end{bmatrix}
[x,y]^T = \frac{1}{2}z^TR^z
\end{equation}
也即$z$的高斯分布的精度矩阵为
\begin{equation}
R=\begin{bmatrix}
\Lambda+A^TLA & -A^TL \\
-LA & L
\end{bmatrix}
\end{equation}
取逆【按公式(20)直接算】可以得到协方差矩阵
\begin{equation}
cov[z]=\begin{bmatrix}
\Lambda^{-1} & \Lambda^{-1}A^T \\
A\Lambda^{-1} & L^{-1}+A\Lambda^{-1}A^T
\end{bmatrix}
\end{equation}
接下来取出一次项
\begin{equation}
x^T\Lambda\mu-x^TA^TLb+y^TLb=[x, y][\Lambda\mu-A^TLb, Lb]^T
\end{equation}
根据(14)
\begin{equation}
E[z]=[\mu, A\mu+b]^T
\end{equation}
注意到这分别就是对应的$x$和$y$的均值组成的向量

利用从第2节推导的边缘分布的结果,我们可以轻松从联合变量$z$的分布中读出
\begin{align}
E[y] &= A\mu+b \\
cov[y] &= L^{-1}+A\Lambda^{-1}A^T
\end{align}
注意到这里如果$A=I$,那么$cov[y]$的结果其实就是$cov[y|x]$加上$cov[x]$
根据式子(16)、(19),我们也可以轻松得得到$p(x|y)$的结果
\begin{align}
E[x|y] &= E[x] - R_{xx}^{-1}R_{xy}(y-E[y]) \\
&= \mu - (\Lambda+A^TLA)^{-1}(-A^TL)(y-(A\mu+b)) \\
&= (\Lambda+A^TLA)^{-1}(A^TL(y-b)+\Lambda\mu) \\
cov[x|y] &= R_{xx}^{-1} = (\Lambda+A^TLA)^{-1}
\end{align}
这些推导结果在贝叶斯的推理过程中会很有用。

4. 先验【挖坑】
(1) 已知方差,均值未知的情况下,高斯分布的先验分布仍然是高斯分布
(2) 已知均值,方差未知的情况下,单变量高斯分布的先验分布是inverse gamma分布;多变量高斯分布的先验分布是inverse Wishart分布
(3) 均值和方差均未知的情况下,单变量高斯分布的先验分布是inverse normal/gaussian-gamma分布;多变量高斯分布的先验分布是inverse normal/gaussian-Wishart分布