变分自编码器学习的不再是样本的个体,而是要学习样本的规律。这样训练出来的自编码器不单单具有重构样本的功能,还具有了仿照样本的功能。
听起来这么强大的功能,到底是怎么做到的?下面我们来讲讲它的原理。
变分自编码器,其实就是在编码过程中改变了样本的分布(“变分”可以理解为改变分布)。前文中所说的“学习样本的规律”,具体指的就是样本的分布,假设我们知道样本的分布函数,就可以从这个函数中随便取一个样本,然后进行网络解码层前向传导,就可以生成了一个新的样本。
为了得到这个样本的分布函数,我们的模型训练目的将不再是样本本身,而是通过加一个约束项,将我们的网络生成一个服从于高斯分布的数据集,这样按照高斯分布里的均值和方差规则可以任意取相关的数据,然后通过解码层还原成样本。