高斯分布是比较常见的概率分布,一维高斯分布如下:
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πσ1e−2σ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(X1∣X2=x2)的参数如下:
μ 1 ∣ 2 = μ 1 + Σ 12 Σ 22 − 1 ( x 2 − μ 2 ) \mu_{1|2}=\mu_1+\Sigma_{12}\Sigma^{-1}_{22}(x_2-\mu_2) μ1∣2=μ1+Σ12Σ22−1(x2−μ2)
Σ 1 ∣ 2 = Σ 11 − Σ 22 − 1 Σ 21 \Sigma_{1|2}=\Sigma_{11}-\Sigma_{22}^{-1}\Sigma_{21} Σ1∣2=Σ11−Σ22−1Σ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=0∏nf(xi)=(2π)n/2∏i=1nσi1exp−i=1∑nσ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) x∼N(μ,Σ),估计参数 μ \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=1∑N(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)=Σ−1∑n=1N(μ−xn)=0
于是, μ ^ = 1 N ∑ n = 1 N x n \hat\mu=\frac{1}{N}\sum_{n=1}^{N}x_n μ^=N1∑n=1Nxn.
将上式对 Σ \Sigma Σ求导,需要先用"trace trick"对对数似然函数变形,对于矩阵的迹,有以下性质:
将上述对数似然函数变形,得(因为是求导,所以我们忽略常数项)
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=1∑Ntr((xn−μ)TΣ−1(xn−μ))−2Nlndet(Σ)−21n=1∑Ntr(Σ−1(xn−μ)(xn−μ)T)−2Nlndet(Σ)−21tr(Σ−1n=1∑N(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ΣT−21n=1∑N(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=1∑N(xn−μ^)(xn−μ^)T