高斯混合模型

极大似然估计MLE

似然函数

令Dc表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数在这里插入图片描述对于数据集Dc的似然是
在这里插入图片描述
在这里插入图片描述进行极大似然估计,就是去寻找能最大化似然在这里插入图片描述的参数值在这里插入图片描述.直观看,极大似然估计是试图在在这里插入图片描述所有可能的取值中,找到一个能使数据出现的“可能性”最大的值。
由于连乘操作易造成下溢,通常使用对数似然
在这里插入图片描述
此时参数在这里插入图片描述极大似然估计
在这里插入图片描述

EM算法

解决的是在概率模型中含有无法观测的隐含变量情况下的参数估计问题,是迭代的方法
X:已观测,Z:未观测(隐变量),在这里插入图片描述模型参数。想要对在这里插入图片描述做极大似然估计,则应最大化对数似然
在这里插入图片描述
在这里插入图片描述
由于在这里插入图片描述是未知的,无法直接通过最大似然估计求解参数,这时需要利用EM算法来求解。

EM算法原理推导

假设在这里插入图片描述对应的分布为在这里插入图片描述,并满足在这里插入图片描述。利用Jensen不等式,可以得到
在这里插入图片描述
要使等号成立,需要满足在这里插入图片描述因此,在这里插入图片描述。当等式成立时,我们相当于为待优化函数找到了一个逼近的下界,然后通过最大化这个下界可以使得待优化函数向更好的方向改进

EM基本思想

若参数在这里插入图片描述已知,则可根据训练数据推断出最优隐变量Z的值(E步);反之,若Z的值已知,则可方便的对参数在这里插入图片描述做极大似然估计(M步)。
在这里插入图片描述为起点,可迭代的执行以下步骤直至收敛:
在这里插入图片描述
若我们不是取Z的期望,而是基于在这里插入图片描述计算隐变量Z的概率分布在这里插入图片描述则EM算法的两个步骤是:
在这里插入图片描述
简要的说,EM算法使用两个步骤交替计算:第一步是期望(E)步,利用当前估计的参数值来计算对数似然的期望值;第二步是最大化(M)步,寻找能使E步产生的似然期望最大化的参数值。然后,新得到的参数值重新被用于E步,…,直至收敛到局部最优解。

高斯混合模型

所属类别:聚类算法,使用EM算法进行迭代计算

概念:

高斯混合模型假设每个簇的数据都是符合高斯分布(又叫正态分布)的,当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。也即多个高斯分布函数的线性组合来对数据分布进行拟合。
理论上,高斯混合模型可以拟合出任意类型的分布。
在这里插入图片描述
在这里插入图片描述

高斯混合模型的核心思想

假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值在这里插入图片描述和方差在这里插入图片描述都是待估计的参数。此外,每个分模型都还有一个参数在这里插入图片描述,可理解为权重或生成数据的概率。

高斯混合模型的公式:

在这里插入图片描述

高斯混合模型的计算

寻找最佳的均值,方差,和权重,这类问题通常是通过极大似然估计来求解。但此问题中直接使用最大似然估计,得到的是一个复杂的非凸函数,目标函数是喝的对数,难以展开和对其求偏导。

采用EM算法求解该优化问题。

这里Z即为权值
EM算法是在最大化目标函数时,先固定一个变量使整体函数变为凸优化函数,求导得到最值,然后利用最优参数更新被固定的变量,进入下一个循环。
GMM模型的求解,EM迭代过程如下:
首先,初始随机选择各参数的值。然后,重复下述两步,直到收敛。
1)E步骤。根据当前的参数,计算每个点由某个分模型生成的概率
2)M步骤。使用E步骤估计出的概率,来改进每个分模型的均值,方差和权重
在这里插入图片描述
也即,我们并不知道最佳的K个高斯分布的各自3个参数,也不知道每个数据点究竟是哪个高斯分布生成的。所以每次循环时,先固定当前的高斯分布不变,获得每个数据点由各个高斯分布生成的概率。然后固定该生成概率不变,根据数据点和生成概率,获得一组更佳的高斯分布。循环往复,直到参数不再变化,或者变化非常小,便得到了比较合理的一组高斯分布。

高斯混合模型与K均值算法

相同点

  1. 都可用于聚类算法
  2. 都需要指定K值
  3. 都使用EM算法求解
  4. 都往往只能收敛于局部最优

优点

  1. 可以给出一个样本属于某类的概率是多少
  2. 不仅可以用于聚类,还可以用于概率密度估计;并且可以用于生成新的样本

注:
图片来自
https://www.bilibili.com/video/av70839977?p=68

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高斯混合模型(Gaussian Mixture Model,简称GMM)是一种常用的概率模型,用于对数据进行建模和聚类分析。它假设数据是由多个高斯分布组成的混合体,每个高斯分布称为一个分量,而混合模型则是这些分量的线性组合。 在MATLAB中,可以使用Statistics and Machine Learning Toolbox中的gmdistribution函数来实现高斯混合模型。该函数可以根据给定的数据集和指定的分量数量,估计出每个分量的均值、协方差矩阵和权重。 以下是使用MATLAB进行高斯混合模型建模的基本步骤: 1. 准备数据集:将需要进行建模的数据集准备好。 2. 选择分量数量:根据实际情况选择合适的分量数量。 3. 创建高斯混合模型对象:使用gmdistribution函数创建一个高斯混合模型对象,并指定分量数量。 4. 估计参数:使用fit函数对数据进行拟合,估计出每个分量的均值、协方差矩阵和权重。 5. 预测和分类:使用cluster函数对新数据进行分类或使用pdf函数计算数据点属于每个分量的概率密度值。 下面是一个示例代码,展示了如何在MATLAB中使用高斯混合模型进行建模: ```matlab % 准备数据集 data = [randn(1000,2); 5+randn(1000,2)]; % 选择分量数量 numComponents = 2; % 创建高斯混合模型对象 gmm = gmdistribution.fit(data, numComponents); % 估计参数 mu = gmm.mu; sigma = gmm.Sigma; weights = gmm.PComponents; % 预测和分类 newData = [1, 1; 6, 6]; idx = cluster(gmm, newData); pdfValues = pdf(gmm, newData); disp("估计的均值:"); disp(mu); disp("估计的协方差矩阵:"); disp(sigma); disp("估计的权重:"); disp(weights); disp("新数据的分类结果:"); disp(idx); disp("新数据的概率密度值:"); disp(pdfValues); ``` 这是一个简单的示例,展示了如何使用MATLAB中的高斯混合模型进行建模和预测。你可以根据实际需求进行参数调整和功能扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值