EM算法
对于概率图模型中包含有隐变量的情况,可以使用EM算法进行参数估计。隐变量是指不可观测的变量,但其参与到了样本的生成过程。例如在混合高斯模型中,样本 x x x的生成过程为首先确定其所属的类别 z z z,之后根据其类别选择相应的高斯分布 N ( μ z , σ k ) \mathcal{N}(\mu_z,\sigma_k) N(μz,σk),生成样本 x x x。在该生成过程中,样本所属的类别 z z z即为一个隐变量。
本文综合了一些相关资料,主要聚焦于EM算法及变分推断的推导过程。
EM算法推导 方法1
对于EM算法,可从边际似然函数的角度出发进行推导:在包含隐变量的图模型中,模型参数为
θ
\theta
θ,则样本
x
x
x的边际似然函数为:
p
(
x
;
θ
)
=
∑
z
p
(
x
,
z
;
θ
)
(1)
p({x};\theta)=\sum_{{z}}p({x},{z};\theta) \tag{1}
p(x;θ)=z∑p(x,z;θ)(1)
则对于包含
N
N
N个样本的训练集
D
=
{
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
N
)
}
D=\{x^{(1)},x^{(2)},...,x^{(N)}\}
D={x(1),x(2),...,x(N)},训练集
D
D
D的对数边际似然函数为:
L
(
D
;
θ
)
=
1
N
∑
n
=
1
N
log
p
(
x
(
n
)
;
θ
)
=
1
N
∑
n
=
1
N
log
∑
z
p
(
x
(
n
)
,
z
;
θ
)
(2)
\begin{aligned} L(D;\theta) & =\frac{1}{N}\sum_{n=1}^N\log\,p(x^{(n)};\theta) \\ & =\frac{1}{N}\sum_{n=1}^N\log\sum_zp(x^{(n)},z;\theta)\tag{2} \end{aligned}
L(D;θ)=N1n=1∑Nlogp(x(n);θ)=N1n=1∑Nlogz∑p(x(n),z;θ)(2)
我们的最终目标是希望最大化整个数据集的对数边际似然函数
L
(
D
;
θ
)
L(D;\theta)
L(D;θ),然而(2)式中涉及分布
p
(
x
,
z
;
θ
)
p(x,z;\theta)
p(x,z;θ)的求和(或积分),难以计算。因此可以引入一个关于隐变量
z
z
z的近似分布
q
(
z
)
q(z)
q(z),称为变分函数,并利用其对边际似然函数进行推导:
log
p
(
x
;
θ
)
=
log
∑
z
p
(
x
,
z
;
θ
)
=
log
∑
z
q
(
z
)
p
(
x
,
z
;
θ
)
q
(
z
)
≥
∑
z
q
(
z
)
log
p
(
x
,
z
;
θ
)
q
(
z
)
=
E
L
B
O
(
q
,
x
;
θ
)
(3)
\begin{aligned} \log\,p(x;\theta)&=\log\sum_zp(x,z;\theta) \\ &=\log\,\sum_zq(z)\frac{p(x,z;\theta)}{q(z)} \\ & \ge\sum_zq(z)\log\frac{p(x,z;\theta)}{q(z)} \\ &=ELBO(q,x;\theta) \end{aligned}\tag{3}
logp(x;θ)=logz∑p(x,z;θ)=logz∑q(z)q(z)p(x,z;θ)≥z∑q(z)logq(z)p(x,z;θ)=ELBO(q,x;θ)(3)上述推导中运用了Jensen不等式,即对于凹函数
g
(
x
)
g(x)
g(x),有
g
(
E
[
x
]
)
≥
E
[
g
(
x
)
]
g(E[x])\ge E[g(x)]
g(E[x])≥E[g(x)];
E
L
B
O
(
q
,
x
;
θ
)
ELBO(q,x;\theta)
ELBO(q,x;θ)为
log
p
(
x
;
θ
)
\log\,p(x;\theta)
logp(x;θ)的下界,称为证据下界 (Evidence LowerBound)
回到问题本身,我们的目标是最大化 log p ( x ; θ ) \log p(x;\theta) logp(x;θ),而由(3)式可知其下界为 E L B O ( q , x ; θ ) ELBO(q,x;\theta) ELBO(q,x;θ),因此EM算法的思想是寻找一个最优的近似分布 q ∗ ( z ) q^*(z) q∗(z),使 E L B O ( q ∗ , x ; θ ) ELBO(q^*,x;\theta) ELBO(q∗,x;θ)达到当前参数 θ \theta θ固定情况下的最大值,然后改变参数 θ \theta θ使得 E L B O ( q , x ; θ ) ELBO(q,x;\theta) ELBO(q,x;θ)在当前 q ∗ ( z ) q^*(z) q∗(z)固定的情况下达到最大,之后不断地重复这两个步骤。
对于如何寻找最优的 q ∗ ( z ) q^*(z) q∗(z):根据Jensen不等式的等号成立条件可知,对于(3)式,仅当 q ( z ) = p ( z ∣ x ; θ ) q(z)=p(z|x;\theta) q(z)=p(z∣x;θ)时等号成立,此时 E L B O ( q , x ; θ ) ELBO(q,x;\theta) ELBO(q,x;θ)达到最大值 log p ( x ; θ ) \log p(x;\theta) logp(x;θ)
最终EM算法的步骤如下:
E-step:固定参数 θ t \theta_t θt,即固定 log p ( x ; θ t ) \log p(x;\theta_t) logp(x;θt),令 q t + 1 ( z ) = p ( z ∣ x ; θ t ) q_{t+1}(z)=p(z|x;\theta_t) qt+1(z)=p(z∣x;θt),使得 log p ( x ; θ t ) = E L B O ( q t + 1 , x ; θ t ) \log p(x;\theta_t)=ELBO(q_{t+1},x;\theta_t) logp(x;θt)=ELBO(qt+1,x;θt)
M-step:固定 q t + 1 ( z ) q_{t+1}(z) qt+1(z),找到一组参数使得 E L B O ( q , x ; θ ) ELBO(q,x;\theta) ELBO(q,x;θ)达到最大,即 θ t + 1 = arg max θ E L B O ( q t + 1 , x ; θ ) \theta_{t+1}=\argmax_\theta ELBO(q_{t+1},x;\theta) θt+1=θargmaxELBO(qt+1,x;θ)
EM算法推导 方法2
对于对数边际似然函数
log
p
(
x
;
θ
)
\log p(x;\theta)
logp(x;θ)可采用另一种分解方式,由此产生第二种推导方法:
log
p
(
x
;
θ
)
=
∑
z
q
(
z
)
log
p
(
x
;
θ
)
因
为
∑
z
q
(
z
)
=
1
=
∑
z
q
(
z
)
log
[
p
(
x
,
z
;
θ
)
p
(
z
∣
x
;
θ
)
⋅
q
(
z
)
q
(
z
)
]
=
∑
z
q
(
z
)
log
p
(
x
,
z
;
θ
)
q
(
z
)
+
∑
q
q
(
z
)
log
q
(
z
)
p
(
z
∣
x
;
θ
)
=
E
L
B
O
(
q
,
x
;
θ
)
+
K
L
[
q
(
z
)
∣
∣
p
(
z
∣
x
;
θ
)
]
(4)
\begin{aligned} \log p(x;\theta)&=\sum_zq(z)\log p(x;\theta)\qquad\qquad\qquad\qquad\qquad\qquad \scriptsize{因为\sum_zq(z)=1} \\ &=\sum_zq(z)\log [ \frac{p(x,z;\theta)}{p(z|x;\theta)}\cdot \frac{q(z)}{q(z)}]\\ &=\sum_zq(z)\log \frac{p(x,z;\theta)}{q(z)}+\sum_qq(z)\log \frac{q(z)}{p(z|x;\theta)} \\ &=ELBO(q,x;\theta)+KL[q(z)\,||\,p(z|x;\theta)]\tag{4} \end{aligned}
logp(x;θ)=z∑q(z)logp(x;θ)因为z∑q(z)=1=z∑q(z)log[p(z∣x;θ)p(x,z;θ)⋅q(z)q(z)]=z∑q(z)logq(z)p(x,z;θ)+q∑q(z)logp(z∣x;θ)q(z)=ELBO(q,x;θ)+KL[q(z)∣∣p(z∣x;θ)](4)其中
K
L
[
q
(
z
)
∣
∣
p
(
z
∣
x
;
θ
)
]
KL[q(z)\,||\,p(z|x;\theta)]
KL[q(z)∣∣p(z∣x;θ)]为分布
q
(
z
)
q(z)
q(z)和分布
p
(
z
∣
x
;
θ
)
p(z|x;\theta)
p(z∣x;θ)的KL散度。KL散度可以衡量两个分布的近似程度,其值是非负的。两个分布越相近,KL散度就越小;当两个分布完全相同时KL散度等于0。
由于KL散度的非负性,因此可以得出和 推导方法1 中一样的结论,即 E L B O ( q , x ; θ ) ELBO(q,x;\theta) ELBO(q,x;θ)为 log p ( x ; θ ) \log p(x;\theta) logp(x;θ)的下界。
这里可以采取与 推导方法1 相同的思路对EM算法进行推导:我们的目标是最大化 log p ( x ; θ ) \log p(x;\theta) logp(x;θ),根据(4)式,可以将问题转为最大化 E L B O ( q , x ; θ ) + K L [ q ( z ) ∣ ∣ p ( z ∣ x ; θ ) ] ELBO(q,x;\theta)+KL[q(z)\,||\,p(z|x;\theta)] ELBO(q,x;θ)+KL[q(z)∣∣p(z∣x;θ)],因此可以先固定模型的参数 θ \theta θ,找到一个最优的近似分布 q ∗ ( z ) q^*(z) q∗(z)使得 E L B O ( q ∗ , x ; θ ) ELBO(q^*,x;\theta) ELBO(q∗,x;θ)达到最大,由(4)式可知当 K L [ q ( z ) ∣ ∣ p ( z ∣ x ; θ ) ] = 0 KL[q(z)\,||\,p(z|x;\theta)]=0 KL[q(z)∣∣p(z∣x;θ)]=0,即 q ( z ) = p ( z ∣ x ; θ ) q(z)=p(z|x;\theta) q(z)=p(z∣x;θ)时, E L B O ( q , x ; θ ) = log p ( x ; θ ) ELBO(q,x;\theta)=\log p(x;\theta) ELBO(q,x;θ)=logp(x;θ),取得最大值;之后固定 q ∗ ( z ) q^*(z) q∗(z),找到最优的参数 θ \theta θ使得 E L B O ( q ∗ , x ; θ ) 最 大 ELBO(q^*,x;\theta)最大 ELBO(q∗,x;θ)最大,不断重复这两个步骤。
下图直观地展示了EM算法的迭代过程:在E-step中更新
q
t
+
1
q_{t+1}
qt+1使得
E
L
B
O
(
q
t
+
1
,
x
;
θ
t
)
=
log
p
(
x
;
θ
t
)
ELBO(q_{t+1},x;\theta_t)=\log p(x;\theta_t)
ELBO(qt+1,x;θt)=logp(x;θt),即KL项等于0;在M-step中更新模型的参数
θ
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},x;\theta_{t+1})\ge ELBO(q_{t+1},x;\theta_t)
ELBO(qt+1,x;θt+1)≥ELBO(qt+1,x;θt),这样必然会导致
log
p
(
x
;
θ
t
+
1
)
≥
log
p
(
x
;
θ
t
)
\log p(x;\theta_{t+1})\ge \log p(x;\theta_t)
logp(x;θt+1)≥logp(x;θt),通过
n
n
n次迭代使得对数边际似然函数
log
p
(
x
;
θ
)
\log p(x;\theta)
logp(x;θ)不断增大直至收敛,从而得到最终模型的参数
θ
n
\theta_n
θn
变分推断
EM算法中一个很重要的环节是在E-step中寻找隐变量 z z z的近似分布 q ∗ ( z ) q^*(z) q∗(z),在上述的推导过程中,我们通过令 K L [ q ( z ) ∣ ∣ p ( z ∣ x ; θ ) ] = 0 KL[q(z)\,||\,p(z|x;\theta)]=0 KL[q(z)∣∣p(z∣x;θ)]=0,即 q ( z ) = p ( z ∣ x ; θ ) , q(z)=p(z|x;\theta), q(z)=p(z∣x;θ),得到隐变量 z z z最优的近似分布 p ∗ ( z ) p^*(z) p∗(z),然而这只局限于分布 p ( z ∣ x ; θ ) p(z|x;\theta) p(z∣x;θ)容易计算的情况,如混合高斯模型等。对于复杂的模型, p ( z ∣ x ; θ ) p(z|x;\theta) p(z∣x;θ)几乎无法计算,于是可以借助变分推断的方法去近似求得 q ∗ ( z ) q^*(z) q∗(z)
变分推断推导
变分推断是利用变分法进行推断的一种应用,对于EM算法而言,其变分推断的目标是寻找到隐变量
z
z
z的一个简单的近似分布
q
∗
(
z
)
q^*(z)
q∗(z)来代替难以求解的分布
p
(
z
∣
x
;
θ
)
p(z|x;\theta)
p(z∣x;θ),问题定义如下:
q
∗
(
z
)
=
arg min
q
(
z
)
∈
Q
K
L
[
q
(
z
)
∣
∣
p
(
z
∣
x
;
θ
)
]
(5)
q^*(z)=\argmin_{q(z)\in \mathcal{Q}}KL[\,q(z)\,||\,p(z|x;\theta)]\tag{5}
q∗(z)=q(z)∈QargminKL[q(z)∣∣p(z∣x;θ)](5)其中
Q
\mathcal{Q}
Q是一个分布族。利用(4)式对(5)式进行推导,剔除了与优化目标无关的
log
p
(
x
;
θ
)
\log p(x;\theta)
logp(x;θ),将问题转化为了最大化
E
L
B
O
(
q
,
x
;
θ
)
ELBO(q,x;\theta)
ELBO(q,x;θ):
q
∗
(
z
)
=
arg min
q
(
z
)
∈
Q
K
L
[
q
(
z
)
∣
∣
p
(
z
∣
x
;
θ
)
]
=
arg min
q
(
z
)
∈
Q
[
log
p
(
x
;
θ
)
−
E
L
B
O
(
q
,
x
;
θ
)
]
=
arg max
q
(
z
)
∈
Q
E
L
B
O
(
q
,
x
;
θ
)
(6)
\begin{aligned} q^*(z)&=\argmin_{q(z)\in \mathcal{Q}}KL[\,q(z)\,||\,p(z|x;\theta)]\\ &=\argmin_{q(z)\in \mathcal{Q}}[\log p(x;\theta)-ELBO(q,x;\theta)]\\ &=\argmax_{q(z)\in \mathcal{Q}}ELBO(q,x;\theta)\\ \tag{6} \end{aligned}
q∗(z)=q(z)∈QargminKL[q(z)∣∣p(z∣x;θ)]=q(z)∈Qargmin[logp(x;θ)−ELBO(q,x;θ)]=q(z)∈QargmaxELBO(q,x;θ)(6)对于隐变量
z
z
z,可以将其拆分成
n
n
n个子变量
z
1
,
z
2
,
.
.
.
,
z
n
z_1,z_2,...,z_n
z1,z2,...,zn,显然这些子变量并不一定满足独立性,即:
p
(
z
)
≠
∏
i
n
p
i
(
z
i
)
(7)
p(z) \ne \prod_i^np_i(z_i)\tag{7}
p(z)=i∏npi(zi)(7)于是我们可以在变分推断中,选用mean-field(平均场)作为候选分布族
Q
\mathcal{Q}
Q,构造出
n
n
n个近似分布
q
1
(
z
1
)
.
.
.
q
n
(
z
n
)
q_1(z_1 )\,...\,q_n(z_n)
q1(z1)...qn(zn)使得这
n
n
n个子变量相互独立,即:
q
(
z
)
=
∏
i
n
q
i
(
z
i
)
(8)
q(z)=\prod_i^nq_i(z_i)\tag{8}
q(z)=i∏nqi(zi)(8)之后利用
q
(
z
)
q(z)
q(z)对问题进行推导:
E
L
B
O
(
q
,
x
;
θ
)
=
∑
z
q
(
z
)
log
p
(
x
,
z
;
θ
)
q
(
z
)
=
∑
z
q
(
z
)
log
p
(
x
,
z
;
θ
)
−
∑
z
q
(
z
)
log
q
(
z
)
=
∑
z
∏
i
n
q
i
(
z
i
)
log
p
(
x
,
z
;
θ
)
⏟
Part
1
−
∑
z
∏
i
n
q
i
(
z
i
)
∑
j
n
log
q
j
(
z
j
)
⏟
Part
2
(9)
\begin{aligned} ELBO(q,x;\theta)&=\sum_zq(z)\log\frac{p(x,z;\theta)}{q(z)} \\ &=\sum_zq(z)\log p(x,z;\theta)-\sum_zq(z)\log q(z) \\ &=\underbrace{\sum_z\prod_i^nq_i(z_i)\log p(x,z;\theta)}_{\textbf{Part 1}}-\underbrace{\sum_z\prod_i^nq_i(z_i)\sum_j^n\log q_j(z_j)}_{\textbf{Part 2}} \\ \end{aligned}\tag{9}
ELBO(q,x;θ)=z∑q(z)logq(z)p(x,z;θ)=z∑q(z)logp(x,z;θ)−z∑q(z)logq(z)=Part 1
z∑i∏nqi(zi)logp(x,z;θ)−Part 2
z∑i∏nqi(zi)j∑nlogqj(zj)(9)
接下来分别对Part 1和Part 2进行推导,其它相关资料大多是用积分形式进行推导的,这里我转化为了离散的形式,感觉比积分形式更加清晰一些。这里对于下述推导中一些关键的符号表示进行说明,以便理解:
- ∑ z \sum_z ∑z:表示对隐变量 z = { z 1 , z 2 , . . . , z n } z=\{z_1,z_2,...,z_n\} z={z1,z2,...,zn}的所有可能取值组合情况进行求和
- ∑ z j \sum_{z_j} ∑zj:表示对子隐变量 z j z_j zj的所有可能取值进行求和
- ∑ z \ z j \sum_{z_\backslash z_j} ∑z\zj:表示对除了 z j z_j zj的其它 n − 1 n-1 n−1个子隐变量的所有可能取值组合情况进行求和
对于Part 1进行如下推导:(思路是将其中一个子变量近似分布
q
j
(
z
j
)
q_j(z_j)
qj(zj)提出来)
∑
z
∏
i
n
q
i
(
z
i
)
log
p
(
x
,
z
;
θ
)
=
∑
z
j
q
j
(
z
j
)
∑
z
\
z
j
∏
i
≠
j
n
q
i
(
z
i
)
log
p
(
x
,
z
;
θ
)
=
∑
z
j
q
j
(
z
j
)
E
q
\
q
j
(
z
\
z
j
)
log
p
(
x
,
z
;
θ
)
(10)
\begin{aligned} \sum_z\prod_i^nq_i(z_i)\log p(x,z;\theta) &= \sum_{z_j}q_j(z_j)\sum_{z_\backslash z_j}\prod_{i\ne j}^nq_i(z_i)\log p(x,z;\theta) \\ &=\sum_{z_j}q_j(z_j)\mathbb{E}_{\,q_\backslash q_j(z_\backslash z_j)}\log p(x,z;\theta) \end{aligned}\tag{10}
z∑i∏nqi(zi)logp(x,z;θ)=zj∑qj(zj)z\zj∑i=j∏nqi(zi)logp(x,z;θ)=zj∑qj(zj)Eq\qj(z\zj)logp(x,z;θ)(10)对于Part 2进行如下推导:
∑
z
∏
i
n
q
i
(
z
i
)
∑
j
n
log
q
j
(
z
j
)
=
∑
j
n
∑
z
log
q
j
(
z
j
)
∏
i
n
q
i
(
z
i
)
=
∑
j
n
∑
z
j
log
q
j
(
z
j
)
⋅
∑
z
\
z
j
∏
i
n
q
i
(
z
i
)
=
∑
j
n
∑
z
j
log
q
j
(
z
j
)
⋅
q
j
(
z
j
)
∑
z
\
z
j
∏
i
≠
j
n
q
i
(
z
i
)
⏟
所
有
组
合
的
概
率
和
=
1
=
∑
j
n
∑
z
j
q
j
(
z
j
)
log
q
j
(
z
j
)
(11)
\begin{aligned} \sum_z\prod_i^nq_i(z_i)\sum_j^n\log q_j(z_j) &=\sum_j^n\sum_z\log q_j(z_j)\prod_i^nq_i(z_i) \\ &=\sum_j^n\sum_{z_j}\log q_j(z_j) \cdot \sum_{z_\backslash z_j}\prod_i^nq_i(z_i) \\ &=\sum_j^n\sum_{z_j}\log q_j(z_j) \cdot q_j(z_j)\underbrace{\sum_{z_\backslash z_j}\prod_{i\ne j}^nq_i(z_i)}_{所有组合的概率和=1} \\ &=\sum_j^n\sum_{z_j}q_j(z_j)\log q_j(z_j) \end{aligned}\tag{11}
z∑i∏nqi(zi)j∑nlogqj(zj)=j∑nz∑logqj(zj)i∏nqi(zi)=j∑nzj∑logqj(zj)⋅z\zj∑i∏nqi(zi)=j∑nzj∑logqj(zj)⋅qj(zj)所有组合的概率和=1
z\zj∑i=j∏nqi(zi)=j∑nzj∑qj(zj)logqj(zj)(11)将(10)和(11)代入到(9)式中得到:
E
L
B
O
(
q
,
x
;
θ
)
=
∑
z
j
q
j
(
z
j
)
E
q
\
q
j
(
z
\
z
j
)
log
p
(
x
,
z
;
θ
)
−
∑
j
n
∑
z
j
q
j
(
z
j
)
log
q
j
(
z
j
)
(12)
ELBO(q,x;\theta)=\sum_{z_j}q_j(z_j)\mathbb{E}_{\,q_\backslash q_j(z_\backslash z_j)}\log p(x,z;\theta) - \sum_j^n\sum_{z_j}q_j(z_j)\log q_j(z_j) \tag{12}
ELBO(q,x;θ)=zj∑qj(zj)Eq\qj(z\zj)logp(x,z;θ)−j∑nzj∑qj(zj)logqj(zj)(12)由(12)式可得针对某个子变量
z
k
z_k
zk,其
E
L
B
O
ELBO
ELBO函数为:
E
L
B
O
(
q
k
,
x
;
θ
)
=
∑
z
k
q
k
(
z
k
)
E
q
\
q
k
(
z
\
z
k
)
log
p
(
x
,
z
;
θ
)
−
∑
z
k
q
k
(
z
k
)
log
q
k
(
z
k
)
=
∑
z
k
q
k
(
z
k
)
[
E
q
\
q
k
(
z
\
z
k
)
log
p
(
x
,
z
;
θ
)
⏟
可
转
变
为
log
以
化
简
为
K
L
散
度
−
log
q
k
(
z
k
)
]
(13)
\begin{aligned} ELBO(q_k,x;\theta)&=\sum_{z_k}q_k(z_k)\mathbb{E}_{\,q_\backslash q_k(z_\backslash z_k)}\log p(x,z;\theta) -\sum_{z_k}q_k(z_k)\log q_k(z_k) \tag{13} \\ &=\sum_{z_k}q_k(z_k)[\,\underbrace{\mathbb{E}_{\,q_\backslash q_k(z_\backslash z_k)}\log p(x,z;\theta)}_{可转变为\log以化简为KL散度} - \log q_k(z_k)\,] \\ \end{aligned}
ELBO(qk,x;θ)=zk∑qk(zk)Eq\qk(z\zk)logp(x,z;θ)−zk∑qk(zk)logqk(zk)=zk∑qk(zk)[可转变为log以化简为KL散度
Eq\qk(z\zk)logp(x,z;θ)−logqk(zk)](13)设
log
p
~
k
(
x
,
z
k
;
θ
)
=
E
q
\
q
k
(
z
\
z
k
)
log
p
(
x
,
z
;
θ
)
\log \tilde{p}_k(x,z_k;\theta)=\mathbb{E}_{\,q_\backslash q_k(z_\backslash z_k)}\log p(x,z;\theta)
logp~k(x,zk;θ)=Eq\qk(z\zk)logp(x,z;θ),则(13)式可推导为:
E
L
B
O
(
q
k
,
x
;
θ
)
=
∑
z
k
q
k
(
z
k
)
[
log
p
~
k
(
x
,
z
k
;
θ
)
−
log
q
k
(
z
k
)
]
=
−
∑
z
k
q
k
(
z
k
)
log
q
k
(
z
k
)
p
~
k
(
x
,
z
k
;
θ
)
=
−
K
L
[
q
k
(
z
k
)
∣
∣
p
~
k
(
x
,
z
k
;
θ
)
]
(14)
\begin{aligned} ELBO(q_k,x;\theta)&=\sum_{z_k}q_k(z_k)[\, \log \tilde{p}_k(x,z_k;\theta) - \log q_k(z_k)\,] \\ &=-\sum_{z_k}q_k(z_k)\log \frac{q_k(z_k)}{\tilde{p}_k(x,z_k;\theta)} \\ &=-KL[\,q_k(z_k) || \,\tilde{p}_k(x,z_k;\theta)\,] \end{aligned} \tag{14}
ELBO(qk,x;θ)=zk∑qk(zk)[logp~k(x,zk;θ)−logqk(zk)]=−zk∑qk(zk)logp~k(x,zk;θ)qk(zk)=−KL[qk(zk)∣∣p~k(x,zk;θ)](14)因此最终问题转变为了最大化
−
K
L
[
q
k
(
z
k
)
∣
∣
p
~
k
(
x
,
z
k
;
θ
)
]
-KL[\,q_k(z_k) || \,\tilde{p}_k(x,z_k;\theta)\,]
−KL[qk(zk)∣∣p~k(x,zk;θ)],即得到
q
k
(
z
k
)
q_k(z_k)
qk(zk)的最优表达式,其中
k
∈
{
1
,
2
,
.
.
.
,
n
}
k\in \{1,2,...,n\}
k∈{1,2,...,n}:
q
k
(
z
k
)
=
exp
[
E
q
\
q
k
(
z
\
z
k
)
log
p
(
x
,
z
;
θ
)
]
(15)
q_k(z_k)=\exp[\,\mathbb{E}_{\,q_\backslash q_k(z_\backslash z_k)}\log p(x,z;\theta)\,] \tag{15}
qk(zk)=exp[Eq\qk(z\zk)logp(x,z;θ)](15)根据(15)式,可利用坐标上升法对每个自变量的近似分布
q
1
(
z
1
)
,
.
.
.
,
q
n
(
z
n
)
q_1(z_1),...\,,q_n(z_n)
q1(z1),...,qn(zn)进行迭代优化,直至收敛。
本文参考资料
- 邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.
- 论文篇:Latent Dirichlet Allocation(LDA)(三)