多元高斯分布简述

本文简单概括多元高斯分布的定义、性质与应用,内容会持续更新。读者也可参考此文。

文章目录

    • 多元高斯分布定义
    • 多元高斯分布性质
    • 多元高斯分布乘法
      • 算法一
      • 算法二
    • 线性高斯系统
    • 高斯分布的KL散度

多元高斯分布定义

s s s 维随机向量 X = ( X 1 , X 2 , … , X s ) T X=(X_{1},X_{2},\dots,X_{s})^{T} X=(X1,X2,,Xs)T 的概率密度函数为:
f ( x 1 , x 2 , … , x s ) = 1 ( 2 π ) s / 2 ∣ Σ ∣ 1 / 2 exp ⁡ ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f(x_{1},x_{2},\dots,x_{s}) = \frac{1}{(2\pi)^{s/2}|\Sigma|^{1/2}}\exp\left( -\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu) \right) f(x1,x2,,xs)=(2π)s/2Σ1/21exp(21(xμ)TΣ1(xμ))
其中 x = ( x 1 , x 2 , … , x s ) T x = (x_{1},x_{2},\dots,x_{s})^{T} x=(x1,x2,,xs)T μ \mu μ s s s 维非随机向量, Σ \Sigma Σ s s s 阶正定阵。则称 X X X 服从 s s s 元高斯(正态)分布,简单记为 X ∼ N s ( μ , Σ ) X\sim N_{s}(\mu,\Sigma) XNs(μ,Σ)

  • μ \mu μ X X X 的均值向量: μ = E [ x ] \mu = \mathbb{E}[x] μ=E[x]
  • Σ \Sigma Σ X X X 的协方差矩阵: Σ = c o v [ x ] = E [ ( x − μ ) ( x − μ ) T ] \Sigma =\mathrm{cov}[x] = \mathbb{E}[(x-\mu)(x-\mu)^{T}] Σ=cov[x]=E[(xμ)(xμ)T]
  • Σ − 1 \Sigma^{-1} Σ1 被定义为精度矩阵(Precision Matrix or Concentration Matrix)。

指数函数括号内的表达式被称为两个向量之间的马氏距离(Mahalanobis distance)。为了更深入理解这个值,对 Σ \Sigma Σ进行特征值分解: Σ = U Λ U T \Sigma =U\Lambda U^{T} Σ=UΛUT,其中 U U U是由特征向量组成对标准正交阵, U T U = I U^{T}U=I UTU=I Λ \Lambda Λ 是由特征值组成的对角阵。
Σ − 1 = U − T Λ − 1 U − 1 = U Λ − 1 U T = ∑ i = 1 s 1 λ i u i u i T \Sigma^{-1} = U^{-T}\Lambda^{-1}U^{-1}=U\Lambda^{-1}U^{T}=\sum_{i=1}^{s}\frac{1}{\lambda_{i}}u_{i}u_{i}^{T} Σ1=UTΛ1U1=UΛ1UT=i=1sλi1uiuiT 其中 u i u_{i} ui U U U 中的列向量。如此,这个马氏距离可以被重写为:
( x − μ ) T Σ − 1 ( x − μ ) = ( x − μ ) T ( ∑ i = 1 s 1 λ i u i u i T ) ( x − μ ) = ∑ i = 1 s 1 λ i ( x − μ ) T u i u i T ( x − μ ) = ∑ i = 1 s y i 2 λ i \begin{aligned}(x-\mu)^{T}\Sigma^{-1}(x-\mu) &= (x-\mu)^{T}\left( \sum_{i=1}^{s}\frac{1}{\lambda_{i}}u_{i}u_{i}^{T} \right) (x-\mu) \\ &= \sum_{i=1}^{s}\frac{1}{\lambda_{i}}(x-\mu)^{T}u_{i}u_{i}^{T}(x-\mu) \\ &= \sum_{i=1}^{s}\frac{y_{i}^{2}}{\lambda_{i}} \end{aligned} (xμ)TΣ1(xμ)=(xμ)T(i=1sλi1uiuiT)(xμ)=i=1sλi1(xμ)TuiuiT(xμ)=i=1sλiyi2 其中 y i ≜ u i T ( x − μ ) y_{i} \triangleq u_{i}^{T}(x-\mu) yiuiT(xμ)。 可见,二维情况下高斯分布的等概率密度曲线是一个椭圆,长短轴方向为 u u u 的方向,半径为 λ 1 2 \lambda^{\frac{1}{2}} λ21

多元高斯分布性质

