Gaussian Mixture Model using EM Algorithm
E-M 算法有个典型的应用,就是高斯混合模型,适用于对多个高斯分布的数据进行分类。
Gaussian Mixture Model (k-mixture):
p(X|θ)=∑i=1kαlN(X|μl,Σl)(14)(14)p(X|θ)=∑i=1kαlN(X|μl,Σl)
∑l=1kαl=1(15)(15)∑l=1kαl=1
θ={α1,...αk,μ1,...μk,Σ1,...Σk}(16)(16)θ={α1,...αk,μ1,...μk,Σ1,...Σk}
由E-M算法我们有:
θ(g+1)=argmaxθ∫zlog(P(X,Z|θ))∗P(Z|X,θ(g))dz(17)(17)θ(g+1)=argmaxθ∫zlog(P(X,Z|θ))∗P(Z|X,θ(g))dz
又由混合高斯分布,我们有:
P(X,Z|θ)=∏i=1nP(xi,zi|θ)=∏i=1nP(xi|zi,θ)⋅P(zi|θ)=∏i=1nαziN(xi|μzi,Σzi)(18)(18)P(X,Z|θ)=∏i=1nP(xi,zi|θ)=∏i=1nP(xi|zi,θ)⋅P(zi|θ)=∏i=1nαziN(xi|μzi,Σzi)
P(Z|X,θ)=∏i=1nP(zi|xi,θ)=∏i=1nP(xi|zi,θ)∑kl=1P(xi|zl,θ)=∏i=1nαziN(xi|μzi,Σzi)∑kl=1αlN(xi|μl,Σl)(19)(19)P(Z|X,θ)=∏i=1nP(zi|xi,θ)=∏i=1nP(xi|zi,θ)∑l=1kP(xi|zl,θ)=∏i=1nαziN(xi|μzi,Σzi)∑l=1kαlN(xi|μl,Σl)
可以看到,虽然增加了隐变量Z, 但是P(X,Z|θ)P(X,Z|θ)比P(X|θ)P(X|θ)显得更简单。
把上面两个式子代入EM迭代式子里,有:
θ(g+1)=∑zi=1k∑i=1nlogP(xi,zi|θ)⋅P(zi|xi,θ(g))=∑l=1k∑i=1nlog[αlN(xi|μl,Σl)]⋅P(l|xi,θ(g))(20)(20)θ(g+1)=∑zi=1k∑i=1nlogP(xi,zi|θ)⋅P(zi|xi,θ(g))=∑l=1k∑i=1nlog[αlN(xi|μl,Σl)]⋅P(l|xi,θ(g))
代入高斯混合模型的前提,最后针对各个参数求导,令其为0. 最后有以下公式:
α(g+1)l=1N∑i=1NP(l|xi,θ(g))(21)(21)αl(g+1)=1N∑i=1NP(l|xi,θ(g))
μ(g+1)l=∑Ni=1xiP(l|xi,θ(g))∑Ni=1P(l|xi,θ(g))(12)(12)μl(g+1)=∑i=1NxiP(l|xi,θ(g))∑i=1NP(l|xi,θ(g))
Σ(g+1)l=∑Ni=1[xi−μ(g+1)l][xi−μ(g+1)l]TP(l|xi,θ(g))∑Ni=1P(l|xi,θ(g))(13)(13)Σl(g+1)=∑i=1N[xi−μl(g+1)][xi−μl(g+1)]TP(l|xi,θ(g))∑i=1NP(l|xi,θ(g))