EM算法在高斯混合模型中的应用

合集下载

em算法的应用场景和案例

em算法的应用场景和案例

em算法的应用场景和案例EM算法(Expectation Maximization Algorithm)是一种常用的统计学习方法,主要用于估计含有隐变量的概率模型的参数。

以下是EM算法的一些应用场景和案例:1.K-Means聚类:这是EM算法的硬聚类应用案例。

在K-Means聚类中,我们试图将数据划分为K个不同的簇,其中每个簇的中心是所有属于该簇的数据点的平均值。

EM算法在这里被用来迭代地更新簇的中心和分配数据点到最近的簇。

2.GMM(高斯混合模型)聚类:这是EM算法的软聚类应用案例。

高斯混合模型是一种概率模型,它假设所有的数据点都是由几个高斯分布混合而成的。

EM算法在这里被用来估计每个高斯分布的参数以及每个数据点属于每个高斯分布的概率。

3.PLSA(概率潜在语义分析)模型:在文本挖掘和信息检索中,PLSA模型被用来发现文档和单词之间的潜在主题。

EM算法在这里被用来估计模型中的参数,包括每个文档的主题分布和每个主题中的单词分布。

4.硬币投掷实验:这是一个简单的EM算法应用案例。

假设有三枚硬币A,B,C,我们不知道它们投掷出正面的概率。

在实验中,我们首先投掷硬币A,如果A出现正面,我们就选择硬币B投掷,否则选择硬币C。

我们只观察到了所选择的硬币的投掷结果(正面或反面),而没有观察到硬币A的投掷结果。

EM算法在这里可以被用来估计三枚硬币投掷出正面的概率。

5.在自然语言处理中的应用:EM算法还可以用于词义消歧和主题模型中,例如隐含狄利克雷分布(LDA)。

在这些模型中,EM算法用于估计话题的分布和文档中单词的主题分配。

6.图像处理和计算机视觉:EM算法也广泛应用于图像处理和计算机视觉领域,例如用于混合高斯模型(GMM)来分割图像,或者用于隐马尔可夫模型(HMM)来进行图像序列分析等。

7.在生物信息学中的应用:EM算法在生物信息学中也有广泛的应用,例如在基因表达数据的分析、蛋白质分类和基因序列分析等领域。

EM算法用于高斯混合模型

EM算法用于高斯混合模型

EM算法用于高斯混合模型高斯混合模型(Gaussian Mixture Model,简称GMM)是一种常用的概率密度估计方法,其基本思想是将数据分解为由多个高斯分布组成的混合模型。

每个高斯分布对应于数据中的一个潜在类别,而混合系数则表示每个类别的权重。

GMM的参数估计通常使用期望最大化(Expectation Maximization,简称EM)算法来进行。

EM算法是一种迭代优化算法,用于求解含有隐变量的最大似然估计问题。

GMM中,EM算法被用来最大化对数似然函数,从而估计GMM的参数。

EM算法的基本思想是,在每一次迭代中,先进行E步(Expectation),计算隐变量在给定参数下的后验概率。

然后进行M步(Maximization),通过极大化对数似然函数来估计参数。

重复执行E步和M步,直到收敛为止。

在GMM中,E步计算的是隐藏变量对应的后验概率,即每个样本属于每个高斯分布的概率。

这个概率可以使用贝叶斯公式计算得到。

假设有N个样本,K个高斯分布,那么对于每个样本i和高斯分布j,可以计算其后验概率:$$w_{ij} = \frac{\pi_j \cdot \mathcal{N}(x_i,\mu_j,\Sigma_j)}{\sum_{k=1}^{K} \pi_k \cdot \mathcal{N}(x_i,\mu_k,\Sigma_k)}$$其中,$w_{ij}$表示样本i属于高斯分布j的后验概率,$\pi_j$表示高斯分布j的混合系数,$\mathcal{N}(x_i,\mu_j,\Sigma_j)$表示高斯分布j的概率密度函数。

在M步中,需要利用E步计算得到的后验概率,更新GMM的参数。

