Expectation Maximization

Introduction

给定数据 $X$,一种常用的估计模型参数 $\theta$ 的方法是 maximum likelihood:

这里的 $X$ 是我们可见的,即 visible variable。如果给定的问题涉及到 hidden variable,ML 就需要引入新变量:

其中 $z$ 对应 hidden variable。在很多情况下,引入积分后问题会变得不可求解,这也是为什么需要 EM 算法的原因。EM 尝试用迭代的方式去求解 $\theta$,从而避免掉积分操作。

另外,为了计算方便,我们通常并不直接操作 $p(X \theta)$,而是用 $\log$ 形式代替:
为了使用方便,下面记 $L(\theta) = \log p(X \theta)$

EM Iteration

假设第 $n$ 轮迭代得到的参数是 $\theta_n$,由于我们的目标是最大化 $L(\theta)$,因此我们希望下一轮迭代得到的 $\theta$ 可以进一步提升 $L(\theta)$。换句话说,在第 $n+1$ 轮迭代时,希望能找到 $\theta$ 使得 $L(\theta) > L(\theta_n)$。 EM 的做法是利用 $\theta_n$ 得到 $L(\theta)$ 的一个下界,然后去优化这个下界得到一个更优的 $\theta$ (当然这个下界通常是易于优化的)。

下面的推导首先给出 $L(\theta)$ 的下界并证明可以通过优化这个下界得到更优的 $\theta$。

推导过程中用到了 concave function 的一个性质:

If $f(x)$ is a concave function, $\forall \sum_i a_i = 1 \;\; f(\sum_{i}a_i x_i) \geq \sum_i a_i f(x_i)$

特别的,如果 $f(x) = \log x$,则有 $\log \sum_i a_i x_i \geq \sum_i a_i \log x_i \;\; \forall \sum_i a_i = 1$

得到下界

假设 $X = \{\b{x}_1, \b{x}_2, …, \b{x}_n\}$

这样我们就得到了 $L(\theta)$ 的下界 $l(\theta)$。推导的核心的是 **第三个等式引入了 hidden variable distribution $p(\b{z} \b{x}^{(i)}, \theta_n)$**。

证明优化下界提升 likelihood

当 $\theta = \theta_n$ 时,我们有:

因此,如果 $\theta_{n+1} = \underset{\theta}{\arg\max}\; l(\theta)$ 则有 $L(\theta_{n+1}) \geq l(\theta_{n+1}) \geq l(\theta_{n}) = L(\theta_n)$,也就是通过优化下界我们可以得到一个 likelihood 更高的 $\theta$。

E-step & M-step

下面进一步精简 $\arg\max$:

分母相对于 $\theta$ 是个常数,所以可以直接去掉而不影响 $\arg\max$ 的结果。

这样就可以得到 E-step 和 M-step:

下面给出两个具体的例子,分别是 Hidden Markov Model (HMM) 和 Probabilistic Latent Semantic Analysis (PLSA) 的训练过程。

PLSA

PLSA 用于浅层语义分析,其 likelihood 可以表示为

其中 $d$ 表示文档,$w$ 表示文档中的词 (其实 $d, w$ 可以表示所有有关联的事物),$n(w, d)$ 表示 $d, w$ 共现的次数,$p(w, d)$ 表示 $w, d$ 的联合概率。

引入 $z$ 后,likelihood 表示为

所以对于 PLSA,$\theta$ 包括 3 个部分,$p(z), p(w z), p(d z)$

假设 EM 第 n 轮迭代得到的参数为 $\theta_n$,则有

其中 $p(z w, d, \theta_n)$ 表示由 $\theta_n$ 得到的 hidden variable distribution,在 E-step 计算。

M-step 最大化 $l(\theta)$

根据 $\frac{\partial f(x)}{\partial p(z)} = 0, \frac{\partial f(x)}{\partial p(d z)} = 0, \frac{\partial f(x)}{\partial p(w z)} = 0$ 计算出 $p(z), p(d z), p(w z)$。以 $p(z)$ 为例
根据 $\sum_z p(z) = 1$ 推出 $\alpha = \sum_{z} \sum_{d} \sum_{w} n(w, d) p(z w, d, \theta_n)$,因此
$p(d z), p(w z)$ 同理可得。

PLSA 迭代总结如下:

HMM

HMM 包含一个观测序列和一个状态序列,如果训练样本中的状态序列未知,则需要使用 EM 进行模型的参数估计。假设训练数据中包含 n 个观测序列,$D = \{O_1, O_2, \cdots, O_n\}$,则数据的 likelihood 可表示为

令 $S$ 表示状态序列,则有

其中 $\theta$ 包含 3 个部分:

这样一个观测序列和一个状态序列的联合概率就可以表示成 (假设序列长度为 $l$)


假设 EM 第 n 轮迭代得到的参数为 $\theta_n$,则有


M-step 最大化 $l(\theta)$

根据 $\frac{\partial f(x)}{\partial \pi_k} = 0, \frac{\partial f(x)}{\partial a_{kl}} = 0, \frac{\partial f(x)}{\partial b_k(u)} = 0$ 计算出 $\pi_k, a_{kl}, b_k(u)$。以 $\pi_k$ 为例

由此推出

注意到上面的推导有一个 trick,即引入了 indicator function $I$,在推导 $a_{kl}$ 和 $b_{k}(u)$ 的过程中也会用到类似的 trick,具体过程这里就不给出了。


HMM 迭代总结如下:

这里没有给出计算 $P(S_t = k O_i, \theta_n)$ 和 $P(S_t = k, S_{t+1} = l O_i, \theta_n)$ 的具体细节。