Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

本文记录一些遇到的有关高斯分布的计算和结论。

高斯分布的形式

高斯分布,也叫正态分布, 是一种连续变量的实值随机变量的分布。

一元高斯分布

一元高斯分布的概率密度函数(probability density function,PDF)如下,设$x \sim \mathcal{N}(\mu, \sigma^2)$,则有
$$
f(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp \left[ -\frac{(x-\mu)^2}{2\sigma^2} \right]
$$

多元高斯分布

多元高斯分布的PDF可以被写成:
$$
f_{\mathbf{X}}(x_{1}, \ldots, x_{d}) = \frac{1}{\sqrt{(2\pi)^{d} \vert \mathbf{\Sigma}} \vert} \exp \left[ -\frac{1}{2}(\mathbf{x}-\mathbf{\mu})^{\mathrm{T}} \mathbf{\Sigma}^{-1} (\mathbf{x}-\mathbf{\mu}) \right]
$$
$\mathbf{x}$是$d$维的列向量,$\mu$是$d$维的均值向量,$\mathbf{\Sigma}$是$d \times d$的方差矩阵,且$\vert \cdot \vert \equiv \det(\cdot)$表示取行列式操作。

高斯分布的KL散度

KL散度

KL散度 (Kullback-Leibler Divergence) 是建立在熵 (Entropy) 的基础上的。
以离散情况为例,若一个离散随机变量$X$的可能取值为$\{ x_1,x_2,\cdots,x_n \}$,对应概率写作$p(x_i) = p(X=x_i)$,该离散随机变量$X$的熵定义为(规定$p(x_i)=0$时$p(x_i) \log p(x_i)=0$):
$$
H(X) = - \sum_{i=1}^n p(x_i) \log p(x_i)
$$
对于两个定义在某个样本空间$\mathcal{X}$上的离散随机变量$P$和$Q$,其概率分布为$p(x)$和$q(x)$,则其KL散度定义为:
$$
D_{\text{KL}}(P \parallel Q) = \sum_{x \in \mathcal{X}} p(x) \log \frac{p(x)}{q(x)}
$$
KL散度可以由交叉熵和熵通过下式得出(式子中的两项分别为交叉熵和熵的定义):
$$
\begin{aligned}
D_{\text{KL}}(P \parallel Q) &= \sum_{x \in \mathcal {X}} p(x) \log \frac {1}{q(x)} - \sum_{x \in \mathcal {X}} p(x) \log \frac {1}{p(x)} \cr
&= H(P,Q) - H(P)
\end{aligned}
$$
KL散度具有非负性和不对称性。即$D_{\text{KL}}(P \parallel Q) \geq 0$,$D_{\text{KL}}(P \parallel Q) \neq D_{\text{KL}}(Q \parallel P)$。

一维高斯分布的KL散度

假设$P$和$Q$为服从一维高斯分布$\mathcal{N}(\mu_1, \sigma_1^2)$和$\mathcal{N}(\mu_2, \sigma_2^2)$的随机变量,则$P$和$Q$的KL散度为:
$$
D_{\text{KL}}(P \parallel Q) = \log \frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2} - \frac{1}{2}
$$

推导过程如下

