‘壹’ 一文解释 GMM高斯混合模型和EM算法
GMM高斯混合模型和EM算法的解释如下:
GMM高斯混合模型: 定义:GMM,即高斯混合模型,是通过多个高斯分布的线性组合来适应复杂数据分布的一种模型。 应用场景:当单一高斯分布无法精确拟合数据分布时,GMM能够提供更灵活的建模方式。 参数估计:GMM不仅需要估计每个高斯分布的参数,还需要估计每个模型分量的所属概率。 目标:通过观测数据估计模型参数,以使得模型能够更准确地描述数据分布。
EM算法: 定义:EM算法,即期望最大化算法,是一种用于在存在隐变量的情况下,通过迭代求解模型参数的方法。 应用场景:在GMM中,每个数据点属于哪个高斯分布是未知的,这种未知信息可以视为隐变量。因此,EM算法被广泛应用于GMM的参数估计。 步骤: E步:计算每个数据点属于每个高斯分布的概率,这通常涉及计算联合概率和边缘概率。 M步:在已知每个数据点属于每个高斯分布的概率的情况下,通过最大化似然函数来更新模型参数。这通常涉及对似然函数求导,并找到使其最大化的参数值。 迭代:E步和M步交替进行,直到模型参数收敛或达到预设的迭代次数。
总结: GMM高斯混合模型通过多个高斯分布的线性组合来适应复杂数据分布,其关键在于参数估计和数据分类。 EM算法为GMM的参数估计提供了解决方案,通过逐步迭代优化模型,以更准确地拟合复杂数据分布。
‘贰’ 05 EM算法 - 高斯混合模型 - GMM
04 EM算法 - EM算法收敛证明
GMM (Gaussian Mixture Model, 高斯混合模型)是指该算法由多个高斯模型线性叠加混合而成。每个高斯模型称之为component。
GMM算法 描述的是数据的本身存在的一种分布,即样本特征属性的分布,和预测值Y无关。显然GMM算法是无监督的算法,常用于聚类应用中,component的个数就可以认为是类别的数量。
回到昨天说的例子:随机选择1000名用户,测量用户的身高;若样本中存在男性和女性,身高分别服从高斯分布N(μ1,σ1)和N(μ2,σ2)的分布,试估计参数:μ1,σ1,μ2,σ2;
1、如果明确的知道样本的情况(即男性和女性数据是分开的),那么我们使用极大似然估计来估计这个参数值。
2、如果样本是混合而成的,不能明确的区分开,那么就没法直接使用极大似然估计来进行参数的估计。
我们可以认为当前的1000条数据组成的集X,是由两个高斯分布叠加而成的(男性的分布和女性的分布)。
如果能找到一种办法把每一个高斯分布对应的参数π、 μ、σ求出来,那么对应的模型就求解出来了。
如果模型求解出来后,如何对数据进行聚类?
这个公式求出来的分别是男性和女性身高分布的概率密度,如果把π、 μ、σ都求出来,以后我们可以构建出一个 能够根据样本特征 计算出样本属于男性或女性的可能性。
实际做样本分类的时候,我们把样本X的特征x1~xn分别代入两个公式中,求出来的两个结果分别是:样本X的性别是男、是女的可能性。如果是男的可能性大于是女的可能性,我们就把样本X归入男性的分类。
假定 GMM 由k个Gaussian分布线性叠加而成,那么概率密度函数如下:
分析第1个等式:
p(x): 概率密度函数,k个Gaussian分布线性叠加而成的概率密度函数。
∑p(k)p(x|k): k个某种模型叠加的概率密度函数。
p(k): 每个模型占的权重,即上面提到的π。
p(x|k): 给定类别k后,对应的x的概率密度函数。
分析第2个等式: 目标 - 将公式写成高斯分布的样子。
π k : 即p(k)
p(x;μ k ,∑ k ): 多元高斯(正态)分布。有了观测数据x后,在 给定了条件 下的高斯分布。这个 条件 是 1、第k个分类的均值μ k ; 2、第k个分类的方差∑ k ;
深入分析p(x;μ k ,∑ k )的参数:
如果样本有n个特征,所有的特征x1~xn一起服从一个多元的高斯分布(正态分布),所有特征的均值应该是一个向量 (μ 1 ~μ n );
μ k : 第k个分类的情况下(第k个高斯分布的情况下对应的每一列的均值);μ k = (μ k1 ~μ kn )
∑ k : 协方差矩阵(对称阵)。现在有n个特征,协方差矩阵是一个n×n的矩阵。现在我们要算的是:
cov(x1,x1),cov(x1,x2),...,cov(x1,xn)
cov(x2,x1),cov(x2,x2),...,cov(x2,xn)
....
cov(xn,x1),cov(x1,x2),...,cov(xn,xn)
其中, 对角线 cov(x1,x1)、cov(x2,x2), ... ,cov(xn,xn)中,x1和x1的协方差 = x1的方差;即cov(x1,x1) = var(x1);所以 对角线上两个特征的协方差 = 对应的特征的方差。
协方差 (Covariance)在 概率论 和 统计学 中用于衡量两个变量的总体 误差 。而 方差 是协方差的一种特殊情况,即当两个变量是相同的情况。
协方差表示的是两个变量的总体的 误差 ,这与只表示一个变量误差的 方差 不同。 如果两个 变量 的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
理解了公式后,再来看看公式在图像上是如何体现的:
如果样本X只有一个特征x1,在二维的坐标系上的表示出来。特征x1是由n个单变量样本的高斯分布叠加而成的。向量x1 k = ∑ k (x1 (1) ,x1 (2) ,~,x1 (n) ),如k=(男、女),累加男性分类下的特征高斯分布和女性分类下的高斯分布;
图中 红色曲线 表示原有数据的分布情况,我认为这个原有数据是由多个比较的高斯分布叠加而成的, 蓝色曲线 表示单个单个高斯分布的分布情况。向量x1 = (x1 (1) ,x1 (2) ,~,x1 (n) );
PS: 蓝1+蓝2=红 体现的就是公式 p(x) = ∑πp(x;μ,∑k);
在得知数据的特征 x=(x1~xn) 后,如果我们想把数据合理得聚类到一个分类中,我们该如何去计算呢?
既然我已经得到了k个高斯分布对应的概率密度函数(现在设k=3,共3个分类),将当前特征的x=(x1~xn)代入我们的概率密度函数: p(x) = ∑πp(x;μ,∑k);
我们分别计算p(蓝1)、p(蓝2)、p(蓝3),蓝色三条线各对应k分类中的一个,哪个数大,我认为当前的样本该分到哪一类。
GMM算法的两个前提:
1、数据服从高斯分布;
2、我们人为定义了分类个数k。
问:我们人为假定了高斯分布的分类个数k,就类似于我们聚簇时分的聚簇中心个数一样。参数π、μ、σ该如何求出来?
答:和K-Means算法一样,我们可以用 EM算法 来求解这个问题。 GMM也满足EM算法的聚类思想,首先人为得定义了聚类的个数k,从数据特征X中发掘潜在关系的一种模型。而且我还默认数据是服从多个高斯分布的。
GMM算法中的隐含条件是:第k个模型占的权重 - 、 第k个高斯分布的情况下对应的每一列的均值 - 、协方差矩阵 cov(xi,xj) - ;因为本质上我们是知道数据原有的分类状况的,只是无法观测到隐含在数据中的这些特性,使用EM的思想可以迭代得求解出这些隐含变量。
对联合概率密度函数求对数似然函数:
对联合概率密度函数求对数后,原本 连乘 的最大似然估计变成了 连加 的函数状态。
EM算法求解 - E步:
套用公式后,我们可以假定隐含变量z的分布:Q(z (i) = j);
我们认为分布wj (i) = 第i个观测值对应的隐含分类第z (i) 类; = 以(看不见的参数π、μ、∑)为参数的情况下,输入第i观测值的特征x后得到的分类z (i) 类;
EM算法求解 - M步:
M步第1行就是上一章通过化简找到 下界 的那个函数:
1、对均值求偏导:
2、对方差求偏导:
3、对概率使用拉格朗日乘子法求解:
06 EM算法 - 案例一 - EM分类初识及GMM算法实现
‘叁’ 高斯混合模型(GMM)与最大期望(EM)算法笔记
本文聚焦于高斯混合模型(GMM)及其与最大期望(EM)算法的关系。GMM在机器学习领域中扮演着重要角色,尤其在聚类与密度估计方面展现出强大威力。
### 极大似然估计
极大似然估计法是参数估计的一种经典方法。以正态分布为例,我们旨在估计分布的参数。通过构造似然函数并对其进行优化,我们能够找到使得数据出现概率最大的参数值。
### GMM原理
GMM假定数据是由多个高斯分布混合而成的,其核心在于通过混合多个高斯分布来拟合数据分布的复杂性。相较于单一高斯分布,GMM能够更准确地捕捉数据的聚类特征。GMM中的每个高斯分布称为组件,它们共同构成了一个概率密度函数。
### EM算法
EM算法是一种迭代求解极大似然估计问题的高效方法,尤其适用于存在隐变量的模型。在GMM中,EM算法通过交替进行E步骤(期望)和M步骤(最大化),逐步优化模型参数,直至收敛。
EM算法的流程包括初始化参数,然后在E步骤中计算缺失数据的期望值,随后在M步骤中最大化似然函数以更新参数。这一过程重复进行,直到参数值不再显着变化。
### 应用与局限性
GMM与EM算法在聚类任务中展现出了强大能力。它们不仅能够实现数据分类,还能提供数据点属于各个类别的概率,这一特性在许多实际应用中极为宝贵。然而,EM算法的全局最优解并非总是可得,初始参数的选择对最终结果有显着影响。
总结而言,高斯混合模型与最大期望算法是数据驱动分析的重要工具,尤其在处理复杂数据分布时展现出巨大潜力。通过巧妙地结合概率理论与迭代优化方法,它们为解决实际问题提供了有效手段。