VAE 复习笔记
date
Oct 20, 2022
Last edited time
Mar 27, 2023 08:44 AM
status
Published
slug
VAE复习笔记
tags
DL
summary
在康DDPM的时候,发现自己对VAE有点混乱,所以重新学习下VAE。
type
Post
Field
Plat
符号定义
Encoder 模型 | |
Decoder 模型 | |
模型生成的 的边缘分布 | |
样本 |
VEA 模型
使用隐变量模型的生成过程
我们假设 服从标准正态分布,也就是 。如果这个理想能实现,那么我们就可以先从标准正态分布中采样一个 ,然后根据 来算一个 , 即完成了模型的生成。
我们可以直接使用极大似然估计来优化这个隐变量模型,即最大化 :
那么,令 , 那么关于 的梯度为:
我们可以使用蒙特卡罗采样估计 的近似值。
替换先验分布为后验分布
原来 从先验概率分布 中采样,现在可以考虑从 的后验概率分布 中采样。原因是先验概率 是没有限制的任意分布,而后验概率 是给定 后的条件概率,所以更可能采样出能生成与 对应的 。
我们我们使用一个 Encoder 模型 去拟合这个后验分布。这样生成过程就变为:
我们可以使用 KL 散度来衡量 Encoder 模型 与实际的后验概率 的接近程度:
整理后得到:
- 是我们希望能够最大化的对数似然,
- 是我们希望最小化的 KL 散度的负数,因此我们同样要最大化它。因此,我们的目的等价于最大化等于右边。
- 表示给定一个 ,根据分布 采样得到一个 ,即把 编码到 的 Encoder 过程。然后 根据这个采样的 生成一个 ,此过程即 Decoder。此过程即为最大化指定输入 对应的编码 生成的 的对数似然。(重构误差)
- 表示的是估计的后验分布 与预设的先验分布 的 KL 散度。
具体实现
如果没有KL散度这一项,那么为了更好的生成和真实样本相似的样本,方差 会变成0,退化成普通的自编码器。但是这样就失去了生成新样本的能力,所以最好的状态应该是方差足够小而又不等于 。此时,KL散度就派上用场了,我们可以让 和 看齐,这就相当于一个约束,不让方差等于。所以应该加一个项
,那么得到 。这也可以经过下面公式推出来
这样 才满足我们面前生成过程所述的假设条件。
- 重建损失
发现了没有,在图像生成的过程中,使用的都是最小化 MSE 损失,而不是这里的最大化对数似然。我们首先假设 是一个高斯分布,那么
这里的 , 为神经网络预测的均值与方差,那么:
有时候,我们直接固定方差 为常数,即 Decoder 部分只负责预测 。那么最小化这个负对数似然,等价于:
则这个最大化对数似然其实就是在使用MSE进行最小化。