VAE有关的概念笔记
reparameterization(再参数化), variational lower bound ,late variables,
变分贝叶斯推断(Variational Bayes Inference)简介-CSDN博客
下界估量
lower bound estimator
下界估量估计未知的参数可能的最小值。在统计学和机器学习中下界估量是一个工具帮助我们基于简单数据推理群体的特征。当我们谈论下界估量,我们指的是一个估计其,它提供了估计保证不超过被估计参数的真实值。
上下界理论
上下界理论是机器学习的理论,它包含了给定特定的条件或约束下,定义一个量的最小和最大的可能值。它通常用来优化问题,其中的目标是在特定的约束下找到最大或者最小的函数目标值以确定
- 用数学术语来说,数据集的下界是数据集中的最小值,同时上届是最大值。如果集合中有上届和下界,我们称他为有界的。
- 上下界理论也可以被用来确定变量可能值的范围。例如如果我们知道确定变量必须在0-1之间,我们可以说它的上届是1,下界是0。
- 上届和下界和上确届与下确届密切相关。集合的下确届是最小的下界,同时上确届是集合最小的上届。(如果有很多上界那么上确届就是最小的上届,下界同理)
- 总之,上下界理论是一个重要的数学分析,优化和决策工具,因为它允许我们确定可能值的范围并且在范围中确定最优值
自编码器
Autoencoders -Machine Learning - GeeksforGeeks
深度学习的核心就是神经网络,在复杂的节点之间相互连接的系统,它模仿人类大脑的神经元结构。神经网络擅长判别复杂的模式,以及庞大数据集中的表示,通过它们去进行预测,分类和生成新的见解。自编码器是神经网络的一个子集,提供了一种独特的无监督学习方法。自编码器是动态领域的深度学习中一种灵活强大的类型。其中神经网络不断的发展以辨别复杂的模式和表征。它们有能力学习有效的数据表示,无监督模型受到了相当大的关注,在图像处理和异常检测等广泛的领域使用。
什么是自编码器
自编码器是专门的算法类别,它可以学习有效的输入数据表示,而不需要表标签。它是一种被用来进行无监督学习设计的人工神经网络。学习压缩和有效的表示输入数据,无特定标签是自编码器的基本原则。它由编码器和解码器双重组成。编码器将输入数据降为表示,这通常被称为潜在空间或编码。从这个表示中,解码器重建初始数据。为了使得网络在数据中获得有意义的模式,解码器和编码器的过程有助于关键特征的定义。
深度学习中的自编码器架构
常规的自编码器架构包括了编码器,解码器和瓶颈层
在神经网络中,瓶颈层通常指的是一个网络结构中的特定层,其特点是该层的神经元数量远少于其前后层的神经元数量。这种设计有助于减少参数的数量,同时也迫使网络学习到输入数据的关键特征,从而达到降维的效果。
- 编码器
- 输入层获取原始输入数据
- 隐藏层逐渐降低输入的维数,捕获重要的特征模式。这一层构成了编码
- 瓶颈层(潜在空间)是最终的隐藏层,其中的维度被显著的减少了。这个层代表了压缩输入数据
- 解码器
- 瓶颈层的让编码后的特征扩展回原来的维度
- 为了重建源数据输入,隐藏层逐渐增加深度
- 输出层产生重建输出,它在理想情况下需要接近原始输入
- 训练中使用的损失函数通常是重构损失(重构损失指的是一类损失函数的应用场景),衡量了不同的输入和重建输出,通常的选择有连续数据的均方误差,或者二元数据的二元交叉熵函数。
- 在训练中自编码器学习最小重建损失,迫使网络在瓶颈层捕获输入数据的特征。
在训练过程之后,只有自编码器的编码器部分被保留,对训练过程中使用类似的数据进行编码。约束网络的不同方式为:
- 保持网络的小隐藏层:如果没有隐藏层可以保持很小,那么神经网络将智能被迫哦选择数据的代表特征从而对数据进行编码
- 规则化:在这个方法中,损失项背添加到成本函数中,它激励神经网络以不同的方式进行训练。
- 去噪:另一个构建神经网络的方法是添加输入噪声,教网络如何去除数据中的噪声
- 调整激活函数:这个方法需要改变各个节点的激活函数,让大多数节点进入休眠状态,从而有效的减少隐藏层的大小
不同类型的自编码器
这里是不同的自编码器分析不同自编码器相关的优点和缺点。
去噪自编码器
去噪自编码器工作在部分损坏的输入,并且训练转化为源未损坏图像。如上所述,这个方法是一个有效方式,约束简单复制输入的网络,并且因此学习到底层结构和数据的重要特征。
优势
- 这个类型的自编码器可以提取重要的特征并且减少噪声和无用的特征
- 去噪自编码器可以用来进行数据增强,可以使用增广数据修复图片,从而产生额外的数据样本。
劣势
- 选择引入正确的类型和噪声等级,可能需要领域知识
- 去噪过程可能会导致一些信息的损失,这可能导致源数据信息丢失,这个损失可能会影响输出的准确度。
稀疏自编码器
这个类型的自编码器通常包含了比输入更多的隐藏层单元,但只有少数被允许在任何时候活跃。这个特性也被叫做网络的稀疏性。网络的洗属性可以被通过手动将所需的隐藏单元归0,调整激活函数或者增加损失项到代价函数中来控制。
优点
- 稀疏编码器中特殊的构造帮助了过滤掉了噪声和编码过程中不相关的特性。
- 这个编码器通常学习重要和有意义的特征因为它强调稀疏激活。
缺点
- 自编码的性能中超参数的选择扮演了重要的角色。不同的输入会导致激活网络中不同的节点
- 应用的洗属性限制增加了计算复杂度
变分自编码器
变分编码器对相关的隐变量分布有着很强的假设,在训练过程中使用了随机梯度变分贝叶斯估计器。它假设数据是根据有向图模型生成的,尝试学习近似$q_{\phi}(z|x)$到条件性质$q_{\theta}(z|x)$的近似,其中$\phi$和$\theta$分别是编码器和解码器
优势:
- 变分自编码器用于生成的新数据点,就像源训练数据一样。这些样本是在潜在空间学习的。
- 变分自编码器是一个概率性框架,它用来学习压缩的数据表示,它捕获了底层的结构和变化,所以它被用在异常检测和数据探查。
劣势:
- 变分自编码器使用了近似值以估计因隐变量的真实分布。这种近似引入了一定程度的误差,它可能会影响生成的样本的品质
- 生成的样本可能只包括了真实数据分布中有限的数据集。这会导致生成的样例中缺乏多样性。
随机梯度变分贝叶斯(SGVB)
香农熵交叉熵和KL散度
信息量
amount of information公式
$$ I(x)=\log_2(\frac1{p(x)})=-\log_2(p(x)) $$
该公式说明了,概率越大信息量就越小,反之亦然。假设抛硬币有0.2的概率正面向上,0.8的概率反面向上
$$ q(h)=0.2\quad I_q(h)=\log_2(1/0.2)=2.32\\q(t)=0.8\quad I_q(t)=\log_2(1/0.8)=0.32 $$
香农熵
$$ H(p)=\sum p_iI_i^p=\sum p_i\mathrm{log}_2(\frac{1}{p_i})=-\sum p_i\mathrm{log}_2(p_i) $$
该公式代表了概率乘以信息量(I代表信息量)然后求和。右边部分是把信息量带入之后计算的结果。
如此计算上述硬币的想香浓熵为
$$ H(q)=q(h)\times\log_2(1/q(h))+q(t)\times\log_2(1/q(t))=0.2\times2.32+0.8\times0.32=0.72 $$
如果概率密度函数更加分散,那么香农熵就更小,0.2和0.8概率的硬币是比0.5和0.5小的(0.5为1)
交叉熵Cross Entropy
如果我们不知道正面朝上和反面朝上的概率,难么我们可以对这个概率进行估计。假设我们给定估计出来的概率函数q,真实概率为p。
给定估计概率分布,
$$ H(p,q)=\sum p_iI_i^q=\sum p_i\log_2(\frac1{q_i})=-\sum p_i\log_2(q_i) $$
和真值差距越大交叉熵越大,比如这里真值分布是0.5,与0.5,估值是0.8与0.2
$$ \begin{aligned}&q(h)=0.2 q(t)=0.8\\&H(p,q)=p(h)\times\log_2(1/q(h))+p(t)\times\log_2(1/q(t))=0.5\times2.32+0.5\times0.32=1.32\end{aligned} $$
期望是通过真值的概率分布来求的,信息量的计算是我们根据当前概率分布计算的。
这里的底数可以根据情况而定,在机器学习中常用的是e。
KL散度
以量化方式衡量俩个不同高概率分布在不同的交叉熵和熵之间。它的定义是交叉熵减去熵。
$$ \begin{aligned}&D(p\|q)=H(p,q)-H(p)=\sum p_iI_i^q-\sum p_iI_i^p\\&=\sum p_i\mathrm{log}_2(\frac1{q_i})-\sum p_i\mathrm{log}_2(\frac1{p_i})\\&=\sum p_i\mathrm{log}_2(\frac{p_i}{q_i})\end{aligned} $$
KL散度也被称为相对熵(relative entropy),用来衡量俩个概率之间差异的统计量。
它有俩个重要的性质,KL散度是永远大于0的(吉布斯不等式)。只有当俩个概率分布完全一致的时候它才等于0。
为什么很少听说KL散度的损失函数呢?
用kl散度对参数$\theta$求梯度,其实就等于交叉熵对$\theta$减去熵p对$\theta$求梯度。但是p是真实的概率分布和$\theta$无关,所以最右边的公式就是交叉熵损失函数的由来
$$ \nabla_\theta D(p\|q_\theta)=\nabla_\theta H(p,q_\theta)-\nabla_\theta H(p)=\nabla_\theta H(p,q_\theta) $$
最小化ql散度某种某中程度上就是最小化损失函数
变分下界
Understanding the Variational Lower Bound (xyang35.github.io)
介绍
变分贝叶斯(VB)是一个技术组,它在统计机器学习中非常受欢迎。我们可以看到统计推理的问题(给定一个随机变量的情况下推断另一个随机变量)也就是优化问题(找到一个可以最小化一些目标函数的对象值)。进一步,变分下界也叫做证据下界,在VB的推导中扮演了必不可少的角色。在这个记录中,我们的目标是介绍变分下界的基本思想,它可以帮助理解硬注意力机制相关论文中学习规则的推导
密度函数一般说的就是概率密度函数
归一化:概率密度函数在整个实数范围内的积分等于1 即
$$ \int_{-\infty}^\infty f(x)dx=1 $$
想法
假设X是可见数据Z是隐藏的数据。注意,我们是通用的——隐藏变量可能包括“参数”。俩个变量之间的关系可以被使用图模型表示。
进一步,大写的P(X)代表了这个变量的概率分布,小写的p(X)是分布X密度函数。隐藏变量的后验分布可以根据贝叶斯理论写为。隐变量可以理解为观测数据的特征,我们希望从被观测变量推理无法被直接观测的数据特征。
在贝叶斯定理中条件概率也可以看做后验概率。
在X发生的情况下Z发生的概率。实际上完整的公式可以写作$p(Z|X)=\frac{p(X|Z)p(Z)}{p(X)}=\frac{p(X|Z)p(Z)}{\int_Zp(X,Z) dz}$(多了一个dz)
其中$p(X)=\int_Zp(X,Z) dz$它代表着对所有Z的可能范围进行取值
这个过程可以看作是将联合概率密度函数p(X,Z)沿着Z的方向进行积分,从而消除了Z的影响,只保留了关于X的信息
在数学上我们可以通过积分来消除Z的影响,这是因为本质上积分是对所有的Z值贡献进行加权平均,通过这种方式消除了Z的不确定的性,保留了X的信息。
$$ p(Z|X)=\frac{p(X|Z)p(Z)}{p(X)}=\frac{p(X|Z)p(Z)}{\int_Zp(X,Z)} $$
其中的p(x)很难直接计算,使用相对简单分布去近似复杂的分布而这个近似的过程就是变分。
使用近似的概率分布去完成给定被观测完成变量的情况下,对隐变量概率分布估计的过程就是变分推理。
例子
假设我们的隐变量是指数分布(大于0,并且大于0部分是一个真指数函数)
$$ z\sim p(z)=\left\{\begin{matrix}e^{-z},z\geq0\\0&,z<0\end{matrix}\right.=e^{-z}I(z\geq0) $$
而被观测变量假设符合高斯分布
$$ x\sim p(x|z)=N(x,\mu=z,\sigma=1)=\frac1{\sqrt{2\pi}}e^{(-\frac12(x-z)^2)} $$
那么我们的联合概率分布为
$$ p(x,z)=p(x|z)p(z)=\frac1{\sqrt{2\pi}}e^{(-\frac12(x-z)^2)}e^{-z}I(z\geq0) $$
边缘概率分布就是对这个联合概率分布在隐空间z中的积分
$$ p(x)=\int_0^\infty p(x,z) dz=\int_0^\infty e^{-z}\frac1{\sqrt{2\pi}}e^{(-\frac12(x-z)^2)} dz $$
可以看到这个积分很复杂难以计算
对于隐变量来说,边缘概率p(x)是一个常数。所以后验概率(左)是正比于联合概率分布(右)的。对联合概率分布进行简化之后得到。
$$ \begin{aligned} &p(z|x)\sim p(x,z)=p(x|z)p(z)=\frac{1}{\sqrt{2\pi}}e^{(-\frac{1}{2}(x-z)^{2})}e^{-z}I(z\geq0) \\ &=\frac1{\sqrt{2\pi}}e^{(-\frac12z^2+(x-1)z-\frac12x^2)}I(z\geq0) \\ &=\frac1{\sqrt{2\pi}}e^{(-\frac12(z-(x-1))^2+\frac12(x-1)^2-\frac12x^2)}I(z\geq0) \\ &=\frac1{\sqrt{2\pi}}e^{(\frac12(x-1)^2-\frac12x^2)}e^{(-\frac12(z-(x-1))^2)}I(z\geq0) \\ &\thicksim\frac1{\sqrt{2\pi}}e^{(-\frac12(z-(x-1))^2)}I(z\geq0) \end{aligned} $$
后验概率在大于0的部分正比于均值为1的高斯分布。
这是x为1.5和0的时候联合概率分布在隐空间中的曲线
蓝色的曲线就是联合概率分布,而红色的曲线是通过数值计算的方法计算出的真实后验概率曲线。
在不同观测值取值的情况下,联合概率分布是无法比较的。只能对正则化后的后验概率分布进行比较。
图片分类就是在不同观测的情况下,比较类别之间后验概率的操作。
KL近似分布
我们使用KL散度来衡量俩个真实分布的相似度,KL散度的定义是交叉熵减去熵
$$ D(q\|p)=H(q,p)-H(q)=\int q(x)\log\frac{q(x)}{p(x)}dx=E_{x\sim q}[\log q(x)-\log p(x)] $$
所以我们需要用KL散度最小化俩个分布的差别
$$ \begin{aligned} &q_\theta(z)\approx p(z|x) \\ &D(q_\theta(z)\|p(z|x))=E_{z\sim q}[\log\frac{q_\theta(z)}{p(z|x)}]=E_{z\sim q}[\log q_\theta(z)-\log p(z|x)] \\ &=E_{z\sim q}[\log q_\theta(z)-\log\frac{p(z,x)}{p(x)}]\\ &=E_{z\thicksim q}[\log q_\theta(z)-\log p(z,x)]+\log p(x) \end{aligned} $$
这里log p(x) 我们叫做证据(evidence)。
$$ \begin{aligned}&\log p(x)=E_{z\sim q}[\log p(z,x)-\log q_\theta(z)]+D(q_\theta(z)\|p(z|x)) \\&\log p(x)\geq E_{z\sim q}[\log p(z,x)-\log q_\theta(z)]\equiv\mathcal{L}_q\end{aligned} $$
其中$D(q_\theta(z)\|p(z|x))$是KL散度 所以永远大于0。$\log p(x)$是证据在隐空间中是定值。$E_{z\sim q}[\log p(z,x)-\log q_\theta(z)]$这一项是求取期望的一项也叫做证据下界ELBO 因为证据不可能小于它。
因为log p(x)已经被观测到了。最小化KL散度的过程,可以转化为最大化ELBO(证据下界)的过程
因为右边的KL散度永远大于0,所以可以得到log p(x)永远大于求取期望的项,所以它就是log p(x)的下界,所以我们也把这一项叫做证据下界(ELBO)。
返回之前的例子
$$ \begin{aligned} &q_\theta(z)=\left\{\begin{matrix}\theta e^{-\theta z},z\geq0\\0&,z<0\end{matrix}\right.=\theta e^{-\theta z}I(z\geq0) \\ &\mathcal{L}_q=E_{z\thicksim q}[\log p(z,x)-\log q_\theta(z)] \\ &=E_{z\sim q}[\log\frac{1}{\sqrt{2\pi}}e^{(-\frac{1}{2}(x-z)^{2})}e^{-z}I(z\geq0)-\log\theta e^{-\theta z}I(z\geq0)] \\ &=E_{z\sim q}[-\frac{1}{2}z^{2}+(x-1+\theta)z+C]=-\frac{1}{\theta^{2}}+\frac{x-1+\theta}{\theta}-\log\theta+C \end{aligned} $$
把x=1.5带入最后的公式
$$ \frac{\partial\mathcal{L}_q}{\partial\theta}=\frac2{\theta^3}-\frac{0.5}{\theta^2}-\frac1\theta=0 $$
得到$\theta$为1.186
绿色的线就是真实的后验概率分布,红色的是我们的近似结果
总结
推理问题可以表示为一个潜在的隐变量图模型,其中给定观测到的数据,我们想要推理相隐变量的后验概率分布,它通常可以解释被观测变量的相关属性。
由于后延概率比较棘手,所以通常边缘分布需要通过积分来进行计算。
变分推理就是用简单的可以参数化的概率密度分布,去近似真实的概率密度分布。
KL散度衡量了真实近似分布和真实概率分布的差异,所以最小化KL散度就是最大化ELBO。
变分自编码器
VAE不再把输入映射到固定的变量上,而是映射到一个分布上,比如混合高斯分布。他被分解为均值向量和压缩向量。
损失函数为
$$ \mathcal{L}(\theta,\phi;\mathbf{x},\mathbf{z})=\mathbb{E}_{q_\phi(\mathbf{z}|\mathbf{x})}[\mathrm{log}p_\theta(\mathbf{x}|\mathbf{z})]-D_{KL}(q_\phi(\mathbf{z}|\mathbf{x})\|p(\mathbf{z})) $$
其中$\mathbb{E}_{q_\phi(\mathbf{z}|\mathbf{x})}[\mathrm{log}p_\theta(\mathbf{x}|\mathbf{z})]$是重建损失(和自编码器一样),后面的是KL散度,也就是学习分布和高斯分布的相似性。
变分自编码器是变分推理相关原理的常见应用,是最简单的生成式模型之一。
普通的自编码器是学习维度小于原图维度的隐变量,也就是图片的压缩表示。可以使用概率分布去建模变量部分的属性。简单来说就是用简单的概率分布去压缩数据。我们可以采样隐藏属性以生成(重建)不同的图片。
ELBO的原始表达式为
$$ \mathcal{L}_q=E_{z\sim q}[\log p(z,x)-\log q(z)] $$
其中$q(z)\approx p(z|x)$ 在观测到x的情况下隐变量z的分布。
在变分自编码器中使用条件概率去替代原来的q(z)
encoder 近似分布 $q_\varphi(z|x)$:近似分布对应编码器,因为它是从被观测数据映射到隐变量(均摊变分推理)
decoder 似然分布$p_\theta(x|z)$:似然度函数表示解码器,因为它是从隐变量解码到被观测数据的过程
将表达式带入
$$ \mathcal{L}_q=E_{z\sim q}[\log p_\theta(x|z)p(z)-\log q_\varphi(z|x)]=E_{z\sim q}[\log p_\theta(x|z)+\log p(z)-\log q_\varphi(z|x)] $$
对表达式进行整理,ELBO的表达式可以拆成俩项。
$$ \begin{aligned} &\mathcal{L}_{q}=E_{z\sim q}[\log p_{\theta}(x|z)+\log p(z)-\log q_{\varphi}(z|x)] \\ &=E_{z\sim q}[\log p_{\theta}(x|z)]-E_{z\sim q}[\log\frac{q_{\varphi}(z|x)}{p(z)}] \\ &=E_{z\sim q}[\log p_\theta(x|z)]-D(q_\varphi(z|x)\|{p}(z)) \end{aligned} $$
第一项是似然度函数在近似q下的期望,第二项是近似分布q和隐变量先验分布p(z)之间的KL散度。
其中最大化重建似然,就是最小化KL散度。
这里$E_{z\sim q}[\log p_\theta(x|z)]$表示了重建的相似度
$D(q_\varphi(z|x)\|{p}(z))$:这一项是近似分布q和隐变量p(z)中间的KL散度
复杂分布的图片进来,通过近似分布的编码器产生隐变量,隐变量劲量靠近它的先验分布也就是单位高斯。解码器将简单分布的隐变量映射到复杂分布的图像概率空间中。
目标函数
$$ q_\varphi(z|x)=N(z;\mu_\varphi(x),\Sigma_\varphi(x)) $$
近似分布q是被$\varphi$参数化的高斯分布
而隐变量是一个单位高斯,来个高斯分布之间的KL散度是由解析解的。
$$ p(z)=N(z;0,I) $$
重建相似度的目标函数是高斯分布的log值
$$ \log p_\theta(x|z)=-c\|x-\mu_\theta(z)\|^2+d $$
其中$\mu$是解码器网络的输出,给定z是x的预测均值。其中$\|x-\mu_\theta(z)\|$代表 输入减去输出,目标函数就是差值的二范数。
这个目标函数取决于隐变量z而z是基于近似分布q采样的$E_{z\thicksim q_\varphi}[\log p_\theta(x|z)]$
以上是生成流程:输入数据x,通过编码器获得q的均值和方差。计算q和单位高斯的KL散度解析解我们获得了第一个目标函数的解析解(蓝色左边)。
在计算似然度目标函数的时候,我们首先需要通过近似分布q,对隐变量z进行采样,用采样获得的因变量z送入解码器去获得图片的重建预测值:$\|x-\mu_\theta(z)\|$在与最后的监督值作比较。然而红色的部分是随机的,没有办法通过反向传播去计算梯度。针对这个问题研究人员提出了重参数化的技巧。
$$ \begin{aligned} &q_\varphi(z|x)=N(z;\mu_\varphi(x),\Sigma_\varphi(x)) \\ &=\mu_\varphi(x)+\Sigma_\varphi^{1/2}(x)N(0,I) \\ &=\mu_\varphi(x)+\Sigma_\varphi^{1/2}(x)\varepsilon \end{aligned} $$
因为任意的高斯分布可以写成均值+标准差乘以标准高斯分布随机变量的形式。(标准高斯分布经过映射可以变成任意高斯分布的随机变量)。右边是改进后的方法。
在算出近似分布的均值和方差之后,做一个标准的高斯采样,通过加与乘将标准高斯分布映射到我们预期的高斯分布。这样再送入解码器之中。在反向传播时标准高斯分布的随机变量可以当做常数来使用的。
重建相似度的损失函数为
$$ \mathcal{L}_1=-\log p_\theta(x|z)\tilde{\sim}\|x-\mu_\theta(z_x)\|^2 $$
隐变量先验相似度的损失直接使用KL散度
$$ \mathcal{L}_2=D(q_\varphi(z|x)\|p(z))=\frac12(\mathrm{tr}(\Sigma_\varphi(x))+\mu_\varphi(x)^\mathrm{T}\mu_\varphi(x)-k-\log(\det\Sigma_\varphi(x))) $$
总损失为
$$ \mathcal{L}=\mathcal{L}_1+\alpha \mathcal{L}_2 $$
隐变量空间有一定的连续性
可视化生成的mnist数据集
重参数化:reparameterization
问题:在训练 VAE 时,我们需要从编码器产生的分布中采样得到潜在变量 zz,然后将 zz 输入到解码器中以生成重构的数据。问题是,如果直接对采样操作进行梯度下降,那么梯度无法通过随机采样过程传递回编码器的参数,因为采样本质上是一个不可微的操作。
为了解决这个问题,我们引入重参数化技巧。该技巧的核心思想是将随机采样过程从模型中分离出来,从而允许我们通过确定性的路径来计算梯度。
总结
变分自编码器可以被理解为基于变分自编码器框架的变分推理应用。
隐变量的先验通常选择单位高斯
变分自编码器可以用来根据采样自单位高斯的隐变量生成数据
损失函数可以从变分下界导出,其由重建损失和潜在的先验相似性损失,第二项也可以当做正则化的项来进行看待。
重参数化技巧使得VAE可以进行反向传播来进行训练
潜在空间可视化显示了潜在先验约束使得学习到的潜在变量分布相对连续,并具有某种拓扑结构。
无论是AE还是MAE还是DAE都是为了学习中间瓶颈层的特征,然后对特征所生成。这时候就有了VAE。VAE学习的不是特征而是高斯分布。当得到编码器出来的特征时,在后面添加一些FC层。然后预测均值和方差。然后得到均值和方差之后去采样一个z出来,这样VAE就可以用来做生成了。(训练好模型之后理论上就不需要用到编码器了)
这里X得到Z就是一个后验概率,而学出来的分布就是先验分布。给定Z去预测X就是最大似然。因为在分布中进行抽样,所以它的多样性比gan好很多
VQVAE
VQVAE就是对VAE做