更新过程分两步进行:首先,根据后验概率的加权平均来更新混合系数,即每个高斯分布对应的权重;然后,根据后验概率的加权平均来更新高斯分布的均值和协方差矩阵。

混合系数的更新可以通过对每个高斯分布的后验概率求平均得到:$$\pi_j = \frac{1}{N} \sum_{i=1}^{N} w_{ij}$$高斯分布的均值和协方差矩阵的更新可以通过将样本加权平均来得到:$$\mu_j = \frac{1}{\sum_{i=1}^{N} w_{ij}} \sum_{i=1}^{N} w_{ij} \cdot x_i$$$$\Sigma_j = \frac{1}{\sum_{i=1}^{N} w_{ij}} \sum_{i=1}^{N}w_{ij} \cdot (x_i - \mu_j)(x_i - \mu_j)^T$$重复执行E步和M步,直到收敛为止。

EM算法用于高斯混合模型

EM算法用于高斯混合模型

EM算法用于高斯混合模型EM算法(Expectation-Maximization algorithm)是一种迭代算法,用于估计含有隐变量的概率模型参数。

它被广泛应用于高斯混合模型(Gaussian Mixture Model,GMM)的参数估计。

GMM 是一种概率模型,它由若干个高斯分布组成,每个高斯分布对应数据的一个分量。

具体来说,EM算法包含两个步骤:E步骤(Expectation step)和M步骤(Maximization step)。

在E步骤中,给定当前参数估计,我们计算隐变量的期望值。

而在M步骤中,根据这些隐变量的期望值,我们重新估计参数。

这两个步骤会反复迭代,直到参数收敛为止。

首先,我们来看E步骤。

在GMM中,每个观测值都可以由多个高斯分布生成。

我们需要计算每个数据点属于每个高斯分布的后验概率。

这个后验概率可以表示为每个高斯分布生成一些数据点的概率除以所有高斯分布生成这个数据点的概率之和。

这个后验概率即为数据点属于每个高斯分布的权重。

计算后验概率的方法是使用贝叶斯公式。

然后,我们来看M步骤。

在M步骤中,我们根据E步骤计算得到的后验概率,重新估计高斯分布的参数。

具体来说,对于每个高斯分布,我们计算其均值和协方差矩阵。

均值可以通过将数据点乘以其对应的后验概率,再除以所有后验概率之和来计算。

协方差矩阵可以通过计算每个数据点与对应高斯分布的均值之间的差的外积,再乘以其对应的权重,最后除以所有权重之和来计算。

在每次迭代中,E步骤和M步骤会交替进行,直到算法收敛。

算法的收敛条件可以选择参数变化的很小或达到一定的迭代次数。

在每次迭代中,EM算法会逐渐提高对数据的拟合程度,也就是逐渐改善参数的估计。

EM算法有很多优点。

首先,它是一种通用的算法,适用于各种类型的概率模型估计。

其次,EM算法在估计参数时可以有很大的灵活性,可以根据需求自定义参数的个数和选择去模型每个分量的数据。

此外,EM 算法收敛到局部最优,而跳出局部最优通常需要全局优化方法。

EM算法详细例子及推导

EM算法详细例子及推导

EM算法详细例子及推导EM算法(Expectation-Maximization Algorithm)是一种用于求解含有隐变量(latent variable)的概率模型的参数估计方法。

其基本思想是通过迭代的方式,通过观测数据得到对隐变量的估计,然后再基于该估计对模型参数进行优化。

下面我们以一个简单的高斯混合模型为例,详细介绍EM算法的推导和实例。

1. 高斯混合模型(Gaussian Mixture Model, GMM)高斯混合模型是一种概率模型,由多个高斯分布组合而成。

假设我们观测到的数据由K个高斯分布组成,每个高斯分布对应一个参数向量:均值miu和方差sigma^2、同时,我们还有一个隐变量Z,表示观测数据属于哪个高斯分布,取值范围为{1,2,...,K}。

