GMM模型和EM算法
高斯混合模型GMM

上图的分布很难用一个高斯分布进行模拟。观察上图,大致可以看见6个分布。将6个高斯分布线性加到一起就组成了能描述上图的高斯混合分布。
混高斯合分布的概率密度函数如下:
p(x∣θ)=j=1∑Kp(x,z=j∣θ)=p(z=j∣θ)p(x∣z=j,θ)=j=1∑KπjN(x;μj,Σj)其中:p(z=j∣θ)=πj;p(x∣z=j,θ)=N(x;μj,Σj)θ≡{πj,μj,Σj;j=1,2,…,K};j=1,2,…,K
对于高斯混合模型的参数估计,如果利用最大似然估计,即:
θ∗=argmaxθi=1∏Np(xi∣θ)
对似然函数取对数,求解最优化问题(求导数为0):
l(θ;x)=logp(x∣θ)=logi∏p(xi∣θ)=i∑logp(xi∣θ)=i∑logz∑p(xi,z∣θ)=0
log函数里面有个求和符号,很难求导来求最优值。因此最大似然估计难以进行GMM的参数估计。
EM算法(Expectation-Maximization Algorithm)
观察上面那副图我们可以大致地看出有6个高斯分布。如果对于上图地每一个点,能够大致的地判断它属于这六个高斯分布中的哪一个,即为这些点贴上“标签”z,然后对于每个高斯分布,利用我们认为属于该分布的点估计参数,这样就能够得出这个高斯混合分布的参数了。这就是EM算法的直观理解。而这些“标签”z可以认为是分布的隐含变量(当然,这些标签可以是“软划分”,即属于某个高斯分布的概率)。
回到上文的对数似然函数:
l(θ;x)=i∑logz∑p(xi,z∣θ)
其中:
logz∑p(x,z∣θ)=logz∑q(z)q(z)p(x,z∣θ)≥z∑q(z)logq(z)p(x,z∣θ)(根据Jensen不等式)
为了下面表示方便,令:
L(θ;x)=i∑z∑q(z)logq(z)p(x,z∣θ)l(θ;x)≥L(θ;x)
如果我们能根据Jensen不等式放缩这个似然函数,求和符号就挪到了log函数外面,这样就能更好求导来求解最优值。Jensen不等式:
Jensen’s inequality: f(j∑λjxj)≥j∑λjf(xj)
但是,这个q(z)该是多少呢?结果证明,q(z)=p(z|x,θ)时最好,因为此时式子的等号成立:
z∑p(z∣x,θ)logp(z∣x,θ)p(x,z∣θ)=z∑p(z∣x,θ)logp(x∣θ)=logp(x∣θ)=z∑p(xi,z∣θ)
所以,E步就是利用目前的参数θ来,根据q(z)=p(z|x,θ)来计算q(z),使得(也就是说,当q(z)=p(z|x,θ)时,下式取最优值):
q(t+1)=argqmaxL(q,θ(t))
M步就是利用L(θ|x)来近似l(θ|x),求解最优化问题计算θ:
θ(t+1)=argqmaxL(q(t),θ)
L(q,θ)=i=1∑Nzi∑q(zi)logq(zi)p(xi,zi∣θ)=i=1∑Nzi∑q(zi)logp(xizi∣θ)−q(zi)logq(zi)=i=1∑Nj=1∑Kqijlog[πj∗p(xi∣φj)]+C(−qlogq可以看作是常数)
其中,φj表示混合分布中,第j个高斯分布的参数(μ,Σ),这里为了简便而统一表示。πj即高斯混合分布公式中每个高斯分布的权重,即:
p(z=j∣θ)=πj;p(x∣z=j,θ)=p(x∣φj)
对于φj,将L求导等于零即可求得:
∂φj∂L(q,θ)=∂φj∂{i=1∑Nqijlogp(xi∣φj)}=0⇒φj
而对于πj,还满足于一个约束条件:
j=1∑Kπj=1
因此需要利用拉格朗日乘子求解。
在回到E步,之前说我们用z表示"标签",对于某一个高斯分布,q(z)=p(z|x,θ)具体公式如下:
q(zi=c)=p(zi=c∣xi,θt)=∑dp(xi,zi=d∣θt)p(xi,zi=c∣θt)
对于GMM模型来说:
q(zi=c)=∑dπ(zi=d)N(xi∣μd,σd)π(zi=c)N(xi∣μc,σc)