https://arxiv.org/abs/1312.6114
一、背景知识
1、Auto-Encoder
Auto encoder是一种无监督算法,主要用于特征提取或数据降维。其思想非常简单,即输入特征 x 经过encoder后抽象为hidden layer z,再将z经过decoder过程重新预测为。其中encoder和decoder的过程可以是MLP/CNN/LSTM等简单的神经网络。
Auto encoder的目的是提取抽象特征z,其学习过程为最小化损失函数 L(x,) ,用于惩罚和x之间的差异,假设使用平方损失,则有:
其中 i 代表第i个样本。 可以包含n个特征,即 。
2、Why VAE?
很多时候,当我们数据处理时,会遇到数据量不足的情况,这时我们会考虑使用生成模型生成数据。VAE即在AE的基础上引入变分的思想,使其能够进行数据生成。VAE建模着重考虑 =g(z) 过程的有效性,其中z为隐变量特征的分布。
AE过程 VAE过程
上文提到,AE的主要作用为特征提取或数据降维,即寻找合适的抽象特征z,可以使其代表x,如上图左侧,当我们微调z时,无法生成有效的月亮图片;而右侧的VAE过程,此时z为抽象特征的分布,当微调时,可以得到有效的月亮图片。