多元高斯(正态)分布具有如下性质:

  • X ∼ N s ( μ , Σ ) X\sim N_{s}(\mu,\Sigma) XNs(μ,Σ),其中 Σ \Sigma Σ 是对角阵,则 X 1 , X 2 , … , X s X_{1},X_{2},\dots, X_{s} X1,X2,,Xs 相互独立。
  • 多元高斯分布随机向量的任意子向量分布(即边缘分布)仍是高斯分布。反之不成立。
  • X ∼ N s ( μ , Σ ) X\sim N_{s}(\mu,\Sigma) XNs(μ,Σ) A ∈ R t × s A\in\mathbb{R}^{t\times s} ARt×s 是常数矩阵, b ∈ R t b\in\mathbb{R}^{t} bRt 是常数向量,则 A X + b ∼ N s ( A μ + b , A Σ A T ) AX+b \sim N_{s}(A\mu + b, A\Sigma A^{T}) AX+bNs(Aμ+b,AΣAT) 即高斯随机向量的线性函数还是高斯随机向量。
  • X ∼ N s ( μ , Σ ) X\sim N_{s}(\mu,\Sigma) XNs(μ,Σ),将 X , μ , Σ X, \mu, \Sigma X,μ,Σ 作如下剖分: X = [ X ( 1 ) X ( 2 ) ] , μ = [ μ ( 1 ) μ ( 2 ) ] , Σ = [ Σ 11 Σ 12 Σ 21 Σ 22 ] X = \begin{bmatrix} X^{(1)} \\ X^{(2)} \end{bmatrix},\quad \mu=\begin{bmatrix} \mu^{(1)} \\ \mu^{(2)} \end{bmatrix},\quad \Sigma = \begin{bmatrix} \Sigma_{11} & \Sigma_{12} \\ \Sigma_{21} & \Sigma_{22} \end{bmatrix} X=[X(1)X(2)],μ=[μ(1)μ(2)],Σ=[Σ11Σ21Σ12Σ22] X ( 1 ) ∼ N q ( μ ( 1 ) , Σ 11 ) X^{(1)}\sim N_{q}(\mu^{(1)},\Sigma_{11}) X(1)Nq(μ(1),Σ11) X ( 2 ) ∼ N s − q ( μ ( 2 ) , Σ 22 ) X^{(2)}\sim N_{s-q}(\mu^{(2)},\Sigma_{22}) X(2)Nsq(μ(2),Σ22) 以及条件分布: ( X ( 1 ) ∣ X ( 2 ) ) ∼ N s ( μ ( 1 ) + Σ 12 Σ 22 − 1 ( X ( 2 ) − μ ( 2 ) ) , Σ 11 − Σ 12 Σ 22 − 1 Σ 21 ) (X^{(1)} | X^{(2)})\sim N_{s}(\mu^{(1)}+\Sigma_{12}\Sigma_{22}^{-1}(X^{(2)}-\mu^{(2)}),\Sigma_{11}-\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}) (X(1)X(2))Ns(μ(1)+Σ12Σ221(X(2)μ(2)),Σ11Σ12Σ221Σ21) 即高斯随机向量的边缘分布、条件部分都还是高斯分布。
  • X ∼ N s ( μ , Σ ) X\sim N_{s}(\mu,\Sigma) XNs(μ,Σ) ,样本的均值向量 X ˉ \bar{X} Xˉ 和样本的协方差阵 S S S μ ^ = 1 n ∑ i = 1 n X i ≜ X ˉ Σ ^ = 1 n ∑ i = 1 n ( X i − X ˉ ) ( X i − X ˉ ) T = 1 n ( ∑ i = 1 n X i X i T ) − X ˉ X ˉ T \begin{aligned}\hat{\mu} &= \frac{1}{n}\sum_{i=1}^{n}X_{i} \triangleq \bar{X} \\ \hat{\Sigma} &= \frac{1}{n}\sum_{i=1}^{n}(X_{i} -\bar{X})(X_{i}-\bar{X})^{T} = \frac{1}{n}\left(\sum_{i=1}^{n}X_{i}X_{i}^{T}\right)-\bar{X}\bar{X}^{T}\end{aligned} μ^Σ^=n1i=1nXiXˉ=n1i=1n(XiXˉ)(XiXˉ)T=n1(i=1nXiXiT)XˉXˉT X ˉ \bar{X} Xˉ是总体均值向量 μ \mu μ 的极大似然估计也是其无偏估计; n − 1 S n^{-1}S n1S 是总体协方差阵 Σ \Sigma Σ 的极大似然估计但不是无偏估计, ( n − 1 ) − 1 S (n-1)^{-1}S (n1)1S Σ \Sigma Σ 的无偏估计以及有效估计、一致估计。 S S S 为正定阵的充要条件是 n > s n>s n>s

多元高斯分布乘法

