这学期张连文教授教的CSIT6000G Machine Learning课上讲到了VAE和GAN,学完之后感觉两个概念被解释的很好,所以有必要记录一下。
VAE(Variational Autoencoder)中文译为变分自动编码器,它是一种深度生成模型(Deep Generative Model),是一种无监督学习算法。它的主要作用是能够学习一个函数(模型),使得输出数据的分布尽可能地逼近原始数据分布。
问题描述
假设我们有一堆无标签数据集 \(X = \{x^{(i)}\}_{i=1}^{N}\), 每一个数据\(x^{(i)}\)是一个表示图像的vector,而vector中的每一个元素则表示图像的像素;那么我们的任务就是:
希望从原始数据集\(X\)中学习一个分布\(p(x)\),使得它的分布和原始数据分布接近,也就是说我们可以生成和原始图像相似但不同的图片。
生成模型(Generative Model)
那么这个问题如何求解呢?
我们假设:
- 每一个图片都存在一个与之对应的标签向量\(z\);什么叫标签向量?简单点说可以用\(z\)来代表\(x\),但是\(z\)[……]