[基础] VAE原理
名称
TL;DR
这篇文章介绍了一种名为Auto-Encoding Variational Bayes (AEVB)的算法。AEVB算法通过引入随机变分推断和学习算法,解决了在大数据集和不可解后验分布情况下的推断和学习问题。文章的主要贡献有两个:首先,提出了一个可以直接使用标准随机梯度方法优化的下界估计器;其次,对于具有连续潜在变量的独立同分布数据集,通过拟合一个近似推断模型来预测潜在空间的后验分布,使得从该分布中采样出的特征也能解码出很好的生成效果。
Method
为什么需要VAE?
AE(AutoEncoder)是一种自监督重建图像的方法,AE训练完成后,给定latent feature,使用Decoder可以用来恢复该feature对应的原图。但这种方法存在以下问题:
a) 图像特征对于扰动的鲁棒性差。
例如,将一只猫的图像编码成latent feature后,小幅度扰动特征,解码出的图像效果就与原始图像偏离较大。
b) 特征空间不连续。
例如,按照如下方式插值latent feature之后,得到效果图也很差。
图像生成任务的数学建模
训练图像生成任务模型的目标是希望生成的样本分布与训练集分布尽可能一致,这一目标可以用MLE(极大似然估计)来建模。
等价于生成数据分布与训练数据分布的KL散度(越小表示两个分布差异越小,分布越接近)
生成数据与训练数据之间分布
基于AE这套框架,拉近两个分布之间距离,在具体实施层面会遇到以下问题:
a) 训练样本分布与生成样本的分布都不知道。
b) AE训练过程要求每个生成样本与训练样本有一一对应关系。
解决上述问题的同时,也需要考虑仅使用AE作为生成器遇到的问题,因此,VAE构建了下面训练模型:
精妙之处在于:
a) Encoder针对每一个训练数据预测其专属的均值与方差,同时生成模型Decoder也从该分布采样latent feature。
保证训练数据与生成数据在同一空间下有分布表示,并且在该空间下生成数据与训练数据分布接近。
b) latent空间下训练与生成数据的分布都向标准正态分布N(0, 1)对齐。
一方面可以防止encoder预测的方差坍缩到0使得正态分布收缩为常数。另一方面生成模型Decoder的推理过程也具有抗扰动能力与特征空间连续性。
Loss设计
根据上述训练设计原理来看,主要需要两部分Loss:
1.继承自AE的重建Loss约束生成图像与对应训练图像一致性。
2.KL散度约束Encoder预测的N(mu, var)与N(0, 1)分布一致。
相关链接
变分自编码器(一):原来是这么一回事
Diffusion Model背后数据原理
VAE原文
https://blog.csdn.net/m0_63879480/article/details/135199276