2.EM算法EM算法的核心思想是通过交替进行两个步骤:E步(Expectation)和M步(Maximization)。

在E步中,我们对当前模型参数下的隐变量进行估计,得到对隐变量的最大似然估计。

在M步中,我们利用得到的隐变量估计更新模型参数,使模型对观测数据的似然函数最大化。

不断重复这两步直至模型收敛。

下面我们通过具体的例子来推导EM算法。

假设我们观测到了一个数据集X = {x1, x2, ..., xn},我们希望通过EM算法对其进行建模。

Step1: 初始化模型参数首先,我们需要初始化模型参数。

选择K个高斯分布的参数miu和sigma^2,并假设所有的高斯分布对应的隐变量Z服从均匀分布。

这时,我们得到了初始模型参数Theta = {miu1, sigma^21, ..., miuK,sigma^K, pi1, pi2, ..., piK}。

Step2: E步,计算隐变量的后验分布在E步中,我们计算隐变量的后验分布。

对于每个观测样本xi,我们计算其属于每个高斯分布的概率,即:gamma(k,i) = P(Zi=k,xi, Theta) = P(Zi=k,xi, miu_k,sigma_k^2) = pi_k * N(xi,miu_k, sigma_k^2) / sum(pi_j * N(xi,miu_j, sigma_j^2), j=1 to K其中N(xi,miu_k, sigma_k^2)表示xi在第k个高斯分布下服从的概率密度函数。

EM算法及应用实例

EM算法及应用实例

EM算法及应用实例EM算法,全称为Expectation-Maximization算法,是一种常用的统计推断算法,用于在包含隐变量的概率模型中进行参数估计。

EM算法的基本思想是通过交替进行两步操作,一步是求期望(E步),另一步是求极大化解(M步)。

通过交替进行这两步操作,EM算法可以逐步提高模型对参数的估计,并逼近参数的最优解。

EM算法在统计学、机器学习和数据处理等领域有广泛的应用。

下面将对EM算法的两个步骤进行详细介绍,并给出一个应用实例加以说明。

1. E步(Expectation Step)在E步中,给定当前模型参数的估计,计算隐变量的条件概率分布期望(即给定观测数据下的隐变量的期望)。

这一步的目的是根据当前参数估计的情况,计算隐变量的期望,用于下一步的参数估计。

2. M步(Maximization Step)在M步中,给定E步计算得到的隐变量的期望,计算模型参数的估计值,使得参数估计值使得隐变量的期望最大化。

这一步的目的是用E步计算得到的隐变量的期望来修正参数估计。

下面给出一个EM算法的应用实例:高斯混合模型的参数估计。

高斯混合模型是一种常用的概率分布模型,它是由多个高斯分布按一定比例叠加而成。

每个高斯分布被称为一个混合成分,每个混合成分有自己的均值和方差。

给定一个观测数据集,我们希望用高斯混合模型来对这个数据集进行建模,从而估计出每个混合成分的均值和方差。

假设数据集包含N个样本,每个样本是一个d维的向量。

高斯混合模型的参数可以分为两类:混合比例和混合成分参数。

混合比例表示每个混合成分在总体中所占的比例,混合成分参数表示每个混合成分的均值和方差。

假设总共有K个混合成分,则混合比例可以用一个K维向量表示,并满足各个元素之和为1、混合成分的均值和方差可以分别用K个d维向量和K个d×d维矩阵表示。

首先,我们需要初始化混合比例和混合成分参数的估计值。

这些估计值可以随机初始化或者通过其他方式得到。

EM算法应用(1)-高斯混合模型

EM算法应用(1)-高斯混合模型

高斯混合模型(聚类).定义:122(y |)(y |)(y )..(y |))2Kk k k k k k p s t θαφθμφθσ==-=-∑ 由K 个高斯分布混合而成的分布模型红色线为最终模型的分布曲线。

其是由三个用蓝色线的高斯分布模型混合而成。

对于图像上某一点有:112233(x)(x)(x)(x)P p p p ααα=++类似于其他模型使用极大似然方法求解:求解一个分布函数p(x)使得按照这个分布,观测数据出现的概率最大。

