引言
深度模型与概率图形模型相结合的推理方法可以提供既灵活又易于解释的模型。文章提出了一种变分推理算法,用于在混合模型中的变分推理。首先,文章提出了一种结合了图模型和变分自编码(VAE)的结构化推理网络。其次,文章建立了一些条件,在这些条件下,这种推理网络可以实现类似于 VAE 的快速摊销推理(amortized inference)。最后,文章推导了变分消息传递算法来执行高效的自然梯度推理,同时保留了有效的摊销推理。通过同时支持对于深度结构化模型的结构化、摊销、自然梯度推理,本文的方法简化和扩展了目前的推理方法。
模型和挑战
考虑使用局部隐变量
x
n
\mathbf{x}_n
xn建模数据向量
y
n
\mathbf{y}_n
yn。文章通过给定
x
n
\mathbf{x}_n
xn和神经网络参数
θ
N
N
\mathbf{\theta}_{\mathrm{NN}}
θNN建模
y
n
\mathbf{y}_n
yn,并使用概率图模型(PGM)表示数据
x
:
=
{
x
1
,
x
2
,
…
,
x
N
}
\mathbf{x}:=\{\mathbf{x}_1,\mathbf{x}_2,\ldots,\mathbf{x}_N\}
x:={x1,x2,…,xN}和隐变量
y
:
=
{
y
1
,
y
2
,
…
,
y
N
}
\mathbf{y}:=\{\mathbf{y}_1,\mathbf{y}_2,\ldots,\mathbf{y}_N\}
y:={y1,y2,…,yN}之间的关系。具体来说,联合分布如何
p
(
y
,
x
,
θ
)
:
=
[
∏
n
=
1
N
p
(
y
n
∣
x
n
,
θ
N
N
)
]
⏟
DNN
[
p
(
x
∣
θ
P
G
M
)
]
⏟
DNN
[
p
(
θ
P
G
M
)
]
⏟
Hyperprior
\begin{equation} p(\mathbf{y}, \mathbf{x}, \mathbf{\theta}):= \underbrace{ \Bigg [ \prod_{n=1}^N p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}}) \Bigg ]}_{\textrm{DNN}} \underbrace{ \Bigg [ p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) \Bigg] }_{\textrm{DNN}} \underbrace{ \Bigg [p(\mathbf{\theta}_{\mathrm{PGM}}) \Bigg ]}_{\textrm{Hyperprior}} \end{equation}
p(y,x,θ):=DNN
[n=1∏Np(yn∣xn,θNN)]DNN
[p(x∣θPGM)]Hyperprior
[p(θPGM)]
其中
θ
N
N
\mathbf{\theta}_{\mathrm{NN}}
θNN和
θ
P
G
M
\mathbf{\theta}_{\mathrm{PGM}}
θPGM分别是深度神经网络(DNN)和概率图模型(PGM)的参数,并且
θ
:
=
{
θ
N
N
,
θ
P
G
M
}
\mathbf{\theta}:=\{\mathbf{\theta}_{\mathrm{NN}}, \mathbf{\theta}_{\mathrm{PGM}}\}
θ:={θNN,θPGM}。
这种结合了DNN和PGM的模型被称为结构化变分自编码(SVAE),该模型使用结构化先验 p ( x ∣ θ P G M ) p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) p(x∣θPGM)来从数据中提取有用的结构信息。SVAE与VAE最大的区别为,VAE的先验分布为一个简单的多变量高斯分布 p ( x ) = N ( x ∣ 0 , I ) p(\mathbf{x})=\mathcal{N}(\mathbf{x}|0, \mathbf{I}) p(x)=N(x∣0,I),而没有结构化分布。给出下列混合先验示例。
示例:混合模型先验
假设我们想要将数据
y
n
\mathbf{y}_n
yn分组到
K
K
K个聚类团。对于这样一个任务,标准的高斯先验不是一个合适的先验。我们应该使用
x
n
\mathbf{x}_n
xn的混合模型先验,如下
p
(
x
∣
θ
P
G
M
)
=
∏
n
=
1
N
p
(
x
n
∣
θ
P
G
M
)
=
∏
n
=
1
N
[
∑
k
=
1
K
p
(
x
n
∣
z
n
=
k
)
π
k
]
\begin{equation} p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) = \prod_{n=1}^N p(\mathbf{x}_n | \mathbf{\theta}_{\mathrm{PGM}}) = \prod_{n=1}^N \left[ \sum_{k=1}^K p(\mathbf{x}_n | {z}_n=k) \pi_k \right] \end{equation}
p(x∣θPGM)=n=1∏Np(xn∣θPGM)=n=1∏N[k=1∑Kp(xn∣zn=k)πk]
其中,
z
k
∈
{
1
,
2
,
…
,
K
}
z_k \in\{1,2,\ldots,K\}
zk∈{1,2,…,K}为第
n
n
n个数据的混合下标,
π
k
\pi_k
πk为混合比例,并且
∑
k
=
1
K
π
k
=
1
\sum_{k=1}^K \pi_k=1
∑k=1Kπk=1。每一个混合分量可以被进一步建模,例如,采用高斯分布,
p
(
x
n
∣
z
n
=
k
)
:
=
N
(
x
n
∣
μ
n
,
Σ
n
)
p(\mathbf{x}_n | {z}_n=k) := \mathcal{N}(\mathbf{x}_n| \mathbf{\mu}_n, \mathbf{\Sigma}_n )
p(xn∣zn=k):=N(xn∣μn,Σn),如此,先验分布为高斯混合模型,PGM的超参数为
θ
P
G
M
:
=
{
μ
n
,
Σ
n
,
π
k
}
k
=
1
K
\mathbf{\theta}_{\mathrm{PGM}}:= \{ \mathbf{\mu}_n, \mathbf{\Sigma}_n,\pi_k \}_{k=1}^K
θPGM:={μn,Σn,πk}k=1K。图1给出了SVAE的先验模型。这类型的结构化先验对于发现数据中的聚类团是有效的,比VAE的推理更加简单。
文章的主要目的是近似后验分布
p
(
x
,
θ
∣
y
)
p(\mathbf{x}, \mathbf{\theta}| \mathbf{y})
p(x,θ∣y)。具体来说,类似于VAE,我们想要通过推理网络近似
x
\mathbf{x}
x后验分布。在VAE,这通过DNN表示的参数化函数实现,给出
p
(
x
∣
y
,
θ
N
N
)
≈
∏
n
=
1
N
q
(
x
n
∣
f
ϕ
(
y
n
)
)
\begin{equation} p(\mathbf{x}| \mathbf{y}, \mathbf{\theta}_{\mathrm{NN}}) \approx \prod_{n=1}^N q(\mathbf{x}_n | f_{\phi } (\mathbf{y}_n)) \end{equation}
p(x∣y,θNN)≈n=1∏Nq(xn∣fϕ(yn))
其中,
p
(
x
∣
y
,
θ
N
N
)
p(\mathbf{x}| \mathbf{y}, \mathbf{\theta}_{\rm NN})
p(x∣y,θNN)表示
x
\mathbf{x}
x的后验分布,
q
(
x
n
∣
f
ϕ
(
y
n
)
)
q(\mathbf{x}_n | f_{\phi } (\mathbf{y}_n))
q(xn∣fϕ(yn))为编码器的分布,一般来说,
q
q
q是指数族分布,它的参数使用参数为
ϕ
\phi
ϕ的DNN
f
ϕ
f_{\phi }
fϕ给出。对所有使用相同的函数
f
ϕ
(
⋅
)
f_{\phi }(\cdot)
fϕ(⋅),从而减少了变分参数的数量,并能在之间共享统计优势。
结构化推理网络
本文首先设计了一种结合了PGM和VAE的推理网络。然后,提出了包含了两种类型因子的结构化推理网络(SIN),
q
(
x
∣
y
,
ϕ
)
:
=
1
Z
(
ϕ
)
[
∏
n
=
1
N
q
(
x
n
∣
f
ϕ
N
N
(
y
n
)
)
]
⏟
D
N
N
F
a
c
t
o
r
[
q
(
x
∣
ϕ
P
G
M
)
]
⏟
P
G
M
F
a
c
t
o
r
\begin{equation} q(\mathbf{x}| \mathbf{y}, \mathbf{\phi }):= \frac{1}{\mathcal{Z}(\mathbf{\phi })} \underbrace{\Bigg[ \prod_{n=1}^N q(\mathbf{x}_n | f_{\mathbf{\phi}_{\rm NN}} (\mathbf{y}_n)) \Bigg]}_{\rm DNN \ Factor} \underbrace{\Bigg[ q(\mathbf{x} | {\mathbf{\phi}_{\rm PGM}}) \Bigg]}_{\rm PGM \ Factor} \end{equation}
q(x∣y,ϕ):=Z(ϕ)1DNN Factor
[n=1∏Nq(xn∣fϕNN(yn))]PGM Factor
[q(x∣ϕPGM)]
这里的DNN Factor类似于公式(3),PGM Factor为一个与PGM先验
p
(
x
∣
θ
P
G
M
)
p(\bf{x}| \bm{\theta}_{\rm PGM})
p(x∣θPGM)具有相似图结构的指数族分布。DNN因子的作用是实现灵活性,PGM因子的作用是模型的PGM结构结合到推理网络。两个因子都有自己的参数。
ϕ
N
N
\phi_{\rm NN}
ϕNN为DNN的参数,
ϕ
P
G
M
\phi_{\rm PGM}
ϕPGM为PGM的参数。参数集合记为
ϕ
:
=
{
ϕ
N
N
,
ϕ
P
G
M
}
\phi:=\{ \phi_{\rm NN}, \phi_{\rm PGM} \}
ϕ:={ϕNN,ϕPGM}。
为了快速的摊销推理,这些DNN因子和PGM因子需要满足下面两个条件。第一个条件是归一化因子 log Z ( ϕ ) \log \mathcal{Z}(\mathbf{\phi }) logZ(ϕ)容易计算和可微的。第二个条件是可以从SIN中采样,即, x ∗ ( ϕ ) ∼ q ( x ∣ y . ϕ ) \mathbf{x}^{*}(\phi) \sim q(\mathbf{x} | \mathbf{y}. \phi) x∗(ϕ)∼q(x∣y.ϕ)。还有一个非必要的条件,希望可以使用重参数化技巧计算 x ∗ ( ϕ ) \mathbf{x}^{*}(\phi) x∗(ϕ)的梯度。
当上面两个条件成立时,下界的随机梯度可以采用与VAE相似的方法计算。下面,我们假设
θ
\theta
θ是一个确定变量(下一节松弛这个条件)。这种情况下,变分下界可以计算为
L
S
I
N
(
θ
,
ϕ
)
:
=
E
q
[
log
p
(
y
,
x
∣
θ
)
q
(
x
∣
y
,
ϕ
)
]
=
E
q
[
log
∏
n
{
p
(
y
n
∣
x
n
,
θ
N
N
)
}
p
(
x
∣
θ
P
G
M
)
Z
(
ϕ
)
∏
n
q
(
x
n
∣
f
ϕ
N
N
(
y
n
)
)
q
(
x
∣
ϕ
P
G
M
)
]
=
∑
n
=
1
N
E
q
[
log
p
(
y
n
∣
x
n
,
θ
N
N
)
q
(
x
n
∣
f
ϕ
N
N
(
y
n
)
)
]
+
E
q
[
log
p
(
x
∣
θ
P
G
M
)
]
−
E
q
[
log
q
(
x
∣
ϕ
P
G
M
)
]
+
log
Z
(
ϕ
)
\begin{equation} \begin{split} \mathcal{L}& _{\rm SIN}(\theta, \phi) := \mathbb{E}_q \left[ \log \frac{p(\mathbf{y}, \mathbf{x} | \mathbf{\theta})}{q(\mathbf{x}| \mathbf{y}, \mathbf{\phi })} \right] = \mathbb{E}_q \left[ \log \frac{{ \prod_{n} \{ p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}}) \} } { p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) } \mathcal{Z}(\mathbf{\phi })} { { \prod_{n} q(\mathbf{x}_n | f_{\mathbf{\phi}_{\rm NN}} (\mathbf{y}_n)) } { q(\mathbf{x} | {\mathbf{\phi}_{\rm PGM}}) } } \right] \\ & = \sum_{n=1}^N \mathbb{E}_q \left[ \log \frac{ p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}})}{q(\mathbf{x}_n | f_{\mathbf{\phi}_{\rm NN}} (\mathbf{y}_n))} \right] + \mathbb{E}_q \left[ \log p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) \right] - \mathbb{E}_q \left[ \log q(\mathbf{x} | {\mathbf{\phi}_{\rm PGM}}) \right] + \log \mathcal{Z}(\mathbf{\phi }) \end{split} \end{equation}
LSIN(θ,ϕ):=Eq[logq(x∣y,ϕ)p(y,x∣θ)]=Eq[log∏nq(xn∣fϕNN(yn))q(x∣ϕPGM)∏n{p(yn∣xn,θNN)}p(x∣θPGM)Z(ϕ)]=n=1∑NEq[logq(xn∣fϕNN(yn))p(yn∣xn,θNN)]+Eq[logp(x∣θPGM)]−Eq[logq(x∣ϕPGM)]+logZ(ϕ)
上式的第一部分与标准VAE的下界是一致的;第二部分为PGM先验先验下界;剩下两部分为PGM结构。如果可以计算最后三项的梯度并从SIN中采样
x
∗
(
ϕ
)
\mathbf{x}^*(\phi)
x∗(ϕ),可以进行类似VAE的摊销推理。
GMM先验的SIN
公式(2)中有额外的隐变量
z
n
z_n
zn。为了在SIN中使用GMM模型,我们选择的参数为
ϕ
P
G
M
:
=
{
μ
ˉ
k
,
Σ
ˉ
k
,
π
ˉ
k
}
k
=
1
K
\phi_{\rm PGM} := \{ \mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k, \bar{\pi}_k \}_{k=1}^K
ϕPGM:={μˉk,Σˉk,πˉk}k=1K,同时保持DNN部分为高斯分布
q
(
x
∣
y
,
ϕ
)
:
=
1
Z
(
ϕ
)
∏
n
=
1
N
[
N
(
x
n
∣
m
n
,
V
n
)
]
⏟
D
N
N
F
a
c
t
o
r
[
∑
k
=
1
K
N
(
x
n
∣
μ
ˉ
k
,
Σ
ˉ
k
)
π
ˉ
k
]
⏟
P
G
M
F
a
c
t
o
r
\begin{equation} q(\mathbf{x}| \mathbf{y}, \mathbf{\phi }):= \frac{1}{\mathcal{Z}(\mathbf{\phi })} \prod_{n=1}^N \underbrace{\Bigg[ \mathcal{N}(\mathbf{x}_n| \mathbf{m}_n, \mathbf{V}_n) \Bigg]}_{\rm DNN \ Factor} \underbrace{\Bigg[ \sum_{k=1}^K \mathcal{N} (\mathbf{x}_n|\mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k)\bar{\pi}_k \Bigg]}_{\rm PGM \ Factor} \end{equation}
q(x∣y,ϕ):=Z(ϕ)1n=1∏NDNN Factor
[N(xn∣mn,Vn)]PGM Factor
[k=1∑KN(xn∣μˉk,Σˉk)πˉk]
幸运的是,因为高斯分布和多模分布是共轭的,我们可以边缘化
x
n
\mathbf{x}_n
xn获得闭式表达式
log
Z
(
ϕ
)
:
=
∑
n
log
∑
k
N
(
m
n
∣
μ
ˉ
n
,
V
n
+
Σ
ˉ
n
)
π
ˉ
k
\log \mathcal{Z}(\mathbf{\phi }) := \sum_n \log \sum_k \mathcal{N} (\mathbf{m}_n | \mathbf{\bar{\mu}}_n, \mathbf{{V}}_n + \mathbf{\bar{\Sigma}}_n) \bar{\pi}_k
logZ(ϕ):=∑nlog∑kN(mn∣μˉn,Vn+Σˉn)πˉk。我们可以从SIN中采用通过边缘化
q
(
z
n
=
k
∣
y
,
ϕ
)
∝
N
(
m
n
∣
μ
ˉ
n
,
V
n
+
Σ
ˉ
n
)
π
ˉ
k
q(z_n=k| \mathbf{y}, \phi) \propto \mathcal{N} (\mathbf{m}_n | \mathbf{\bar{\mu}}_n, \mathbf{{V}}_n + \mathbf{\bar{\Sigma}}_n) \bar{\pi}_k
q(zn=k∣y,ϕ)∝N(mn∣μˉn,Vn+Σˉn)πˉk。给定
z
n
z_n
zn,我们可以从分布
q
(
x
n
∣
z
n
=
k
,
y
,
ϕ
)
=
N
(
x
n
∣
μ
~
n
,
Σ
~
n
)
q(\mathbf{x}_n | z_n=k, \mathbf{y}, \phi) = \mathcal{N} (\mathbf{x}_n | \mathbf{\tilde{\mu}}_n, \mathbf{\tilde{\Sigma}}_n)
q(xn∣zn=k,y,ϕ)=N(xn∣μ~n,Σ~n)中采样
x
n
\mathbf{x}_n
xn,其中,
Σ
~
n
−
1
=
V
n
−
1
+
Σ
ˉ
n
−
1
\mathbf{\tilde{\Sigma}}_n^{-1} = \mathbf{{V}}_n^{-1} + \mathbf{\bar{\Sigma}}_n^{-1}
Σ~n−1=Vn−1+Σˉn−1以及
μ
~
n
=
Σ
~
n
(
V
n
−
1
m
n
+
Σ
ˉ
n
−
1
μ
n
)
\mathbf{\tilde{\mu}}_n = \mathbf{\tilde{\Sigma}}_n ( \mathbf{{V}}_n^{-1} \mathbf{m}_n + \mathbf{\bar{\Sigma}}_n^{-1} \mathbf{\mu}_n )
μ~n=Σ~n(Vn−1mn+Σˉn−1μn)。
GMM分布的变分下界为
L
S
I
N
(
θ
,
ϕ
)
=
E
q
[
log
∏
n
p
(
y
n
∣
x
n
,
θ
N
N
)
∑
k
N
(
x
n
∣
μ
n
,
Σ
n
)
π
k
Z
(
ϕ
)
∏
n
N
(
x
n
∣
m
n
,
V
n
)
∑
k
N
(
x
n
∣
μ
ˉ
k
,
Σ
ˉ
k
)
π
ˉ
k
]
=
∑
n
=
1
N
E
q
[
log
p
(
y
n
∣
x
n
,
θ
N
N
)
]
−
∑
n
=
1
N
E
q
[
log
N
(
x
n
∣
m
n
,
V
n
)
]
+
∑
n
=
1
N
E
q
[
log
∑
k
N
(
x
n
∣
μ
n
,
Σ
n
)
π
k
]
−
E
q
[
log
∑
k
N
(
x
n
∣
μ
ˉ
k
,
Σ
ˉ
k
)
π
ˉ
k
]
+
log
Z
(
ϕ
)
\begin{equation} \begin{split} \mathcal{L} _{\rm SIN}(\theta, \phi) & = \mathbb{E}_q \left[ \log \frac{{ \prod_{n} p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}}) } { \sum_{k} \mathcal{N}(\mathbf{x}_n| \mathbf{\mu}_n, \mathbf{\Sigma}_n ) \pi_k } \mathcal{Z}(\mathbf{\phi })} {\prod_{n} { \mathcal{N}(\mathbf{x}_n| \mathbf{m}_n, \mathbf{V}_n) } { \sum_{k} \mathcal{N} (\mathbf{x}_n|\mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k)\bar{\pi}_k }} \right] \\ = & \sum_{n=1}^N \mathbb{E}_q \left[ \log { p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}})} \right] - \sum_{n=1}^N \mathbb{E}_q \left[ \log {\mathcal{N}(\mathbf{x}_n| \mathbf{m}_n, \mathbf{V}_n)} \right] + \\ & \sum_{n=1}^N \mathbb{E}_q \left[ \log \sum_{k} \mathcal{N}(\mathbf{x}_n| \mathbf{\mu}_n, \mathbf{\Sigma}_n ) \pi_k \right] - \mathbb{E}_q \left[ \log \sum_{k} \mathcal{N} (\mathbf{x}_n|\mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k)\bar{\pi}_k \right] + \log \mathcal{Z}(\mathbf{\phi }) \end{split} \end{equation}
LSIN(θ,ϕ)==Eq[log∏nN(xn∣mn,Vn)∑kN(xn∣μˉk,Σˉk)πˉk∏np(yn∣xn,θNN)∑kN(xn∣μn,Σn)πkZ(ϕ)]n=1∑NEq[logp(yn∣xn,θNN)]−n=1∑NEq[logN(xn∣mn,Vn)]+n=1∑NEq[logk∑N(xn∣μn,Σn)πk]−Eq[logk∑N(xn∣μˉk,Σˉk)πˉk]+logZ(ϕ)
自然梯度变分推理的变分信息传递
上面我们假设 θ P G M \theta_{\rm PGM} θPGM是确定的。在本节中,我们松弛这个条件,并假设 θ P G M \theta_{\rm PGM} θPGM服从指数族先验模型 p ( θ P G M ∣ η P G M ) p(\theta_{\rm PGM}|\eta_{\rm PGM}) p(θPGM∣ηPGM),该指数族先验模型的自然参数为 η P G M \eta_{\rm PGM} ηPGM。我们假设平均场近似 q ( x , θ ∣ y ) : = q ( x ∣ y , ϕ ) q ( θ P G M ∣ λ P M ) q(\mathbf{x},\theta|\mathbf{y}):= q(\mathbf{x}|\mathbf{y}, \phi) q(\theta_{\rm PGM} | \lambda_ {\rm PM}) q(x,θ∣y):=q(x∣y,ϕ)q(θPGM∣λPM),其中,第一个公式为SIN,第二部分为指数族分布。
我们首先推导变分下界。
L
(
λ
P
G
M
,
θ
N
N
,
θ
)
=
E
q
(
θ
P
G
M
∣
λ
P
M
)
[
L
S
I
N
(
θ
,
ϕ
)
]
−
E
K
L
[
q
(
θ
P
G
M
∣
λ
P
M
)
∣
∣
p
(
θ
P
G
M
∣
λ
P
M
)
]
\begin{equation} \mathcal{L}(\lambda_{\rm PGM}, \theta_{NN}, \theta) = \mathbb{E} _{q(\theta_{\rm PGM} | \lambda_ {\rm PM})} [\mathcal{L}_{\rm SIN}(\theta, \phi)] - \mathbb{E} _{\rm KL} [q(\theta_{\rm PGM} | \lambda_ {\rm PM}) || p(\theta_{\rm PGM} | \lambda_ {\rm PM})] \end{equation}
L(λPGM,θNN,θ)=Eq(θPGM∣λPM)[LSIN(θ,ϕ)]−EKL[q(θPGM∣λPM)∣∣p(θPGM∣λPM)]
推理算法流程图如下。
由于算法支持结构化、摊销和自然梯度(SAN)更新,因此称之为 SAN 算法。更新方便地将 PGM 和 DNN 计算分开。步骤 3-6 操作 PGM 部分,我们可以使用现有的 PGM 实现。第 7 步操作 DNN 部分,我们可以重复使用 VAE 实现。算法不仅概括了以前的工作,还通过重用现有软件简化了实现过程。