斯坦福CS229课程笔记:期望最大化(EM)算法详解
引言
期望最大化(Expectation-Maximization, EM)算法是机器学习中一种非常重要的参数估计方法,特别适用于存在隐变量的概率模型。本文将从理论基础到实际应用,全面解析EM算法的原理和实现过程。
1. Jensen不等式:EM算法的数学基础
1.1 凸函数与Jensen不等式
Jensen不等式是EM算法的核心数学基础。我们先明确几个关键概念:
- 凸函数:函数f是凸函数当且仅当其二阶导数f''(x)≥0(标量情况)或其海森矩阵H半正定(向量情况)
- 严格凸函数:当f''(x)>0或H正定时成立
Jensen不等式定理指出:对于凸函数f和随机变量X,有: E[f(X)] ≥ f(E[X])
当f为严格凸函数时,等号成立当且仅当X为常数。
1.2 直观理解
我们可以通过一个简单例子来理解Jensen不等式:
假设X是一个取值为a和b的随机变量,各有0.5概率。那么:
- E[X] = (a+b)/2
- E[f(X)] = [f(a)+f(b)]/2
- f(E[X]) = f((a+b)/2)
由于f是凸函数,根据定义,[f(a)+f(b)]/2 ≥ f((a+b)/2),这正是Jensen不等式的内容。
2. EM算法原理
2.1 问题设定
考虑一个包含m个独立样本的训练集{x(1),...,x(m)}。我们使用模型p(x,z;θ)对数据进行建模,其中z是隐变量。对数似然函数为:
l(θ) = Σlog p(x;θ) = Σlog Σp(x,z;θ)
直接最大化这个似然函数通常很困难,因为存在隐变量z。
2.2 EM算法框架
EM算法通过交替执行两个步骤来解决这个问题:
- E步骤(Expectation):计算隐变量的后验分布Q_i(z(i)) = p(z(i)|x(i);θ)
- M步骤(Maximization):最大化关于θ的下界函数
2.3 算法流程
完整EM算法流程如下:
重复直到收敛:
- (E步骤) 对每个i,设Q_i(z(i)) := p(z(i)|x(i);θ)
- (M步骤) 设θ := argmax_θ ΣΣQ_i(z(i))log[p(x(i),z(i);θ)/Q_i(z(i))]
2.4 收敛性证明
EM算法保证对数似然函数单调递增。设θ(t)和θ(t+1)是迭代过程中的参数,可以证明:
l(θ(t)) ≤ l(θ(t+1))
证明关键在于:
- E步骤选择Q_i(t)(z(i)) = p(z(i)|x(i);θ(t))保证Jensen不等式等号成立
- M步骤通过最大化下界函数得到θ(t+1)
- 通过不等式链式推导得出单调性结论
3. 高斯混合模型应用
3.1 E步骤实现
在高斯混合模型中,E步骤计算:
w_j(i) = Q_i(z(i)=j) = P(z(i)=j|x(i);φ,μ,Σ)
这表示样本x(i)属于第j个高斯分布的概率。
3.2 M步骤参数更新
在M步骤中,我们需要更新模型参数φ,μ,Σ:
-
均值μ更新: μ_l := (Σw_l(i)x(i))/(Σw_l(i))
-
混合权重φ更新: φ_j := (1/m)Σw_j(i)
-
协方差Σ更新(留作练习)
3.3 参数更新推导
以μ_l为例,推导过程如下:
- 构建目标函数
- 对μ_l求导并设导数为零
- 解方程得到更新规则
类似地,φ_j的更新通过构建拉格朗日函数并求解得到。
4. 总结
EM算法提供了一种有效的框架来处理含有隐变量的最大似然估计问题。其核心思想是通过交替执行E步骤和M步骤,逐步提高对数似然函数的下界,最终收敛到局部最优解。在高斯混合模型等应用中,EM算法展现出了强大的实用性和简洁性。
理解EM算法的关键在于掌握Jensen不等式和坐标上升的思想。通过本文的详细推导,希望读者能够深入理解EM算法的数学原理和实现细节,并能够将其应用于实际问题中。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考