前言:生成模型。
1. 整体框架
-
motivation:传统的AE在生成新样本时往往受限于其编码空间的泛化能力。
-
核心:自编码器结构,对潜在空间进行概率建模。
-
变分主要是指在自编码器中,潜在表示是一个固定值,而 VAE 中,潜在表示则是一个不确定变量,或者换一个说法,是一个概率分布。
2. 理论细节
直接获取输入x的分布很难,因此考虑通过潜在变量z构建:
直接获取z也是很难的,假定z 的样本可以从简单的分布中抽取,即标准正态分布 N(0, I),其中 I 是单位矩阵。因为,任何 d 维度的分布都可以用一组 d 个服从正态分布的变量,通过足够复杂的函数进行映射从而生成。
使用KL散度作为目标:
经过一系列变形后:
VAE的目标:在潜在空间中生成具有良好结构的分布,同时使生成的样本与原始数据尽可能相似。
上式的第一项就是通过z重构的x与原样本尽可能的接近,第二项是说潜在空间 z 的近似后验分布尽可能接近于 z 的先验分布,即让模型避免过拟合。
3. 模型细节
3.1 encoder
(1)生成均值和方差
针对每个输入样本生成对应的均值和方差,编码器的网络结构主要是一个共同的主干网络,外加两个分支,主干的输出作为分支的输入,分别生成u和方差。
(2)重采样
最后的参数为从标准正态分布N(0,I)采样的噪声。即:
3.2 decoder
解码器主要是根据z重构x,即:
损失函数:
参考文献
[1]变分自编码器 VAE 超详解,从简单公式推导到模型结构到模型理解
[2]Tutorial on Variational Autoencoders