EM算法在高斯混合模型学习中的应用
一、高斯混合模型
1、定义:高斯混合模型是指具有以下形式的概率分布模型:
P(y|θ)=∑k=1Kαkϕ(y|θk)
P
(
y
|
θ
)
=
∑
k
=
1
K
α
k
ϕ
(
y
|
θ
k
)
其中,
αk
α
k
是系数,有
∑k=1Kαk=1,αk≥0
∑
k
=
1
K
α
k
=
1
,
α
k
≥
0
;
ϕ(y|θk)
ϕ
(
y
|
θ
k
)
是高斯分布密度,
θk=(μk,σ2k)
θ
k
=
(
μ
k
,
σ
k
2
)
2、EM算法的应用
假设观测数据是由高斯混合模型生成的,我们需要利用EM算法来估计参数
θ
θ
(1)明确隐变量,写出完全数据的对数似然函数
我们已知一个观测数据
yi
y
i
但不知道是由哪个分模型产生的,以隐变量
γjk
γ
j
k
来表示,其定义为:
当第j个观测来自第k个分模型时,隐变量取1,否则取0
所以完全数据的似然函数为:
由此可以求出完全似然函数。
(2)确定Q函数
Q(θ,θ(i))=E[logP(y,γ|θ)|y,θ(i)] Q ( θ , θ ( i ) ) = E [ log P ( y , γ | θ ) | y , θ ( i ) ]
(3)求极大值
经过一系列的推导,具体可以参考《统计学习方法》第163,最终总结如下:
E步:计算分模型对观测数据的响应度:
γˆjk=αkϕ(yj|θk)∏k=1Kαkϕ(yj|θk) γ ^ j k = α k ϕ ( y j | θ k ) ∏ k = 1 K α k ϕ ( y j | θ k )
M步:计算迭代参数:
μˆk=∑j=1Nγˆjkyj∑j=1Nγˆjk μ ^ k = ∑ j = 1 N γ ^ j k y j ∑ j = 1 N γ ^ j k
σˆ2k=∑j=1Nγˆjk(yj−μk)2∑j=1Nγˆjk σ ^ k 2 = ∑ j = 1 N γ ^ j k ( y j − μ k ) 2 ∑ j = 1 N γ ^ j k
αˆk=∑j=1NγˆjkN α ^ k = ∑ j = 1 N γ ^ j k N
重复迭代,直至收敛