对上述目标函数取对数有:可以发现上面函数包含和的对数。

很难通过求取偏导数而获得参数的值。

下面讲述如通过EM算法求解的思路。

一个假设:先假定,如果这个观测数据只是由其中一个高斯模型K产生,则隐变量是一个向量,并且这个向量中只有一个元素取值为1,其它的都是0。

然后计算分模型K对观测数据的响应度(E步)。

该响应度是一个概率值,表示该观测由该高斯分量唯一生成的概率值。

每个高斯分量其实都可以产生这个观测数据只是输出不同而已,即产生观测数据的概率不同。

最后,根据每个高斯分量对观测数据的响应度,计算更新每个分模型的参数,以及汇总出整个GMM产生这个观测数据的每个分模型权值。

计算过程分析:GMM:先计算所有数据对每个分模型的响应度。

求响应度隐变量的均值。

根据响应度计算每个分模型的参数。

极大化模型的似然函数迭代K-means:先计算所有数据对于K个点的距离,取距离最近的点作为自己所属于的类根据上一步的类别划分更新点的位置(点的位置就可以看做是模型参数)迭代Kmeans与高斯混合模型的异同点可以看出GMM和K-means还是有很大的相同点的。

GMM中高斯分量对数据的响应度就相当于K-means中根据距离,划分样本到与其最近的聚类中心,GMM中的根据响应度计算高斯分量参数就相当于K-means中计算聚类中心点的位置。

然后它们都通过不断迭代达到最优。

不同的是:GMM模型给出的是每一个观测点由哪个高斯分量生成的概率,而K-means直接给出一个观测点属于哪一类。

多元高斯混合模型 em算法 工况-概述说明以及解释

多元高斯混合模型 em算法 工况-概述说明以及解释

多元高斯混合模型em算法工况-概述说明以及解释1.引言1.1 概述在编写文章的概述部分时,需要对主题进行简要介绍,并提供相关背景信息。

这里是关于多元高斯混合模型(Gaussian Mixture Model, GMM)及其在工况(engineering conditions)中的应用的概述。

多元高斯混合模型是一种常见的统计模型,它是由多个高斯分布组成的概率密度函数的线性组合。

在实际问题中,很多数据的分布无法被单个高斯分布完全描述,而是由多个高斯分布混合而成。

多元高斯混合模型通过将这些高斯分布加权组合,能够更好地近似复杂数据的分布情况。

EM算法是一种常用于估计多元高斯混合模型参数的迭代算法。

通过EM算法,我们可以根据观测数据来估计出模型中每个高斯分布的均值、协方差和权重等参数,从而得到最优的模型拟合结果。

EM算法的基本思想是通过交替迭代的方式,通过E步骤计算隐变量(即数据来自于哪个高斯分布),再通过M步骤更新模型参数,不断优化模型,直到收敛到最优解。

在工况中,多元高斯混合模型及EM算法的应用非常广泛。

工况通常涉及到多个不同的条件和变量,而且这些条件和变量之间往往存在复杂的关联关系。

通过使用多元高斯混合模型,可以更好地对这些变量的分布进行建模和描述,进而提供更准确的分析和预测结果。

无论是在工程领域的故障诊断、质量控制还是金融领域的风险分析等应用场景中,多元高斯混合模型都发挥着重要的作用。

总而言之,本文将针对多元高斯混合模型及其在工况中的应用展开详细探讨。

通过介绍多元高斯混合模型的基本原理和EM算法的实现方式,以及探讨其在工况中的应用案例,旨在提供一种全面的分析方法和工具,以帮助读者更好地理解和应用该模型解决实际问题。

1.2文章结构文章结构部分的内容可以包括以下内容:本文将从以下几个方面进行论述:多元高斯混合模型、EM算法以及它们在工况中的应用。

首先,我们将介绍多元高斯混合模型的基本概念和原理。

