机器学习:EM算法原理

EM算法是期望最大化 (Expectation Maximization) 算法的简称,用于含有隐变量的情况下,概率模型参数的极大似然估计或极大后验估计。EM算法是一种迭代算法,每次迭代由两步组成:E步,求期望 (expectation),即利用当前估计的参数值来计算对数似然函数的期望值;M步,求极大 (maximization),即求参数θθ 来极大化E步中的期望值,而求出的参数θθ将继续用于下一个E步中期望值的估计。EM算法在机器学习中应用广泛,本篇和下篇文章分别探讨EM算法的原理和其两大应用 —— K-means和高斯混合模型。



§1§1 先验知识

凸函数、凹函数和 Jensen不等式

f(x)f(x)为定义在区间I=[a,b]I=[a,b]上的实值函数,对于任意x1,x2I,λ[0,1]∀x1,x2∈I,λ∈[0,1],有:

f(λx1+(1λ)x2)λf(x1)+(1λ)f(x2)f(λx1+(1−λ)x2)≤λf(x1)+(1−λ)f(x2)

f(x)f(x)为凸函数 (convex function),如下图所示。相应的,若上式中  变为  ,则f(x)f(x)为凹函数 (concave function)。 凸函数的判定条件是二阶导 f′′(x)0f″(x)⩾0,而凹函数为 f′′(x)0f″(x)⩽0 。后文要用到的对数函数ln(x)ln(x)的二阶导为1x2<0−1x2<0,所以是凹函数。

Jensen不等式就是上式的推广,设f(x)f(x)为凸函数,λi0,iλi=1λi⩾0,∑iλi=1,则:

f(i=1nλixi)i=1nλif(xi)f(∑i=1nλixi)≤∑i=1nλif(xi)

如果是凹函数,则将不等号反向,若用对数函数来表示,就是:
ln(i=1nλixi)i=1nλiln(xi)ln(∑i=1nλixi)≥∑i=1nλiln(xi)

若将λiλi视为一个概率分布,则可表示为期望值的形式,在后文中同样会引入概率分布:
f(E[x])E[f(x)]f(E[x])≤E[f(x)]



KL散度

KL散度(Kullback-Leibler divergence) 又称相对熵 (relative entropy),主要用于衡量两个概率分布p和q的差异,也可理解为两个分布对数差的期望。

KL(p||q)=ip(xi)logp(xi)q(xi)=Exp[logp(x)q(x)]=Exp[logp(x)logq(x)]KL(p||q)=∑ip(xi)logp(xi)q(xi)=Ex∼p[logp(x)q(x)]=Ex∼p[logp(x)−logq(x)]

KL散度总满足KL(p||q)0KL(p||q)⩾0,而当且仅当q=pq=p时,KL(p||q)=0KL(p||q)=0 。 一般来说分布p(x)p(x)比较复杂,因而希望用比较简单的q(x)q(x)去近似p(x)p(x),而近似的标准就是KL散度越小越好。

KL散度不具备对称性,即KL(p||q)KL(q||p)KL(p||q)≠KL(q||p),因此不能作为一个距离指标。



极大似然估计和极大后验估计

极大似然估计 (Maximum likelihood estimation) 是参数估计的常用方法,基本思想是在给定样本集的情况下,求使得该样本集出现的“可能性”最大的参数θθ。将参数θθ视为未知量,则参数θθ对于样本集X的对数似然函数为:

L(θ)=lnP(X|θ)L(θ)=lnP(X|θ)

这个函数反映了在观测结果X已知的条件下,θθ的各种值的“似然程度”。这里是把观测值X看成结果,把参数θθ看成是导致这个结果的原因。参数θθ虽然未知但是有着固定值 (当然这是频率学派的观点),并非事件或随机变量,无概率可言,因而改用 “似然(likelihood)" 这个词。

