【周末AI课堂】理解变分自编码器 | 机器学习你会遇到的“坑”( 六 )

在前面的《简单的自编码器》中曾经说过 , 自编码器包含了两部分 , 一部分叫做编码过程 , 它接收数据 , 得到一个低维表示(稀疏表示) , 用来做去噪和降维;另一部分叫做解码 , 接受一个向量 , 用来做生成数据 。

如图 , 自编码器在训练完成后 , 就可以拆做独立的两部分 , 投入到不同的任务中去使用 。

但是 , 我们在使用Decoder去生成图片时 , 并不清楚对输入有着怎样的限制 , 效果往往会糟糕 , 我们如果随便输入一个向量 , 就可以生成我们想要的图片 , 这在普通的Autoencoder中是不可能的 。 同时 , 我们想在生成式模型中使得输入向量与输出结果存在一定的关系 , 比如说 , 向量生成了一片树叶 , 向量生成了三片树叶 , 介于向量之间的向量可以生成两片树叶 , 这也是在以前的模型中无法做到的 。

解决该问题的一个思路是 , 是将大的噪声添加到编码过程中 , 使得生成图片的向量Z具有一定的分布 , 一片树叶的原本对应着一个向量

推荐阅读