概率模型有时既含有观测变量 (observable variable),又含有隐变量 (hidden variable),隐变量顾名思义就是无法被观测到的变量。如果都是观测变量,则给定数据,可以直接使用极大似然估计。但如果模型含有隐变量时,直接求导得到参数比较困难。而EM算法就是解决此类问题的常用方法。
对于一个含有隐变量\(\mathbf{Z}\)的概率模型,一般将\(\{\mathbf{X}, \mathbf{Z}\}\)称为完全数据,而观测数据\(\mathbf{X}\)为不完全数据。
我们的目标是极大化观测数据\(\mathbf{X}\)关于参数\(\boldsymbol{\theta}\)的对数似然函数。由于存在隐变量,因而也可表示为极大化\(\mathbf{X}\)的边际似然 (marginal likelihood),即:
\[
L(\boldsymbol{\theta}) = ln\,P(\mathbf{X}|\boldsymbol{\theta}) = ln\,\sum\limits_{\mathbf{Z}}P(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta}) \tag{1.1}
\]
上式中存在“对数的和” —— \(ln\sum(\cdot)\),如果直接求导将会非常困难。因而EM算法采用曲线救国的策略,构建\((1.1)\)式的一个下界,然后通过极大化这个下界来间接达到极大化\((1.1)\)的效果。
要想构建下界,就需要运用上文中的Jensen不等式。记\(\boldsymbol{\theta}^{(t)}\)为第t步迭代参数的估计值,考虑引入一个分布\(P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)})\),由于:
\(P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)}) \geqslant 0\)
\(\sum_{\mathbf{Z}}P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)}) = 1\)
\(ln(\cdot)\)为凹函数
因而可以利用Jensen不等式求出\(L(\boldsymbol{\theta})\)的下界:
\[
\begin{align}
L(\boldsymbol{\theta}) = ln\,\sum\limits_{\mathbf{Z}}P(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta}) &= ln\,\sum\limits_{\mathbf{Z}}P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}})\frac{P(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta}) }{P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)})} \tag{1.2}\\
& \geqslant \sum\limits_{\mathbf{Z}}P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}}) \,ln\frac{P(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta}) }{P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)})} \tag{1.3} \\
& = \underbrace{\sum\limits_{\mathbf{Z}}P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}}) \,ln{P(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta}) }}_{\mathcal{Q}(\boldsymbol{\theta},\boldsymbol{\theta}^{(t)})} \;\;\underbrace{- \sum\limits_{\mathbf{Z}}P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}}) \,ln{P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)})}}_{entropy} \tag{1.4}
\end{align}
\]
\((1.3)\)式构成了\(L(\boldsymbol{\theta})\)的下界,而\((1.4)\)式的右边为\(P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)})的熵 \geqslant 0\) ,其独立于我们想要优化的参数\(\boldsymbol{\theta}\),因而是一个常数。所以极大化\(L(\boldsymbol{\theta})\)的下界\((1.3)\)式就等价于极大化\(\mathcal{Q}(\boldsymbol{\theta}, \boldsymbol{\theta}^{(t)})\),\(\mathcal{Q}(\boldsymbol{\theta}, \boldsymbol{\theta}^{(t)})\) (Q函数) 亦可表示为 \(\,\mathbb{E}_{\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)}}\,lnP(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta})\),其完整定义如下:
基于观测数据 \(\mathbf{X}\) 和 当前参数\(\theta^{(t)}\)计算未观测数据 \(\mathbf{Z}\) 的条件概率分布\(P(\mathbf{Z}|\mathbf{X}, \theta^{(t)})\),则Q函数为完全数据的对数似然函数关于\(\mathbf{Z}\)的期望。
此即E步中期望值的来历。
接下来来看M步。在\((1.3)\)式中若令\(\boldsymbol{\theta} = \boldsymbol{\theta}^{(t)}\),则下界\((1.3)\)式变为:
\[
\begin{align*}
& \sum\limits_{\mathbf{Z}}P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}}) \,ln\frac{P(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta}^{(t)}) }{P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)})} \\
=\;\; & \sum\limits_{\mathbf{Z}}P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}}) \,ln\frac{P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}})P(\mathbf{X}|\boldsymbol{\theta}^{(t)})}{P(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{(t)})} \\
= \;\; & \sum\limits_{\mathbf{Z}}P(\mathbf{Z|\mathbf{X},\boldsymbol{\theta}^{(t)}}) \,lnP(\mathbf{X}|\boldsymbol{\theta}^{(t)}) \\
= \;\; & lnP(\mathbf{X}|\boldsymbol{\theta}^{(t)}) \;\;=\;\; L(\boldsymbol{\theta}^{(t)})
\end{align*}
\]
可以看到在第t步,\(L(\boldsymbol{\theta}^{(t)})\)的下界与\(L(\boldsymbol{\theta}^{(t)})\)相等,又由于极大化下界与极大化Q函数等价,因而在M步选择一个新的\(\boldsymbol{\theta}\)来极大化\(\mathcal{Q}(\boldsymbol{\theta}, \boldsymbol{\theta}^{(t)})\),就能使\(L(\boldsymbol{\theta}) \geqslant \mathcal{Q}(\boldsymbol{\theta}, \boldsymbol{\theta}^{(t)}) \geqslant \mathcal{Q}(\boldsymbol{\theta}^{(t)}, \boldsymbol{\theta}^{(t)}) = L(\boldsymbol{\theta}^{(t)})\) (这里为了便于理解就将\(\mathcal{Q}(\boldsymbol{\theta}, \boldsymbol{\theta}^{(t)})\)与\((1.3)\)式等同了),也就是说\(L(\boldsymbol{\theta})\)是单调递增的,通过EM算法的不断迭代能保证收敛到局部最大值。
EM算法流程:
输入: 观测数据\(\mathbf{X}\),隐变量\(\mathbf{Z}\),联合概率分布\(P(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta})\)
输出:模型参数\(\boldsymbol{\theta}\)
初始化参数\(\boldsymbol{\theta}^{(0)}\)