概率论基础3-高斯分布及其共轭先验

本文主要是PRML一书2.3.3,2.3.4和2.3.6节的笔记。

1. 高斯变量的贝叶斯定理

前文中,我们可以看出如果将高斯变量 $\mathbf{x}$ 分割成 $\mathbf{x}=(\mathbf{x}_a,\mathbf{x}_b)$,那么条件分布 $p(\mathbf{x}_a|\mathbf{x}_b)$ 的均值将是 $\mathbf{x}_b$ 的线性函数,方差与 $\mathbf{x}_b$ 独立。
假设给定一个边际高斯分布 $p(\mathbf{x})$ 和一个条件高斯分布 $p(\mathbf{y}|\mathbf{x})$,其中 $p(\mathbf{y}|\mathbf{x})$ 的均值是 $\mathbf{x}$ 的线性函数,方差与 $\mathbf{x}$ 无关。那么我们就可以通过下面步骤来计算出 $p(\mathbf{y})$ 和 $p(\mathbf{x}|\mathbf{y})$。

  • 先求出 $\mathbf{x}$ 和 $\mathbf{y}$ 的联合分布 $p(\mathbf{z})$ 服从的表达式,其中 $\mathbf{z}=(\mathbf{x},\mathbf{y})$。计算联合分布概率的对数,发现 $\mathbf{z}$ 也服从高斯分布。
  • 同样地,应用前文中complete the square的方法,求出 $p(\mathbf{z})$ 的均值和方差。
  • 应用前文的结论,得出 $p(\mathbf{y})$ 和 $p(\mathbf{x}|\mathbf{y})$。

结论如下
给定如下形式的边际高斯分布 $p(\mathbf{x})$ 和条件高斯分布 $p(\mathbf{y}|\mathbf{x})$ $$p(\mathbf{x})=\mathcal{N}(\mathbf{x}|\boldsymbol{\mu},\boldsymbol{\Lambda}^{-1})\tag{1}$$ $$p(\mathbf{y}|\mathbf{x})=\mathcal{N}(\mathbf{y}|\mathbf{Ax}+\mathbf{b},\mathbf{L}^{-1})\tag{2}$$则边际分布 $p(\mathbf{y})$ 和条件分布 $p(\mathbf{x}|\mathbf{y})$ 由下面的式子给出$$p(\mathbf{y})=\mathcal{N}(\mathbf{y}|\mathbf{A}\boldsymbol{\mu}+\mathbf{b},\mathbf{L}^{-1}+\mathbf{A}\boldsymbol{\Lambda}^{-1}\mathbf{A}^{\mathrm{T}})\tag{3}$$ $$p(\mathbf{x}|\mathbf{y})=\mathcal{N}(\mathbf{x}|\boldsymbol{\Sigma}\{\mathbf{A}^{\mathrm{T}}\mathbf{L}(\mathbf{y}-\mathbf{b})+\boldsymbol{\Lambda}\boldsymbol{\mu}\},\boldsymbol{\Sigma})\tag{4}$$其中$$\boldsymbol{\Sigma}=(\boldsymbol{\Lambda}+\mathbf{A}^{\mathrm{T}}\mathbf{L}\mathbf{A})^{-1}\tag{5}$$

2. 高斯分布的最大似然估计

高等数学中学过,高斯分布参数的最大似然估计为 $$\boldsymbol{\mu}_{\text{ML}}=\cfrac{1}{N}\sum_{n=1}^N \mathbf{x}_n\tag{6}$$ $$\boldsymbol{\Sigma}_{\text{ML}}=\cfrac{1}{N}\sum_{n=1}^N(\mathbf{x}_n-\boldsymbol{\mu}_{\text{ML}})(\mathbf{x}_n-\boldsymbol{\mu}_{\text{ML}})^{\mathrm{T}}\tag{7}$$其中,均值的估计是无偏的,而方差的估计是有偏差的,无偏差的方差估计如下$$\tilde{\boldsymbol{\Sigma}}=\cfrac{1}{N-1}\sum_{n=1}^N(\mathbf{x}_n-\boldsymbol{\mu}_{\text{ML}})(\mathbf{x}_n-\boldsymbol{\mu}_{\text{ML}})^{\mathrm{T}}\tag{8}$$

