EM算法系列--原理

本系列通过如下两部分来讲解EM算法:

1. EM算法的原理

2. EM算法实际应用--HMM

EM算法原理

EM算法全称是 最大期望算法(Expectation-Maximization algorithm, EM),是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法 ,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计 [2-3]  。

EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值 [4]  。EM算法是MM算法(Minorize-Maximization algorithm)的特例之一,有多个改进版本,包括使用了贝叶斯推断的EM算法、EM梯度算法、广义EM算法等 。

给定相互独立的观测数据X = \{X_1,X_2,...,X_N\}、隐变量Z、参数\theta的概率模型,根据MLE理论,参数的最优单点估计在模型的似然取极大值时给出:\theta = arg\max_{\theta}{p(X|\theta)},考虑隐变量(可以表示缺失数据,或概率模型中任何无法直接观测的随机变量),模型的似然有如下展开:p(X|\theta) = \sum_{Z_c}{p(X,Z_c|\theta)},取对数展开得,

EM算法系列--原理_第1张图片,其中\sum_{Z_c}{q(Z_c)} = 1为与隐变量有关的概率分布,即隐分布,根据Jensen不等式,可得,

EM算法系列--原理_第2张图片,其中L为函数log[\frac{p(X,Z|\theta)}{q(Z)}]关于隐变量Z的期望,称为隐期望函数。

何时取等号呢?

logp(X|\theta) - L(\theta, q) \\ = \sum_i{log[p(X_i |\theta)]\sum_{Z_c}{q(Z_c)}}- \sum_i{\sum_{Z_c}{q(Z_c)log[\frac{p(X_i,Z_c|\theta)}{q(Z_c)}]}} \\ = \sum_i\sum_{Z_c}q(Z_c)log[\frac{p(X_i |\theta)q(Z_c)}{p(X_i,Z_c|\theta)}]\\ = \sum_i\sum_{Z_c}q(Z_c)log[\frac{q(Z_c)}{p(Z_c|X_i,\theta)}] \\ = \sum_iKL(q(Z)|p(Z|X_i,\theta)),其中KL表示Kullback-Leibler散度(Kullback-Leibler divergence, KL)或相对熵(relative entropy),由KL散度的性质可知,其极小值在两个概率分布相等时取得,

即当q(Z)=p(Z|X_i,\theta)时,不等式取等号。

假设\theta^{t-1}已知,则有logp(X|\theta^{t-1}) = L(\theta^{t-1}, p(Z|X,\theta^{t-1}))logp(X|\theta^{t}) \geq L(\theta^{t}, p(Z|X,\theta^{t-1}))

\theta^{t} =arg\max_{\theta} L(\theta, p(Z|X,\theta^{t-1})),则有

logp(X|\theta^{t}) \geq L(\theta^{t}, p(Z|X,\theta^{t-1})) \geq L(\theta^{t-1}, p(Z|X,\theta^{t-1})) = logp(X|\theta^{t-1}),当\theta^{t} = \theta^{t-1}时,不等式取等号。

所以不断迭代更新\theta,似然概率logp(X|\theta)在不断增大或达到局部最大值,如下图所示。

EM算法系列--原理_第3张图片

总结下EM算法的流程:

1. 初始化参数,

2. E-step:构造隐期望函数L(\theta, q)= \sum_i{\sum_{Z_c}{q(Z_c)log[\frac{p(X_i,Z_c|\theta)}{q(Z_c)}]}} , \; q(Z_c) = p(Z_c|X_i,\theta^{t-1})

3. M-step:最大化隐期望函数\theta^{t} =arg\max_{\theta} L(\theta, p(Z|X,\theta^{t-1}))

4. 重复2~3,直到似然函数几乎不再增大

 

 

你可能感兴趣的:(机器学习#EM,机器学习,算法,em)