EM 算法难点问题梳理
公式推导
以下在高斯的分布下假设:
X
−
=
(
X
1
,
X
2
,
.
.
.
,
X
n
)
\overset{-}{X}= (X_{1},X_{2},...,X_{n})
X−=(X1,X2,...,Xn),为观测值序列(实现序列)同时假设
X
−
=
(
X
1
,
X
2
,
.
.
.
,
X
n
)
,
X
i
∼
i
i
d
P
(
X
∣
θ
)
\overset{-}{X}= (X_{1},X_{2},...,X_{n}),X_{i}\overset{iid}{\sim}P(X|\theta)
X−=(X1,X2,...,Xn),Xi∼iidP(X∣θ),此外
l
o
g
−
l
i
k
e
h
o
o
d
log-likehood
log−likehood似然函数表达式如下:
L
(
θ
∣
X
−
)
=
l
o
g
[
P
(
X
−
∣
θ
)
]
=
l
o
g
[
∐
i
=
1
n
P
(
X
i
∣
θ
)
]
=
∑
i
=
1
n
l
o
g
(
P
(
X
i
∣
θ
)
)
\begin{aligned} & L(\theta| \overset{-}{X})=log[P( \overset{-}{X}|\theta)] \\ & =log[\coprod_{i=1}^{n} P(X_{i}|\theta)]\\ & = \sum_{i=1}^{n}log(P(X_{i}|\theta)) \end{aligned} \\
L(θ∣X−)=log[P(X−∣θ)]=log[i=1∐nP(Xi∣θ)]=i=1∑nlog(P(Xi∣θ))
补充:根据贝叶斯公式可知
P
(
θ
∣
X
)
p
o
s
t
e
r
i
o
r
∝
P
(
X
∣
θ
)
l
i
k
e
h
o
o
d
∗
P
(
θ
)
p
r
i
o
r
P
(
θ
∣
X
)
=
P
(
X
∣
θ
)
∗
P
(
θ
)
∑
θ
P
(
X
∣
θ
)
∗
P
(
θ
)
\overset{posterior}{P(\theta|X)}\propto \overset{likehood}{P(X|\theta)}*\overset{prior}{P(\theta)}\\ {P(\theta|X)}= \frac {{P(X|\theta)}*{P(\theta)}} {\sum_{\theta}{P(X|\theta)}*{P(\theta)}}\\
P(θ∣X)posterior∝P(X∣θ)likehood∗P(θ)priorP(θ∣X)=∑θP(X∣θ)∗P(θ)P(X∣θ)∗P(θ)
理解两个概率分布
-
P
(
Z
)
P(Z)
P(Z):理解数据受到整体的不同高斯权重的影响,这个权重主要是和某个高斯相关,这个权重是在未知数据下的先验信息。
即表示的是在没有数据 X X X的前提下,先验的高斯权重分布,可以这样理解:假设一组数据是来自三个不同的混合高斯,在我们完全没有先验信息的情况不知道哪个高斯对数据产生影响大的情况下,我们通常会假设来自不同的高斯有着不一样的概率,即 1 k {\frac 1 k} k1(但是实际上是不同的,这个需要我们利用EM去学习)。这个概率有什么作用?下面结合 P ( Z ∣ , X , θ ( g ) ) P(Z|,X,\theta^{(g)}) P(Z∣,X,θ(g))公式进行讲解。 -
P
(
Z
∣
,
X
,
θ
(
g
)
)
P(Z|,X,\theta^{(g)})
P(Z∣,X,θ(g)):数据受到整体的不同高斯权重的影响下,在某一个高斯权重的下的分布,这个权重是在已知数据下的条件概率。
即表示的是当给定一个数据 X X X的时候,可以根据这个数据和给定的参数 θ ( g ) {\theta^{(g)}} θ(g)计算出这个数据来自哪个高斯的概率,这样数据如果变多了,就会形成一个针对对不同数据作为自变量的一个来自不同高斯的分布,所以这就是对于数据来自某个高斯的概率分布。
举例子:
假设现在有两个高斯
G
1
(
X
)
=
1
2
π
Σ
1
exp
(
−
(
X
−
μ
1
)
2
2
Σ
1
)
G_{1}(X)= \frac {1} {\sqrt{2\pi} \Sigma1} \exp(-\frac {(X-\mu_{1})^{2}} {2\Sigma_{1}})
G1(X)=2πΣ11exp(−2Σ1(X−μ1)2)
G
2
(
X
)
=
1
2
π
Σ
2
exp
(
−
(
X
−
μ
2
)
2
2
Σ
2
)
G_{2}(X)= \frac {1} {\sqrt{2\pi} \Sigma2} \exp(-\frac {(X-\mu_{2})^{2}} {2\Sigma_{2}})
G2(X)=2πΣ21exp(−2Σ2(X−μ2)2)
受到两个高斯的影响,产生了一组数据
X
=
(
x
1
,
x
2
,
.
.
.
x
n
)
X=({x_{1},x_{2},...x_{n}})
X=(x1,x2,...xn)。此时在不知道数据的情况下我们会假设每个高斯的对数据产生概率的影响各位0.5,所以此时的
P
(
z
1
)
=
0.5
,
P
(
z
2
)
=
0.5
P(z_{1})=0.5,P(z_{2})=0.5
P(z1)=0.5,P(z2)=0.5。但是在知道数据的情况下,此时基于数据和先验消息
θ
(
g
)
\theta^{(g)}
θ(g)的情况下,我们可以知道对于每一个数据
x
i
x_{i}
xi,我们根据先验的信息带入到不同的高斯都可以计算出一个概率
G
1
(
x
i
)
G_{1}{(x_{i})}
G1(xi)和
G
2
(
x
i
)
G_{2}{(x_{i})}
G2(xi),但是此时的概率是在单个高斯下的概率,那么如果要计算在不同高斯下的概率,需要用到如下的公式:
P
(
z
i
∣
x
i
,
θ
(
g
)
)
=
p
(
z
i
)
G
1
(
x
i
)
p
(
z
1
)
G
1
(
x
1
)
+
p
(
z
2
)
G
2
(
x
i
)
P(z_{i}|x_{i},\theta^{(g)}) = \frac {p(z_{i})G_{1}(x_{i})} {p(z_{1})G_{1}(x_{1})+p(z_{2})G_{2}(x_{i})}
P(zi∣xi,θ(g))=p(z1)G1(x1)+p(z2)G2(xi)p(zi)G1(xi),这其实就是利用的贝叶斯公式:
P
(
Z
∣
X
,
θ
(
g
)
)
=
p
(
Z
∣
θ
(
g
)
)
P
(
X
∣
Z
,
θ
(
g
)
)
∑
Z
P
(
X
∣
Z
,
θ
(
g
)
)
P
(
Z
∣
θ
(
g
)
)
P(Z|X,\theta^{(g)}) = \frac {p(Z|\theta^{(g)})P(X|Z,\theta^{(g)})} {\sum_{Z}P(X|Z,\theta^{(g)})P(Z|\theta^{(g)})}
P(Z∣X,θ(g))=∑ZP(X∣Z,θ(g))P(Z∣θ(g))p(Z∣θ(g))P(X∣Z,θ(g))
拆解一下:可以把Z理解为来自哪个高斯事件
p
(
Z
∣
θ
(
g
)
)
=
p
(
Z
∣
θ
(
g
)
)
p(Z|\theta^{(g)})= p(Z|\theta^{(g)})
p(Z∣θ(g))=p(Z∣θ(g)) 表示的是在没有数据X时候的先验信息,即理解数据受到整体的不同高斯权重的影响;
P
(
X
∣
Z
,
θ
(
g
)
)
=
G
1
(
x
i
)
P(X|Z,\theta^{(g)})= G_{1}{(x_{i})}
P(X∣Z,θ(g))=G1(xi)表示假设已经知道数据来自哪个高斯的假设下的概率,即假设数据
x
1
x_{1}
x1来自高斯
G
1
G_{1}
G1情况下的概率
所以一个是先验,一个可以理解为似然,这样就可以求得在数据采集情况下的后验信息,即高斯的参数是多少;可以进行求导计算出来。当然对于很多维的高斯,求导的方法将会大大增加计算量,所以有了EM的方法。