前提描述: VAE在编码器输入x时隐藏变量h的分布为E(h|x),解码器在给定隐藏变量h对应的x的分布为D(x|h),模型的隐藏变量的分布满足Q(h),模型后验概率为D(x)= ∫ \int ∫D(x|h)Q(h)dh,从证据下界推导VAE的损失函数
给定输入 x x x时,模型需要最大化对数似然概率,故而损失函数可以写成 L o s s : = − log D ( x ) Loss := -\log D(x) Loss:=−logD(x),模型最小化损失函数即是要最大化对数似然概率。
log D ( x ) = ∫ E ( h ∣ x ) log D ( x ) d h = ∫ E ( h ∣ x ) log D ( x ) E ( h ∣ x ) D ( h ∣ x ) D ( h ∣ x ) E ( h ∣ x ) d h = ∫ E ( h ∣ x ) log E ( h ∣ x ) D ( h ∣ x ) d h + ∫ E ( h ∣ x ) log D ( x , h ) E ( h ∣ x ) d h = K L ( E ( h ∣ x ) ∥ D ( h ∣ x ) ) + ∫ E ( h ∣ x ) log D ( x ∣ h ) Q ( h ) E ( h ∣ x ) d h = K L ( E ( h ∣ x ) ∥ D ( h ∣ x ) ) + ∫ E ( h ∣ x ) log D ( x ∣ h ) d h − K L ( E ( h ∣ x ) ∥ Q ( h ) ) ≥ ∫ E ( h ∣ x ) log D ( x ∣ h ) d h − K L ( E ( h ∣ x ) ∥ Q ( h ) ) = E h ∼ E ( h ∣ x ) log D ( x ∣ h ) − K L ( E ( h ∣ x ) ∥ Q ( h ) ) \begin{aligned} \log D(x) &= \int E(h|x)\log D(x)dh\\ &=\int E(h|x) \log \frac{D(x) E(h|x)D(h|x)}{D(h|x)E(h|x)}dh\\ &= \int E(h|x) \log \frac{E(h|x)}{D(h|x)}dh + \int E(h|x)\log\frac{D(x,h)}{E(h|x)}dh\\ & = KL(E(h|x)\|D(h|x)) + \int E(h|x)\log \frac{D(x|h)Q(h)}{E(h|x)}dh\\ & = KL(E(h|x)\|D(h|x)) + \int E(h|x)\log D(x|h)dh - KL(E(h|x)\|Q(h))\\ & \ge \int E(h|x)\log D(x|h)dh - KL(E(h|x)\|Q(h))\\ & = E_{h\sim E(h|x)}\log D(x|h) - KL(E(h|x)\|Q(h)) \end{aligned} logD(x)=∫E(h∣x)logD(x)dh=∫E(h∣x)logD(h∣x)E(h∣x)D(x)E(h∣x)D(h∣x)dh=∫E(h∣x)logD(h∣x)E(h∣x)dh+∫E(h∣x)logE(h∣x)D(x,h)dh=KL(E(h∣x)∥D(h∣x))+∫E(h∣x)logE(h∣x)D(x∣h)Q(h)dh=KL(E(h∣x)∥D(h∣x))+∫E(h∣x)logD(x∣h)dh−KL(E(h∣x)∥Q(h))≥∫E(h∣x)logD(x∣h)dh−KL(E(h∣x)∥Q(h))=Eh∼E(h∣x)logD(x∣h)−KL(E(h∣x)∥Q(h))
因此,最大化
log
D
(
x
)
\log D(x)
logD(x)可以通过最大化其证据下界(ELBO)实现,即最大化
E
L
B
O
:
=
E
h
∼
E
(
h
∣
x
)
log
D
(
x
∣
h
)
−
K
L
(
E
(
h
∣
x
)
∥
Q
(
h
)
)
ELBO := \text E_{h\sim E(h|x)}\log D(x|h) - KL(E(h|x)\|Q(h))
ELBO:=Eh∼E(h∣x)logD(x∣h)−KL(E(h∣x)∥Q(h))
最大化ELBO
- 需要 E h ∼ E ( h ∣ x ) log D ( x ∣ h ) E_{h\sim E(h|x)}\log D(x|h) Eh∼E(h∣x)logD(x∣h)尽可能大,即需要从编码器得到的隐变量空间中采样隐变量,对采样得到的隐变量进行解码,使得解码得到的 x ^ \hat x x^分布中,对应真是输入 x x x的概率尽可能大。即最小化重构误差。
- 需要 K L ( E ( h ∣ x ) ∥ Q ( h ) ) KL(E(h|x)\|Q(h)) KL(E(h∣x)∥Q(h))尽可能小,即需要编码器得到的隐变量概率分布与隐变量的先验分布尽可能接近。
VAE的训练
当编码器和解码器输出的分布都是高斯分布,且要求隐变量先验分布为
N
(
0
,
I
)
\mathcal{N}(0,I)
N(0,I)时,VAE的训练过程如下图左边所示。然而左图中的采样过程会导致训练过程中计算重构误差
∥
X
−
f
(
z
)
∥
2
\|X-f(z)\|^2
∥X−f(z)∥2得到的梯度无法反向传播到编码器。因此将采样过程修改为下图右边的形式,从直接采样目标变量变成采样目标变量到分布均值的差,这样使得反向传播过程中梯度可以传递到编码器。


1602

被折叠的 条评论
为什么被折叠?