我们可以写出两个分布的表达式如下:
$$
\begin{aligned}
p(x) &= \frac{1}{\sqrt{2\pi}\sigma_1} \exp \left[ -\frac{(x-\mu_1)^2}{2\sigma_1^2} \right] \cr
q(x) &= \frac{1}{\sqrt{2\pi}\sigma_2} \exp \left[ -\frac{(x-\mu_2)^2}{2\sigma_2^2} \right]
\end{aligned}
$$
同时注意到KL散度可以被拆分为:
$$
D_{\text{KL}}(P \parallel Q) = \int [p(x) \log p(x) - p(x) \log q(x)]dx
$$
其中第一项推导如下:
$$
\begin{aligned}
\int p(x) \log p(x) dx &= \int p(x) \log \left\{ \frac{1}{\sqrt{2\pi}\sigma_1} \exp \left[ -\frac{(x-\mu_1)^2}{2\sigma_1^2} \right] \right\} dx \cr
&= \int p(x) \left\{ \log \frac{1}{\sqrt{2\pi}\sigma_1} + \left[ -\frac{(x-\mu_1)^2}{2\sigma_1^2} \right] \right\} dx \cr
&= -\frac{1}{2} \log 2\pi \sigma_1^2 + \int p(x) \left[ -\frac{(x-\mu_1)^2}{2\sigma_1^2} \right] dx \cr
&= -\frac{1}{2} \log 2\pi \sigma_1^2 - \frac{\int p(x)(x^2 - 2x \mu_1 + \mu_1^2) dx}{2\sigma_1^2} \cr
&= -\frac{1}{2} \log 2\pi \sigma_1^2 - \frac{(\mu_1^2+\sigma_1^2) - (2\mu_1 \times \mu_1) + \mu_1^2}{2\sigma_1^2} \cr
&= -\frac{1}{2} \log 2\pi \sigma_1^2 - \frac{1}{2}
\end{aligned}
$$
倒数第二个等号利用了方差的重要公式$V(X) = E([X-E(X)]^2) = E(X^2) - [E(X)]^2$。
相似地,第二项也可以按照同样的方式化简如下:
$$
\begin{aligned}
\int p(x) \log q(x) dx &= \int p(x) \log \left\{ \frac{1}{\sqrt{2\pi}\sigma_2} \exp \left[ -\frac{(x-\mu_2)^2}{2\sigma_2^2} \right] \right\} dx \cr
&= \int p(x) \left\{ \log \frac{1}{\sqrt{2\pi}\sigma_2} + \left[ -\frac{(x-\mu_2)^2}{2\sigma_2^2} \right] \right\} dx \cr
&= -\frac{1}{2} \log 2\pi \sigma_2^2 + \int p(x) \left[ -\frac{(x-\mu_2)^2}{2\sigma_2^2} \right] dx \cr
&= -\frac{1}{2} \log 2\pi \sigma_2^2 - \frac{\int p(x)(x^2 - 2x \mu_2 + \mu_2^2) dx}{2\sigma_2^2} \cr
&= -\frac{1}{2} \log 2\pi \sigma_2^2 - \frac{(\mu_1^2+\sigma_1^2) - (2\mu_2 \times \mu_1) + \mu_2^2}{2\sigma_2^2} \cr
&= -\frac{1}{2} \log 2\pi \sigma_2^2 - \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2}
\end{aligned}
$$
两式相减即可。

多元高斯分布的KL散度

假设$P$和$Q$为服从$n$维高斯分布$\mathcal{N}(\mu_1, \Sigma_1^2)$和$\mathcal{N}(\mu_2, \Sigma_2^2)$的随机变量,其中$\mu_1,\mu_2 \ \in \mathbb{R}^{n \times 1}$且$\Sigma_1,\Sigma_2 \in \mathbb{R}^{n \times n}$,则$P$和$Q$的KL散度为:
$$
D_{\text{KL}}(P \parallel Q) = \frac{1}{2} \left\{ \log \frac{\vert \Sigma_2 \vert}{\vert \Sigma_1 \vert} + \text{tr}\left(\Sigma_2^{-1} \Sigma_1 \right)+ (\mu_1 - \mu_2)^T \Sigma_2^{-1} (\mu_1 - \mu_2)^T - n \right\}
$$

推导前需要给出几个常用的矩阵性质

  • 矩阵的迹的性质
    • $ tr(\alpha A + \beta B) = \alpha tr(A) + \beta tr(B) $
    • $ tr(A) = tr(A^T) $
    • $ tr(AB) = tr(BA) $
    • $ tr(ABC) = tr(CAB) = tr(BCA) $
    • 设$\lambda \in \mathbb{R}^{n \times 1}$为列向量,则此时$\lambda^T A \lambda$为标量,存在以下性质:$ {\lambda ^T}A\lambda = tr({\lambda ^T}A\lambda ) = tr(A\lambda {\lambda ^T}) $
  • 多元高斯分布中均值和方差的性质
    • $ E [ x x^T ] = \Sigma + \mu \mu^T $,证明如下
      $$
      \begin{aligned}
      \Sigma & = E [(x - \mu)(x - \mu)^T ] \cr
      & = E [ x x^T - x \mu^T - \mu x^T + \mu \mu^T ] \cr
      & = E [ x x^T ] - E[x] \mu^T - \mu E[x^T] + \mu \mu^T \cr
      & = E [ x x^T ] - \mu \mu^T
      \end{aligned}
      $$
    • $E [ x^T A x ] = tr(A \Sigma) + \mu^T A \mu$,证明如下
      $$
      \begin{aligned}
      E [ x^T A x ] &= E[tr(x^T A x)] = E[tr(A x x^T)] \cr
      &= tr[E(A x x^T)] = tr[A E(x x^T)] \cr
      &= tr[A(\Sigma + \mu \mu^T)] \cr
      &= tr(A \Sigma) + tr(A \mu \mu^T) \cr
      &= tr(A \Sigma) + tr(\mu^T A \mu) \cr
      &= tr(A \Sigma) + \mu^T A \mu
      \end{aligned}
      $$
推导过程如下

两个高斯分布的乘积

todo 参考此文章

两个一维高斯分布的乘积

todo 参考此链接此链接

两个多元高斯分布的乘积

参考资料