EM算法|机器学习推导系列(十二)

一、概述

  1. 介绍

概率模型有时既包含观测变量(observed variable),又包含隐变量(latent variable)。当概率模型只包含观测变量时,那么给定观测数据,就可以直接使用极大似然估计法或者贝叶斯估计法进行模型参数的求解。然而如果模型包含隐变量,就不能直接使用这些简单的方法了。EM算法就是用来解决这种含有隐变量的概率模型参数的极大似然参数估计法。这里只讨论极大似然估计,极大后验估计与其类似。

  1. 算法

EM算法的输入如下:

X:观测数据
Z:未观测数据(隐变量)
p(x,z|\theta ):联合分布
p(z|x,\theta ):后验分布
\theta:parameter

在算法运行开始时需要选择模型的初始化参数\theta ^{(0)}。EM算法是一种迭代更新的算法,其计算公式为:

\theta ^{t+1}=\underset{\theta }{argmax}E_{z|x,\theta^{t}}[log\; p(x,z|\theta )]\\ =\underset{\theta }{argmax}\int _{z}log\; p(x,z|\theta )\cdot p(z|x,\theta ^{t})\mathrm{d}z

这个公式包含了迭代的两步:
①E step:计算p(x,z|\theta )在概率分布p(z|x,\theta ^{t})下的期望;
②M step:计算使这个期望最大化的参数得到下一个EM步骤的输入。

总结来说,EM算法包含以下步骤:
①选择初始化参数\theta ^{(0)}
②E step;
③M step;
④重复②③步直至收敛。

二、EM算法的收敛性

现在要证明迭代求得的\theta ^{t}序列会使得对应的p(x|\theta ^{t})是单调递增的(如果p(x|\theta ^{t})是单调递增的,那么训练数据的似然就是单调递增的),也就是说要证明p(x|\theta ^{t})\leq p(x|\theta ^{t+1})。首先我们有:

log\; p(x|\theta )=log\; p(x,z|\theta )-log\; p(z|x,\theta )

接下来等式两边同时求关于p(z|x,\theta ^{t})的期望:

左边=\int _{z}p(z|x,\theta ^{t})\cdot log\; p(x|\theta )\mathrm{d}z\\ =log\; p(x|\theta )\int _{z}p(z|x,\theta ^{t})\mathrm{d}z\\ =log\; p(x|\theta )\\ 右边=\underset{记作Q(\theta ,\theta ^{t})}{\underbrace{\int _{z}p(z|x,\theta ^{t})\cdot p(x,z|\theta )\mathrm{d}z}}-\underset{记作H(\theta ,\theta ^{t})}{\underbrace{\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta )\mathrm{d}z}}

因此有:

log\; p(x|\theta )=\int _{z}p(z|x,\theta ^{t})\cdot p(x,z|\theta )\mathrm{d}z-\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta )\mathrm{d}z

这里定义了Q(\theta ,\theta ^{t}),称为Q函数(Q function),这个函数也就是上面的概述中迭代公式里用到的函数,因此满足Q(\theta ^{t+1},\theta ^{t})\geq Q(\theta ^{t},\theta ^{t})

接下来将上面的等式两边\theta分别取\theta ^{t+1}\theta ^{t}并相减:

log\; p(x|\theta ^{t+1})-log\; p(x|\theta ^{t})=[Q(\theta ^{t+1},\theta ^{t})-Q(\theta ^{t},\theta ^{t})]-[H(\theta ^{t+1},\theta ^{t})-H(\theta ^{t},\theta ^{t})]

我们需要证明log\; p(x|\theta ^{t+1})-log\; p(x|\theta ^{t})\geq 0,同时已知Q(\theta ^{t+1},\theta ^{t})-Q(\theta ^{t},\theta ^{t})\geq 0,现在来观察H(\theta ^{t+1},\theta ^{t})-H(\theta ^{t},\theta ^{t})

H(\theta ^{t+1},\theta ^{t})-H(\theta ^{t},\theta ^{t})\\ =\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta ^{t+1})\mathrm{d}z-\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta ^{t})\mathrm{d}z\\ =\int _{z}p(z|x,\theta ^{t})\cdot log\frac{p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z\\ \leq log\int _{z}p(z|x,\theta ^{t})\frac{p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z\\ =log\int _{z}p(z|x,\theta ^{t+1})\mathrm{d}z\\ =log\; 1\\ =0

这里的不等号应用了Jensen不等式:

log\sum _{j}\lambda _{j}y_{j}\geq \sum _{j}\lambda _{j}log\; y_{j},其中\lambda _{j}\geq 0,\sum _{j}\lambda _{j}=1

也可以使用KL散度来证明\int _{z}p(z|x,\theta ^{t})\cdot log\frac{p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z\leq 0,两个概率分布P(x)Q(x)的KL散度是恒\geq 0的,定义为:

D_{KL}(P||Q)=E_{x\sim P}[log\frac{P(x)}{Q(x)}]

因此有:

\int _{z}p(z|x,\theta ^{t})\cdot log\frac {p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z=-KL(p(z|x,\theta ^{t})||p(z|x,\theta ^{t+1}))\leq 0

因此得证log\; p(x|\theta ^{t+1})-log\; p(x|\theta ^{t})\geq 0。这说明使用EM算法迭代更新参数可以使得log\; p(x|\theta)逐步增大。

另外还有其他定理保证了EM的算法收敛性。首先对于\theta ^{i}(i=1,2,\cdots )序列和其对应的对数似然序列L(\theta ^{t})=log\; p(x|\theta ^{t})(t=1,2,\cdots )有如下定理:
①如果p(x|\theta )有上界,则L(\theta ^{t})=log\; p(x|\theta ^{t})收敛到某一值L^*
②在函数Q(\theta,\theta^{'})L(\theta )满足一定条件下,由EM算法得到的参数估计序列\theta ^{t}的收敛值\theta ^{*}L(\theta )的稳定点。

三、EM算法的导出

  1. ELBO+KL散度的方法

对于前面用过的式子,首先引入一个新的概率分布q(z)

log\; p(x|\theta )=log\; p(x,z|\theta )-log\; p(z|x,\theta )\\ =log\; \frac {p(x,z|\theta )}{q(z)}-log\; \frac{p(z|x,\theta )}{q(z)}\; \; q(z)\neq 0

以上引入一个关于z的概率分布q(z),然后式子两边同时求对q(z)的期望:

左边=\int _{z}q(z)\cdot log\; p(x|\theta )\mathrm{d}z=log\; p(x|\theta )\int _{z}q(z)\mathrm{d}z=log\; p(x|\theta )\\ 右边=\underset{ELBO(evidence\; lower\; bound)}{\underbrace{\int _{z}q(z)log\; \frac{p(x,z|\theta )}{q(z)}\mathrm{d}z}}\underset{KL(q(z)||p(z|x,\theta ))}{\underbrace{-\int _{z}q(z)log\; \frac{p(z|x,\theta )}{q(z)}\mathrm{d}z}}

因此我们得出log\; p(x|\theta )=ELBO+KL(q||p),由于KL散度恒\geq0,因此log\; p(x|\theta )\geq ELBO,则ELBO就是似然函数log\; p(x|\theta )的下界。使得log\; p(x|\theta )=ELBO时,就必须有KL(q||p)=0,也就是q(z)=p(z|x,\theta )时。在每次迭代中我们取q(z)=p(z|x,\theta ^{t}),就可以保证log\; p(x|\theta ^{t})ELBO相等,也就是:

log\; p(x|\theta )=\underset{ELBO}{\underbrace{\int _{z}p(z|x,\theta ^{t})log\; \frac {p(x,z|\theta )}{p(z|x,\theta ^{t})}\mathrm{d}z}}\underset{KL(p(z|x,\theta ^{t})||p(z|x,\theta ))}{\underbrace{-\int _{z}p(z|x,\theta ^{t})log\; \frac{p(z|x,\theta )}{p(z|x,\theta ^{t})}\mathrm{d}z}}

\theta =\theta ^{t}时,log\; p(x|\theta ^{t})取ELBO,即:

log\; p(x|\theta ^{t})=\underset{ELBO}{\underbrace{\int _{z}p(z|x,\theta ^{t})log\; \frac{p(x,z|\theta ^{t})}{p(z|x,\theta ^{t})}\mathrm{d}z}}\underset{=0}{\underbrace{-\int _{z}p(z|x,\theta ^{t})log\; \frac{p(z|x,\theta ^{t})}{p(z|x,\theta ^{t})}\mathrm{d}z}}=ELBO

也就是说log\; p(x|\theta )ELBO都是关于\theta的函数,且满足log\; p(x|\theta )\geq ELBO,也就是说log\; p(x|\theta )的图像总是在ELBO的图像的上面。对于q(z),我们取q(z)=p(z|x,\theta ^{t}),这也就保证了只有在\theta =\theta ^tlog\; p(x|\theta )ELBO才会相等,因此使ELBO取极大值的\theta ^{t+1}一定能使得log\; p(x|\theta ^{t+1})\geq log\; p(x|\theta ^{t})。该过程如下图所示:

ELBO

然后我们观察一下ELBO取极大值的过程:

\theta ^{t+1}=\underset{\theta }{argmax}ELBO \\ =\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})log\; \frac{p(x,z|\theta )}{p(z|x,\theta ^{t})}\mathrm{d}z\\ =\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})log\; p(x,z|\theta )\mathrm{d}z-\underset{与\theta 无关}{\underbrace{\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})p(z|x,\theta ^{t})\mathrm{d}z}}\\ {\color{Red}{=\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})log\; p(x,z|\theta )\mathrm{d}z}} \\ {\color{Red}{=\underset{\theta }{argmax}E_{z|x,\theta ^{t}}[log\; p(x,z|\theta )]}}

