Reading

Variational Autoencoder (VAE)


Fanyi Pu

最开始的文章是 (Kingma & Welling, 2014)。

苏神博客亦有记载:(苏剑林, 2018a, 2018b)。

其他参考资料:(Grover & Ermon, 2018)。

给定样本 xi,后验分布 pϕ(z∣xi)∼N(μi,σi2I)。其中我们希望 pϕ(z)∼N(0,I)。

构建网络 ⟨μk,log⁡σk2⟩=ϕ(xi)。

如果酱紫直接训的话,因为取正态分布的时候会带来噪声,所以模型肯定是希望 σk2 越小越好,逐渐的会退化为普通的 autoencoder。

所以我们希望 pϕ(z)∼N(0,I),这样子加上一个

Lμ,σ2=DKL(N(μ,σ2)‖N(0,1))=12(−log⁡σ2+μ2+σ2−1)

就行。

然后写代码的时候有个 reparameterization trick,其实就是如果我们算出 μi 和 σi2 然后采样,那么是不可导的。方法其实就是 N(μ,σ2I)∼σ×N(0,I)+μ 就行。

References

Grover, A., & Ermon, S. (2018). Variational Autoencoders. Stanford CS236: Deep Generative Models Lecture Notes. deepgenerativemodels.github.io
Kingma, D. P., & Welling, M. (2014). Auto-Encoding Variational Bayes. International Conference on Learning Representations. doi.org
苏剑林. (2018a, March). 变分自编码器(一):原来是这么一回事. spaces.ac.cn
苏剑林. (2018b, March). 变分自编码器(二):从贝叶斯观点出发. spaces.ac.cn

Cite this post

@misc{pu2026mlmlrevisitaemlrevisitvae,
  author = {Pu, Fanyi},
  title  = {Variational Autoencoder (VAE)},
  year   = {2026},
  month  = {8},
  url    = {https://pufanyi.com/blog/ml/ml-revisit/ae/ml-revisit-vae}
}