顾名思义,每个成分都是高斯分布。

p(x|μ,λ,π)=Kk=1πkN(x|μk,(λk)1)
  • μ is the vector of K means
  • λ is the vector of K precisions
  • π is the vector of K weights such that Kk=1πk=1

这样看就是 K 个高斯的线性组合。对于每个观测数据 xi 而言,可以引入潜变量 zi,表示 xi 属于哪一个高斯(1 到 K)。当给定 zi=k 时,xiN(x|μk,(λk)1),可以根据这个来采样。例如我们需要根据 GMM 采 N 个点,首先根据 π 得到每一个高斯有多少个点。在同一类中再根据对应的高斯分布采点。

EM算法求解参数

  1. 初始化参数 π, μ, Σ
  2. E step
    根据当前的参数计算后验:p(zi=kxi,π,μ,λ)=πkN(xiμk,λk)Kj=0πjN(xiμj,λj)
  3. M step
    最大化后验计算新的参数:μnewk=1NkNn=1p(znk)xnΣnewk=1NkNn=1p(znk)(xnμnewk)(xnμnewk)Tπnewk=NkN其中Nk=Nn=1p(znk)
  4. 计算对数似然作为损失 lnp(x|π,μ,Σ)=Nn=1ln{Kk=1πkN(xk|μk,Σk)}
  5. 若收敛则结束,否则到 2.