EM 算法(Expectation Maximization)

EM 算法是一种重要的解决含有隐变量问题的参数估计方法

算法释义

EM算法 是用来解决含有隐变量的概率模型参数的极大似然估计,或者叫极大后验概率估计。它是一种迭代算法,每次迭代由两步组成:E 步,求期望,M 步,求极大。

算法步骤

输入:观测变量数据 Y,隐变量数据 Z,联合分布 P(Y, Z | θ),条件分布 P(Z | Y, θ)
输出:模型参数 θ(T)
(1) 初始化模型参数:θ(0)
(2) 迭代求解,直至收敛,t = 0,1,...,T:
a. E步,求期望:

b. M步,求极大:


EM 算法的导出

极大似然估计的目标是极大化观测数据 Y 关于参数 θ 的似然函数,对其取对数,那么就是要极大化对数似然函数,即极大化 L(θ) :

如果存在某一轮迭代的中间值 θ(t),则:
\begin{align} & 利用 Jensen 不等式\\ &【\log \sum_j λ_j y_j ≥ \sum_j λ_j \log y_j,其中 λ_j ≥ 0, \sum_j λ_j = 1】\\ L(θ) & = \log \left( \sum_Z P(Z|Y,θ^{(t)}) \frac {P(Y,Z|θ)} {P(Z|Y,θ^{(t)})} \right) \\ & ≥ \sum_Z P(Z|Y,θ^{(t)}) \log \frac {P(Y,Z|θ)} {P(Z|Y,θ^{(t)})} \\ & \\ \end{align}

我们把不等式右边的这个函数成为 B(θ, θ(t)) 函数,那么显然 B(θ, θ(t)) 是 L(θ) 的一个下界,换句话说,如果 θ 尽可能使 B(θ, θ(t)) 增大,那么 L(θ) 也会增大,所以下面极大化 B(θ, θ(t)):
\begin{align} θ^{(t+1)} & = arg\max_θ B(θ,θ^{(t)}) \\ & = arg\max_θ \sum_Z \left( P(Z|Y,θ^{(t)}) \log \frac {P(Y,Z|θ)} {P(Z|Y,θ^{(t)})} \right) \\ & = arg\max_θ \sum_Z \left( P(Z|Y,θ^{(t)}) \left( \log {P(Y,Z|θ)} - \log {P(Z|Y,θ^{(t)})} \right) \right) \\ & = arg\max_θ \sum_Z \left( P(Z|Y,θ^{(t)}) \log {P(Y,Z|θ)} \right) \\ & = arg \max_{θ} Q(θ, θ^{(t)}) \\ \end{align}

EM 算法是不断求解下界的极大化逼近求解对数似然函数极大化的算法,因此 EM 算法不能保证找到全局最优解。

EM 算法的收敛性

pass


参考资料

《统计学习方法》,李航

你可能感兴趣的:(EM 算法(Expectation Maximization))