采用EM算法对高斯混合模型(GMM)进行参数估计

介绍一个EM算法的应用例子:高斯混合模型参数估计。

高斯混合模型

高斯混合模型(Gaussian Mixture Model, GMM)是由多个高斯分布组成的模型,其密度函数为多个高斯密度函数的加权组合。

这里考虑一维的情况。假设样本 x是从 K 个高斯分布中生成的。每个高斯分布为

其中 µk 和 σk 分别为第 k 个高斯分布的均值和方差。

高斯混合模型 的图表示

高斯混合模型的概率密度函数为

高斯混合模型的生成过程可以分为两步:

  • 1. 首先按 π1, π2, · · · , πK 的分布,随机选取一个高斯分布(抽取的样本满足权重系数的分布);
  • 2. 假设选中第 k 个高斯分布,再从高斯分布 N (x|µk, σk)中选取一个样本 x。

 参数估计

给定 N 个由高斯混合模型生成的训练样本 x(1), x(2), · · · , x(N),希望能学习其中的参数πk, µk, σk, 1 ≤ k ≤ K。由于我们无法观测样本x(n) 是从哪个高斯分布生成的,因此无法直接用最大似然来进行参数估计(含有隐变量)。我们引入一个隐变量z(n) ∈ [1, K]来表示其来自于哪个高斯分布, z(n) 服从多项分布,其多项分布的参数为 π1, π2, · · · , πK,即

对每个样本 x(n),其对数边际分布为

根据 EM算法,参数估计可以分为两步进行迭代:

高斯混合模型的参数学习过程

给定一组数据,假设我们用两个高斯分布来估计这组数据的分布情况。

代码实现:待补充???

 
原文地址:https://www.cnblogs.com/jiangkejie/p/10733003.html