通过对多元高斯分布和混合模型的介绍,读者将了解到多元高斯混合模型在数据建模和聚类分析中的重要性及应用场景。

EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型汇编

EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型汇编

判别模型求的是条件概率p(y|x),生成模型求的是联合概率p(x,y) .即= p(x|y) ∗ p(y)常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。

常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。

所以这里说的高斯混合模型,朴素贝叶斯模型都是求p(x,y)联合概率的。

(下面推导会见原因)套路小结:凡是生产模型,目的都是求出联合概率表达式,然后对联合概率表达式里的各个参数再进行估计,求出其表达式。

下面的EM算法,GMM等三个模型都是做这同一件事:设法求出联合概率,然后对出现的参数进行估计。

一、EM算法:作用是进行参数估计。

应用:(因为是无监督,所以一般应用在聚类上,也用在HMM参数估计上)所以凡是有EM算法的,一定是无监督学习.因为EM是对参数聚集给定训练样本是样例独立,我们想要知道每个样例隐含的类别z,使是p(x,z)最大,(即如果将样本x(i)看作观察值,潜在类别z看作是隐藏变量,则x可能是类别z,那么聚类问题也就是参数估计问题,)故p(x,z)最大似然估计是:所以可见用到EM算法的模型(高斯混合模型,朴素贝叶斯模型)都是求p(x,y)联合概率,为生成模型。

对上面公式,直接求θ一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。

EM是一种解决存在隐含变量优化问题的有效方法。

竟然不能直接最大化ℓ(θ),我们可建立ℓ的下界(E步),再优化下界(M步),见下图第三步,取的就是下界(总式)解释上式:对于每一个样例i,让Qi表示该样例隐含变量z 的某种分布,Qi满足的条件是(如果z 是连续性的,那么Qi是概率密度函数(因子分析模型就是如此),需要将求和符号换成积分符号即:因子分析模型是如此,这个会用在EM算法的M 步求。

比如要将班上学生聚类,假设隐藏变量z是身高,那么就是连续的高斯分布。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EM 算法在高斯混合模型中的应用1.定义对于一个随机信号生成器,假设他的模型参数为Θ,我们能观测到的数据输出为X ,不能观测到的数据输出为Y ,且随机系统模型结构的概率密度函数为(,|)p x y Θ (1)能够观测到的一部分数据输出数据12{,,...,}N x x x ,模型的另一部分输出数据 未知,模型的参数Θ也未知。

EM 算法就是要求我们从观测数据12{,,...,}N x x x 中估计出参数Θ。

2.EM 算法的描述假设每一对随机系统的输出样本(,)n n x y 对于不同的n 相互独立,这样当(,,)p x y Θ,x 和y 都已知的情况下,概率(,,)p x y Θ也已知。

未观测的输出y 的概率分布也属于待求参数Θ。

根据独立性假设有:1(,|)(,|)Nn n n p x y p x y =Θ=Θ∏ (2)3.EM 算法的基本思路基本问题是求解下面的方程的解:arg max (,|)p x y Θ=Θ (3) 由于X 是确定量,Y 是未知的,因此即使给定了Θ,也无法求得(,|)p x y Θ的值,因此我们只能退一步求:arg max (|)p x Θ=Θ (4)其中(|)(,|)[(|),(|,)]y Y y Y p x p x y p y p x y ∈∈Θ=Θ=ΘΘ∑∑ (5) 表示考虑了未知数据y 的所有可能的取值Y 后对(|,)p x y Θ求平均值。

最后根据log 函数的单调性得到(4)的等效形式:arg max log (|)p x Θ=Θ (6) 对于(6)给出的最优化问题,考虑用下面的递推算法解决,即:先给定一个估值k Θ并计算(|)k p x Θ,然后更新k Θ得到1k +Θ并且有1log (|)log (|)k k p x p x +Θ>Θ (7)()log (|)log [(|)(|,)]|(|,)log (|,)(|,)(|)(|,)(|,)log (|,)(,)y Y k ky Y k ky Y k p x p y p x y p y p x y p y x p y x p y p x y p y x p y x B ∈∈∈Θ=ΘΘΘΘ⎡⎤=Θ⎢⎥Θ⎣⎦⎧⎫⎡⎤ΘΘ≥Θ⎨⎬⎢⎥Θ⎣⎦⎩⎭=ΘΘ∑∑∑ (8) 其中,等号在(,)k k B ΘΘ时成立,即:(,)log (|)k k k B p x ΘΘ=Θ (9)于是对log (|)p x Θ的递推算法(7)可通过(,)k B ΘΘ进行,步骤为: 1) 令k=0,先给出估值 k Θ2) 然后找出1k +Θ满足 1(,)(,)k k k k B B +ΘΘ>ΘΘ (10) 3) k 更新为k+1并返回步骤2)直到收敛令 1arg max (,)k k B +Θ=ΘΘ (11) 处理后[]{}[]{}1arg max (,)(|)(|,)arg max (|,)log (|,)arg max (|,)log (|)(|,)(|,)log (|,)arg max (|,)log (|)(|,)arg max (,)k k k ky Y k k k y Y k y Y k B p y p x y p y x p y x P y x p y p x y p y x p y x p y x p y p x y C +∈∈∈Θ=ΘΘ⎧⎫⎡⎤ΘΘ=Θ⎨⎬⎢⎥Θ⎣⎦⎩⎭=ΘΘΘ-ΘΘ=ΘΘΘ=ΘΘ∑∑∑ (12)其中[]{}(,)(|,)log (|)(|,)k k y Y C p y x p y p x y ∈ΘΘ=ΘΘΘ∑ (13) 4.EM 算法与高斯混合模型在随机系统模型中,假设m θ是通道m 的随机信号生成器的概率密度函数的参数,()p y m =是选中通道m 的概率。

记为m a 。

假设M 个随机信号生成器和通道选择随机生成器是相互独立的,从通道m 输出的数据x 的概率是:(|)m m m a p x θ (14)不考虑通信信息,输出x 的概率为:1(|)(|)Mm m m m p x a p x θ=Θ=∑ (15)其中:m θ:是第m 个通道随机信号生成器的参数。

Θ:参数集合{}1,2...,,m m m M a θ=。

观测数据为一批随机产生的输出信号,并且每个输出都是相互独立的,而每个输出来自哪个通道不可测。

于是系统模型参数估计问题就变为通过有限的输出样本12{,,...,}N x x x 估计M 个通道参数{},(1,2,...,)m m a m M θ=.应用(12)求解,其中(,)k C ΘΘ可以简化为:111112(,)log()(|,)log((|))(|,)(,)(,)M N M Nkkk m n m m m n m n m n k k C a p m x p x p m x C C θ====ΘΘ=Θ+Θ=ΘΘ+ΘΘ∑∑∑∑(16)其中:111(,)log()(|,)M Nkk m n m n C a p m x ==ΘΘ=Θ∑∑211(,)log((|))(|,)MNk k m m m n m n C p x p m x θ==ΘΘ=Θ∑∑这样我们把m a 和m p 分别放在两项里面,他们不相关,可以独立考虑。

在(,)k C ΘΘ中应用约束条件:11Mmm a==∑用拉格朗日乘子优化m a 得到:111(|,)Nk k mn n a p m x N +==Θ∑上式的含义是,选中m 号通道的概率估计1k m a +是每个观测数据n x 来自于m 通道的条件概率(根据上一次估值Θ估算)的平均。

其中的(|,)k n p m x Θ通过下式得出。

'''1(|)(|,)(|)kkm m n m n Mk n m m mm a p x p m x a p x θθ=Θ=∑ 2(,)k C ΘΘ中的m θ的优化取决于分布函数的类型,对于(|)m m m p x θ为高斯分布时,{},m m m θμσ=其中m μ是分布的均值,m σ是方差。

再经过推导,有:111(|,)Nk kmnn ap m x N+==Θ∑ ①111(|,)(|,)N k nn k n m Nk nn xp m x p m x μ+==Θ=Θ∑∑ , ②1/212111(|,)||=(|,)N k k n n m k n m Nk n n p m x x p m x μσ++==⎛⎫Θ- ⎪ ⎪ ⎪Θ ⎪⎝⎭∑∑ ③m 通道参数{},m m μσ得更新可以看作是对n x 的加权,加权系数(|,)k m p m x Θ可以看成是根据上一次的参数估计k Θ算出来得n x 率属于m 通道的概率。

最后,上面的EM 算法可能收敛到局部极大点,因此需要选择多个参数Θ的初始值进行迭代计算,并选择使得(|)p x Θ最大的解,(|)p x Θ最大的解可由下式算出:[]12111111(|)(|)(|,)(|)(|)nm N y YNM MM m n m m m m n NM m n m m n p x p y p x y ap x a p x θθ∈======Θ=ΘΘ⎡⎤=⎣⎦⎡⎤=⎢⎥⎣⎦∑∑∑∑∏∑∏5.EM 算法在matlab 中的实现利用上面推导出的公式①②③,我们以二个一维的高斯分布(1N ,2N )来验证EM 算法的性能,首先用二个一维的高斯分布来建立一个高斯混合模型H N 。

假设:2111(,)N N μσ ,2222(,)N N μσ1122H N N N αα=+其中1α与2α为混合系数,且有121αα+=,我们要用EM 算法估计混合系数和各一维高斯分布的均值和方差22121212(,,,,,)ααμμσσ。

并将利用EM 算法估计出的值与真实值做比较,就可以得到该算法的性能。

首先我们取22121212(,,,,,)ααμμσσ的真实值为(0.4,0.6,1,2,0.25,0.36) 这样我们得到一个混合高斯分布,他的密度函数为H N ,然后产生1000个服从H N 的分布的观测样本点。

接下来要做的就是对这1000个样本点用EM 算法进行处理,来估计出一组22121212(,,,,,)ααμμσσ的值。

在使用EM 算法时,要首先给22121212(,,,,,)ααμμσσ设定一组初值这里假设初值为1α=0.3,2α=0.7,1μ=0.8,2μ=1.8,21σ=0.2,22σ=0.25 Matlab 具体程序如下:Y=zeros(1,10000); for i=1:10000if rand(1)>0.3Y(i)=normrnd(2,sqrt(0.36),1,1); elseY(i)=normrnd(1,sqrt(0.25),1,1); endend %高斯混合模型A=[0.3 0.7]; %设置参数 α的初值 M=[0.8 1.8]; %设置均值 μ的初值 S=[0.2 0.25]; %设置方差 2σ的初值 for n=1:1000 for j=1:2 a3=0; a4=0; a5=0;for k=1:10000 a1=0;for t=1:2a1=A(t)*1/sqrt(2*pi*S(t))*exp(-(Y(k)-M(t))^2/(2*S(t)))+a1;endf= A(j) * 1/sqrt(2*pi*S(j))*exp(-(Y(k)-M(j))^2/(2*S(j))); a2=f/a1;a3=a2+a3; %a3对应公式1(|,)Nknn p m x =Θ∑a4=a2*Y(k)+a4; %a4对应公式1(|,)Nk nn n p m x x =Θ∑a5=a2*(Y(k)-M(j))^2+a5; %a5对应公式121(|,)()Nk k n n m n p m x x μ+=Θ-∑endA(j)=a3/10000; %循环更新系数值M(j)=a4/a3; %循环更新均值值 S(j)=a5/a3; %循环更新方差值 end end运行程序,查看变量A,M,S 的值,与真实值比较一下,就可以得到用EM 算法估计的高斯混合模型的性能了。

得到参数为A=[ 0.3063 0.6937],M=[ 1.0093 2.0013],S=[ 0.2558 0.3632],而真实值为A=[0.4 0.6],M=[1 2],S=[0.25 0.36] ,我们可以从中看出用EM 算法估计的高斯混合模型的相关参数与真实值是比较接近的。

相关文档
最新文档