在前面的若干讲义中,我们已经讲过了期望最大化算法(EM algorithm),使用场景是对一个高斯混合模型进行拟合(fitting a mixture of Gaussians)。在本章里面,我们要给出期望最大化算法(EM algorithm)的更广泛应用,并且演示如何应用于一个大系列的具有潜在变量(latent variables)的估计问题(estimation problems)。我们的讨论从 Jensen 不等式(Jensen’s inequality)开始,这是一个非常有用的结论。
1. Jensen 不等式(Jensen’s inequality)
设 f f f 为一个函数,其定义域(domain)为整个实数域(set of real numbers)。这里要回忆一下,如果函数 f f f 的二阶导数 f ′ ′ ( x ) ≥ 0 f''(x) ≥ 0 f′′(x)≥0 (其中的 x ∈ R x ∈ R x∈R),则函数 f f f 为一个凸函数(convex function)。如果输入的为向量变量,那么这个函数就泛化了,这时候该函数的海森矩阵(hessian) H H H 就是一个半正定矩阵(positive semi-definite H ≥ 0)。如果对于所有的 x x x,都有二阶导数 f ′ ′ ( x ) > 0 f''(x) > 0 f′′(x)>0,那么我们称这个函数 f f f 是严格凸函数(对应向量值作为变量的情况,对应的条件就是海森矩阵必须为正定,写作 H > 0)。这样就可以用如下方式来表述 Jensen 不等式:
定理(Theorem):设 f f f 是一个凸函数,且设 X X X 是一个随机变量(random variable)。然后则有:
E [ f ( X ) ] ≥ f ( E X ) \begin{aligned} E[f(X)] ≥ f(EX)\end{aligned} E[f(X)]≥f(EX)
(译者注:函数的期望等于期望的函数值)
此外,如果函数 f f f 是严格凸函数,那么 E [ f ( X ) ] = f ( E X ) E[f(X)] = f(EX) E[f(X)]=f(EX), 当且仅当 X = E [ X ] X = E[X] X=E[X] 的概率(probability)为 1的时候成立(例如 X X X 是一个常数。)
还记得我们之前的约定(convention)吧,写期望(expectations)的时候可以偶尔去掉括号(parentheses),所以在上面的定理中, f ( E X ) = f ( E [ X ] ) f(EX) = f(E[X]) f(EX)=f(E[X])。
为了容易理解这个定理,可以参考下面的图:
![](https://img-blog.csdnimg.cn/20190116153638960.png)
上图中, f f f 是一个凸函数,在图中用实线表示。另外 X X X 是一个随机变量,有 0.5 的概率(chance)取值为 a,另外有 0.5 的概率取值为 b(在图中 x 轴上标出了)。这样, X X X 的期望值就在图中所示的 a 和 b 的中点位置。
图中在 y y y 轴上也标出了 f ( a ) f(a) f(a), f ( b ) f(b) f(b) 和 f ( E [ X ] ) f(E[X]) f(E[X])。接下来函数的期望值 E [ f ( X ) ] E[f(X)] E[f(X)] 在 y y y 轴上就处于 f ( a ) f(a) f(a) 和 f ( b ) f(b) f(b) 之间的中点的位置。如图中所示,在这个例子中由于 f f f 是凸函数,很明显 E [ f ( X ) ] ≥ f ( E X ) E[f(X)] ≥ f(EX) E[f(X)]≥f(EX)。
顺便说一下,很多人都记不住不等式的方向,所以就不妨用画图来记住,这是很好的方法,还可以通过图像很快来找到答案。
回想一下,当且仅当 – f –f –f 是严格凸函数([strictly] convex)的时候, f f f 是严格凹函数([strictly] concave)(例如,二阶导数 f ′ ′ ( x ) ≤ 0 f''(x) ≤ 0 f′′(x)≤0 或者其海森矩阵 H ≤ 0 H ≤ 0 H≤0)。Jensen 不等式也适用于凹函数(concave)f,但不等式的方向要反过来,也就是对于凹函数, E [ f ( X ) ] ≤ f ( E X ) E[f(X)] ≤ f(EX) E[f(X)]≤f(EX)。
2. 期望最大化算法(EM algorithm)
假如我们有一个估计问题(estimation problem),其中由训练样本集 { x ( 1 ) , . . . , x ( m ) } \{x^{(1)}, ..., x^{(m)}\} { x(1),...,x(m)} 包含了 m 个独立样本。我们用模型 p ( x , z ) p(x, z) p(x,z) 对数据进行建模,拟合其参数(parameters),其中的似然函数(likelihood)如下所示:
ℓ ( θ ) = ∑ i = 1 m log p ( x ; θ ) = ∑ i = 1 m log ∑ z ( i ) = 1 k p ( x , z ; θ ) . \begin{aligned} \ell(\theta)&=\sum^m_{i=1}\log p(x;\theta)\\&=\sum^m_{i=1}\log\sum^k_{z^{(i)}=1}p(x,z;\theta).\end{aligned} ℓ(θ)=i=1∑mlogp(x;θ)=i=1∑mlogz(i)=1∑kp(x,z;θ).
然而,确切地找到对参数 θ θ θ 的最大似然估计(maximum likelihood estimates)可能会很难。此处的 z ( i ) z^{(i)} z(i) 是一个潜在的随机变量(latent random variables);通常情况下,如果 z ( i ) z^{(i)} z(i) 事先得到了,然后再进行最大似然估计,就容易多了。
这种环境下,使用期望最大化算法(EM algorithm)就能很有效地实现最大似然估计(maximum likelihood estimation)。明确地对似然函数 ℓ ( θ ) \ell(\theta) ℓ(θ)进行最大化可能是很困难的,所以我们的策略就是使用一种替代,在 E − s t e p E-step E−step 中构建一个 ℓ \ell ℓ 的下限(lower-bound),然后在 M − s t e p M-step M−step 中对这个下限进行优化。
对于每个 i i i,设 Q i Q_i Qi 是某个对 z z z 的分布, Σ z Q i ( z ) = 1 , Q i ( z ) ≥ 0 \Sigma_z Q_i(z) = 1, Q_i(z) ≥ 0 ΣzQi(z)=1,Qi(z)≥0。则有下列各式1:
(1) ∑ i log p ( x ( i ) ; θ ) = ∑ i log ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = ∑ i log ∑ z ( i ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ≥ ∑ i ∑ z ( i ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \begin{aligned} \sum_i\log p(x^{(i)};\theta)&=\sum_{i}\log\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)& \tag{1} \\&=\sum_{i}\log\sum_{z^{(i)}}Q_i(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \\&\geq \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \end{aligned} i∑logp(x(i);θ)=i∑logz(i)∑p(x(i),z(i);θ)=i∑logz(i)∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)≥i∑z(i)∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)(1)
上面推导(derivation)的最后一步使用了 Jensen 不等式(Jensen’s inequality)。其中的 f ( x ) = log x f(x) = \log x f(x)=logx 是一个凹函数(concave function),因为其二阶导数 f ′ ′ ( x ) = − 1 / x 2 < 0 f''(x) = −1/x^2 < 0 f′′(x)=−1/x2<0 在整个定义域(domain) x ∈ R + x ∈ R^+ x∈R+ 上都成立。
此外,上式的求和中的单项:
∑ z ( i ) Q i ( z ( i ) ) [ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ] \begin{aligned} \sum_{z^{(i)}}Q_i(z^{(i)}) \left[ \frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \right] \end{aligned} z(i)∑Qi(z(i))[Qi(z(i))p(x(i),z(i);θ)]
是变量(quantity) [ p ( x ( i ) ,