高斯混合模型的em算法
❶ EM算法求混合高斯分布的参数时,图中的T是什么意思
这里的T是表示一个函数的表达式,也就是是说T(U,S,X,Y,Z......) 实际上是t的函数,其中,t是函数(也就是因变量),U,S,X,Y,Z......都是函数t的自变量。T是函数关系。 y=f(x) =kx+b y就是x的函数,f表示的一种函数关系,只是这里的函数关系比较抽象,并不是具体的,而若是给出具体的函数关系就是kx+b这样的表达式了。 只是一个是抽象的关系, 一个是具体的关系而已 而楼主给的函数是个多元函数,也就是说,U,S,X,Y,Z......等共同作用影响函数t的变化。 这个函数关系的描述就是U-宇宙;S空间,XYZ,......事件,顺序等多个因素共同一种方式T来影响时间t的变化。估计这个是相对论或者霍金的时间理论那的东西。
❷ EM算法和混合高斯模型(一)
EM(Expectation Maximization)算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验估计。EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大值,因而被称为期望极大算法,简称EM算法。
本文从EM算法的引入说起,简单介绍EM算法的推导过程,以及其在高斯混合模型中的应用。更多的关于EM算法的推导细节,可参见 人人都懂EM算法 。
假设我们需要调查我们学校学生的身高分布。我们先假设学校所有学生的身高服从正态分布 。( 注意:极大似然估计的前提一定是要假设数据总体的分布,如果不知道数据分布,是无法使用极大似然估计的 ),这个分布的均值μ和标准差为σ 未知,如果我们估计出这两个参数,那我们就得到了最终的结果。那么怎样估计这两个参数呢?
学校的学生这么多,我们不可能挨个统计吧?这时候我们需要用到概率统计的思想,也就是抽样,根据样本估算总体。假设我们随机抽到了 200 个人(也就是 200 个身高的样本数据,为了方便表示,下面“人”的意思就是对应的身高)。然后统计抽样这 200 个人的身高。根据这 200 个人的身高估计均值 μ和方差σ 。例子来自 人人都懂EM算法 。
现在我们假设这200个人的身高服从一个正态分布N(μ,σ),因此可以直接使用极大似然估计方法估计出这个分布的参数μ和σ。
但是,这200个人的身高真的是服从同一个正态分布吗?实际情况并不是这样的,男生和女生分别服从两种不同的正态分布,即男生 女生各服从一个正态分布 ,( 注意:EM算法和极大似然估计的前提是一样的,都要假设数据总体的分布,如果不知道数据分布,是无法使用EM算法的 ),而且假设我们现在只有身高数据,丢失了性别数据,那么该怎样评估学生的身高分布呢?
这个时候,对于每一个样本或者你抽取到的人,就有两个问题需要估计了,一是这个人是男的还是女的,二是男生和女生对应的身高的正态分布的参数是多少。这两个问题是相互依赖的:
但是现在我们既不知道每个学生是男生还是女生,也不知道男生和女生的身高分布。这就成了一个先有鸡还是先有蛋的问题了。鸡说,没有我,谁把你生出来的啊。蛋不服,说,没有我,你从哪蹦出来啊。为了解决这个你依赖我,我依赖你的循环依赖问题,总得有一方要先打破僵局,不管了,我先随便整一个值出来,看你怎么变,然后我再根据你的变化调整我的变化,然后如此迭代着不断互相推导,最终就会收敛到一个解(草原上的狼和羊,相生相克)。这就是EM算法的基本思想了。
EM的意思是“Expectation Maximization”,具体方法为:
上面的学生属于男生还是女生我们称之为隐含参数,女生和男生的身高分布参数称为模型参数。
EM 算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含参数(EM 算法的 E 步),接着基于观察数据和猜测的隐含参数一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。由于我们之前的隐含参数是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。我们基于当前得到的模型参数,继续猜测隐含参数(EM算法的 E 步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。
在开始介绍EM算法之前,让我们先来了解一个重要的定理——Jensen不等式。
如下图,如果函数f(x)是凸函数,x是随机变量,有 0.5 的概率是 a,有 0.5 的概率是 b, x的期望值就是 a 和 b 的中值了,那么:
对于m个相互独立的样本:
假如没有隐含变量z, 我们仅需要找到合适的θ极大化对数似然函数即可:
现在我们给定一个θ值(初始化θ),那么logL(θ)的值就取决于Q i (z)和P(x (i) ,z (i) )。我们可以通过调整这两个概率使下届逼近logL(θ)的真实值,当不等式变为等式时,说明我们调整后的下届就等于logL(θ)了。由Jeson不等式可知,等式成立的条件是随机变量是常数,则有:
如果Q i (z (i) ) = P(z (i) |x (i) , θ),则(2)式使我们包含隐藏数据的对数似然函数的一个下届。如果我们能极大化这个下届,则也在尝试极大化我们的对数似然函数。即我们需要极大化下式:
由于对logaf(x)求导的结果与f(x)的系数无关((ln(ax))'= (lna + lnx)'=1/x),因此对θ求极大似然时,可以去掉式中的常数部分Q i (z (i) ):
现在,让我们来总结一下EM算法的流程。
输入:观察数据x = (x (1) , x (2) , ... , x (m) ), 联合分布P(x, z|θ),条件分布P(z|x,θ),极大迭代次数J。
(1)随机初始化模型参数θ值;
(2)迭代求解各个分布模型的参数以及各个模型的概率:
for j from 1 to J:
输出:模型参数θ
图中的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐标轴的,因为每一步只优化一个变量。
这犹如在x-y坐标系中找一个曲线的极值,然而曲线函数不能直接求导,因此什么梯度下降方法就不适用了。但固定一个变量后,另外一个可以通过求导得到,因此可以使用坐标上升法,一次固定一个变量,对另外的求极值,最后逐步逼近极值。对应到EM上,E步:固定 θ,优化Q;M步:固定 Q,优化 θ;交替将极值推向极大。
E步 :初始化θ A =0.6和θ B =0.5(θ A 和θ B 分别表示两个硬币出现正面的概率),计算每次掷硬币选择A和B的概率,例如第一个实验中选择A的概率为:
M步 :求出似然函数下届Q(θ,θ i ), y i 代表第j次试验正面朝上的个数,μ j 代表第j次试验选择硬币A的概率,1-μ j 代表第j次试验选择硬币B的概率。
参考:
人人都懂EM算法
《统计学习方法》. 李航
❸ em算法是什么
最大期望算法(Expectation-Maximization algorithm, EM),或Dempster-Laird-Rubin算法,是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法 ,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。
EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值 。EM算法是MM算法(Minorize-Maximization algorithm)的特例之一,有多个改进版本,包括使用了贝叶斯推断的EM算法、EM梯度算法、广义EM算法等 。
由于迭代规则容易实现并可以灵活考虑隐变量,EM算法被广泛应用于处理数据的缺测值 ,以及很多机器学习(machine learning)算法,包括高斯混合模型(Gaussian Mixture Model, GMM) 和隐马尔可夫模型(Hidden Markov Model, HMM) 的参数估计。