3. 高斯分布的共轭先验

3.1 单变量的情形

先考虑单一变量的情形,即给定一个数据集 $\mathbf{X}=\{x_1,…,x_N\}$,对高斯分布的参数进行推断

已知方差 $\sigma^2$ 推断均值 $\mu$

这种情况下,似然函数如下,将其看作是一个关于 $\mu$ 的函数$$p(\mathbf{X}|\mu)=\prod_{n=1}^N p(x_n|\mu)=\cfrac{1}{(2\pi\sigma^2)^{N/2}}\exp\left\{-\cfrac{1}{2\sigma^2}\sum_{n=1}^N(x_n-\mu)^2\right\}\tag{9}$$可以看出,似然函数关于 $\mu$ 是个指数项为 $\mu$ 的二次项的函数。所以,如果我们选择 $\mu$ 服从的先验分布为高斯分布,那么后验分布也就是高斯分布。选取先验分布$$p(\mu)=\mathcal{N}(\mu|\mu_0,\sigma_0^2)\tag{10}$$那么由 $p(\mu|\mathbf{X})\propto p(\mathbf{X}|\mu)p(\mu)$,利用complete the square的方法,可以得到后验概率为$$p(\mu|\mathbf{X})=\mathcal{N}(\mu|\mu_N,\sigma_N^2)\tag{11}$$其中$$\mu_N=\cfrac{\sigma^2}{N\sigma_0^2+\sigma^2}\mu_0+\cfrac{N\sigma_0^2}{N\sigma_0^2+\sigma^2}\mu_{\text{ML}}$$ $$\cfrac{1}{\sigma_N^2}=\cfrac{1}{\sigma_0^2}+\cfrac{N}{\sigma^2}$$观察上式,可以看出,后验分布的均值 $\mu_N$ 是先验均值 $\mu_0$ 和最大似然估计均值 $\mu_{\text{ML}}$ 之间的权衡。当 $N=0$ 时退化成先验均值,当 $N\to\infty$ 时退化成最大似然估计均值。
另外,后验精度(方差的倒数)是先验精度和 $N$ 个样本精度之和(注意,$\sigma$ 是已知的)。当 $N=0$ 时退化成先验方差,当 $N\to\infty$ 时后验方差趋近于0,即在最大似然估计点处有一个无穷高的高峰,其它地方的概率趋近为0。
另一方面,贝叶斯推断可以很自然地应用到顺序学习中,如下式所示$$p(\boldsymbol{\mu}|\mathcal{D})\propto\left[p(\boldsymbol{\mu})\prod_{n=1}^{N-1}p(\mathbf{x}_n|\boldsymbol{\mu})\right]p(\mathbf{x}_N|\boldsymbol{\mu})\tag{12}$$其中,方括号中为前 $N-1$ 个样本的后验分布,可以将它视为第 $N$ 个样本的先验分布。

已知均值 $\mu$ 推断方差 $\sigma^2$

下面用精度 $\lambda\equiv 1/\sigma^2$ 代替方差,可以使式子更简洁。关于 $\lambda$ 的似然函数如下所示$$p(\mathbf{X}|\lambda)=\prod_{n=1}^N\mathcal{N}(x_n|\mu,\lambda^{-1})\propto\lambda^{N/2}\exp\left\{-\cfrac{\lambda}{2}\sum_{n=1}^N(x_n-\mu)^2\right\}\tag{13}$$我们要找到一个分布与上式的函数形式相似,Gamma分布就是这样一个分布,包含 $\lambda$ 的幂,指数项上是 $\lambda$ 的一次函数$$\text{Gam}(\lambda|a,b)=\cfrac{1}{\Gamma(a)}b^a\lambda^{a-1}\exp(-b\lambda)\tag{14}$$Gamma分布的期望和方差如下$$\mathbb{E}[\lambda]=\cfrac{a}{b}\quad\qquad\text{var}[\lambda]=\cfrac{a}{b^2}$$考虑先验分布 $\text{Gam}(\lambda|a_0,b_0)$,乘以似然函数,可以得到后验分布如下$$p(\lambda|\mathbf{X})\propto\lambda^{a_0-1}\lambda^{N/2}\exp\left\{-b_0\lambda-\cfrac{\lambda}{2}\sum_{n=1}^N(x_n-\mu)^2\right\}\tag{15}$$可以将它看作是另外一个Gamma分布,参数为$$a_N=a_0+\cfrac{N}{2}$$ $$b_N=b_0+\cfrac{1}{2}\sum_{n=1}^N(x_n-\mu)^2=b_0+\cfrac{N}{2}\sigma_{\text{ML}}^2$$
类似地,我们可以将 $2a_0$ 视作有效先验样本数。

