EM算法:含隐变量的参数估计

该篇博客是对邱锡鹏老师《神经网络与深度学习》的学习笔记。

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;θ)=zp(x,z;θ)

其中 θ \theta θ为模型参数。我们给出带隐变量的贝叶斯网络结构图模型,如下图所示,其中矩形表示其中的变量重复 N N N次,这种表示法称为盘子表示法(Plate Notation),是图模型中表示重复变量的方法。

EM算法:含隐变量的参数估计_第1张图片

若我们有 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=1Np(x(n);θ))=n=1Nlogp(x(n);θ)=n=1Nlog(zp(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;θ)=logzq(z)q(z)p(x,z;θ)zq(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(zx,θ)时,取等号(取到下界)。另外, 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(zx,θ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(zx,θt),而计算后验分布 p ( z ∣ x , θ t ) p(\boldsymbol z| \boldsymbol x, \theta_t) p(zx,θt)是一个推断(Inference)问题,如果 z \boldsymbol z z是有限的一维离散变量(比如混合高斯模型), p ( z ∣ x , θ t ) p(\boldsymbol z| \boldsymbol x, \theta_t) p(zx,θt)计算起来还比较容易;否则, p ( z ∣ x , θ t ) p(\boldsymbol z| \boldsymbol x, \theta_t) p(zx,θ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(zx;θ)p(x;θ)logp(x;θ)=logp(x,z;θ)logp(zx;θ)

借助上式,我们可以将对数边际似然 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;θ)=zq(z)logp(x;θ)=zq(z)logp(zx;θ)p(x,z;θ)=zq(z)logq(z)p(x,z;θ)p(zx;θ)q(z)=zq(z)(logq(z)p(x,z;θ)logq(z)p(zx;θ))=ELBO(q,x;θ)+KL(q(z)∣∣p(zx;θ))

由于 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(zx;θ))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(zx;θ)时, 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(zx;θ))=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算法的迭代过程可以用下图描述:

EM算法:含隐变量的参数估计_第2张图片

参考

[1] 邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.

你可能感兴趣的:(信息与通信,1024程序员节)