在前面的若干讲义中,我们已经讲过了期望最大化算法(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 ( E X )
(译者注:函数的期望等于期望的函数值)
此外,如果函数
f
f
f 是严格凸函数,那么
E
[
f
(
X
)
]
=
f
(
E
X
)
E[f(X)] = f(EX)
E [ f ( X ) ] = f ( E X ) , 当且仅当
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 ( E X ) = f ( E [ X ] ) 。 为了容易理解这个定理,可以参考下面的图:
上图中,
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 ( E X ) 。
顺便说一下,很多人都记不住不等式的方向,所以就不妨用画图来记住,这是很好的方法,还可以通过图像很快来找到答案。
回想一下,当且仅当
–
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 ( E X ) 。
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 ∑ m log p ( x ; θ ) = i = 1 ∑ m log z ( i ) = 1 ∑ k p ( 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 − s t e p 中构建一个
ℓ
\ell
ℓ 的下限(lower-bound),然后在
M
−
s
t
e
p
M-step
M − s t e p 中对这个下限进行优化。
对于每个
i
i
i ,设
Q
i
Q_i
Q i 是某个对
z
z
z 的分布,
Σ
z
Q
i
(
z
)
=
1
,
Q
i
(
z
)
≥
0
\Sigma_z Q_i(z) = 1, Q_i(z) ≥ 0
Σ z Q i ( z ) = 1 , Q i ( z ) ≥ 0 。则有下列各式:
(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 ∑ log p ( x ( i ) ; θ ) = i ∑ log z ( i ) ∑ p ( x ( i ) , z ( i ) ; θ ) = i ∑ log z ( i ) ∑ Q i ( z ( i ) ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) ≥ i ∑ z ( i ) ∑ Q i ( z ( i ) ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) ( 1 )
上面推导(derivation)的最后一步使用了 Jensen 不等式(Jensen’s inequality)。其中的
f
(
x
)
=
log
x
f(x) = \log x
f ( x ) = log x 是一个凹函数(concave function),因为其二阶导数
f
′
′
(
x
)
=
−
1
/
x
2
<
0
f''(x) = −1/x^2 < 0
f ′ ′ ( x ) = − 1 / x 2 < 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 ) ∑ Q i ( z ( i ) ) [ Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) ]
是变量(quantity)
[
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
/
Q
i
(
z
(
i
)
)
]
[p(x^{(i)},z^{(i)};\theta)/Q_i(z^{(i)})]
[ p ( x ( i ) , z ( i ) ; θ ) / Q i ( z ( i ) ) ] 基于
z
(
i
)
z^{(i)}
z ( i ) 的期望,其中
z
(
i
)
z^{(i)}
z ( i ) 是根据
Q
i
Q_i
Q i 给定的分布确定的。然后利用 Jensen 不等式(Jensen’s inequality),就得到了:
f
(
E
z
(
i
)
∼
Q
i
[
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
]
)
≥
E
z
(
i
)
∼
Q
i
[
f
(
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
)
]
\begin{aligned} f(E_{z^{(i)}\thicksim Q_i} \left [\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \right])\geq E_{z^{(i)}\thicksim Q_i} \left [f\left(\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \right) \right] \end{aligned}
f ( E z ( i ) ∼ Q i [ Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) ] ) ≥ E z ( i ) ∼ Q i [ f ( Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) ) ]
其中上面的角标 “
z
(
i
)
∼
Q
i
z^{(i)} ∼ Q_i
z ( i ) ∼ Q i ” 就表明这个期望是对于依据分布
Q
i
Q_i
Q i 来确定的
z
(
i
)
z^{(i)}
z ( i ) 的。这样就可以从等式 (2) 推导出等式 (3)。
接下来,对于任意的一个分布
Q
i
Q_i
Q i ,上面的等式(3) 就给出了似然函数
ℓ
(
θ
)
\ell(\theta)
ℓ ( θ ) 的下限(lower-bound)。那么对于
Q
i
Q_i
Q i 有很多种选择。咱们该选哪个呢?如果我们对参数
θ
θ
θ 有某种当前的估计,很自然就可以设置这个下限为
θ
θ
θ 这个值。也就是,针对当前的
θ
θ
θ 值,我们令上面的不等式中的符号为等号。(稍后我们能看到,这样就能证明,随着 EM迭代过程的进行,似然函数
ℓ
(
θ
)
\ell(\theta)
ℓ ( θ ) 就会单调递增(increases monotonically)。)
为了让上面的限定值(bound)与
θ
θ
θ 特定值(particular value)联系紧密(tight),我们需要上面推导过程中的 Jensen 不等式这一步中等号成立。要让这个条件成立,我们只需确保是在对一个常数值随机变量(“constant”-valued random variable)求期望。也就是需要:
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
=
c
\begin{aligned} \frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} =c \end{aligned}
Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) = c
其中常数 c 不依赖
z
(
i
)
z^{(i)}
z ( i ) 。要实现这一条件,只需满足:
Q
i
(
z
(
i
)
)
∝
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
.
\begin{aligned} Q_i(z^{(i)})\varpropto {p(x^{(i)},z^{(i)};\theta)} . \end{aligned}
Q i ( z ( i ) ) ∝ p ( x ( i ) , z ( i ) ; θ ) .
实际上,由于我们已知
Q
i
(
z
(
i
)
)
=
1
Q_i(z^{(i)})=1
Q i ( z ( i ) ) = 1 (因为这是一个分布),这就进一步表明:
Q
i
(
z
(
i
)
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
∑
z
p
(
x
(
i
)
,
z
;
θ
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
p
(
x
(
i
)
;
θ
)
=
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
\begin{aligned} Q_i(z^{(i)}) &= \frac{p(x^{(i)},z^{(i)};\theta)}{\sum_z p(x^{(i)},z;\theta)}\\&= \frac{p(x^{(i)},z^{(i)};\theta)}{ p(x^{(i)};\theta)}\\&=p(z^{(i)}|x^{(i)};\theta) \end{aligned}
Q i ( z ( i ) ) = ∑ z p ( x ( i ) , z ; θ ) p ( x ( i ) , z ( i ) ; θ ) = p ( x ( i ) ; θ ) p ( x ( i ) , z ( i ) ; θ ) = p ( z ( i ) ∣ x ( i ) ; θ )
因此,在给定
x
(
i
)
x^{(i)}
x ( i ) 和参数
θ
θ
θ 的设置下,我们可以简单地把
Q
i
Q_i
Q i 设置为
z
(
i
)
z^{(i)}
z ( i ) 的后验分布(posterior distribution)。
接下来,对
Q
i
Q_i
Q i 的选择,等式(3) 就给出了似然函数对数(log likelihood)的一个下限,而似然函数(likelihood)正是我们要试图求最大值(maximize)的。这就是
E
−
s
t
e
p
E-step
E − s t e p 。接下来在算法的
M
M
M 步骤中,就最大化等式(3) 当中的方程,然后得到新的参数
θ
θ
θ 。重复这两个步骤,就是完整的
E
M
EM
E M 算法,如下所示:
重复下列过程直到收敛(convergence): { (
E
−
s
t
e
p
E-step
E − s t e p ) 对每个
i
i
i ,设
Q
i
(
z
(
i
)
)
:
=
p
(
z
(
i
)
,
x
(
i
)
;
θ
)
.
\begin{aligned} Q_i(z^{(i)}):= {p(z^{(i)},x^{(i)};\theta)} . \end{aligned}
Q i ( z ( i ) ) : = p ( z ( i ) , x ( i ) ; θ ) .
((
M
−
s
t
e
p
M-step
M − s t e p ) 设
θ
:
=
arg
max
θ
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
∣
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
.
\begin{aligned} \theta:=\arg\max_\theta\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})|\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} . \end{aligned}
θ : = arg θ max i ∑ z ( i ) ∑ Q i ( z ( i ) ) ∣ log Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) . }
怎么才能知道这个算法是否会收敛(converge)呢?设
θ
(
t
)
θ^{(t)}
θ ( t ) 和
θ
(
t
+
1
)
θ^{(t+1)}
θ ( t + 1 ) 是上面 EM 迭代过程中的某两个参数(parameters)。接下来我们就要证明一下
ℓ
(
θ
(
t
)
)
≤
ℓ
(
θ
(
t
+
1
)
)
\ell(θ^{(t)}) ≤ \ell(θ^{(t+1)})
ℓ ( θ ( t ) ) ≤ ℓ ( θ ( t + 1 ) ) ,这就表明 EM 迭代过程总是让似然函数对数(log-likelihood)单调递增(monotonically improves)。证明这个结论的关键就在于对
Q
i
Q_i
Q i 的选择中。在上面EM 迭代中,参数的起点设为
θ
(
t
)
θ^{(t)}
θ ( t ) ,我们就可以选择
Q
i
(
t
)
(
z
(
i
)
)
:
=
p
(
z
(
i
)
∣
x
(
i
)
;
θ
(
t
)
)
Q_i^{(t)}(z^{(i)}): = p(z^{(i)}|x^{(i)};\theta^{(t)})
Q i ( t ) ( z ( i ) ) : = p ( z ( i ) ∣ x ( i ) ; θ ( t ) ) 。之前我们已经看到了,正如等式(3) 的推导过程中所示,这样选择能保证 Jensen 不等式的等号成立,因此:
ℓ
(
θ
(
t
)
)
=
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
)
)
Q
i
(
t
)
(
z
(
i
)
)
.
\begin{aligned} \ell(θ^{(t)})=\sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta^{(t)})}{Q_i^{(t)}(z^{(i)})} . \end{aligned}
ℓ ( θ ( t ) ) = i ∑ z ( i ) ∑ Q i ( t ) ( z ( i ) ) log Q i ( t ) ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ( t ) ) .
参数
θ
(
t
+
1
)
θ^{(t+1)}
θ ( t + 1 ) 可以通过对上面等式中等号右侧进行最大化而得到。因此:
(4)
ℓ
(
θ
(
t
+
1
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
+
1
)
)
Q
i
(
t
)
(
z
(
i
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
)
)
Q
i
(
t
)
(
z
(
i
)
)
=
ℓ
(
θ
(
t
)
)
\begin{aligned} \ell(θ^{(t+1)})&\geq\sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta^{(t+1)})}{Q_i^{(t)}(z^{(i)})}\tag{4} \\&\geq \sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta^{(t)})}{Q_i^{(t)}(z^{(i)})}\\&=\ell(\theta^{(t)}) \end{aligned}
ℓ ( θ ( t + 1 ) ) ≥ i ∑ z ( i ) ∑ Q i ( t ) ( z ( i ) ) log Q i ( t ) ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ( t + 1 ) ) ≥ i ∑ z ( i ) ∑ Q i ( t ) ( z ( i ) ) log Q i ( t ) ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ( t ) ) = ℓ ( θ ( t ) ) ( 4 )
上面的第一个不等式推自:
ℓ
(
θ
)
≥
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\begin{aligned} \ell(θ)\geq\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \end{aligned}
ℓ ( θ ) ≥ i ∑ z ( i ) ∑ Q i ( z ( i ) ) log Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ )
上面这个不等式对于任意值的
Q
i
Q_i
Q i 和
θ
θ
θ 都成立,尤其当
Q
i
=
Q
i
(
t
)
,
θ
=
θ
(
t
+
1
)
Q_i = Q_i^{(t)}, θ = θ^{(t+1)}
Q i = Q i ( t ) , θ = θ ( t + 1 ) 。要得到等式(5),我们要利用
θ
(
t
+
1
)
θ^{(t+1)}
θ ( t + 1 ) 的选择能够保证:
arg
max
θ
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\begin{aligned} \arg\max_\theta \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \end{aligned}
arg θ max i ∑ z ( i ) ∑ Q i ( z ( i ) ) log Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ )
这个式子对
θ
(
t
+
1
)
θ^{(t+1)}
θ ( t + 1 ) 得到的值必须大于等于
θ
(
t
)
θ^{(t)}
θ ( t ) 得到的值。最后,推导等式(6) 的这一步,正如之前所示,因为在选择的时候我们选的
Q
i
(
t
)
Q_i^{(t)}
Q i ( t ) 就是要保证 Jensen 不等式对
θ
(
t
)
θ^{(t)}
θ ( t ) 等号成立。
因此,EM 算法就能够导致似然函数(likelihood)的单调收敛。在我们推导 EM 算法的过程中,我们要一直运行该算法到收敛。得到了上面的结果之后,可以使用一个合理的收敛检测(reasonable convergence test)来检查在成功的迭代(successive iterations)之间的
ℓ
(
θ
)
\ell(θ)
ℓ ( θ ) 的增长是否小于某些容忍参数(tolerance parameter),如果 EM 算法对
ℓ
(
θ
)
\ell(θ)
ℓ ( θ ) 的增大速度很慢,就声明收敛(declare convergence)。
备注。如果我们定义
J
(
Q
,
θ
)
=
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\begin{aligned} J(Q,\theta)=\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \end{aligned}
J ( Q , θ ) = i ∑ z ( i ) ∑ Q i ( z ( i ) ) log Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ )
通过我们之前的推导,就能知道
ℓ
(
θ
)
≥
J
(
Q
,
θ
)
\ell(θ)\geq J(Q,\theta)
ℓ ( θ ) ≥ J ( Q , θ ) 。这样 EM 算法也可看作是在
J
J
J 上的坐标上升(coordinate ascent),其中
E
−
s
t
e
p
E-step
E − s t e p 步骤在
Q
Q
Q 上对
J
J
J 进行了最大化(自己检查哈),然后
M
−
s
t
e
p
M-step
M − s t e p 步骤则在
θ
θ
θ 上对
J
J
J 进行最大化。
3 高斯混合模型回顾(Mixture of Gaussians revisited )
有了对 EM 算法的广义定义(general definition)之后,我们就可以回顾一下之前的高斯混合模型问题,其中要拟合的参数有
φ
,
μ
φ, μ
φ , μ 和
Σ
Σ
Σ 。为了避免啰嗦,这里就只给出在
M
−
s
t
e
p
M-step
M − s t e p 步骤中对
φ
φ
φ 和
μ
j
μ_j
μ j 进行更新的推导,关于
Σ
j
Σ_j
Σ j 的更新推导就由读者当作练习自己来吧。
E
−
s
t
e
p
E-step
E − s t e p 步骤很简单。还是按照上面的算法推导过程,只需要计算:
w
j
(
i
)
=
Q
i
(
z
(
i
)
=
j
)
=
P
(
z
(
i
)
=
j
∣
x
(
i
)
;
ϕ
,
μ
,
Σ
)
\begin{aligned} w_j^{(i)}=Q_i(z^{(i)}=j)=P(z^{(i)}=j|x^{(i)};\phi,\mu,\Sigma)\\ \end{aligned}
w j ( i ) = Q i ( z ( i ) = j ) = P ( z ( i ) = j ∣ x ( i ) ; ϕ , μ , Σ )
这里面的 “
Q
i
(
z
(
i
)
=
j
)
Q_i(z^{(i)}=j)
Q i ( z ( i ) = j ) ” 表示的是在分布
Q
i
Q_i
Q i 上
z
(
i
)
z^{(i)}
z ( i ) 取值
j
j
j 的概率。
接下来在
M
−
s
t
e
p
M-step
M − s t e p 步骤,就要最大化关于参数
φ
,
μ
,
Σ
φ, μ, Σ
φ , μ , Σ 的值:
∑
i
=
1
m
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
ϕ
,
μ
,
Σ
)
Q
i
(
z
(
i
)
)
=
∑
i
=
1
m
∑
j
=
1
k
Q
i
(
z
(
i
)
=
j
)
log
p
(
x
(
i
)
∣
z
(
i
)
=
j
;
μ
,
Σ
)
p
(
z
(
i
)
=
j
;
ϕ
)
Q
i
(
z
(
i
)
=
j
)
=
∑
i
=
1
m
∑
j
=
1
k
w
j
(
i
)
log
1
(
2
π
)
n
/
2
∣
Σ
j
∣
1
/
2
exp
(
−
1
2
(
x
(
i
)
−
μ
j
)
T
Σ
j
−
1
(
x
(
i
)
−
μ
j
)
)
⋅
ϕ
j
w
j
(
i
)
\begin{aligned} \sum_{i=1}^{m}&\sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\phi,\mu,\Sigma)}{Q_i(z^{(i)})} \\ &=\sum_{i=1}^{m}\sum_{j=1}^kQ_i(z^{(i)}=j)\log\frac{p(x^{(i)}|z^{(i)}=j;\mu,\Sigma)p(z^{(i)}=j;\phi)}{Q_i(z^{(i)}=j)} \\ &=\sum_{i=1}^{m}\sum_{j=1}^kw_j^{(i)}\log\frac{\frac{1}{(2\pi)^{n/2}|\Sigma_j|^{1/2}}\exp(-\frac12(x^{(i)}-\mu_j)^T\Sigma_j^{-1}(x^{(i)}-\mu_j))\cdot\phi_j}{w_j^{(i)}} \end{aligned}
i = 1 ∑ m z ( i ) ∑ Q i ( z ( i ) ) log Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; ϕ , μ , Σ ) = i = 1 ∑ m j = 1 ∑ k Q i ( z ( i ) = j ) log Q i ( z ( i ) = j ) p ( x ( i ) ∣ z ( i ) = j ; μ , Σ ) p ( z ( i ) = j ; ϕ ) = i = 1 ∑ m j = 1 ∑ k w j ( i ) log w j ( i ) ( 2 π ) n / 2 ∣ Σ j ∣ 1 / 2 1 exp ( − 2 1 ( x ( i ) − μ j ) T Σ j − 1 ( x ( i ) − μ j ) ) ⋅ ϕ j
先关于
μ
l
μ_l
μ l 来进行最大化。如果取关于
μ
l
μ_l
μ l 的(偏)导数(derivative),得到:
∇
μ
l
∑
i
=
1
m
∑
j
=
1
k
w
j
(
i
)
log
1
(
2
π
)
n
/
2
∣
Σ
j
∣
1
/
2
exp
(
−
1
2
(
x
(
i
)
−
μ
j
)
T
Σ
j
−
1
(
x
(
i
)
−
μ
j
)
)
⋅
ϕ
j
w
j
(
i
)
=
−
∇
μ
l
∑
i
=
1
m
∑
j
=
1
k
w
j
(
i
)
1
2
(
x
(
i
)
−
μ
j
)
T
Σ
j
−
1
(
x
(
i
)
−
μ
j
)
=
1
2
∑
i
=
1
m
w
l
(
i
)
∇
μ
l
2
μ
l
T
Σ
l
−
1
x
(
i
)
−
μ
l
T
Σ
l
−
1
μ
l
=
∑
i
=
1
m
w
l
(
i
)
(
Σ
l
−
1
x
(
i
)
−
Σ
l
−
1
μ
l
)
\begin{aligned} \nabla_{μ_l}&\sum_{i=1}^{m}\sum_{j=1}^kw_j^{(i)}\log\frac{\frac{1}{(2\pi)^{n/2}|\Sigma_j|^{1/2}}\exp(-\frac12(x^{(i)}-\mu_j)^T\Sigma_j^{-1}(x^{(i)}-\mu_j))\cdot\phi_j}{w_j^{(i)}}\\ &=-\nabla_{\mu_l}\sum_{i=1}^{m}\sum_{j=1}^kw_j^{(i)}\frac12(x^{(i)}-\mu_j)^T\Sigma_j^{-1}(x^{(i)}-\mu_j)\\ &=\frac12\sum_{i=1}^mw_l^{(i)}\nabla_{\mu_l}2\mu_l^T\Sigma_l^{-1}x^{(i)}-\mu_l^T\Sigma_l^{-1}\mu_l\\ &=\sum_{i=1}^mw_l^{(i)}(\Sigma_l^{-1}x^{(i)}-\Sigma_l^{-1}\mu_l) \end{aligned}
∇ μ l i = 1 ∑ m j = 1 ∑ k w j ( i ) log w j ( i ) ( 2 π ) n / 2 ∣ Σ j ∣ 1 / 2 1 exp ( − 2 1 ( x ( i ) − μ j ) T Σ j − 1 ( x ( i ) − μ j ) ) ⋅ ϕ j = − ∇ μ l i = 1 ∑ m j = 1 ∑ k w j ( i ) 2 1 ( x ( i ) − μ j ) T Σ j − 1 ( x ( i ) − μ j ) = 2 1 i = 1 ∑ m w l ( i ) ∇ μ l 2 μ l T Σ l − 1 x ( i ) − μ l T Σ l − 1 μ l = i = 1 ∑ m w l ( i ) ( Σ l − 1 x ( i ) − Σ l − 1 μ l )
设上式为零,然后解出
μ
l
μ_l
μ l 就产生了更新规则(update rule):
μ
l
:
=
∑
i
=
1
m
w
l
(
i
)
x
(
i
)
∑
i
=
1
m
w
l
(
i
)
\begin{aligned} \mu_l:=\frac{\sum_{i=1}^mw_l^{(i)}x^{(i)}}{\sum_{i=1}^mw_l^{(i)}} \end{aligned}
μ l : = ∑ i = 1 m w l ( i ) ∑ i = 1 m w l ( i ) x ( i )
这个结果咱们在之前的讲义中已经见到过了。咱们再举一个例子,推导在
M
−
s
t
e
p
M-step
M − s t e p 步骤中参数
ϕ
j
\phi_j
ϕ j 的更新规则。把仅关于参数
ϕ
j
\phi_j
ϕ j 的表达式结合起来,就能发现只需要最大化下面的表达式:
∑
i
=
1
m
∑
j
=
1
k
w
j
(
i
)
log
ϕ
j
\begin{aligned} \sum_{i=1}^{m}\sum_{j=1}^k w_{j}^{(i)}\log\phi_j \end{aligned}
i = 1 ∑ m j = 1 ∑ k w j ( i ) log ϕ j
然而,还有一个附加的约束,即
ϕ
j
\phi_j
ϕ j 的和为1,因为其表示的是概率
ϕ
j
=
p
(
z
(
i
)
=
j
;
ϕ
)
\phi_j = p(z^{(i)} = j;\phi)
ϕ j = p ( z ( i ) = j ; ϕ ) 。为了保证这个约束条件成立,即
Σ
j
=
1
k
ϕ
j
=
1
Σ_{j=1}^k \phi_j = 1
Σ j = 1 k ϕ j = 1 ,我们构建一个拉格朗日函数(Lagrangian):
L
(
ϕ
)
=
∑
i
=
1
m
∑
j
=
1
k
w
j
(
i
)
log
ϕ
j
+
β
(
∑
j
=
1
k
ϕ
j
−
1
)
\begin{aligned} \mathcal{L}(\phi)=\sum_{i=1}^{m}\sum_{j=1}^k w_{j}^{(i)}\log\phi_j+\beta(\sum_{j=1}^k\phi_j-1) \end{aligned}
L ( ϕ ) = i = 1 ∑ m j = 1 ∑ k w j ( i ) log ϕ j + β ( j = 1 ∑ k ϕ j − 1 )
其中的
β
β
β 是拉格朗日乘数 (Lagrange multiplier)。求导,然后得到:
∂
∂
ϕ
j
L
(
ϕ
)
=
∑
i
=
1
m
w
j
(
i
)
ϕ
j
+
1
\begin{aligned} \frac{\partial}{\partial \phi_j}\mathcal{L}(\phi)=\sum_{i=1}^{m}\frac{w_j^{(i)}}{\phi_j}+1 \end{aligned}
∂ ϕ j ∂ L ( ϕ ) = i = 1 ∑ m ϕ j w j ( i ) + 1
设导数为零,然后解方程,就得到了:
ϕ
j
=
∑
i
=
1
m
w
j
(
i
)
−
β
\begin{aligned} \phi_j=\frac{\sum_{i=1}^{m}{w_j^{(i)}}}{-\beta} \end{aligned}
ϕ j = − β ∑ i = 1 m w j ( i )
也就是说,结合约束条件(constraint)
Σ
j
ϕ
j
=
1
Σ_j\phi_j = 1
Σ j ϕ j = 1 ,可以很容易地发现
−
β
=
Σ
i
=
1
m
Σ
j
=
1
k
w
j
(
i
)
=
Σ
i
=
1
m
1
=
m
−β= Σ_{i=1}^m Σ_{j=1}^k w_j^{(i)} = Σ_{i=1}^m 1=m
− β = Σ i = 1 m Σ j = 1 k w j ( i ) = Σ i = 1 m 1 = m . (这里用到了条件
w
j
(
i
)
=
Q
i
(
z
(
i
)
=
j
)
w_j^{(i)} =Q_i(z^{(i)} = j)
w j ( i ) = Q i ( z ( i ) = j ) ,并且概率和为1,
∑
j
w
j
(
i
)
=
1
\sum_jw_j^{(i)}=1
∑ j w j ( i ) = 1 )。这样我们就得到了在
M
−
s
t
e
p
M-step
M − s t e p 步骤中对参数
ϕ
j
\phi_j
ϕ j 进行更新的规则了:
ϕ
j
=
1
m
∑
i
=
1
m
w
j
(
i
)
\begin{aligned} \phi_j=\frac1m{\sum_{i=1}^{m}w_j^{(i)}} \end{aligned}
ϕ j = m 1 i = 1 ∑ m w j ( i )
接下来对
M
−
s
t
e
p
M-step
M − s t e p 步骤中对
Σ
j
Σ_j
Σ j 的更新规则的推导就很容易了。