25 近似推断
25.1 为什么要做近似推断
推断的目的是什么?
- 求出后验本身就是个问题
- 后验会用来学习参数,所以也是Learning问题的前提
推断为什么是困难的?
- 有向图:Explaining away——如果出现两个隐状态同时指向一个节点,则隐状态不相互独立,没法写出后验
- 无向图:mutual interaction
25.2 推断即优化
具体的近似推断形如VI-变分推断,在这一章中我们已经使用过,这里就简单复习一下。
我们可以将概率图模型中的推断问题转化成一个优化问题,这里我们简单推导来证明一下。首先我们已知目标是要求log-likelihood,假设
V
V
V表示样本,
H
H
H表示隐状态。log-likelihood可以写作
∑
v
∈
V
log
P
(
v
)
\sum_{v \in V} \log P(v)
∑v∈VlogP(v)。其中我们可以对
log
P
(
v
)
\log P(v)
logP(v)进行一些数学变换:
log
P
(
v
)
=
log
P
(
v
,
h
)
P
(
h
∣
v
)
=
log
P
(
v
,
h
)
q
(
h
∣
v
)
+
log
q
(
h
∣
v
)
P
(
h
∣
v
)
\begin{align} \log P(v) &= \log \frac{P(v,h)}{P(h|v)} = \log \frac{P(v,h)}{q(h|v)} + \log \frac{q(h|v)}{P(h|v)} \end{align}
logP(v)=logP(h∣v)P(v,h)=logq(h∣v)P(v,h)+logP(h∣v)q(h∣v)
若此时我们在左右同时乘一个
q
(
h
∣
v
)
q(h|v)
q(h∣v),并求积分,可以得到:
log
P
(
v
)
=
∫
q
(
h
∣
v
)
⋅
log
P
(
v
,
h
)
q
(
h
∣
v
)
d
h
+
∫
q
(
h
∣
v
)
⋅
log
q
(
h
∣
v
)
P
(
h
∣
v
)
d
h
=
E
q
(
h
∣
v
)
[
log
P
(
v
,
h
)
]
−
E
q
(
h
∣
v
)
[
log
q
(
h
∣
v
)
]
+
K
L
(
q
(
h
∣
v
)
∥
P
(
h
∣
v
)
)
=
E
q
(
h
∣
v
)
[
log
P
(
v
,
h
)
]
−
H
[
q
]
⏟
E
L
B
O
=
L
(
v
,
h
,
q
)
+
K
L
(
q
(
h
∣
v
)
∥
P
(
h
∣
v
)
)
⏟
K
L
(
q
∥
p
)
\begin{align} \log P(v) &= \int q(h|v) \cdot \log \frac{P(v,h)}{q(h|v)} {\rm d}h + \int q(h|v) \cdot \log \frac{q(h|v)}{P(h|v)} {\rm d}h \\ &= E_{q(h|v)} \big[ \log P(v,h) \big] - E_{q(h|v)}\big[ \log q(h|v) \big] + KL \big( q(h|v) \Vert P(h|v) \big) \\ &= \underbrace{E_{q(h|v)} \big[ \log P(v,h) \big] - H[q]}_{ELBO = {\mathcal L}(v,h,q)} + \underbrace{KL \big( q(h|v) \Vert P(h|v) \big)}_{KL(q \Vert p)} \\ \end{align}
logP(v)=∫q(h∣v)⋅logq(h∣v)P(v,h)dh+∫q(h∣v)⋅logP(h∣v)q(h∣v)dh=Eq(h∣v)[logP(v,h)]−Eq(h∣v)[logq(h∣v)]+KL(q(h∣v)∥P(h∣v))=ELBO=L(v,h,q)
Eq(h∣v)[logP(v,h)]−H[q]+KL(q∥p)
KL(q(h∣v)∥P(h∣v))