多维高斯分布

简介

  高斯分布是比较常见的概率分布,一维高斯分布如下:
f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{2\pi\sigma}e^{-{\frac{(x-\mu)^2} {2\sigma^2}}} f(x)=2πσ1e2σ2(xμ)2
其中, σ \sigma σ是方差, μ \mu μ是平均值。但是常见的一般是多维高斯分布,我们可以由一维的高斯分布推广到多维的高斯分布。

推导

  多维高斯分布的表示如下:
P ( x ∣ μ , Σ ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 e x p { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } P(x|\mu,\Sigma)=\frac{1}{{(2\pi)}^{n/2}|\Sigma|^{1/2}}exp\{{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)}\} P(xμ,Σ)=(2π)n/2Σ1/21exp{21(xμ)TΣ1(xμ)}
其中, μ = E ( x ) \mu=E(x) μ=E(x) Σ = C o v ( x ) = E { ( x − μ ) ( x − μ ) T } \Sigma=Cov(x)=E\{(x-\mu)(x-\mu)^T\} Σ=Cov(x)=E{(xμ)(xμ)T} μ \mu μ是均值向量, Σ \Sigma Σ是协方差矩阵。
  由多维高斯分布可以推导出联合高斯分布,假设有多维变量 X 1 X_1 X1 X 2 X_2 X2,它们的联合高斯分布和之前的形式一样,只不过相关参数有所变化,相关参数如下:
μ = [ μ 1 μ 2 ] \mu=\left[\begin{matrix}\mu_1\\\mu_2 \end{matrix}\right] μ=[μ1μ2]
Σ = [ Σ 11 Σ 12 Σ 21 Σ 22 ] \Sigma=\left[\begin{matrix}\Sigma_{11}&\Sigma_{12}\\\Sigma_{21}&\Sigma_{22}\end{matrix}\right] Σ=[Σ11Σ21Σ12Σ22]

  条件高斯分布 P ( X 1 ∣ X 2 = x 2 ) P(X_1|X_2=x_2) P(X1X2=x2)的参数如下:
μ 1 ∣ 2 = μ 1 + Σ 12 Σ 22 − 1 ( x 2 − μ 2 ) \mu_{1|2}=\mu_1+\Sigma_{12}\Sigma^{-1}_{22}(x_2-\mu_2) μ12=μ1+Σ12Σ221(x2μ2)
Σ 1 ∣ 2 = Σ 11 − Σ 22 − 1 Σ 21 \Sigma_{1|2}=\Sigma_{11}-\Sigma_{22}^{-1}\Sigma_{21} Σ12=Σ11Σ221Σ21
  多维高斯分布可以由多个变量的联合概率分布推导出来,一开始,我们考虑n个彼此无关的高斯分布变量,它们的联合概率密度为
f ( x 1 , x 2 , . . . , x n ) = ∏ i = 0 n f ( x i ) = 1 ( 2 π ) n / 2 ∏ i = 1 n σ i exp ⁡ − ∑ i = 1 n ( x i − μ i ) 2 σ 2 f(x_1,x_2,...,x_n)=\prod_{i=0}^{n}f(x_i)=\frac{1}{(2\pi)^{n/2}\prod_{i=1}^{n}\sigma_i}\exp{-\sum_{i=1}^{n}\frac{(x_i-\mu_i)^2}{\sigma^2}} f(x1,x2,...,xn)=i=0nf(xi)=(2π)n/2i=1nσi1expi=1nσ2(xiμi)2
其中, μ i \mu_i μi x i x_i xi的均值, σ i \sigma_i σi x i x_i xi的方差。
这和多维高斯分布是一致的,由于各个变量不相关,所以协方差矩阵 Σ \Sigma Σ是对角阵 Σ = d i a l o g ( σ 1 2 , σ 2 2 , . . . , σ n 2 ) \Sigma=dialog(\sigma_1^2,\sigma_2^2,...,\sigma_n^2) Σ=dialog(σ12,σ22,...,σn2)
利用多维高斯分布计算出来的结果与上式相同。

极大似然估计

  我们可以利用极大似然估计对多维高斯分布的参数进行估计。给定数据 X = { x 1 , x 2 , . . . , x n } X=\{x_1,x_2,...,x_n\} X={x1,x2,...,xn},已知 x ∼ N ( μ , Σ ) x\sim N(\mu,\Sigma) xN(μ,Σ),估计参数 μ \mu μ Σ \Sigma Σ的值。
  概率的对数似然函数如下:
