目录
前言
本文为自学VAE时做的阅读笔记。
原文链接:https://ijdykeman.github.io/ml/2016/12/21/cvae.html
原文
Introduction
原文作者苦于没有通俗易懂的VAE资料,所以在自学之后,借用MNIST作为例子,希望为后来者提供一份易懂的VAE入门读物。
若想继续深入,可阅读:Tutorial on Variational Autoencoders
VAE的功能
VAE是一个生成模型(generative model),用来生成和训练数据的样本很像的、让人可信的假样本。以MNIST为例,生成的便是手写数字图像。具体而言,VAE可以提供一个隐空间(latent space),我们可以从中采样。每一个点都可以被解码为一个合理的手写数字图像。
VAE的结构
任何一个自编码机的目的都是重构他的输入。 它先将输入压缩为一个更小的结构,然后再解压为一个和输入较为相似的输出。压缩功能由编码器(Encoder)完成,解压功能则是由(Decoder)负责。此处两者皆为神经网络。
诚然,如果只是把输入重构,标准的自编码机够用。但它不足以被称为生成模型(generative model),因为一个随机的输入图像V’ 就可能最后输出一张完全不可读的图片(这是由于V’ 可能完全不像之前读入过的任何图像)。我们需要不管输入输入任何图像,都可以输出一张合理的图像。
那么该怎么做?我们可以先定义好解码器应该得到的输入