$\mu$ 和 $\sigma$ 均未知

这种情况下,似然函数为$$\begin{array}{r,c,l}p(\mathbf{X}|\mu,\lambda)&=&\displaystyle\prod_{n=1}^N\left(\cfrac{\lambda}{2\pi}\right)^{1/2}\exp\left\{-\cfrac{\lambda}{2}(x_n-\mu)^2\right\}\\ &\propto&\displaystyle\left[\lambda^{1/2}\exp\left(-\cfrac{\lambda\mu^2}{2}\right)\right]^N\exp\left\{\lambda\mu\sum_{n=1}^N x_n-\cfrac{\lambda}{2}\sum_{n=1}^N x_n^2\right\}\end{array}\tag{16}$$我们想确定一个先验分布 $p(\mu,\lambda)$ 具有与上式类似的形式,即$$\begin{array}{r,c,l}p(\mu,\lambda)&\propto&\left[\lambda^{1/2}\exp\left(-\cfrac{\lambda\mu^2}{2}\right)\right]^{\beta}\exp\{c\lambda\mu-d\lambda\}\\ &=&\exp\left\{-\cfrac{\beta\lambda}{2}(\mu-c/\beta)^2\right\}\lambda^{\beta/2}\exp\left\{-\left(d-\cfrac{c^2}{2\beta}\right)\lambda\right\}\end{array}\tag{17}$$其中 $c$,$d$ 和 $\beta$ 均是参数。我们可以将上式看作是 $p(\mu|\lambda)$ 和 $p(\lambda)$ 的乘积,其中 $p(\mu|\lambda)$ 服从高斯分布,而 $p(\lambda)$ 服从Gamma分布。归一化后的先验分布如下$$p(\mu,\lambda)=\mathcal{N}(\mu|\mu_0,(\beta\lambda)^{-1})\text{Gam}(\lambda|a,b)\tag{18}$$其中 $\mu_0=c/\beta$,$a=1+\beta/2$, $b=d-c^2/2\beta$。注意到上式并不是两个独立分布的乘积,高斯分布的方差依赖于Gamma分布的参数 $\lambda$。这个分布称为高斯-Gamma分布

3.2 多变量的情形

已知方差 $\sigma^2$ 推断均值 $\mu$

这种情况下,先验分布仍是多元高斯分布,可以很容易地推导,故不赘述。

已知均值 $\mu$ 推断方差 $\sigma^2$

这种情况下,共轭先验分布为Wishart分布$$\mathcal{W}(\boldsymbol{\Lambda}|\mathbf{W},\nu)=B|\boldsymbol{\Lambda}|^{(\nu-D-1)/2}\exp\left(-\cfrac{1}{2}\text{tr}(\mathbf{W}^{-1}\boldsymbol{\Lambda})\right)\tag{19}$$其中 $\nu$ 表示分布的自由度数目,归一化因子 $B$ 为$$B(\mathbf{W},\nu)=|\mathbf{W}|^{-\nu/2}\left(2^{\nu D/2}\pi^{D(D-1)/4}\prod_{i=1}^D\Gamma\left(\cfrac{\nu+1-i}{2}\right)\right)^{-1}\tag{20}$$

$\mu$ 和 $\sigma$ 均未知

类似地可以推导出,共轭先验为$$p(\boldsymbol{\mu},\boldsymbol{\Lambda}|\boldsymbol{\mu}_0,\beta,\mathbf{W},\nu)=\mathcal{N}(\boldsymbol{\mu}|\boldsymbol{\mu}_0,(\beta\boldsymbol{\Lambda})^{-1})\mathcal{W}(\boldsymbol{\Lambda}|\mathbf{W},\nu)\tag{21}$$这个分布称为高斯-Wishart分布

参考资料

  1. Pattern Recognition and Machine Learning (PRML)