ln ⁡ p ( X ∣ μ , Σ ) = − N 2 ln ⁡ det ⁡ ( Σ ) − 1 2 ∑ n = 1 N ( x n − μ ) T Σ − 1 ( x n − μ ) + c o n s t \ln p(X|\mu,\Sigma)=-\frac{N}{2}\ln \det(\Sigma) -\frac{1}{2}\sum_{n=1}^{N}(x_n-\mu)^T\Sigma^{-1}(x_n-\mu)+const lnp(Xμ,Σ)=2Nlndet(Σ)21n=1N(xnμ)TΣ1(xnμ)+const
将上式对 μ \mu μ求导,得 ∇ μ ln ⁡ p ( X ∣ μ , Σ ) = ∑ n = 1 N Σ − 1 ( μ − x n ) = Σ − 1 ∑ n = 1 N ( μ − x n ) = 0 \nabla_{\mu} \ln p(X|\mu,\Sigma)=\sum_{n=1}^{N}\Sigma^{-1}(\mu-x_n)=\Sigma^{-1}\sum_{n=1}^{N}(\mu-x_n)=0 μlnp(Xμ,Σ)=n=1NΣ1(μxn)=Σ1n=1N(μxn)=0
于是, μ ^ = 1 N ∑ n = 1 N x n \hat\mu=\frac{1}{N}\sum_{n=1}^{N}x_n μ^=N1n=1Nxn.

将上式对 Σ \Sigma Σ求导,需要先用"trace trick"对对数似然函数变形,对于矩阵的迹,有以下性质:

  • 如果c是数值,那么 t r ( c ) = c tr(c)=c tr(c)=c
  • 如果A,B是两个矩阵而且AB和BA是有定义的,那么 t r ( A B ) = t r ( B A ) tr(AB)=tr(BA) tr(AB)=tr(BA)
  • ∇ A B A = B T \nabla_{A}{BA}=B^T ABA=BT
  • ∇ A ln ⁡ ( det ⁡ ( A ) ) = ( A − 1 ) T \nabla_{A}\ln(\det(A))=(A^{-1})^T Aln(det(A))=(A1)T
  • 如果x是k1的向量,A是kk的对称矩阵,那么 ∇ x ( x T A x ) = 2 A x \nabla_{x}(x^TAx)=2Ax x(xTAx)=2Ax

将上述对数似然函数变形,得(因为是求导,所以我们忽略常数项)
ln ⁡ p ( X ∣ μ , Σ ) = − N 2 ln ⁡ det ⁡ ( Σ ) − 1 2 ∑ n = 1 N t r ( ( x n − μ ) T Σ − 1 ( x n − μ ) ) = − N 2 ln ⁡ det ⁡ ( Σ ) − 1 2 ∑ n = 1 N t r ( Σ − 1 ( x n − μ ) ( x n − μ ) T ) = − N 2 ln ⁡ det ⁡ ( Σ ) − 1 2 t r ( Σ − 1 ∑ n = 1 N ( x n − μ ) ( x n − μ ) T ) \begin{aligned} \ln p(X|\mu,\Sigma)=&-\frac{N}{2}\ln \det(\Sigma)-\frac{1}{2}\sum_{n=1}^{N}tr((x_n-\mu)^T\Sigma^{-1}(x_n-\mu))\\ =&-\frac{N}{2}\ln \det(\Sigma)-\frac{1}{2}\sum_{n=1}^{N}tr(\Sigma^{-1}(x_n-\mu)(x_n-\mu)^T)\\ =&-\frac{N}{2}\ln \det(\Sigma)-\frac{1}{2}tr(\Sigma^{-1}\sum_{n=1}^{N}(x_n-\mu)(x_n-\mu)^T) \end{aligned} lnp(Xμ,Σ)===2Nlndet(Σ)21n=1Ntr((xnμ)TΣ1(xnμ))2Nlndet(Σ)21n=1Ntr(Σ1(xnμ)(xnμ)T)2Nlndet(Σ)21tr(Σ1n=1N(xnμ)(xnμ)T)
将上式对 Σ − 1 \Sigma^{-1} Σ1求导,首先,
∇ Σ − 1 ln ⁡ det ⁡ ( Σ ) = − ∇ Σ − 1 ln ⁡ det ⁡ ( Σ − 1 ) = − Σ T \nabla_{\Sigma^{-1}}\ln\det(\Sigma)=-\nabla_{\Sigma^{-1}}\ln\det(\Sigma^{-1})=-\Sigma^T Σ1lndet(Σ)=Σ1lndet(Σ1)=ΣT
于是,
∇ Σ − 1 ln ⁡ p ( X ∣ μ , Σ ) = N 2 Σ T − 1 2 ∑ n = 1 N ( x n − μ ) ( x n − μ ) T \nabla_{\Sigma^{-1}} \ln p(X|\mu,\Sigma)=\frac{N}{2}\Sigma^T-\frac{1}{2}\sum_{n=1}^{N}(x_n-\mu)(x_n-\mu)^T Σ1lnp(Xμ,Σ)=2NΣT21n=1N(xnμ)(xnμ)T
令上式等于0,得
Σ = 1 N ∑ n = 1 N ( x n − μ ^ ) ( x n − μ ^ ) T \Sigma=\frac{1}{N}\sum_{n=1}^{N}(x_n-\hat\mu)(x_n-\hat\mu)^T Σ=N1n=1N(xnμ^)(xnμ^)T

参考资料
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值