高斯分布相乘、积分整理
文章包括的内容有:
- [x] 一元高斯分布相乘的分布
- [x] 多元高斯分布相乘的分布
- [] 一元高斯的卷积分布
- [x] 应用:对多元高斯分布的参数推断
- [x] 应用:高斯线性系统的推导
前三部分的参考文献Products and Convolutions of Gaussian Probability Density
Functions. P.A. Bromile。应用的内容来自"machine learning a probabilistic perspective"的第四章p119~p120页。
引言
高斯分布是一个很重要的连续分布形式,频繁出现应用场景和里也可以导出很多分布,如在典型的线性回归中对误差\(\varepsilon\)的建模就是用的标准正态分布,统计学的学生$, t, $分布就是从正态分布中导出。随着贝叶斯统计学的广泛应用,相乘的高斯分布(高斯先验)等形式也出现在公式中,例如高斯线性系统,本文就这些形式进行说明。
一元高斯分布相乘
假设\(p(x_1)=\mathcal{N}(x\vert \mu_1,\sigma_1), \, p(x_2)=\mathcal{N}(x\vert \mu_2,\sigma_2)\)均是关于变量\(x\)的分布,现想计算\(p(x_1)p(x_2)\)的分布形式。
\[ \begin{align*} p(x_1)p(x_2) & = e^{-\frac{1}{2\sigma_1^2}\, (x-\mu_1)^2}e^{-\frac{1}{2\sigma_2^2}\, (x-\mu_2)^2} \\ & =e^{-\frac{1}{2}\frac{(\sigma_1^2\, +\sigma_2^2\, )\, x^2-2(\mu_1\, \sigma_2^2+\mu_2\, \sigma_1^2)x+\text{constant}}{\sigma_1^2\sigma_2^2}}\end{align*} \]
得两个高斯分布相乘仍为缩放的高斯分布,通过配方得到缩放的高斯分布参数为:
\[ \begin{align*} \mu & = \frac{\mu_1\sigma_2^2+\mu_2\sigma_1^2}{\sigma_1^2+\sigma_2^2} \\ \sigma & = \sqrt{\frac{\sigma_1^2\sigma_2^2}{\sigma_1^2+\sigma_2^2}} \end{align*} \]
上式可写为如下形式,从而推广至\(n\)个一维高斯分布相乘:
\[ \begin{align*} \mu &= (\frac{\mu_1}{\sigma_1^2}+\frac{\mu_2}{\sigma_2^2})\sigma^2 \\ \frac{1}{\sigma^2} &= \frac{1}{\sigma_1^2} + \frac{1}{\sigma_2^2} \end{align*} \]
具体为何是缩放的高斯分布可以阅读参考资料。
多元高斯分布相乘
我们熟知的多元高斯分布形式如下:
\[ \frac{1}{{2\pi}^{\frac{D}{2}}\vert \Sigma\vert^{\frac{1}{2}}}\, e^{-\frac{1}{2}(\mathbf{x}-\mathbf{\mu})^T\Sigma^{-1}\, (\mathbf{x}-\mathbf{\mu})} \]
多元高斯分布的另一种形式自然分布形式用到的参数为:
\[ \begin{align*} \Lambda &=\Sigma^{-1} \\ \xi &= \Sigma^{-1}\mu \end{align*} \]
分布形式如下:
\[ \frac{1}{{2\pi}^{\frac{D}{2}}}\vert \Lambda\vert\ ^{\frac{1}{2}}\, e^{-\frac{1}{2}(\mathbf{x}^T\Lambda\mathbf{x}-2\mathbf{x}^T\xi+\xi^T\Lambda^{-1}\, \xi)} \]
将指数外的系数放入指数部分,得到:
\[ e^{-\frac{1}{2}\mathbf{x}^T\Lambda\mathbf{x}+\xi^T\mathbf{x}-\zeta} \]
其中\(\zeta\)为:
\[ \frac{1}{2}(\xi^T\Lambda\xi+D\log^{2\pi}-\log^{\vert \Lambda \vert}) \]
在多个多元高斯相乘时,得到的结果如下:
\[ e^{-\frac{1}{2}\mathbf{x}^T(\sum\limits_i^n\Lambda_i)\mathbf{x}+(\sum\limits_i^n\xi_i)^T\mathbf{x}-\sum\limits_i^n\zeta_i} \]
通过对\(\zeta\)进行变换可以发现,仍为多元高斯分布。
上述两个式子均是通过配方法来寻找新分布的参数,而其中的normalization项则并不那么重要。
一元高斯的卷积分布
由于不清楚傅里叶变换,这部分暂时空缺。其实求得的分布结果与在大学概率论课上求两个正态分布变量加和的分布结果相一致。
推断高斯分布的参数
这一部分的内容来自于"Machine Learning A Probabilistic Perspective"一书的第四章p132~p134。假设多元高斯分布的参数\(\mu,\Sigma\)来自服从Normal-inverse-wishart分布:
\[ \begin{align*} \mathcal{N}(\mu\vert m_0,\frac{1}{\kappa_0}\Sigma)\times \text{IW}(\Sigma\vert S_0,v_0)\\ =\frac{1}{\text{Z}_{\text{NIW}}}\vert\Sigma\vert^{-\frac{1}{2}}e^{-\frac{\kappa_0}{2}\, (\mu-m_0)^T\Sigma^{-1}\, (\mu-m_0)}\times \\ \vert \Sigma \vert^{-\frac{v+D+1}{2}}e^{-\frac{1}{2}tr(S_0\Sigma^{-1}\, )} \end{align*} \]
在观测到一批数据集\(\mathcal{D}\)后,计算似然为:
\[ \vert \Sigma\vert^{-\frac{N}{2}}e^{-\frac{N}{2}(\mu-\bar{x})^T\Sigma^{-1}\, (\mu-\bar{x})}\times e^{-\frac{1}{2}tr(S_{\bar x}\Sigma^{-1}\, )} \]
在计算参数后验的分布时,用到了多元高斯分布相乘的方法。现假设:
\[ \begin{align*} \Lambda_1&=\kappa_0\Sigma^{-1}\\ \Lambda_2&=N\Sigma^{-1}\\ \xi_1&=\kappa_0\Sigma^{-1}m_0\\ \xi_2&=N\Sigma^{-1}\bar{x}\\ \end{align*} \]
利用相同的方法,可以得到:
\[ \begin{align*} \Lambda&=(\kappa_0+N)\Sigma^{-1}\\ m_N&=\Lambda^{-1}(\xi_1+\xi_2)\\ &=\frac{\kappa_0m_0+N\bar{x}}{\kappa_0+N} \end{align*} \]
高斯线性系统
这一部分的内容来自于"Machine Learning A Probabilistic Perspective"一书的第四章。这部分的内容可能与前面所述的不一致(多个均为同一变量\(\mathrm{x}\)分布的分布)。高斯线性系统如下:
\[ \begin{align*} p(x)=\mathcal{N}(\mathbf{\mu_0,\Sigma_0})\\ p(y\vert x)=\mathcal{N}(A\mathcal{x}+b,\Sigma_y) \end{align*} \]
\(y\)由\(\mathbf{x}\)产生,在观测到\(y\)后可以对\(\mathbf{x}\)进行更新:
\[ p(x\vert y) = \mathcal{N}(\mu_{x\vert y},\Sigma_{x\vert y}) \]
下面对\(\mu_{x\vert y},\Sigma_{x\vert y}\)进行计算。已知\(p(x,y)=p(y\vert x)p(x)\),\(p(y\vert x)p(x)\)的指数部分为:
\[ \begin{align*} x^T(\Sigma_0^{-1}+& A^T\Sigma_y^{-1}A)x -2x^T(\Sigma_0^{-1}\mu_{0}+A^T\Sigma_y^{-1}(y-b)) +\\ & (y-b)^T\Sigma_y^{-1}(y-b) + \mu_0^{T}\Sigma_0^{-1}\mu_0 \end{align*} \]
通过配方可以得到:
\[ \begin{align*} \Sigma_{x\vert y}^{-1} & = \Sigma_{0}^{-1}+A^T\Sigma_{y}^{-1}A\\ \mu_{x \vert y}& = \Sigma_{x\vert y}(\Sigma_0^{-1}\mu_0+A^T\Sigma_{y}^{-1}(y-b)) \end{align*} \]
下面对\(p(y)\)进行求解,我们知道\(p(y)=\int p(y\vert x)p(x) dx \text{,}p(x)p(y\vert x)=p(y)p(x\vert y)\)通过上述的式子,如果对上式求积分或者配方会有些复杂。实际上,通过上式可以得到\(p(x,y)\)逆协方差矩阵:
\[ \Lambda=\begin{bmatrix} \Sigma_0^{-1}+A^T\Sigma_y^{-1}A & -A^T\Sigma_y^{-1} \\ -\Sigma_y^{-1}A & \Sigma_y^{-1} \end{bmatrix} \]
利用联合高斯分布的推断结论,可以得到:
\[ \begin{align*} \mu_{x\vert y} &= \Sigma_{x\vert y}(\Sigma_{x\vert y}^{-1}\mu_0-\Lambda_{12}(y-\mu_y))\\ &=\Sigma_{x\vert y}(\Sigma_0^{-1}\mu_0+A^T\Sigma_{y}^{-1}A\mu_0+A^T\Sigma_{y}^{-1}(y-\mu_y))\\ &=\Sigma_{x\vert y}(\Sigma_0^{-1}\mu_0+A^T\Sigma_{y}^{-1}(y-b)) \end{align*} \]
可以推知:
\[ \mu_y=A\mu_0+b \]
再对\(\Sigma_y'\)(这里\(\Sigma_y'\)表示\(p(y)\)的协方差矩阵)进行计算:
\[ \begin{align*} \Sigma&=\begin{bmatrix} \Sigma_x & \Sigma_{xy}\\ \Sigma_{xy}^T & \Sigma_{y} \end{bmatrix}\\ &=\Lambda^{-1} \end{align*} \]
\[ \begin{align*} \begin{bmatrix} \rm{I} & A^T\\ 0 & \rm{I} \end{bmatrix}\Lambda \begin{bmatrix} \rm{I} & 0 \\ A & \rm{I} \end{bmatrix} &= \begin{bmatrix} \Sigma_0^{-1} & 0 \\ 0 & \Sigma_y^{-1} \end{bmatrix}\\ \Lambda^{-1}&= \begin{bmatrix} \rm{I} & 0 \\ A & \rm{I} \end{bmatrix} \begin{bmatrix} \Sigma_0 & 0 \\ 0 & \Sigma_y \end{bmatrix} \begin{bmatrix} \rm{I} & A^T\\ 0 & \rm{I} \end{bmatrix}\\ & = \begin{bmatrix} \Sigma_0 & \Sigma_0A^T\\ A\Sigma_0 & \Sigma_y+A\Sigma_0A^T \end{bmatrix} \end{align*} \]
因此\(\Sigma_y'=\Sigma_y+A\Sigma_0 A^T\),\(p(y)\)的分布参数如下:
\[ \begin{align*} \mu &= A\mu_0 +b \\ \Sigma &= \Sigma_y+A\Sigma_0A^T \end{align*} \]