简介
高斯分布是比较常见的概率分布,一维高斯分布如下:
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"对对数似然函数变形,对于矩阵的迹,有以下性质:
-
如果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))=(A−1)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=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