EM算法及其应用(一)

EM算法及其应用(一)

EM算法及其应用(二): K-means 与 高斯混合模型



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



§1 先验知识


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

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

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

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

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

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

如果是凹函数,则将不等号反向,若用对数函数来表示,就是:

ln(i=1nλixi)i=1nλiln(xi)

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

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

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



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

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

L(θ)=lnP(X|θ)

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

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


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

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

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




§2 EM算法初探


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

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

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

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

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

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

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

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

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

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

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


接下来来看M步。在(1.3)式中若令θ=θ(t),则下界(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))

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



EM算法流程:

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

输出:模型参数θ

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

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

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




§3 EM算法深入


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

假设一个关于隐变量Z的任意分布q(Z),则运用期望值的定义,(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)lnP(X,Z|θ)q(Z)+Zq(Z)lnP(X|θ)q(Z)P(X,Z|θ)=Zq(Z)lnP(X,Z|θ)q(Z)+Zq(Z)lnq(Z)P(Z|X,θ)(2.1)=Zq(Z)lnP(X,Z|θ)q(Z)L(q,θ)+KL(q(Z)||P(Z|X,θ)))

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

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


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

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

因此在EM算法的迭代过程中,通过交替固定θP(Z|X,θold)来提升下界L(q,θ) ,进而提升对数似然函数L(θ) ,从而在隐变量存在的情况下实现了极大似然估计。在下一篇中将探讨EM算法的具体应用。





Reference:

  1. Christopher M. Bishop. Pattern Recognition and Machine Learning
  2. 李航. 《统计学习方法》
  3. CS838. The EM Algorithm





/

posted @   massquantity  阅读(5997)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示