该篇博客是对邱锡鹏老师《神经网络与深度学习》的学习笔记。
EM算法简介
(隐变量:部分变量是不可观测的)
在一个包含隐变量的图模型中,令
X
\boldsymbol X
X定义可观测变量的集合,隐变量集合为
Z
\boldsymbol Z
Z,一个样本
x
\boldsymbol x
x的边际似然函数为:
p
(
x
;
θ
)
=
∑
z
p
(
x
,
z
;
θ
)
p(\boldsymbol x; \theta) = \sum_{\boldsymbol z} p(\boldsymbol x, \boldsymbol z; \theta)
p(x;θ)=z∑p(x,z;θ)
其中 θ \theta θ为模型参数。我们给出带隐变量的贝叶斯网络结构图模型,如下图所示,其中矩形表示其中的变量重复 N N N次,这种表示法称为盘子表示法(Plate Notation),是图模型中表示重复变量的方法。
若我们有
N
N
N个样本
D
=
{
x
(
n
)
}
n
=
1
N
\mathcal D=\{\boldsymbol x^{(n)}\}_{n=1}^N
D={x(n)}n=1N,整个训练集的对数边际似然为
L
(
D
,
θ
)
=
log
(
∏
n
=
1
N
p
(
x
(
n
)
;
θ
)
)
=
∑
n
=
1
N
log
p
(
x
(
n
)
;
θ
)
=
∑
n
=
1
N
log
(
∑
z
p
(
x
(
n
)
,
z
;
θ
)
)
\begin{aligned} \mathcal L (\mathcal D, \theta) &= \log \left ( \prod_{n=1}^N p(\boldsymbol x^{(n)}; \theta) \right ) \\ & = \sum_{n=1}^N \log p(\boldsymbol x^{(n)}; \theta) \\ & = \sum_{n=1}^N \log \left ( \sum_{z} p (\boldsymbol x^{(n)}, \boldsymbol z; \theta) \right) \end{aligned}
L(D,θ)=log(n=1∏Np(x(n);θ))=n=1∑Nlogp(x(n);θ)=n=1∑Nlog(z∑p(x(n),z;θ))
通过最大化整个样本的对数似然边际
L
(
D
,
θ
)
\mathcal L (\mathcal D, \theta)
L(D,θ),我们可以估计出最优的参数
θ
∗
\theta^{*}
θ∗,但是我们难以直接计算。为了解决这个实际问题,计算
p
(
x
,
z
,
θ
)
p(\boldsymbol x, \boldsymbol z, \theta)
p(x,z,θ),我们引入额外的变分函数
q
(
z
)
q(\boldsymbol z)
q(z),
q
(
z
)
q(\boldsymbol z)
q(z)定义为在隐变量
z
\boldsymbol z
z上的分布,样本
X
\boldsymbol X
X的对数边际似然函数为:
log
p
(
x
;
θ
)
=
log
∑
z
q
(
z
)
p
(
x
,
z
;
θ
)
q
(
z
)
≥
∑
z
q
(
z
)
log
p
(
x
,
z
;
θ
)
q
(
z
)
=
△
E
L
B
O
(
q
,
x
,
θ
)
\begin{aligned} \log p(\boldsymbol x; \theta) &= \log \sum_{\boldsymbol z} q(\boldsymbol z) \frac{ p(\boldsymbol x, \boldsymbol z; \theta) } {q(\boldsymbol z)} \\ & \geq \sum_{\boldsymbol z} q(\boldsymbol z) \log \frac{ p(\boldsymbol x, \boldsymbol z; \theta) } {q(\boldsymbol z)} \\ & \overset{\bigtriangleup}{=} ELBO(q, \boldsymbol x, \theta) \end{aligned}
logp(x;θ)=logz∑q(z)q(z)p(x,z;θ)≥z∑q(z)logq(z)p(x,z;θ)=△ELBO(q,x,θ)
第二个不等式使用了Jensen不等式,当且仅当
q
(
z
)
=
p
(
z
∣
x
,
θ
)
q(\boldsymbol z)=p(\boldsymbol z| \boldsymbol x, \theta)
q(z)=p(z∣x,θ)时,取等号(取到下界)。另外,
E
L
B
O
ELBO
ELBO称为对数边际似然函数
log
p
(
x
;
θ
)
\log p(\boldsymbol x; \theta)
logp(x;θ)的下界,称为证据下界(Evidence Lower BOound)。这样,最大化对数边际似然函数可以分解为两个步骤:
(1) 先找到近似分布
q
(
z
)
q(\boldsymbol z)
q(z)使得:
log
p
(
x
;
θ
)
=
E
L
B
O
(
q
,
x
,
θ
)
\log p(\boldsymbol x; \theta)=ELBO(q, \boldsymbol x, \theta)
logp(x;θ)=ELBO(q,x,θ)
(2) 再寻找参数
θ
\theta
θ最大化
E
L
B
O
(
q
,
x
,
θ
)
ELBO(q, \boldsymbol x, \theta)
ELBO(q,x,θ)。
这就是EM算法,即期望最大化算法(Expectation-Maximization Alogirthm),EM算法是含隐变量图模型的常用参数估计方法,通过迭代的方式来最大化边际似然。EM算法分为两个步骤:E步和M步,这两个步骤不断重复,直至收敛到某个局部最优解。在第t步迭代时,E步和M步分别为:
(1) E步:固定参数
θ
t
\theta_t
θt,找到一个分布
q
t
+
1
(
z
)
q_{t+1}(\boldsymbol z)
qt+1(z)使得证据下界
E
L
B
O
(
q
,
x
,
θ
)
=
log
p
(
x
;
θ
)
ELBO(q, \boldsymbol x, \theta)=\log p(\boldsymbol x; \theta)
ELBO(q,x,θ)=logp(x;θ)
根据Jensen不等式,我们知道,当 q ( z ) = p ( z ∣ x , θ t ) q(\boldsymbol z)=p(\boldsymbol z| \boldsymbol x, \theta_t) q(z)=p(z∣x,θt)时, E L B O ( q , x , θ ) ELBO(q, \boldsymbol x, \theta) ELBO(q,x,θ)最大,因此在E步中,最理想的分布 q ( z ) q(\boldsymbol z) q(z)是等于后验分布 p ( z ∣ x , θ t ) p(\boldsymbol z| \boldsymbol x, \theta_t) p(z∣x,θt),而计算后验分布 p ( z ∣ x , θ t ) p(\boldsymbol z| \boldsymbol x, \theta_t) p(z∣x,θt)是一个推断(Inference)问题,如果 z \boldsymbol z z是有限的一维离散变量(比如混合高斯模型), p ( z ∣ x , θ t ) p(\boldsymbol z| \boldsymbol x, \theta_t) p(z∣x,θt)计算起来还比较容易;否则, p ( z ∣ x , θ t ) p(\boldsymbol z| \boldsymbol x, \theta_t) p(z∣x,θt)一般情况下很难计算,需要通过变分推断的方法来进行近似估计。
(2)M步:固定
q
t
+
1
(
z
)
q_{t+1}(\boldsymbol z)
qt+1(z),找到一组参数使得证据下界最大,即
θ
t
+
1
=
arg max
θ
E
L
B
O
(
q
t
+
1
,
x
;
θ
)
\theta_{t+1} = \argmax_{\theta} ELBO(q_{t+1}, \boldsymbol x; \theta)
θt+1=θargmaxELBO(qt+1,x;θ)
EM算法的收敛性证明
假设在第
t
t
t步时的模型参数为
θ
t
\theta_t
θt,在E步时找到一个分布
q
t
+
1
(
z
)
q_{t+1}(\boldsymbol z)
qt+1(z),使得
log
p
(
x
;
θ
t
)
=
E
L
B
O
(
q
t
+
1
,
x
,
θ
t
)
\log p(\boldsymbol x; \theta_t)=ELBO(q_{t+1}, \boldsymbol x, \theta_t)
logp(x;θt)=ELBO(qt+1,x,θt)。在M步时固定
q
t
+
1
(
z
)
q_{t+1}(\boldsymbol z)
qt+1(z)找到一组参数
θ
t
+
1
\theta_{t+1}
θt+1,使得
E
L
B
O
(
q
t
+
1
,
x
;
θ
t
+
1
)
≥
E
L
B
O
(
q
t
+
1
,
x
;
θ
t
)
ELBO(q_{t+1}, \boldsymbol x; \theta_{t+1}) \geq ELBO(q_{t+1}, \boldsymbol x; \theta_{t})
ELBO(qt+1,x;θt+1)≥ELBO(qt+1,x;θt)。因此
log
p
(
x
;
θ
t
+
1
)
≥
E
L
B
O
(
q
t
+
1
,
x
;
θ
t
+
1
)
≥
E
L
B
O
(
q
t
+
1
,
x
;
θ
t
)
=
log
p
(
x
;
θ
t
)
\log p(\boldsymbol x; \theta_{t+1}) \geq ELBO(q_{t+1}, \boldsymbol x; \theta_{t+1}) \geq ELBO(q_{t+1}, \boldsymbol x; \theta_{t}) = \log p(\boldsymbol x; \theta_t)
logp(x;θt+1)≥ELBO(qt+1,x;θt+1)≥ELBO(qt+1,x;θt)=logp(x;θt)
即经过每一次迭代,对数边际似然增加,即 log p ( x ; θ t + 1 ) ≥ log p ( x ; θ t ) \log p(\boldsymbol x; \theta_{t+1}) \geq \log p(\boldsymbol x; \theta_t) logp(x;θt+1)≥logp(x;θt),单调有界必定收敛。
从信息论视角看EM算法
根据贝叶斯公式
p
(
x
,
z
;
θ
)
=
p
(
z
∣
x
;
θ
)
⋅
p
(
x
;
θ
)
⇒
log
p
(
x
;
θ
)
=
log
p
(
x
,
z
;
θ
)
−
log
p
(
z
∣
x
;
θ
)
\begin{aligned} & p(\boldsymbol x, \boldsymbol z; \theta) = p(\boldsymbol z| \boldsymbol x; \theta) \cdot p(\boldsymbol x; \theta) \\ \Rightarrow & \log p(\boldsymbol x; \theta) = \log p(\boldsymbol x, \boldsymbol z; \theta) - \log p(\boldsymbol z| \boldsymbol x; \theta) \end{aligned}
⇒p(x,z;θ)=p(z∣x;θ)⋅p(x;θ)logp(x;θ)=logp(x,z;θ)−logp(z∣x;θ)
借助上式,我们可以将对数边际似然
log
p
(
x
;
θ
)
\log p(\boldsymbol x; \theta)
logp(x;θ)分解为:
log
p
(
x
;
θ
)
=
∑
z
q
(
z
)
log
p
(
x
;
θ
)
=
∑
z
q
(
z
)
log
p
(
x
,
z
;
θ
)
p
(
z
∣
x
;
θ
)
=
∑
z
q
(
z
)
log
p
(
x
,
z
;
θ
)
q
(
z
)
⋅
q
(
z
)
p
(
z
∣
x
;
θ
)
=
∑
z
q
(
z
)
(
log
p
(
x
,
z
;
θ
)
q
(
z
)
−
log
p
(
z
∣
x
;
θ
)
q
(
z
)
)
=
E
L
B
O
(
q
,
x
;
θ
)
+
K
L
(
q
(
z
)
∣
∣
p
(
z
∣
x
;
θ
)
)
\begin{aligned} \log p(\boldsymbol x; \theta) &= \sum_{\boldsymbol z} q(\boldsymbol z) \log p(\boldsymbol x; \theta) \\ &= \sum_{\boldsymbol z} q(\boldsymbol z) \log \frac{p(\boldsymbol x, \boldsymbol z; \theta) }{ p(\boldsymbol z| \boldsymbol x; \theta)} \\ &= \sum_{\boldsymbol z} q(\boldsymbol z) \log \frac{p(\boldsymbol x, \boldsymbol z; \theta) }{q(\boldsymbol z)} \cdot \frac{q(\boldsymbol z) }{ p(\boldsymbol z| \boldsymbol x; \theta)} \\ &= \sum_{\boldsymbol z} q(\boldsymbol z) \left ( \log \frac{p(\boldsymbol x, \boldsymbol z; \theta)}{q(\boldsymbol z)} - \log \frac{p(\boldsymbol z| \boldsymbol x; \theta) } {q(\boldsymbol z)} \right) \\ &= ELBO(q, \boldsymbol x; \theta) + KL \left ( q(\boldsymbol z) || p(\boldsymbol z| \boldsymbol x; \theta) \right) \end{aligned}
logp(x;θ)=z∑q(z)logp(x;θ)=z∑q(z)logp(z∣x;θ)p(x,z;θ)=z∑q(z)logq(z)p(x,z;θ)⋅p(z∣x;θ)q(z)=z∑q(z)(logq(z)p(x,z;θ)−logq(z)p(z∣x;θ))=ELBO(q,x;θ)+KL(q(z)∣∣p(z∣x;θ))
由于 K L ( q ( z ) ∣ ∣ p ( z ∣ x ; θ ) ) ≥ 0 KL \left ( q(\boldsymbol z) || p(\boldsymbol z| \boldsymbol x; \theta) \right) \geq 0 KL(q(z)∣∣p(z∣x;θ))≥0,因此 E L B O ( q , x ; θ ) ELBO(q, \boldsymbol x; \theta) ELBO(q,x;θ)是 log p ( x ; θ ) \log p(\boldsymbol x; \theta) logp(x;θ)的一个下界,当且仅当 q ( z ) = p ( z ∣ x ; θ ) q(\boldsymbol z)=p(\boldsymbol z| \boldsymbol x; \theta) q(z)=p(z∣x;θ)时, K L ( q ( z ) ∣ ∣ p ( z ∣ x ; θ ) ) = 0 KL \left ( q(\boldsymbol z) || p(\boldsymbol z| \boldsymbol x; \theta) \right)=0 KL(q(z)∣∣p(z∣x;θ))=0,此时 E L B O ( q , x ; θ ) = log p ( x ; θ ) ELBO(q, \boldsymbol x; \theta)=\log p(\boldsymbol x; \theta) ELBO(q,x;θ)=logp(x;θ)。
EM算法的迭代过程可以用下图描述:
参考
[1] 邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.