于是通过求导求解使得对数似然函数最大的参数θθθ=argmaxθL(θ)θ=arg⁡maxθ⁡L(θ),即为极大似然法。


极大后验估计 (Maximum a posteriori estimation) 是贝叶斯学派的参数估计方法,相比于频率学派,贝叶斯学派将参数θθ视为随机变量,并将其先验分布P(θ)P(θ)包含在估计过程中。运用贝叶斯定理,参数θθ的后验分布为:

P(θ|X)=P(X,θ)P(X)=P(θ)P(X|θ)P(X)P(θ)P(X|θ)P(θ|X)=P(X,θ)P(X)=P(θ)P(X|θ)P(X)∝P(θ)P(X|θ)

上式中P(X)P(X)不依赖于θθ因而为常数项可以舍去,则最终结果为 θ=argmaxθP(θ)P(X|θ)θ=arg⁡maxθ⁡P(θ)P(X|θ)




§2§2 EM算法初探

概率模型有时既含有观测变量 (observable variable),又含有隐变量 (hidden variable),隐变量顾名思义就是无法被观测到的变量。如果都是观测变量,则给定数据,可以直接使用极大似然估计。但如果模型含有隐变量时,直接求导得到参数比较困难。而EM算法就是解决此类问题的常用方法。

对于一个含有隐变量ZZ的概率模型,一般将{X,Z}{X,Z}称为完全数据,而观测数据XX为不完全数据。

我们的目标是极大化观测数据XX关于参数θθ的对数似然函数。由于存在隐变量,因而也可表示为极大化XX的边缘分布 (marginal distribution),即:

L(θ)=lnP(X|θ)=lnZP(X,Z|θ)(1.1)(1.1)L(θ)=lnP(X|θ)=ln∑ZP(X,Z|θ)

上式中存在“对数的和” —— ln()ln∑(⋅),如果直接求导将会非常困难。因而EM算法采用曲线救国的策略,构建(1.1)(1.1)式的一个下界,然后通过极大化这个下界来间接达到极大化(1.1)(1.1)的效果。

要想构建下界,就需要运用上文中的Jensen不等式。记θ(t)θ(t)为第t步迭代参数的估计值,考虑引入一个分布P(Z|X,θ(t))P(Z|X,θ(t)),由于:

  1. P(Z|X,θ(t))0P(Z|X,θ(t))⩾0
  2. ZP(Z|X,θ(t))=1∑ZP(Z|X,θ(t))=1
  3. ln()ln(⋅)为凹函数

因而可以利用Jensen不等式求出L(θ)L(θ)的下界:

L(θ)=lnZP(X,Z|θ)=lnZP(Z|X,θ(t))P(X,Z|θ)P(Z|X,θ(t))ZP(Z|X,θ(t))lnP(X,Z|θ)P(Z|X,θ(t))=ZP(Z|X,θ(t))lnP(X,Z|θ)Q(θ,θ(t))ZP(Z|X,θ(t))lnP(Z|X,θ(t))entropy(1.2)(1.3)(1.4)(1.2)L(θ)=ln∑ZP(X,Z|θ)=ln∑ZP(Z|X,θ(t))P(X,Z|θ)P(Z|X,θ(t))(1.3)⩾∑ZP(Z|X,θ(t))lnP(X,Z|θ)P(Z|X,θ(t))(1.4)=∑ZP(Z|X,θ(t))lnP(X,Z|θ)⏟Q(θ,θ(t))−∑ZP(Z|X,θ(t))lnP(Z|X,θ(t))⏟entropy

(1.3)(1.3)式构成了L(θ)L(θ)的下界,而(1.4)(1.4)式的右边为P(Z|X,θ(t))0P(Z|X,θ(t))的熵⩾0 ,其独立于我们想要优化的参数θθ,因而是一个常数。所以极大化L(θ)L(θ)的下界(1.3)(1.3)式就等价于极大化Q(θ,θ(t))Q(θ,θ(t))Q(θ,θ(t))Q(θ,θ(t)) (Q函数) 亦可表示为 EZ|X,θ(t)lnP(X,Z|θ)EZ|X,θ(t)lnP(X,Z|θ),其完整定义如下:

