顾名思义,每个成分都是高斯分布。
p(x|μ,λ,π)=K∑k=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 时,xi∼N(x|μk,(λk)−1),可以根据这个来采样。例如我们需要根据 GMM 采 N 个点,首先根据 π 得到每一个高斯有多少个点。在同一类中再根据对应的高斯分布采点。
EM算法求解参数
- 初始化参数 π, μ, Σ
- E step
根据当前的参数计算后验:p(zi=k∣xi,π,μ,λ)=πkN(xi∣μk,λk)∑Kj=0πjN(xi∣μj,λj) - M step
最大化后验计算新的参数:μnewk=1NkN∑n=1p(znk)xnΣnewk=1NkN∑n=1p(znk)(xn−μnewk)(xn−μnewk)Tπnewk=NkN其中Nk=N∑n=1p(znk) - 计算对数似然作为损失 lnp(x|π,μ,Σ)=N∑n=1ln{K∑k=1πkN(xk|μk,Σk)}
- 若收敛则结束,否则到 2.