MATLAB实现高斯混合分布的EM算法及二维时概率密度曲面置信椭圆绘制

Posted slandarer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB实现高斯混合分布的EM算法及二维时概率密度曲面置信椭圆绘制相关的知识,希望对你有一定的参考价值。

具体EM算法并不打算介绍太多,详细公式及证明可以参考文末链接的参考内容

EM算法

1 定义分量数目 K K K,对每个分量 k k k设置 π k , μ k , Σ k \\pi_k,\\boldsymbol\\mu_k,\\boldsymbol\\Sigma_k πk,μk,Σk的初始值。
2 E step
根据当前的 π k , μ k , Σ k \\pi_k,\\boldsymbol\\mu_k,\\boldsymbol\\Sigma_k πk,μk,Σk计算后验概率 γ ( z n k ) \\gamma(z_nk) γ(znk)
γ ( z n k ) = π k N ( x n ∣ μ n , Σ n ) ∑ j = 1 K π j N ( x n ∣ μ j , Σ j ) \\gamma\\left(z_n k\\right)=\\frac\\pi_k \\mathcalN\\left(\\boldsymbolx_n \\mid \\boldsymbol\\mu_n, \\boldsymbol\\Sigma_n\\right)\\sum_j=1^K \\pi_j \\mathcalN\\left(\\boldsymbolx_n \\mid \\boldsymbol\\mu_j, \\boldsymbol\\Sigma_j\\right) γ(znk)=j=1KπjN(xnμj,Σj)πkN(xnμn,Σn)
3 M step
根据 E step 中计算的 γ ( z n k ) \\gamma(z_nk) γ(znk)再计算新的 π k , μ k , Σ k \\pi_k,\\boldsymbol\\mu_k,\\boldsymbol\\Sigma_k πk,μk,Σk
μ k n e w = 1 N k ∑ n = 1 N γ ( z n k ) x n Σ k n e w = 1 N k ∑ n = 1 N γ ( z n k ) ( x n − μ k n e w ) ( x n − μ k n e w ) T π k n e w = N k N \\beginaligned \\boldsymbol\\mu_k^n e w &=\\frac1N_k \\sum_n=1^N \\gamma\\left(z_n k\\right) \\boldsymbolx_n \\\\ \\boldsymbol\\Sigma_k^n e w &=\\frac1N_k \\sum_n=1^N \\gamma\\left(z_n k\\right)\\left(\\boldsymbolx_n-\\boldsymbol\\mu_k^n e w\\right)\\left(\\boldsymbolx_n-\\boldsymbol\\mu_k^n e w\\right)^T \\\\ \\pi_k^n e w &=\\fracN_kN \\endaligned μknewΣknewπknew=Nk1n=1Nγ(znk)xn=Nk1n=1Nγ(znk)(xnμknew)(xnμknew)T=NNk
其中:
N k = ∑ n = 1 N γ ( z n k ) N_k=\\sum_n=1^N \\gamma\\left(z_n k\\right) Nk=n=1Nγ(znk)
4 检查参数是否收敛或对数似然函数是否收敛,若不收敛,则返回第2步。
对数似然函数:
ln ⁡ p ( x ∣ π , μ , Σ ) = ∑ n = 1 N ln ⁡ ∑ k = 1 K π k N ( x k ∣ μ k , Σ k ) \\ln p(\\boldsymbolx \\mid \\boldsymbol\\pi, \\boldsymbol\\mu, \\boldsymbol\\Sigma)=\\sum_n=1^N \\ln \\left\\\\sum_k=1^K \\pi_k \\mathcalN\\left(\\boldsymbolx_k \\mid \\boldsymbol\\mu_k, \\boldsymbol\\Sigma_k\\right)\\right\\ lnp(xπ,μ,Σ)=n=1Nlnk=1KπkN(xkμk,Σk)

EM算法MATLAB实现(附带详细注释)

此EM算法代码利用大量矩阵运算,和反复转置,减小了中间变量的大小,显著提高效率。

function [Mu,Sigma,Pi,Class]=gaussKMeans(pntSet,K,initM)
% @author:slandarer
% ================================================高斯混合模型(GMM)及EM算法的初步理解

记录:EM 算法估计混合高斯模型参数

用EM思想估计GMM(高斯混合聚类)

EM 算法-GMM

EM算法和混合高斯模型(一)

高斯混合模型以及EM算法