由此我们就导出了EM算法的迭代公式。

  1. ELBO+Jensen不等式的方法

首先要具体介绍一下Jensen不等式:对于一个凹函数 f(x)(国内外对凹凸函数的定义恰好相反,这里的凹函数指的是国外定义的凹函数),我们查看其图像如下:

Jensen不等式

t\in [0,1]\\ c=ta+(1-t)b\\ \phi =tf(a)+(1-t)f(b)

凹函数恒有f(c)\geq \phi,也就是f(ta+(1-t)b)\geq tf(a)+(1-t)f(b),当t=\frac{1}{2}时有f(\frac{a}{2}+\frac{b}{2})\geq \frac{f(a)}{2}+\frac{f(b)}{2},可以理解为对于凹函数来说 先求期望再求函数值\geq 先求函数值再求期望 ,即f(E)\geq E[f]

上面的说明只是对Jensen不等式的一个形象的描述,而非严谨的证明。接下来应用Jensen不等式来导出EM算法:

log\; p(x|\theta )=log\int _{z}p(x,z|\theta )\mathrm{d}z\\ =log\int _{z}\frac{p(x,z|\theta )}{q(z)}\cdot q(z)\mathrm{d}z\\ =log\; E_{q(z)}[\frac{p(x,z|\theta )}{q(z)}]\\ \geq \underset{ELBO}{\underbrace{E_{q(z)}[log\frac{p(x,z|\theta )}{q(z)}]}}

这里应用了Jensen不等式得到了上面出现过的ELBO,这里的f(x)函数也就是log函数,显然这是一个凹函数。当log\frac {P(x,z|\theta )}{q(z)}这个函数是一个常数时会取得等号,利用这一点我们也同样可以得到q(z)=p(z|x,\theta )时能够使得log\; p(x|\theta )=ELBO的结论:

\frac{p(x,z|\theta )}{q(z)}=C\\ \Rightarrow q(z)=\frac{p(x,z|\theta )}{C}\\ \Rightarrow \int _{z}q(z)\mathrm{d}z=\int _{z}\frac{1}{C}p(x,z|\theta )\mathrm{d}z\\ \Rightarrow 1=\frac{1}{C}\int _{z}p(x,z|\theta )\mathrm{d}z\\ \Rightarrow C=p(x|\theta )\\ 将C代入q(z)=\frac{p(x,z|\theta )}{C}得\\ {\color{Red}{q(z)=\frac{p(x,z|\theta )}{p(x|\theta )}=p(z|x,\theta )}}

这种方法到这里就和上面的方法一样了,总结来说就是:

log\; p(x|\theta )\geq \underset{ELBO}{\underbrace{E_{q(z)}[log\frac{p(x,z|\theta )}{q(z)}]}}
上面的不等式在q(z)=p(z|x|\theta )时取等号,因此在迭代更新过程中取q(z)=p(z|x,\theta ^{t})。接下来的推导过程就和第1种方法一样了。

四、广义EM算法

上面介绍的EM算法属于狭义的EM算法,它是广义EM的一个特例。在上面介绍的EM算法的E步中我们假定q(z)=p(z|x,\theta ^{t}),但是如果这个后验p(z|x,\theta ^{t})无法求解,那么必须使⽤采样(MCMC)或者变分推断等⽅法来近似推断这个后验。前面我们得出了以下关系:

log\; p(x|\theta )=\int _{z}q(z)log\; \frac{p(x,z|\theta )}{q(z)}\mathrm{d}z-\int _{z}q(z)log\; \frac{p(z|x,\theta )}{q(z)}\mathrm{d}z=ELBO+KL(q||p)

当我们对于固定的\theta,我们希望KL(q||p)越小越好,这样就能使得ELBO更大:

固定\theta ,\hat{q}=\underset{q}{argmin}\; KL(q||p)=\underset{q}{argmax}\; ELBO

ELBO是关于q\theta的函数,写作L(q,\theta)。以下是广义EM算法的基本思路:

E\; step:q^{t+1}=\underset{q}{argmax}\; L(q,\theta^{t})\\ M\; step:\theta^{t+1}=\underset{q}{argmax}\; L(q^{t+1},\theta)

再次观察一下ELBO

ELBO=L(q,\theta )=E_{q}[log\; p(x,z)-log\; q]\\ =E_{q}[log\; p(x,z)]\underset{H[q]}{\underbrace{-E_{q}[log\; q]}}

因此,我们看到,⼴义 EM 相当于在原来的式⼦中加⼊熵H[q]这⼀项。

五、EM的变种

EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再⼀遍⼀遍的迭代。如果在 EM 框架中,⽆法求解z后验概率,那么需要采⽤⼀些变种的 EM 来估算这个后验:
①基于平均场的变分推断,VBEM/VEM
②基于蒙特卡洛的EM,MCEM

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