在实现了EM算法的感性理解和理论推导之后,可以对经典算法混合高斯模型进行EM算法的求解。
高斯混合模型具有如下的概率分布:
其中
α
k
\alpha_k
αk>0 并且
∑
k
=
1
K
\sum_{k=1}^K
∑k=1K
α
k
\alpha_k
αk=1, 同时有:
高斯混合模型可以理解为:
一共有K个高斯模型,第k个高斯模型被选中的概率为
α
k
\alpha_k
αk。每一次获得观测数据时,首先根据
α
k
\alpha_k
αk选择第出一个模型,然后根据第k个模型的高斯分布
Φ
\Phi
Φ(Y|
θ
k
\theta_k
θk)获得最终的观测结果,其中
θ
k
\theta_k
θk={
μ
k
\mu_k
μk,
σ
k
\sigma_k
σk}。
根据高斯混合模型,我们想要求的最大似然函数为:
OK,看上面这个式子,log里面累加,求导求极值点什么的求不了,所以直接上EM算法:
根据高斯混合模型的理解,可以定义隐变量为:z= γ i k \gamma_{ik} γik,当K=5,选择了第2个模型时, γ i k \gamma_{ik} γik=[0,1,0,0,0]
则根据EM算法:
E步:
初始化参数一个求解P(z|
y
i
y_i
yi,
θ
k
\theta_k
θk):
定义:
所以L(
θ
\theta
θ)在
θ
0
\theta_0
θ0的下界为:
然后M步:
我们需要求下界函数的最大值,即:
然后其实就是更新参数
α
k
\alpha_k
αk,
μ
k
\mu_k
μk,
σ
k
\sigma_k
σk, 在求
μ
k
\mu_k
μk,
σ
k
\sigma_k
σk时,可以直接求导即可:
在求
α
k
\alpha_k
αk时,由于
α
k
\alpha_k
αk有参数约束:
∑
k
=
1
K
\sum_{k=1}^K
∑k=1K
α
k
\alpha_k
αk=1,可以构造拉格朗日函数然后求解:
分别对
α
k
\alpha_k
αk和
λ
\lambda
λ求导: