深入剖析EM算法:原理、推导与应用
内容摘要
本文详细介绍了最大期望算法(EM算法)。阐述其作为迭代进行极大似然估计的优化算法,在处理包含隐变量或缺失数据的概率模型参数估计中的应用。深入探讨EM算法的基本思想、推导过程、求解步骤及算法流程,助力读者理解并运用该算法解决实际问题。
关键词:EM算法;最大期望算法;极大似然估计;隐变量;参数估计
一、引言
在机器学习和统计学领域,处理包含隐变量或缺失数据的概率模型时,参数估计往往面临诸多挑战。最大期望算法(Expectation - Maximization Algorithm,EM算法)作为一种强大的迭代优化算法,为这类问题提供了有效的解决方案。EM算法通过迭代的方式进行极大似然估计,能够在复杂模型中高效地估计参数,在数据挖掘、机器学习、计算机视觉等众多领域有着广泛的应用。本文将深入剖析EM算法的原理、推导过程、算法流程以及实际应用,帮助读者全面掌握这一重要算法。
二、EM算法的基本思想
EM算法的基本思想基于两个步骤的交替计算,通过不断迭代来逐步逼近最优的参数估计值。
- 计算期望(E步):利用对隐藏变量的现有估计值,计算其极大似然估计值。在这一步中,根据当前模型参数的估计值,计算隐藏变量的后验概率分布,进而得到隐藏变量的期望。可以理解为在已知当前模型参数的情况下,对隐藏变量的可能取值进行合理推测和加权平均。
- 最大化(M步):最大化在E步上求得的极大似然值来计算参数的值。通过对期望似然函数进行最大化操作,更新模型的参数。这一步的目的是找到一组新的参数,使得模型在给定数据下的似然函数值更大,从而提高模型对数据的拟合程度。
M步上找到的参数估计值会被用于下一个E步计算中,这个过程不断交替进行,直到模型收敛,即参数估计值不再发生显著变化,或者似然函数值不再显著增加。
三、EM算法推导
对于 m m m个样本观察数据 x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) x^{(1)},x^{(2)},\cdots,x^{(m)} x(1),x(2),⋯,x(m),假设样本的模型参数为 θ \theta θ,其极大化模型分布的对数似然函数为: θ = arg max θ ∑ i = 1 m log P ( x ( i ) ; θ ) \theta = \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\log P(x^{(i)};\theta) θ=θargmaxi=1∑mlogP(x(i);θ)
当得到的观察数据存在未观察到的隐含数据 z ( 1 ) , z ( 2 ) , ⋯ , z ( m ) z^{(1)},z^{(2)},\cdots,z^{(m)} z(1),z(2),⋯,z(m)时,极大化模型分布的对数似然函数变为: θ = arg max θ ∑ i = 1 m log P ( x ( i ) ; θ ) = arg max θ ∑ i = 1 m log ∑ z ( i ) Q i ( z ( i ) ) P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \theta = \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\log P(x^{(i)};\theta)=\underset{\theta}{\arg\max}\sum_{i = 1}^{m}\log\sum_{z^{(i)}}Q_{i}(z^{(i)})\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} θ=θargmaxi=1∑mlogP(x(i);θ)=θargmaxi=1∑mlogz(i)∑Qi(z(i))Qi(z(i))P(x(i),z(i);θ)
由于上式不能直接求出 θ \theta θ,所以采用缩放技巧。根据Jensen不等式: log ∑ j λ j y j ≥ ∑ j λ j log y j \log\sum_{j}\lambda_{j}y_{j}\geq\sum_{j}\lambda_{j}\log y_{j} logj∑λjyj≥j∑λjlogyj,其中 λ j ≥ 0 \lambda_{j}\geq0 λj≥0且 ∑ j λ j = 1 \sum_{j}\lambda_{j}=1 ∑jλj=1
引入一个未知的新分布 Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i)),使得 ∑ i = 1 m log ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) = ∑ i = 1 m log ∑ z ( i ) Q i ( z ( i ) ) P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \sum_{i = 1}^{m}\log\sum_{z^{(i)}}P(x^{(i)},z^{(i)};\theta)=\sum_{i = 1}^{m}\log\sum_{z^{(i)}}Q_{i}(z^{(i)})\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}\geq\sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} i=1∑mlogz(i)∑P(x(i),z(i);θ)=i=1∑mlogz(i)∑Qi(z(i))Qi(z(i))P(x(i),z(i);θ)≥i=1∑mz(i)∑Qi(z(i))logQi(z(i))P(x(i),z(i);θ) 。
为了满足Jensen不等式中的等号,令 P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = c \frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}=c Qi(z(i))P(x(i),z(i);θ)=c( c c c为常数)。又因为 Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i))是一个分布,满足 ∑ z Q i ( z ( i ) ) = 1 \sum_{z}Q_{i}(z^{(i)}) = 1 ∑zQi(z(i))=1,综上可得: Q i ( z ( i ) ) = P ( x ( i ) , z ( i ) ; θ ) ∑ z P ( x ( i ) , z ( i ) ; θ ) = P ( x ( i ) , z ( i ) ; θ ) P ( x ( i ) ; θ ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_{i}(z^{(i)})=\frac{P(x^{(i)},z^{(i)};\theta)}{\sum_{z}P(x^{(i)},z^{(i)};\theta)}=\frac{P(x^{(i)},z^{(i)};\theta)}{P(x^{(i)};\theta)}=P(z^{(i)}|x^{(i)};\theta) Qi(z(i))=∑zP(x(i),z(i);θ)P(x(i),z(i);θ)=P(x(i);θ)P(x(i),z(i);θ)=P(z(i)∣x(i);θ)
此时,如果 θ \theta θ使得上式成立,那么 ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} i=1∑mz(i)∑Qi(z(i))logQi(z(i))P(x(i),z(i);θ)是包含隐藏数据的对数似然的一个下界。如果能极大化这个下界,则也在尝试极大化对数似然。即需要最大化下式: arg max θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} θargmaxi=1∑mz(i)∑Qi(z(i))logQi(z(i))P(x(i),z(i);θ),简化得: arg max θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log P ( x ( i ) , z ( i ) ; θ ) \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log P(x^{(i)},z^{(i)};\theta) θargmaxi=1∑mz(i)∑Qi(z(i))logP(x(i),z(i);θ),这就是EM算法的M步
而 Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_{i}(z^{(i)}) = P(z^{(i)}|x^{(i)};\theta) Qi(z(i))=P(z(i)∣x(i);θ)可理解为基于条件概率分布 P ( z ( i ) ∣ x ( i ) ; θ ) P(z^{(i)}|x^{(i)};\theta) P(z(i)∣x(i);θ)计算 z ( i ) z^{(i)} z(i)的期望,即为E步。
四、图解EM算法
考虑到含有隐变量的模型 p ( x ∣ θ ) p(x|\theta) p(x∣θ)复杂,难以求解析解,为了消除隐变量的影响,可以选择一个不包含隐变量的模型 r ( x ∣ θ ) r(x|\theta) r(x∣θ),使其满足一定条件。EM算法求解示意图如下:
图1 EM算法求解示意图
在图中,目标模型 p ( x ∣ θ ) p(x|\theta) p(x∣θ)复杂,难以直接求解。求解步骤如下:
- 选取 θ 1 \theta_{1} θ1,使得 r ( x ∣ θ 1 ) ≤ p ( x ∣ θ 1 ) r(x|\theta_{1})\leq p(x|\theta_{1}) r(x∣θ1)≤p(x∣θ1),然后对此时的 r r r求取最大值,得到极值点 θ 2 \theta_{2} θ2,实现参数的更新。
- 重复以上过程到收敛为止,在更新过程中始终满足 r ≤ p r\leq p r≤p。通过不断迭代,逐步逼近最优的参数估计值,使得模型能够更好地拟合数据。
五、EM算法流程
EM算法的输入包括观察数据 x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) x^{(1)},x^{(2)},\cdots,x^{(m)} x(1),x(2),⋯,x(m),联合分布 p ( x , z ; θ ) p(x,z;\theta) p(x,z;θ),条件分布 p ( z ∣ x ; θ ) p(z|x;\theta) p(z∣x;θ)以及最大迭代次数 J J J。
- 随机初始化模型参数 θ \theta θ的初值 θ 0 \theta^{0} θ0 。
- 设当前迭代次数为 j j j, j j j从1到 J J J进行迭代:
- E步:计算联合分布的条件概率期望。
- 计算 Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ j ) Q_{i}(z^{(i)}) = P(z^{(i)}|x^{(i)};\theta^{j}) Qi(z(i))=P(z(i)∣x(i);θj) 。
- 计算 L ( θ , θ j ) = ∑ i = 1 m ∑ z ( i ) log P ( z ( i ) ∣ x ( i ) ; θ j ) log P ( x ( i ) , z ( i ) ; θ ) L(\theta,\theta^{j})=\sum_{i = 1}^{m}\sum_{z^{(i)}}\log P(z^{(i)}|x^{(i)};\theta^{j})\log P(x^{(i)},z^{(i)};\theta) L(θ,θj)=∑i=1m∑z(i)logP(z(i)∣x(i);θj)logP(x(i),z(i);θ) 。
- M步:极大化 L ( θ , θ j ) L(\theta,\theta^{j}) L(θ,θj),得到 θ j + 1 \theta^{j + 1} θj+1,即 θ j + 1 = arg max θ L ( θ , θ j ) \theta^{j + 1}=\underset{\theta}{\arg\max}L(\theta,\theta^{j}) θj+1=θargmaxL(θ,θj) 。
- 如果 θ j + 1 \theta^{j + 1} θj+1收敛,则算法结束,否则继续进行E步迭代。
- E步:计算联合分布的条件概率期望。
- 输出模型参数 θ \theta θ 。
在实际应用中,需要根据具体问题选择合适的联合分布 p ( x , z ; θ ) p(x,z;\theta) p(x,z;θ)和条件分布 p ( z ∣ x ; θ ) p(z|x;\theta) p(z∣x;θ),并合理设置最大迭代次数 J J J,以确保算法能够收敛到满意的结果。
六、总结
EM算法作为处理包含隐变量或缺失数据概率模型参数估计的有效方法,通过巧妙的迭代策略,在E步和M步的交替执行中不断优化模型参数。其基本思想简单而深刻,推导过程严谨且富有逻辑性,为解决复杂模型的参数估计问题提供了有力的工具。
从图解EM算法的过程可以直观地看到,它如何通过逐步迭代逼近最优解,使得模型更好地拟合数据。