数据挖掘十大经典算法之EM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据挖掘十大经典算法之EM相关的知识,希望对你有一定的参考价值。

参考技术A EM(Expectation-Maximum)算法也称期望最大化算法,它是最常见的隐变量估计方法,在机器学习中有极为广泛的用途,例如常被用来学习高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐式马尔科夫算法(HMM)、LDA主题模型的变分推断等等。

EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。

1. EM算法推导过程

补充知识:Jensen不等式:

如果f是凸函数,函数的期望 大于等于 期望的函数。当且仅当下式中X是常量时,该式取等号。(应用于凹函数时,不等号方向相反)

2. EM算法流程

3. EM算法的其他问题

上面介绍的传统EM算法对初始值敏感,聚类结果随不同的初始值而波动较大。总的来说,EM算法收敛的优劣很大程度上取决于其初始参数。

EM算法可以保证收敛到一个稳定点,即EM算法是一定收敛的。

EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法这样的迭代算法相同。

EM算法的简单实例: https://zhuanlan.zhihu.com/p/40991784

参考:

https://zhuanlan.zhihu.com/p/40991784

https://blog.csdn.net/u011067360/article/details/24368085

数据挖掘十大算法之EM最大期望估计算法

目录

1 简介

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的迭代由两步组成:E步,求期望,M步,求极大。
概率模型有时既含有观测变量,又含有隐变量或潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯法估计模型参数。但是,当模型含有隐变量时,就不能用简单地使用这些估计方法。
是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。

2 投硬币问题

假设有三枚硬币,分别记A、B、C,这些硬币正面出现的概率分别是 π \\pi π,p和q。进行如下掷硬币试验:先掷硬币A,正面继续掷硬币B,反面掷硬币C;然后掷选出来的硬币B或C,出现正面记为1,反面记为0;独立重复n次试验,观测结果如下
1 1 0 1 0 0 1 0 1 1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程,问如何估计三个硬币正面出现的概率,即三硬币模型的参数。
解:
三个硬币的模型可写作
P ( y ∣ θ ) = ∑ z ( y , z ∣ θ ) = ∑ z P ( z ∣ θ ) P ( y ∣ z , θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y P(y|\\theta) = \\sum_z(y,z|\\theta) = \\sum_z P(z|\\theta) P(y|z,\\theta)\\\\ =\\pi p_y(1-p)^1-y+(1-\\pi)q_y(1-q)^1-y P(yθ)=z(y,zθ)=zP(zθ)P(yz,θ)=πpy(1p)1y+(1π)qy(1q)1y
随机变量y是观测变量,表示一次试验观测的结果是1或0;随机变量z是隐变量,表示未观测到的掷硬币的A的结果; θ = ( π , p , q ) \\theta = (\\pi,p,q) θ=(π,p,q)是模型参数,这一模型是以上数据的生成模型。注意,随机变量y的数据可以观测,随机变量z的数据是不可观测。
将观测的数据表示为 Y = ( Y 1 , Y 2 , . . . , Y n ) T Y= (Y_1,Y_2,...,Y_n)^T Y=Y1,Y2,...,YnT,未观测数据表示为 Z = ( Z 1 , Z 2 , . . . , Z n ) T Z= (Z_1,Z_2,...,Z_n)^T Z=Z1,Z2,...,ZnT,则观测数据的似然函数为

P ( Y ∣ θ ) = ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) = ∏ j = 1 n [ π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i ] P(Y|\\theta) = \\sum_ZP(Z|\\theta)P(Y|Z,\\theta)\\\\ =\\prod _j=1^n [\\pi p^y_i(1-p)^1-y_i+(1-\\pi)q^y_i(1-q)^1-y_i] P(Yθ)=ZP(Zθ)P(YZ,θ)=j=1n[πpyi(1p)1yi+(1π)qyi(1q)1yi]
考虑求模型参数 θ = ( π , p , q ) \\theta = (\\pi,p,q) θ=(π,p,q)的极大似然估计,即
θ ^ = a r g m a x θ l o g P ( Y ∣ θ ) \\hat\\theta = argmax_\\theta logP(Y|\\theta) θ^=argmaxθlogP(Yθ)
以下通过属于迭代算法的EM算法求解
EM算法首先选取参数的初值,记作 θ 0 = ( π 0 , p 0 , q 0 ) \\theta ^0 = (\\pi^0,p^0,q^0) θ0=(π0,p0,q0),然后通过下面的步骤迭代计算参数的估计值,直至收敛为止。第i次迭代参数的估计值为 θ i = ( π i , p i , q i ) \\theta^i = (\\pi^i,p^i,q^i) θi=(πi,pi,qi)。EM算法的第i+1次迭代如下:
E步:计算在模型参数 π i , p i , q i \\pi^i,p^i,q^i πipiqi下观测数据 y j y_j yj来自掷硬币B的概率
μ j i + 1 = π i ( p i ) y i ( 1 − p i ) 1 − y i π i ( p i ) y i ( 1 − p i ) 1 − y i + ( 1 − π i ) ( q i ) y i ( 1 − q i ) 1 − y i \\mu_j^i+1 = \\frac\\pi^i (p^i)^y_i (1-p^i)^1-y_i\\pi^i(p^i)^y_i(1-p^i)^1-y_i+(1-\\pi^i)(q^i)^y_i(1-q^i)^1-y_i μji+1=πi(pi)yi(1pi)1yi+(1πi)(qi)yi(1qi)1yiπi(pi)yi(1pi)1yi
M步:计算模型参数的新估计值
π i + 1

以上是关于数据挖掘十大经典算法之EM的主要内容,如果未能解决你的问题,请参考以下文章

数据挖掘领域十大经典算法

经典回顾 | 十大数据挖掘领域的经典算法

数据挖掘十大算法之EM最大期望估计算法

十大数据挖掘领域的经典算法

详解数据挖掘十大经典算法!

详解十大经典机器学习算法——EM算法