基于观测数据 XX 和 当前参数θ(t)θ(t)计算未观测数据 ZZ 的条件概率分布P(Z|X,θ(t))P(Z|X,θ(t)),则Q函数为完全数据的对数似然函数关于ZZ的期望。

此即E步中期望值的来历。


接下来来看M步。在(1.3)(1.3)式中若令θ=θ(t)θ=θ(t),则下界(1.3)(1.3)式变为:

===ZP(Z|X,θ(t))lnP(X,Z|θ(t))P(Z|X,θ(t))ZP(Z|X,θ(t))lnP(Z|X,θ(t))P(X|θ(t))P(Z|X,θ(t))ZP(Z|X,θ(t))lnP(X|θ(t))lnP(X|θ(t))=L(θ(t))∑ZP(Z|X,θ(t))lnP(X,Z|θ(t))P(Z|X,θ(t))=∑ZP(Z|X,θ(t))lnP(Z|X,θ(t))P(X|θ(t))P(Z|X,θ(t))=∑ZP(Z|X,θ(t))lnP(X|θ(t))=lnP(X|θ(t))=L(θ(t))

可以看到在第t步,L(θ(t))L(θ(t))的下界与L(θ(t))L(θ(t))相等,又由于极大化下界与极大化Q函数等价,因而在M步选择一个新的θθ来极大化Q(θ,θ(t))Q(θ,θ(t)),就能使L(θ)Q(θ,θ(t))Q(θ(t),θ(t))=L(θ(t))L(θ)⩾Q(θ,θ(t))⩾Q(θ(t),θ(t))=L(θ(t)) (这里为了便于理解就将Q(θ,θ(t))Q(θ,θ(t))(1.3)(1.3)式等同了),也就是说L(θ)L(θ)是单调递增的,通过EM算法的不断迭代能保证收敛到局部最大值。



EM算法流程:

输入: 观测数据XX,隐变量ZZ,联合概率分布P(X,Z|θ)P(X,Z|θ)

输出:模型参数θθ

  1. 初始化参数θ(0)θ(0)
  2. E步: 利用当前参数θ(t)θ(t)计算Q函数, Q(θ,θ(t))=ZP(Z|X,θ(t))lnP(X,Z|θ)Q(θ,θ(t))=∑ZP(Z|X,θ(t))lnP(X,Z|θ)
  3. M步: 极大化Q函数,求出相应的 θ=argmaxθQ(θ,θ(t))θ=argmaxθ⁡Q(θ,θ(t))
  4. 重复 2. 和3. 步直至收敛。


EM算法也可用于极大后验估计,极大后验估计仅仅是在极大似然估计的基础上加上参数θθ的先验分布,即 p(θ)p(X|θ)p(θ)p(X|θ),则取对数后变为lnp(X|θ)+lnp(θ)lnp(X|θ)+lnp(θ),由于后面的lnp(θ)lnp(θ)不包含隐变量ZZ,所以E步中求Q函数的步骤不变。而在M步中需要求新的参数θθ,因此需要包含这一项,所以M步变为

