EM算法

EM算法作为数据挖掘领域十大经典算法之一,在统计学习领域也有诸多应用。EM算法(Expectation-maximization algorithm,期望极大算法)在统计中被用于寻找依赖于不可观察的隐性变量的概率模型中参数的最大似然估计。

期望极大算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是极大化(M),极大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

1、EM算法引入

在引入EM算法之前,我们先回顾一下最大似然估计方法。

(https://web.stanford.edu/class/cs109/lectureNotes/21%20-%20MLE.pdf)

最大似然法(MLE)的思想很朴素,首先假设参数为\theta,然后写出在\theta下生成当前各独立样本的可能性(Likelihood),上图解释了这里的Likelihood是什么含义——联合概率(离散)或联合概率密度(连续)。然后我们求使得这个Likelihood最大的参数值\theta作为我们的参数估计。

最大似然法可以发挥作用的隐含前提是我们可以观测到各独立样本,且这些样本就是从服从依赖于\theta的分布中生成的。

那么EM算法是用来解决什么问题呢?EM算法用来解决既含有观测变量又含有隐变量或潜在变量的参数估计问题。所谓隐变量,就是无法直接观测到的变量,但它又与可观测变量的生成密切相关,比如混合高斯模型中某个变量(样本)属于各个高斯成分的概率就是隐变量。《统计学习方法》中举了一个很生动的例子:

假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别是 \pi,p和q。进行如下掷硬币试验:先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果出现正面记作1,出现反面记作0;独立地重复n次试验(这里,n=10),观测结果如下:

1,1,0,1,0,0,1,0,1,1

假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即三硬币模型的参数。

下面我们试着写出其似然函数。记\theta=(\pi,p,q)是模型参数,y是观测变量,表示一次实验的观测结果是1或0,z是隐变量,表示为观测到的掷硬币A的结果。则Likelihood可写作:

\begin{aligned} P(y|\theta)&=\sum_{z}P(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}\\ \end{aligned}

观测数据Y=(Y_1,Y_2,\dots,Y_n)^T未观测数据Z=(Z_1,Z_2,\dots,Z_n)^T则观测数据的似然函数为:

\begin{aligned} P(Y|\theta)&=\Pi_{j=1}^nP(y|\theta)\\ &=\Pi_{j=1}^n[\pi p^{y_j}(1-p)^{1-y_j}+(1-\pi)q^{y_j}(1-q)^{1-y_j}] \end{aligned}

《统计学习方法》一书上说这个似然函数的极大似然估计是没有解析解的,因此我们就需要用更巧妙的方法来逼近这个解。EM算法就是通过逼近的过程来解决这样的问题。

2、EM算法导出

现在我们把问题从三硬币问题中抽象出来:Y表示观测变量,Z表示隐随机变量,YZ一起称为完全数据Y称为不完全数据\theta表示模型参数。给定观测数据Y,我们的目标是极大化Y关于参数\theta的对数似然函数,即极大化:

L(\theta)=logP(Y|\theta)=log\sum_Z P(Y,Z|\theta)=log(\sum_Z P(Y|Z,\theta)P(Z|\theta))

这一极大化的主要困难在于:

  • 上式中有未观测数据
  • 上式中包含和(或积分)的对数

既然不能直接极大化似然函数,那么我们就希望可以通过某种迭代的方式使得L(\theta)不断增大。假设在第i次之后的\theta估计值为\theta^{(i)},则我们希望新估计值\theta满足:

L(\theta)>L(\theta^{(i)})

为此,考虑两者之差并利用Jensen不等式得到其下界:

\begin{aligned} L(\theta)-L(\theta^{(i)}) &=log(\sum_Z P(Z|Y,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})})-logP(Y|\theta^{(i)})\\ &\geq \sum_Z P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-logP(Y|\theta^{(i)})\\ &=\sum_Z P(Z|Y,\theta^{(i)}))log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\\ \end{aligned}

从而有:

L(\theta)\geq L(\theta^{(i)})+\sum_Z P(Z|Y,\theta^{(i)}))log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}

定义这个下界为:

B(\theta,\theta^{(i)})=L(\theta^{(i)})+\sum_Z P(Z|Y,\theta^{(i)}))log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}

则有:

L(\theta)\geq B(\theta,\theta^{(i)})

若我们取\theta=\theta^{(i)}可以得到:

\begin{aligned} B(\theta^{(i)},\theta^{(i)})&=L(\theta^{(i)})+\sum_Z P(Z|Y,\theta^{(i)}))log\frac{P(Y|Z,\theta^{(i)})P(Z|\theta^{(i)})}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\\ &=L(\theta^{(i)})+\sum_Z P(Z|Y,\theta^{(i)}))log\frac{P(Y,Z|\theta^{(i)})}{P(Y,Z|\theta^{(i)})}=L(\theta^{(i)})\\ \end{aligned}

因此任何可以使B(\theta,\theta^{(i)})增大的\theta,都可以使L(\theta)增大。为了使L(\theta)有尽可能大的增长,我们应该选择使得B(\theta,\theta^{(i)})达到极大的值,即:

\theta^{(i+1)}=arg \max_{\theta} B(\theta,\theta^{(i)})

下面我们省去对\theta的极大化而言是常数的项:

\begin{aligned} \theta^{(i+1)}&=arg \max_{\theta} (L(\theta^{(i)}+\sum_Z P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})})\\ &=arg \max_{\theta}(\sum_Z P(Z|Y,\theta^{(i)})logP(Y|Z,\theta)P(Z|\theta))\\ &=arg \max_{\theta}(\sum_Z P(Z|Y,\theta^{(i)})logP(Y,Z|\theta))\\ \end{aligned}

我们定义Q(\theta,\theta^{(i)})=\sum_Z P(Z|Y,\theta^{(i)})logP(Y,Z|\theta),则:

\theta^{(i+1)}=arg \max_{\theta} Q(\theta,\theta^{(i)})

从而我们就可以迭代地更新参数\theta,使得对数似然函数L(\theta)不断增大。总结成EM算法如下:

(1)选择模型参数初始值\theta^{(0)}
(2)E步:计算Q(\theta,\theta^{(i)})=\sum_Z P(Z|Y,\theta^{(i)})logP(Y,Z|\theta)
(3)M步:\theta^{(i+1)}=arg \max_{\theta} Q(\theta,\theta^{(i)})
(4)重复E步M步直至收敛。

我们看到(4)默认了EM算法的收敛性,下面我们来证明这一点。

3、EM算法的收敛性

为了证明EM算法的收敛性,我们首先说明由EM算法估计得到的似然函数序列P(Y|\theta^{(i)})是单调递增的,即:

P(Y|\theta^{(i+1)})\geq P(Y|\theta^{(i)})

P(Y|\theta)=\frac{P(Y,Z|\theta)}{P(Z|Y,\theta)}

取对数有

\log P(Y|\theta)=\log P(Y,Z|\theta)-\log P(Z|Y,\theta)

Q(\theta,\theta^{(i)})=\sum_Z P(Z|Y,\theta^{(i)})logP(Y,Z|\theta)
H(\theta,\theta^{(i)})=\sum_Z P(Z|Y,\theta^{(i)})logP(Z|Y,\theta)

则对数似然函数可以写成:

\log P(Y|\theta)=Q(\theta,\theta^{(i)})-H(\theta,\theta^{(i)})

从而

\begin{aligned} & \log P(Y|\theta^{(i+1)})-log P(Y|\theta^{(i)})\\ & =[Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})]-[H(\theta^{(i+1)},\theta^{(i)})-H(\theta^{(i)},\theta^{(i)})] \end{aligned}

我们知道\theta^{(i+1)}使得Q(\theta,\theta^{(i)})达到极大,因此

Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})\geq 0

\begin{aligned} &H(\theta,\theta^{(i+1)})-H(\theta,\theta^{(i)})\\ &=\sum_Z P(Z|Y,\theta^{(i)})log(\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})})\\ & \leq log(\sum_Z \frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}P(Z|Y,\theta^{(i)}))\\ &=log(\sum_Z P(Z|Y,\theta^{(i+1)}))\\ &=0 \end{aligned}

logP(Y|\theta^{(i+1)})-logP(Y|\theta^{(i)})\geq 0

因此,如果P(Y|\theta^{(i)})有上界,则L(\theta^{(i)})=logP(Y|\theta^{(i)})收敛到某个值L^*

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容