【谷速软件】matlab源码-GMM的EM算法实现

【谷速软件】matlab源码-GMM的EM算法实现

ID:47031045

大小:47.99 KB

页数:9页

时间:2019-07-01

【谷速软件】matlab源码-GMM的EM算法实现_第1页
【谷速软件】matlab源码-GMM的EM算法实现_第2页
【谷速软件】matlab源码-GMM的EM算法实现_第3页
【谷速软件】matlab源码-GMM的EM算法实现_第4页
【谷速软件】matlab源码-GMM的EM算法实现_第5页
资源描述:

《【谷速软件】matlab源码-GMM的EM算法实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在 聚类算法K-Means,K-Medoids,GMM,Spectralclustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明进行了详细说明。本文主要针对如何用EM算法在混合高斯模型下进行聚类进行代码上的分析说明。1.GMM模型:每个GMM由K 个Gaussian分布组成,每个Gaussian称为一个“Component”,这些Component线性加成在一起就组成了GMM的概率密度函数:根据上面的式子,如果我们要从GMM的分布中随机地取一个点的话,实际上可以分为两步:首先随

2、机地在这K个GaussianComponent之中选一个,每个Component被选中的概率实际上就是它的系数pi(k) ,选中了Component之后,再单独地考虑从这个Component的分布中选取一个点就可以了──这里已经回到了普通的Gaussian分布,转化为了已知的问题。那么如何用GMM来做clustering呢?其实很简单,现在我们有了数据,假定它们是由GMM生成出来的,那么我们只要根据数据推出GMM的概率分布来就可以了,然后GMM的K 个Component实际上就对应了K 个cluster了。根据数据来推算概率密度通常被称作de

3、nsityestimation,特别地,当我们在已知(或假定)了概率密度函数的形式,而要估计其中的参数的过程被称作“参数估计”。2.参数与似然函数:现在假设我们有N 个数据点,并假设它们服从某个分布(记作p(x) ),现在要确定里面的一些参数的值,例如,在GMM中,我们就需要确定影响因子pi(k)、各类均值pMiu(k) 和各类协方差pSigma(k) 这些参数。我们的想法是,找到这样一组参数,它所确定的概率分布生成这些给定的数据点的概率最大,而这个概率实际上就等于  ,我们把这个乘积称作似然函数(LikelihoodFunction)。通常

4、单个点的概率都很小,许多很小的数字相乘起来在计算机里很容易造成浮点数下溢,因此我们通常会对其取对数,把乘积变成加和 ,得到log-likelihoodfunction。接下来我们只要将这个函数最大化(通常的做法是求导并令导数等于零,然后解方程),亦即找到这样一组参数值,它让似然函数取得最大值,我们就认为这是最合适的参数,这样就完成了参数估计的过程。下面让我们来看一看GMM的log-likelihoodfunction: 由于在对数函数里面又有加和,我们没法直接用求导解方程的办法直接求得最大值。为了解决这个问题,我们采取之前从GMM中随机选点的

5、办法:分成两步,实际上也就类似于K-means 的两步。3.算法流程:1. 估计数据由每个Component生成的概率(并不是每个Component被选中的概率):对于每个数据  来说,它由第  个Component生成的概率为其中N(xi

6、μk,Σk)就是后验概率。2.通过极大似然估计可以通过求到令参数=0得到参数pMiu,pSigma的值。具体请见这篇文章第三部分。其中  ,并且  也顺理成章地可以估计为  。3. 重复迭代前面两步,直到似然函数的值收敛为止。4.matlab实现GMM聚类代码与解释:说明:fea为训练样本数据,gnd为样

7、本标号。算法中的思想和上面写的一模一样,在最后的判断accuracy方面,由于聚类和分类不同,只是得到一些cluster,而并不知道这些cluster应该被打上什么标签,或者说。由于我们的目的是衡量聚类算法的performance,因此直接假定这一步能实现最优的对应关系,将每个cluster对应到一类上去。一种办法是枚举所有可能的情况并选出最优解,另外,对于这样的问题,我们还可以用 Hungarianalgorithm 来求解。具体的Hungarian代码我放在了资源里,调用方法已经写在下面函数中了。注意:资源里我放的是Kmeans的代码,大

8、家下载的时候只要用bestMap.m等几个文件就好~1.gmm.m,最核心的函数,进行模型与参数确定。[cpp] viewplaincopyprint?1.function varargout = gmm(X, K_or_centroids)  2.% ============================================================  3.% Expectation-Maximization iteration implementation of  4.% Gaussian Mixture Model.

9、  5.%  6.% PX = GMM(X, K_OR_CENTROIDS)  7.% [PX MODEL] = GMM(X, K_OR_CENTROIDS)  8

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。