θ=argmaxθ[Q(θ,θ(t))+ln(p(θ)]θ=argmaxθ⁡[Q(θ,θ(t))+ln(p(θ)]




§3§3 EM算法深入

上一节中遗留了一个问题:为什么式(1.2)(1.2)中引入的分布是P(Z|X,θ(t))P(Z|X,θ(t))而不是其他分布? 下面以另一个角度来阐述。

假设一个关于隐变量ZZ的任意分布q(Z)q(Z),则运用期望值的定义,(1.1)(1.1)式变为:

L(θ)=lnP(X|θ)=Zq(Z)lnP(X|θ) q(Z)P(X,Z|θ)=Zq(Z)lnP(X|θ)q(Z)P(X,Z|θ)q(Z)P(X,Z|θ)=Zq(Z)P(X,Z|θ)q(Z)+Zq(Z)lnP(X|θ)q(Z)P(X,Z|θ)=Zq(Z)P(X,Z|θ)q(Z)+Zq(Z)lnq(Z)P(Z|X,θ)=Zq(Z)P(X,Z|θ)q(Z)L(q,θ)+KL(q(Z)||P(Z|X,θ)))(2.1)L(θ)=lnP(X|θ)=∑Zq(Z)lnP(X|θ)上下同乘以 q(Z)P(X,Z|θ)=∑Zq(Z)lnP(X|θ)q(Z)P(X,Z|θ)q(Z)P(X,Z|θ)=∑Zq(Z)P(X,Z|θ)q(Z)+∑Zq(Z)lnP(X|θ)q(Z)P(X,Z|θ)=∑Zq(Z)P(X,Z|θ)q(Z)+∑Zq(Z)lnq(Z)P(Z|X,θ)(2.1)=∑Zq(Z)P(X,Z|θ)q(Z)⏟L(q,θ)+KL(q(Z)||P(Z|X,θ)))

(2.1)(2.1)式的右端为q(Z)q(Z)和后验分布P(Z|X,θ)P(Z|X,θ)的KL散度,由此 lnP(X|θ)lnP(X|θ)被分解为L(q,θ)L(q,θ)KL(q||p)KL(q||p) 。由于KL散度总大于等于0,所以L(q,θ)L(q,θ)lnP(X|θ)lnP(X|θ)的下界,如图:

由此可将EM算法视为一个坐标提升(coordinate ascent)的方法,分别在E步和M步不断提升下界L(q,θ)L(q,θ),进而提升lnP(X|θ)lnP(X|θ) 。


在E步中,固定参数θoldθold,当且仅当KL(q||p)=0KL(q||p)=0,即L(q,θ)=lnP(X|θ)L(q,θ)=lnP(X|θ)时,L(q,θ)L(q,θ)达到最大,而KL(q||p)=0KL(q||p)=0的条件是q(Z)=P(Z|X,θ)q(Z)=P(Z|X,θ),因此这就是式(1.2)(1.2)中选择分布P(Z|X,θold)P(Z|X,θold)的原因,如此一来L(q,θ)L(q,θ) 也就与(1.3)(1.3)式一致了。

在M步中,固定分布P(Z|X,θold)P(Z|X,θold),选择新的θnewθnew来极大化L(q,θ)L(q,θ) 。同时由于P(Z|X,θold)P(Z|X,θnew)P(Z|X,θold)≠P(Z|X,θnew),所以KL(P(Z|X,θold)||P(Z|X,θnew))>0KL(P(Z|X,θold)||P(Z|X,θnew))>0,导致lnP(X|θ)lnP(X|θ)提升的幅度会大于L(q,θ)L(q,θ)提升的幅度,如图:

因此在EM算法的迭代过程中,通过交替固定θθ 和 P(Z|X,θold)P(Z|X,θold)来提升下界L(q,θ)L(q,θ) ,进而提升对数似然函数L(θ)

L(θ) ,从而在隐变量存在的情况下实现了极大似然估计。在下一篇中将探讨EM算法的具体应用.

郑州好的妇科医院:http://www.zztj120.com/郑州同济医院妇科好:http://www.zztj120.com/郑州医院妇科哪家好些:http://www.zztj120.com/郑州正规专业妇科医院:http://www.zztj120.com/郑州专业妇科:http://www.zztj120.com/郑州妇科在线咨询:http://www.zztj120.com/郑州检查妇科去哪个医院:http://www.zztj120.com/郑州妇科医院:http://jbk.39.net/yiyuanzaixian/sysdfkyy/

展开阅读全文

没有更多推荐了,返回首页