本文简单概括多元高斯分布的定义、性质与应用,内容会持续更新。读者也可参考此文。
设 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) X∼Ns(μ,Σ)。
指数函数括号内的表达式被称为两个向量之间的马氏距离(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=U−TΛ−1U−1=UΛ−1UT=i=1∑sλ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=1∑sλi1uiuiT)(x−μ)=i=1∑sλi1(x−μ)TuiuiT(x−μ)=i=1∑sλiyi2 其中 y i ≜ u i T ( x − μ ) y_{i} \triangleq u_{i}^{T}(x-\mu) yi≜uiT(x−μ)。 可见,二维情况下高斯分布的等概率密度曲线是一个椭圆,长短轴方向为 u u u 的方向,半径为 λ 1 2 \lambda^{\frac{1}{2}} λ21 。
多元高斯(正态)分布具有如下性质:
假设有两个高斯分布: 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=(Σ1−1+Σ2−1)−1(Σ1−1μ1+Σ2−1μ2) Σ 3 = ( Σ 1 − 1 + Σ 2 − 1 ) − 1 \Sigma_{3} = (\Sigma_{1}^{-1}+\Sigma_{2}^{-1})^{-1} Σ3=(Σ1−1+Σ2−1)−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=L−1Σ1,Σˉ2=L−1Σ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=L−1μ1,μˉ2=L−1μ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} Σ3−1=Σ1−1+Σ2−1 μ 3 = Σ 3 ( Σ 1 − 1 μ 1 + Σ 2 − 1 μ 2 ) \mu_{3}=\Sigma_{3}(\Sigma_{1}^{-1}\mu_{1}+\Sigma_{2}^{-1}\mu_{2}) μ3=Σ3(Σ1−1μ1+Σ2−1μ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(y∣x)=N(x∣μx,Σx)=N(y∣Ax+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(y∣Aμ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(x∣y)μx∣yΣx∣y−1=N(x∣μx∣y,Σx∣y)=Σx∣y[ATΣy−1(y−b)+Σx−1μx]=Σx−1+ATΣy−1A
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(Nx∣∣Ny)=∫Nx(ξ)logNy(ξ)Nx(ξ)dξ=21(logdetΣxdetΣy−s+trace(Σy−1Σx)+(μy−μx)TΣy−1(μy−μx)) 注意KL散度不具有对称性。
更多详细内容可参考: