混合高斯模型(Mixtures of Gaussians)算法和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 算法在高斯混合模型中的应用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 的概率。

混合高斯模型算法原理

混合高斯模型算法原理

混合高斯模型算法原理混合高斯模型是一种经典的背景建模算法,用于背景相对稳定情况下的运动目标检测。

它由单高斯模型发展而来,对于多模态的背景有一定的鲁棒性,如:树叶晃动、水纹波动等。

在介绍混合高斯模型前,首先介绍单高斯模型。

1. 单高斯背景模型:单高斯模型将图像中每一个像素点的颜色值看成是一个随机过程,并假设该点的像素值出现的概率服从高斯分布。

该算法的基本原理就是对每一个像素位置建立一个高斯模型,模型中保存该处像素的均值和方差。

如,可设),(y x 处像素的均值为),(y x u ,方差为),(2y x σ,标准差为),(y x σ。

由于随着视频图像序列的输入,模型参数不断更新,所以不同时刻模型参数有不同的值,故可将模型参数表示为三个变量t y x ,,的函数:均值),,(t y x u 、方差),,(2t y x σ、标准差),,(t y x σ。

用单高斯模型进行运动检测的基本过程包括:模型的初始化、更新参数并检测两个步骤。

1)模型初始化模型的初始化即对每个像素位置上对应的高斯模型参数进行初始化,初始化采用如下公式完成:⎪⎩⎪⎨⎧===init std y x init std y x y x I y x u _)0,,(_)0,,()0,,()0,,(22σσ (1)其中,)0,,(y x I 表示视频图像序列中的第一张图像),(y x 位置处的像素值,init std _为一个自己设的常数,如可设20_=init std 。

2)更新参数并检测每读入一张新的图片,判断新图片中对应点像素是否在高斯模型描述的范围中,如是,则判断该点处为背景,否则,判断该点处为前景。

假设前景检测的结果图为output ,其中在t 时刻),(y x 位置处的像素值表示为),,(t y x output ,),,(t y x output 的计算公式如下:⎩⎨⎧-⨯<--=otherwise t y x t y x u t y x I t y x output ,1)1,,()1,,(),,(,0),,(σλ (2)其中,λ是自己设的一个常数,如可设5.2=λ。

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个高斯分布下服从的概率密度函数。

K-means和EM比较

K-means和EM比较

K-means和EM⽐较回顾前⼏篇对 k-means 有过理解和写了⼀版伪代码, 因为思想⽐较⾮常朴素, 就是初始化⼏个中⼼点, 然后通过计算距离的⽅式, "物以类聚", 不断迭代中⼼点, 最后收敛, (中⼼点不变化) 就搞定了, 代码也容易实现, 算法也基本不涉及数学, 感觉就是通⽤的全民⼊门算法. 跟 KNN 这种hello world 级别是⼀个等级, 简单易懂, 实⽤性⾼, 易实现.⽽相对 EM 算法则有些难明⽩⼀些, 它涉及⼏个核⼼概念: 隐变量, 参数估计, 先验分布, 贝叶斯. 它所要解决的问题, 其实就是,当⽆法直接观测到总体参数时, 但有知道它是由其他隐含因⼦影响着的, 再此之下, 如何进⾏参数估计, 其实也就是咱当年学统计学中, ⽤样本来估计总体, ⽅法⽆⾮是,极⼤似然法, 全概率与贝叶斯, ⾼斯分布这些基础知识⽽已.为了说明EM算法, 显⽰以扔硬币的⼩案例来直观认识 EM 算法的 E, M 步骤分别是做了什么事情, 从⽐较直观来看, 然后有引⼊⾼斯混合模型来深刻推导了⼀波EM算法, 同时证明了EM算法的收敛性. 推导的难点在于, **如何去定义 **E, M步骤, 然后技巧上是⽤了Jensen不等式, 并引⼊了 concave函数的特性(全局最优解), 过程其实就⽤到了⾼斯分布, 化简⽤的是全概率与贝叶斯的关系, 也就是全概率, 联合分布, 条件概率..这些基础知识, 嗯. 总体来说还是不难的, 可能写代码实现有点⼩复杂, 后⾯试着整⼀整, 这⾥主要重点整透理论, 代码会copy 就差不多⾏了.K-means 与 EM其实, 不难发现, ⾼斯混合模型(Mixture of Gaussian) EM 算法与 K-means 是相似的. K-means 从 EM 视⾓来看,Expectation : 每⼀个点赋值(概率为1)⼀个 clusterMaximization: 更新每⼀个 cluster 的中⼼由此可得到:K-means 算法其实是EM算法的⼀种特殊情况.K-means 选择将⼀个数据点归为⼀个 cluster (概率100%, hard decision); ⽽ EM 算法选择将⼀个数据点看作是多个cluster (或分布) 的混合物(soft decision).case: ⼈的⽓质类型(补⼀下性格的本质: 是习惯, 习惯决定性格, 性格决定命运, 是有科学性滴)记得以前学⼼理学的时候, 谈到⽓质类型的章节, ⼀种经典的体液分法(5世纪前), 认为⼈体有四种液体, 不同的体液⽐例混合形成了四种典型⽓质类型:多⾎质: 活泼, 敏感, 好动, 反应快, 喜欢交往...., 典型⼈物: 王熙凤, 姚明, 科⽐, 詹姆斯胆汁质: 直率, 热情, 冲动, 情绪化... 典型⼈物: 张飞, 鲁智深, 奥尼尔, 恩⽐德粘液质: 安静, 稳重, 反应慢, 沉默寡⾔, 善于忍耐, 典型⼈物: 鲁肃, 司马懿, 邓肯, 卡哇伊抑郁质: 孤僻, ⾏动迟缓, 体验深刻, 多愁善感, 善于察觉细节... 典型⼈物: 林黛⽟, 罗斯需求: 如何通过⼀个的性格(⾏为习惯) 来判断⼩陈同学的⽓质类型K-means: ⼩陈同学⽐较孤僻, 沉默寡⾔, 总沉浸在⾃⼰的世界... 但偶尔也活泼好动..嗯, 就判定为抑郁型EM: 综合来看, ⼩陈同学有 30%是多⾎的, 50%是粘液的, 抑郁, 胆汁各10%, 嗯...⼤概率, 偏向粘液质⼀点.从偏理论来看E-步骤K-means 的r nk判断每个样本属于对应的类别 kdef r nk :IF k=arg min j ||x n−u k||2 :return 1ELSE:return 0就是逐个计算每个样本到各中⼼距离, 离哪个近,就归为该类, 复杂度是 O(kn)就相当于咱之前推导⾼斯混合⾥⾯的w(i)jEM 的判别则为:p(i)(k|n)=p(i)k g(x n;m(i)kσ(i)k) K∑m=1p(i)k g(x n;m(i)kσ(i)k)就是⼀个全概率下的贝叶斯嘛.def P(k|n) :IF k=arg max s p(s|x n,m k,σk) :return 1ELSE:return 0M-步骤K-means 就是在遍历完⼀轮后, 进⾏中⼼点的更新µk=∑n r nk x n∑n r nk就是将当前该类别下的所有点, 加起来, 再求平均, 得到中⼼EM 也是做⼀样的事情呀m(i+1) k =N∑n=1p(i)(k|n)x nN∑n=1p(i)(k|n)就到这⾥吧, 这篇主要是回忆和⼩结⼀波 k-means 和 EM算法, 感觉EM算法整明⽩了对⾃信⼼提升还是蛮⼤的, 因为它涉及概率分布, 参数估计, 最⼤似然, 贝叶斯等, 这些都是概率论的核⼼知识点呀, 是需要⼀定功⼒的哦.Processing math: 100%。

EM算法简介

EM算法简介

GMM中的EM算法

高斯分布: 代入高斯分布的密度函数,计算得到如下的迭代公式: 第t次的估计为 则第t+1次的估计为
GMM中EM算法的迭代过程

GMM_EM求的参数为 (0.5958,-2.0767,1.9973,0.4042,2.9956,1.0044) 答案为 ( 1 , 1 , 1 , 2 , 2 , 2 ) ( 0 . 6 , 2 , 2 , 0 . 4 , 3 ,1) 调用的接口为: estS = gmmb_em(rawdata', 'init', 'cmeans1', 'components', 2, 'thr', 1e-8); Matlab程序包的网址: http://www.it.lut.fi/project/gmmbayes/downloads/src/gmmbayest b/gmmbayestb-v1.0.tar.gz
极大似然估计(MLE)
独立同分布(IID)的数据 ( X , X , , X 其概率密度函数为 f ( x | ) 似然函数定义为 L ( | ) f ( | ) f ( X | ) log似然函数定义为l ( | ) log L ( | )
f ( X i , Yi | ) f ( X i , Yi | ) f ( X i | Y i , ) f ( Y i | ))

log
i 1 n

log(
i 1
EM—Expectation
观测数据X已知,参数的当前值 已知, 在完整似然函数中,缺失数据(隐含变量) Y未知,完整log似然函数对Y求期望。 定义

4.EM算法-高斯混合模型GMM详细代码实现

4.EM算法-高斯混合模型GMM详细代码实现

4.EM算法-⾼斯混合模型GMM详细代码实现1. 前⾔EM的前3篇博⽂分别从数学基础、EM通⽤算法原理、EM的⾼斯混合模型的⾓度介绍了EM算法。

按照惯例,本⽂要对EM算法进⾏更进⼀步的探究。

就是动⼿去实践她。

2. GMM实现我的实现逻辑基本按照中的⽅式实现。

需要全部可运⾏代码,请移步我的。

输⼊:观测数据x1,x2,x3,...,x N对输⼊数据进⾏归⼀化处理#数据预处理def scale_data(self):for d in range(self.D):max_ = self.X[:, d].max()min_ = self.X[:, d].min()self.X[:, d] = (self.X[:, d] - min_) / (max_ - min_)self.xj_mean = np.mean(self.X, axis=0)self.xj_s = np.sqrt(np.var(self.X, axis=0))输出:GMM的参数1. 初始化参数#初始化参数def init_params(self):self.mu = np.random.rand(self.K, self.D)self.cov = np.array([np.eye(self.D)] * self.K) * 0.1self.alpha = np.array([1.0 / self.K] * self.K)2. E步:根据当前模型,计算模型k对x i的影响γik=πk N(x|µk,Σk)∑K k=1πk N(x|µk,Σk)#e步,估计gammadef e_step(self, data):gamma_log_prob = np.mat(np.zeros((self.N, self.K)))for k in range(self.K):gamma_log_prob[:, k] = log_weight_prob(data, self.alpha[k], self.mu[k], self.cov[k]) log_prob_norm = logsumexp(gamma_log_prob, axis=1)log_gamma = gamma_log_prob - log_prob_norm[:, np.newaxis]return log_prob_norm, np.exp(log_gamma)3. M步:计算µk+1,Σ2k+1,πk+1。

EM算法及其应用

EM算法及其应用

EM算法及其应用EM算法作为一种常用的统计方法,被广泛应用于各种领域,如计算机视觉、自然语言处理、生物信息学等。

在本文中,我们将详细探讨EM算法及其应用。

一、EM算法概述EM算法(Expectation-Maximization Algorithm)是一种用于概率模型参数估计的迭代算法,由Arthur Dempster等人于1977年提出。

它可以用于处理带有隐变量的模型参数估计,也可以被看做一种极大化带有隐变量的数据似然函数的方法。

EM算法的核心思想是将似然函数分解为两部分,一部分是观测数据,另一部分是隐变量。

在每次迭代中,EM算法首先根据当前参数的值计算出对隐变量的期望,即E步。

然后,它通过极大化在E步中计算出的隐变量的期望下的似然函数来更新参数,即M步。

这个过程不断迭代,直到收敛为止。

二、EM算法应用案例1. 高斯混合模型高斯混合模型(Gaussian Mixture Model,GMM)是一种用来描述多个高斯分布的模型。

在计算机视觉中,GMM被广泛应用于图像分割和姿态估计等领域。

由于图像中的像素值往往服从高斯分布,因此使用GMM进行图像分割时,可以将像素分为多个高斯分布。

使用EM算法进行GMM参数估计的步骤如下:1) 初始化高斯分布的个数和参数;2) E步:计算每个样本属于每个高斯分布的概率,即计算隐变量的期望;3) M步:根据在E步中计算出的隐变量的期望,更新高斯分布的均值和方差。

4) 不断迭代E步和M步,直到收敛。

2. K均值聚类K均值聚类是一种无监督学习的算法,它将n个样本划分为k 个簇,使得每个样本都属于距离它最近的簇。

这种算法被广泛应用于图像分割和文本聚类等领域。

使用EM算法进行K均值聚类的步骤如下:1) 随机初始化k个簇的中心点;2) E步:将每个样本分配到距离它最近的簇中,即计算隐变量的期望;3) M步:根据在E步中计算出的隐变量的期望,更新每个簇的中心点;4) 不断迭代E步和M步,直到收敛。

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

混合高斯模型(Mixtures of Gaussians)和EM算法这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation)。

与k-means一样,给定的训练样本是,我们将隐含类别标签用表示。

与k-means的硬指定不同,我们首先认为是满足一定的概率分布的,这里我们认为满足多项式分布,,其中,有k个值{1,…,k}可以选取。

而且我们认为在给定后,满足多值高斯分布,即。

由此可以得到联合分布。

整个模型简单描述为对于每个样例,我们先从k个类别中按多项式分布抽取一个,然后根据所对应的k个多值高斯分布中的一个生成样例,。

整个过程称作混合高斯模型。

注意的是这里的仍然是隐含随机变量。

模型中还有三个变量和。

最大似然估计为。

对数化后如下:这个式子的最大值是不能通过前面使用的求导数为0的方法解决的,因为求的结果不是close form。

但是假设我们知道了每个样例的,那么上式可以简化为:这时候我们再来对和进行求导得到:就是样本类别中的比率。

是类别为j的样本特征均值,是类别为j的样例的特征的协方差矩阵。

实际上,当知道后,最大似然估计就近似于高斯判别分析模型(Gaussian discriminant analysis model)了。

所不同的是GDA中类别y是伯努利分布,而这里的z是多项式分布,还有这里的每个样例都有不同的协方差矩阵,而GDA中认为只有一个。

之前我们是假设给定了,实际上是不知道的。

那么怎么办呢?考虑之前提到的EM 的思想,第一步是猜测隐含类别变量z,第二步是更新其他参数,以获得最大的最大似然估计。

用到这里就是:在E步中,我们将其他参数看作常量,计算的后验概率,也就是估计隐含类别变量。

估计好后,利用上面的公式重新计算其他参数,计算好后发现最大化最大似然估计时,值又不对了,需要重新计算,周而复始,直至收敛。

的具体计算公式如下:这个式子利用了贝叶斯公式。

这里我们使用代替了前面的,由简单的0/1值变成了概率值。

对比K-means可以发现,这里使用了“软”指定,为每个样例分配的类别是有一定的概率的,同时计算量也变大了,每个样例i都要计算属于每一个类别j的概率。

与K-means相同的是,结果仍然是局部最优解。

对其他参数取不同的初始值进行多次计算不失为一种好方法。

虽然之前再K-means中定性描述了EM的收敛性,仍然没有定量地给出,还有一般化EM 的推导过程仍然没有给出。

下一篇着重介绍这些内容。

(EM算法)The EM AlgorithmEM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法。

在之后的MT中的词对齐中也用到了。

在Mitchell 的书中也提到EM可以用于贝叶斯网络中。

下面主要介绍EM的整个推导过程。

1. Jensen不等式回顾优化理论中的一些概念。

设f是定义域为实数的函数,如果对于所有的实数x,,那么f是凸函数。

当x是向量时,如果其hessian矩阵H是半正定的(),那么f是凸函数。

如果或者,那么称f是严格凸函数。

Jensen不等式表述如下:如果f是凸函数,X是随机变量,那么特别地,如果f是严格凸函数,那么当且仅当,也就是说X是常量。

这里我们将简写为。

如果用图表示会很清晰:图中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。

(就像掷硬币一样)。

X的期望值就是a和b的中值了,图中可以看到成立。

当f是(严格)凹函数当且仅当-f是(严格)凸函数。

Jensen不等式应用于凹函数时,不等号方向反向,也就是。

2. EM算法给定的训练样本是,样例间独立,我们想找到每个样例隐含的类别z,能使得p(x,z)最大。

p(x,z)的最大似然估计如下:第一步是对极大似然取对数,第二步是对每个样例的每个可能类别z求联合分布概率和。

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

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

竟然不能直接最大化,我们可以不断地建立的下界(E步),然后优化下界(M步)。

这句话比较抽象,看下面的。

对于每一个样例i,让表示该样例隐含变量z的某种分布,满足的条件是。

(如果z是连续性的,那么是概率密度函数,需要将求和符号换做积分符号)。

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

如果按照隐藏变量是男女,那么就是伯努利分布了。

可以由前面阐述的内容得到下面的公式:(1)到(2)比较直接,就是分子分母同乘以一个相等的函数。

(2)到(3)利用了Jensen不等式,考虑到是凹函数(二阶导数小于0),而且就是的期望(回想期望公式中的Lazy Statistician规则)(。

若对应于上述问题,Y是,X是,是,g是到的映射。

这样解释了式子(2)中的期望,再根据凹函数时的Jensen不等式:可以得到(3)。

这个过程可以看作是对求了下界。

对于的选择,有多种可能,那种更好的?假设已经给定,那么的值就决定于和了。

我们可以通过调整这两个概率使下界不断上升,以逼近的真实值,那么什么时候算是调整好了呢?当不等式变成等式时,说明我们调整后的概率能够等价于了。

按照这个思路,我们要找到等式成立的条件。

根据Jensen不等式,要想让等式成立,需要让随机变量变成常数值,这里得到:c为常数,不依赖于。

对此式子做进一步推导,我们知道,那么也就有,(多个等式分子分母相加不变,这个认为每个样例的两个概率比值都是c),那么有下式:至此,我们推出了在固定其他参数后,的计算公式就是后验概率,解决了如何选择的问题。

这一步就是E步,建立的下界。

接下来的M步,就是在给定后,调整,去极大化的下界(在固定后,下界还可以调整的更大)。

那么一般的EM算法的步骤如下:那么究竟怎么确保EM收敛?假定和是EM第t次和t+1次迭代后的结果。

如果我们证明了,也就是说极大似然估计单调增加,那么最终我们会到达最大似然估计的最大值。

下面来证明,选定后,我们得到E步这一步保证了在给定时,Jensen不等式中的等式成立,也就是然后进行M步,固定,并将视作变量,对上面的求导后,得到,这样经过一些推导会有以下式子成立:解释第(4)步,得到时,只是最大化,也就是的下界,而没有使等式成立,等式成立只有是在固定,并按E步得到时才能成立。

况且根据我们前面得到的下式,对于所有的和都成立第(5)步利用了M步的定义,M步就是将调整到,使得下界最大化。

因此(5)成立,(6)是之前的等式结果。

这样就证明了会单调增加。

一种收敛方法是不再变化,还有一种就是变化幅度很小。

再次解释一下(4)、(5)、(6)。

首先(4)对所有的参数都满足,而其等式成立条件只是在固定,并调整好Q时成立,而第(4)步只是固定Q,调整,不能保证等式一定成立。

(4)到(5)就是M步的定义,(5)到(6)是前面E步所保证等式成立条件。

也就是说E步会将下界拉到与一个特定值(这里)一样的高度,而此时发现下界仍然可以上升,因此经过M步后,下界又被拉升,但达不到与另外一个特定值一样的高度,之后E步又将下界拉到与这个特定值一样的高度,重复下去,直到最大值。

如果我们定义从前面的推导中我们知道,EM可以看作是J的坐标上升法,E步固定,优化,M步固定优化。

3. 重新审视混合高斯模型我们已经知道了EM的精髓和推导过程,再次审视一下混合高斯模型。

之前提到的混合高斯模型的参数和计算公式都是根据很多假定得出的,有些没有说明来由。

为了简单,这里在M步只给出和的推导方法。

E步很简单,按照一般EM公式得到:简单解释就是每个样例i的隐含类别为j的概率可以通过后验概率计算得到。

在M步中,我们需要在固定后最大化最大似然估计,也就是这是将的k种情况展开后的样子,未知参数和。

固定和,对求导得等于0时,得到这就是我们之前模型中的的更新公式。

然后推导的更新公式。

看之前得到的在和确定后,分子上面的一串都是常数了,实际上需要优化的公式是:需要知道的是,还需要满足一定的约束条件就是。

这个优化问题我们很熟悉了,直接构造拉格朗日乘子。

还有一点就是,但这一点会在得到的公式里自动满足。

求导得,等于0,得到也就是说再次使用,得到这样就神奇地得到了。

那么就顺势得到M步中的更新公式:的推导也类似,不过稍微复杂一些,毕竟是矩阵。

结果在之前的混合高斯模型中已经给出。

4. 总结如果将样本看作观察值,潜在类别看作是隐藏变量,那么聚类问题也就是参数估计问题,只不过聚类问题中参数分为隐含类别变量和其他参数,这犹如在x-y坐标系中找一个曲线的极值,然而曲线函数不能直接求导,因此什么梯度下降方法就不适用了。

但固定一个变量后,另外一个可以通过求导得到,因此可以使用坐标上升法,一次固定一个变量,对另外的求极值,最后逐步逼近极值。

对应到EM上,E步估计隐含变量,M步估计其他参数,交替将极值推向最大。

EM中还有“硬”指定和“软”指定的概念,“软”指定看似更为合理,但计算量要大,“硬”指定在某些场合如K-means中更为实用(要是保持一个样本点到其他所有中心的概率,就会很麻烦)。

另外,EM的收敛性证明方法确实很牛,能够利用log的凹函数性质,还能够想到利用创造下界,拉平函数下界,优化下界的方法来逐步逼近极大值。

而且每一步迭代都能保证是单调的。

最重要的是证明的数学公式非常精妙,硬是分子分母都乘以z的概率变成期望来套上Jensen不等式,前人都是怎么想到的。

在Mitchell的Machine Learning书中也举了一个EM应用的例子,明白地说就是将班上学生的身高都放在一起,要求聚成两个类。

这些身高可以看作是男生身高的高斯分布和女生身高的高斯分布组成。

因此变成了如何估计每个样例是男生还是女生,然后在确定男女生情况下,如何估计均值和方差,里面也给出了公式,有兴趣可以参考。

相关文档
最新文档