假设有两个高斯分布: N x ( μ 1 , Σ 1 ) N_{x}(\mu_{1},\Sigma_{1}) Nx(μ1,Σ1) N x ( μ 2 , Σ 2 ) N_{x}(\mu_{2},\Sigma_{2}) Nx(μ2,Σ2) 那么
N x ( ⋅ ) N x ( ⋅ ) = c N x ( μ 3 , Σ 3 ) N_{x}(\cdot)N_{x}(\cdot) = cN_{x}(\mu_{3},\Sigma_{3}) Nx()Nx()=cNx(μ3,Σ3) 其中 c c c 是常数:
c = N μ 1 ( μ 2 , ( Σ 1 + Σ 2 ) ) = 1 2 π ∣ Σ 1 + Σ 2 ∣ exp ⁡ ( − 1 2 ( μ 1 − μ 2 ) T ( Σ 1 + Σ 2 ) − 1 ( μ 1 − μ 2 ) ) c = N_{\mu_{1}}(\mu_{2}, (\Sigma_{1}+\Sigma_{2})) = \frac{1}{\sqrt{2\pi |\Sigma_{1}+\Sigma_{2}|}}\exp\left( -\frac{1}{2}(\mu_{1}-\mu_{2})^{T}(\Sigma_{1}+\Sigma_{2})^{-1}(\mu_{1}-\mu_{2}) \right) c=Nμ1(μ2,(Σ1+Σ2))=2πΣ1+Σ2 1exp(21(μ1μ2)T(Σ1+Σ2)1(μ1μ2)) μ 3 = ( Σ 1 − 1 + Σ 2 − 1 ) − 1 ( Σ 1 − 1 μ 1 + Σ 2 − 1 μ 2 ) \mu_{3} = (\Sigma_{1}^{-1}+\Sigma_{2}^{-1})^{-1}(\Sigma_{1}^{-1}\mu_{1}+\Sigma_{2}^{-1}\mu_{2}) μ3=(Σ11+Σ21)1(Σ11μ1+Σ21μ2) Σ 3 = ( Σ 1 − 1 + Σ 2 − 1 ) − 1 \Sigma_{3} = (\Sigma_{1}^{-1}+\Sigma_{2}^{-1})^{-1} Σ3=(Σ11+Σ21)1 注意两个高斯分布的积不是高斯分布,但是却正比于第三个高斯分布。因此通常情况下如果对具体数值不严格要求,仅做统计学分析,那么可以按照如下方法计算:

算法一

如果已知两个协方差矩阵,那么使用如下公式:
Σ 3 = Σ 1 ( Σ 1 + Σ 2 ) − 1 Σ 2 \Sigma_{3} = \Sigma_{1}(\Sigma_{1}+\Sigma_{2})^{-1}\Sigma_{2} Σ3=Σ1(Σ1+Σ2)1Σ2 μ 3 = Σ 2 ( Σ 1 + Σ 2 ) − 1 μ 1 + Σ 1 ( Σ 1 + Σ 2 ) − 1 μ 2 \mu_{3} = \Sigma_{2}(\Sigma_{1}+\Sigma_{2})^{-1}\mu_{1} + \Sigma_{1}(\Sigma_{1}+\Sigma_{2})^{-1}\mu_{2} μ3=Σ2(Σ1+Σ2)1μ1+Σ1(Σ1+Σ2)1μ2 这里使用 Cholesky 分解得:
L L T = Σ 1 + Σ 2 LL^{T} = \Sigma_{1}+\Sigma_{2} LLT=Σ1+Σ2 那么
Σ ˉ 1 = L − 1 Σ 1 , Σ ˉ 2 = L − 1 Σ 2 \bar{\Sigma}_{1} = L^{-1}\Sigma_{1},\quad \bar{\Sigma}_{2}=L^{-1}\Sigma_{2} Σˉ1=L1Σ1,Σˉ2=L1Σ2 μ ˉ 1 = L − 1 μ 1 , μ ˉ 2 = L − 1 μ 2 \bar{\mu}_{1} = L^{-1}\mu_{1},\quad \bar{\mu}_{2} = L^{-1}\mu_{2} μˉ1=L1μ1,μˉ2=L1μ2 其中 L L L 是下三角矩阵,这种算法效率较高。最终:
Σ 3 = Σ ˉ 1 T Σ ˉ 2 , μ 3 = Σ ˉ 2 T μ ˉ 1 + Σ ˉ 1 T μ ˉ 2 \Sigma_{3} = \bar{\Sigma}_{1}^{T}\bar{\Sigma}_{2}, \quad \mu_{3}=\bar{\Sigma}_{2}^{T}\bar{\mu}_{1}+\bar{\Sigma}_{1}^{T}\bar{\mu}_{2} Σ3=Σˉ1TΣˉ2,μ3=Σˉ2Tμˉ1+Σˉ1Tμˉ2

