请从“证据下界”角度推导变分自编码器的损失函数
时间: 2023-10-23 11:08:34 浏览: 115
好的,从“证据下界”(Evidence Lower Bound, ELBO)的角度推导变分自编码器(VAE)的损失函数。
首先,我们假设数据 $x$ 服从概率分布 $p_{\text{data}}(x)$,并设 $z$ 为潜在变量(latent variable),其先验概率分布为 $p(z)$,条件概率分布为 $p_{\text{model}}(x|z)$,表示在潜在变量 $z$ 给定的情况下生成数据 $x$ 的概率。
VAE的目标是最大化条件概率 $p_{\text{model}}(x|z)$,但这是不可行的,因为我们无法获得 $p_{\text{data}}(x)$ 的真实分布。因此,我们引入一个近似分布 $q_{\phi}(z|x)$,它可以被看作是给定数据 $x$ 条件下潜在变量 $z$ 的后验概率分布的近似值。这个近似分布是由一个编码器(encoder)神经网络 $q_{\phi}(z|x)$ 生成的,其中 $\phi$ 表示网络的参数。
根据贝叶斯公式,我们可以得到:
$$p_{\text{model}}(x) = \int p_{\text{model}}(x|z)p(z)dz$$
$$= \int p_{\text{model}}(x|z)p(z)\frac{q_{\phi}(z|x)}{q_{\phi}(z|x)}dz$$
$$= \mathbb{E}_{q_{\phi}(z|x)}\left[\frac{p_{\text{model}}(x|z)p(z)}{q_{\phi}(z|x)}\right]$$
上式中,我们将积分变成期望,得到一个期望形式的式子。这个期望式子可以被看作是对 $p_{\text{model}}(x)$ 的一个下界,即:
$$\log p_{\text{model}}(x) \ge \mathbb{E}_{q_{\phi}(z|x)}\left[\log\frac{p_{\text{model}}(x|z)p(z)}{q_{\phi}(z|x)}\right]$$
因为 $\log$ 函数是单调递增的,所以上式成立。将上式右边的期望式子展开,可以得到:
$$\mathbb{E}_{q_{\phi}(z|x)}[\log p_{\text{model}}(x|z)] - \text{KL}(q_{\phi}(z|x)||p(z))$$
其中,$\text{KL}(q_{\phi}(z|x)||p(z))$ 表示 $q_{\phi}(z|x)$ 和 $p(z)$ 之间的 KL 散度,可以看作是衡量 $q_{\phi}(z|x)$ 和 $p(z)$ 之间距离的指标。
接下来,我们将上式中的左边期望式子看作是重构误差,右边 KL 散度部分看作是正则项,可以得到 VAE 的损失函数:
$$\mathcal{L} = -\mathbb{E}_{q_{\phi}(z|x)}[\log p_{\text{model}}(x|z)] + \text{KL}(q_{\phi}(z|x)||p(z))$$
这个损失函数可以被看作是最小化重构误差和正则项之和的形式,其中 $-\mathbb{E}_{q_{\phi}(z|x)}[\log p_{\text{model}}(x|z)]$ 表示对重构误差的最小化,$\text{KL}(q_{\phi}(z|x)||p(z))$ 表示对正则项的最小化。通过最小化这个损失函数,我们可以训练 VAE 模型。
阅读全文