本文将简单介绍一下Variational Autoencoder。作者也在学习当中,如有不正确的地方,请大家指正,谢谢~
原始的autoencoder一般分为两个部分encoder part和decoder part。 encoder是将input转化为encoding vector,之后通过decoder network重新构造input。
图1 origanal autoencoder (from wikipedia)
VAE(变分自编码器) 与原始autoencoder不同的是,在encoder部分通过用概率分布来表示每一个潜在的特征。
举个例子:
图2 (from reference)
上面的图中,在经过encoder部分后,我们用一个具体的数来表述每一个潜在的特征,比如smile的值是0.99。但是有些时候,我们希望用一个区间来表示所有可能的潜在特征值,这就有了下图的表示,通过用一个概率分布函数来表示潜在的特征。当我们通过潜在状态decoding时,我们首先对每个概率分布生成随机样本,之后再重新构造input。