算法二

如果已知协方差矩阵的逆,那么计算可以更加简化,如下:
Σ 3 − 1 = Σ 1 − 1 + Σ 2 − 1 \Sigma_{3}^{-1}=\Sigma_{1}^{-1}+\Sigma_{2}^{-1} Σ31=Σ11+Σ21 μ 3 = Σ 3 ( Σ 1 − 1 μ 1 + Σ 2 − 1 μ 2 ) \mu_{3}=\Sigma_{3}(\Sigma_{1}^{-1}\mu_{1}+\Sigma_{2}^{-1}\mu_{2}) μ3=Σ3(Σ11μ1+Σ21μ2)

线性高斯系统

假设有两个变量 x x x y y y,其中 y y y x x x 的含噪声观测,注意二者维度可能不同。那么,假设:
p ( x ) = N ( x ∣ μ x , Σ x ) p ( y ∣ x ) = N ( y ∣ A x + b , Σ y ) \begin{aligned} p(x) &= N(x|\mu_{x},\Sigma_{x}) \\ p(y|x) &= N(y|Ax+b,\Sigma_{y}) \end{aligned} p(x)p(yx)=N(xμx,Σx)=N(yAx+b,Σy) 这是一个线性高斯系统。根据系统的状态变量 x x x 我们可以生成观测变量 y y y。回顾第2节中的性质3,易知:
p ( y ) = N ( y ∣ A μ x + b , Σ y + A Σ x A T ) p(y) = N(y|A\mu_{x}+b,\Sigma_{y}+A\Sigma_{x}A^{T}) p(y)=N(yAμx+b,Σy+AΣxAT)
如果给定观测变量 y y y,利用贝叶斯公式,我们可以推测状态变量 x x x
p ( x ∣ y ) = N ( x ∣ μ x ∣ y , Σ x ∣ y ) μ x ∣ y = Σ x ∣ y [ A T Σ y − 1 ( y − b ) + Σ x − 1 μ x ] Σ x ∣ y − 1 = Σ x − 1 + A T Σ y − 1 A \begin{aligned}p(x|y) &= N(x|\mu_{x|y},\Sigma_{x|y}) \\ \mu_{x|y} &= \Sigma_{x|y}\left[ A^{T}\Sigma_{y}^{-1}(y-b)+\Sigma_{x}^{-1}\mu_{x} \right] \\ \Sigma_{x|y}^{-1} &= \Sigma_{x}^{-1} + A^{T}\Sigma_{y}^{-1}A \end{aligned} p(xy)μxyΣxy1=N(xμxy,Σxy)=Σxy[ATΣy1(yb)+Σx1μx]=Σx1+ATΣy1A

高斯分布的KL散度

KL散度(Kullback-Leibler divergence)用以衡量两个概率分布之间的差异。对于两个 s s s维高斯分布 N x ( μ x , Σ x ) N_{x}(\mu_{x},\Sigma_{x}) Nx(μx,Σx) N y ( μ y , Σ y ) N_{y}(\mu_{y},\Sigma_{y}) Ny(μy,Σy) 其KL散度定义为:
D K L ( N x ∣ ∣ N y ) = ∫ N x ( ξ ) log ⁡ N x ( ξ ) N y ( ξ ) d ξ = 1 2 ( log ⁡ det ⁡ Σ y det ⁡ Σ x − s + t r a c e ( Σ y − 1 Σ x ) + ( μ y − μ x ) T Σ y − 1 ( μ y − μ x ) ) \begin{aligned} D_{KL}(N_{x} || N_{y}) &= \int N_{x}(\xi)\log\frac{N_{x}(\xi)}{N_{y}(\xi)}\mathrm{d}\xi \\ &= \frac{1}{2}\left( \log\frac{\det\Sigma_{y}}{\det\Sigma_{x}} - s + trace(\Sigma_{y}^{-1}\Sigma_{x}) + (\mu_{y} - \mu_{x})^{T}\Sigma_{y}^{-1}(\mu_{y}-\mu_{x}) \right) \end{aligned} DKL(NxNy)=Nx(ξ)logNy(ξ)Nx(ξ)dξ=21(logdetΣxdetΣys+trace(Σy1Σx)+(μyμx)TΣy1(μyμx)) 注意KL散度不具有对称性。


更多详细内容可参考:

  • Kevin P. Murphy, Machine Learning - A Probabilistic Perspective, MIT Press, 2012.
  • How to analytically compute KL divergence of two Gaussian distributions?

你可能感兴趣的:(Machine,Learning)