论文阅读_变分自编码器VAE
基本信息
| 项目 | 内容 |
|---|---|
| 论文标题 | Auto-Encoding Variational Bayes |
| 作者 | Diederik P. Kingma 和 Max Welling |
| 作者单位 | |
| 发表会议/期刊 | 2013 |
| 论文链接 | |
| 别名 | Variational Autoencoder,变分自编码器 |
方法概览
| 特点 | 文章性质 |
|---|---|
| 输入 | 单张 RGB 图像 |
| 输出 | 分类、分割 |
| 所属领域 | 视觉 Transformer |
背景
传统自编码器 (Autoencoder) 的局限,比如PCA:
- 传统AE由编码器(Encoder)和解码器(Decoder)组成。
- 编码器将输入数据
x压缩成一个低维的潜在向量z。 - 解码器尝试从
z重构回原始数据x。 - PCA:x本身是一个矩阵,通过一个变换W变成了一个低维矩阵c,因为这一过程是线性的,所以再通过一个WT变换就能还原出一个x ^ \widehat{x} x ,现在我们要找到一种变换W,使得矩阵x与x ^ \widehat{x} 能够尽可能地一致,在PCA中找这个变换W用到的方法是SVD(奇异值分解)算法
- 学习到的潜在空间
z可能是不连续、不规则的。例如,两个在潜在空间中很接近的点z1和z2,解码后可能产生完全无关的输出。这使得直接从潜在空间采样生成新数据变得困难且不可控。
创新点
-
- VAE 不再让编码器输出一个确定的点
z,而是输出一个概率分布(通常是高斯分布)的参数(均值μ和方差σ²)。它强制这个潜在空间z遵循一个简单的先验分布(通常是标准正态分布N(0, I))。通过优化一个下界(ELBO),VAE 学习一个既能良好重构数据,又能使潜在空间平滑、连续的模型。这样,你就可以从标准正态分布中采样z,然后用解码器生成新的、合理的数据。
- VAE 不再让编码器输出一个确定的点
怎么使用VAE
1 | import torch |
1 | # VAE的损失函数由两部分组成: |
自编码器历史
- Autoencoder
- Denoising Autoencoder:在输入数据中引入噪声,然后训练网络恢复原始未受扰动的数据。这个过程迫使网络学习更为鲁棒的数据表示,忽略随机噪声,从而提高模型对输入数据中噪声或缺失值的容忍度。
- Sparse Autoencoder:在隐藏层上应用“稀疏”约束以防止过拟合并增强模型的鲁棒性。该模型通过限制隐藏层中同时激活的神经元数量,强制使大部分神经元大多数时间处于非激活状态。
- K-Sparse Autoencoder:由Makhzani和Frey于2013年提出
- Contractive Autoencoder:收缩自编码器在损失函数中加入额外的项来鼓励模型在被压缩的空间中学习更稳健的表示。
之后向VAE(Variational Autoencoder)转变:不是将输入直接映射到一个固定的向量,而是将输入映射到一个概率分布上。
6. Conditional VAE:通过引入额外的条件变量来控制生成过程。
7. Beta-VAE:2017年提出。其核心目标是发现解耦或分解的潜在因子。
8. VQ-VAE:由van den Oord等人于2017年提出,潜在空间的离散化,这种离散化使得模型能够有效地处理和生成高度结构化的数据。
9. VQ-VAE-2:由Ali Razavi等人于2019年提出,是VQ-VAE的升级版。它引入了一个层次化的结构
10. 时间序列数据的TD-VAE
VAE
这里有一个非常好的解释为什么要做变分的自编码器:【VAE学习笔记】全面通透地理解VAE(Variational Auto Encoder)_vae架构-CSDN博客
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 This is a 部落格 of outbreak_sen!


