本文主要是介绍【机器学习】高斯混合模型GMM和EM算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
百度百科:高斯混合模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。
高斯混合模型(GMM),顾名思义,就是数据可以看作是从数个单高斯分布(GSM)中生成出来的。虽然我们可以用不同的分布来随意地构造 XX Mixture Model ,但是 GMM最为流行。另外,Mixture Model 本身其实也是可以变得任意复杂的,通过增加 Model 的个数,我们可以任意地逼近任何连续的概率密分布。
1 单高斯模型GSM
2 高斯混合模型GMM
有一批观察数据,数据个数为n,在d 维空间中的分布不是椭球状,不适合以一个单一的高斯密度函数来描述这些数据点的概率密度函数。假设每个点均由一个单高斯分布生成,而这一批数据共由K(需要事先确定好)个单高斯模型生成,具体某个数据属于哪个单高斯模型未知,且每个单高斯模型在混合模型中占的比例未知,将所有来自不同分布的数据点混在一起,该分布称为高斯混合分布。
从数学上讲,我们认为单个数据点的概率分布密度函数可以通过加权函数表示:
GMM是一种聚类算法,其中的每一个单一的高斯分布N(x;uk,Σk)叫作这个模型的一个component,每个component就是一个聚类中心。即在只有样本点,不知道样本分类(含有隐含变量)的情况下,计算出模型参数(π,u和Σ)----这显然可以用EM算法来求解。
有N个数据点,服从某种分布P(x;θ),我们想找到一组参数θ,使得它所确定的概率分布,生成这些数据点的概率最大,这个概率就是,我们把这个乘积称作似然函数 (Likelihood Function)。通常单个点的概率都很小,许多很小的数字相乘起来在计算机里很容易造成浮点数下溢,因此我们通常会对其取对数,把乘积变成加和,得到对似然函数( log-likelihood function )。接下来我们只要将这个函数最大化(通常的做法是求导并令导数等于零,然后解方程),即找到这样一组参数值,它让似然函数取得最大值,我们就认为这是最合适的参数,这样就完成了参数估计的过程。(“期望最大化算法”名字由此而来)
也就是
求出参数,使得最大就可以。
EM法求解高斯混合模型参数:
1、初始化
2、估计步骤(E-step)
E就是Expectation的意思,就是假设模型参数已知的情况下,求隐含变量Z分别取z1,z2,...的期望,亦即Z分别取z1,z2,...的概率。在GMM中就是求数据点由各个 component生成的概率。
3、最大化步骤(M-step)
4、收敛条件
推荐相关博客:
高斯混合模型学习笔记
下一篇博客:高斯混合模型在opencv中的源码详解
这篇关于【机器学习】高斯混合模型GMM和EM算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!