深入探索自编码器:从基础到卷积架构
1. 自编码器性能优化思路
当系统无法“作弊”时,结果不再像老虎,一切又变得合理。由于对输入图像的旋转版本进行了训练,结果中能看到一些四重旋转对称性。若想提升性能,可增加瓶颈层(即潜在层)的神经元数量,但为尽可能压缩输入,增加瓶颈层的值应作为最后手段,我们更希望用最少的值实现最佳效果。
接下来尝试采用比目前使用的两层密集层更复杂的架构来提升性能。
2. 不同架构自编码器的探索
2.1 基于MNIST数据集的简单自编码器
为在MNIST数据集上运行简单自编码器,需调整输入和输出层大小以适应数据。MNIST数据集中的每个图像有28×28 = 784个像素,所以输入和输出层需要784个元素。在将二维图像输入网络前,先将其展平为一个大列表,并将瓶颈层设置为20。
训练该自编码器50个周期(即对所有60,000个训练样本运行50次),结果显示两层网络学会了将每个784像素的输入压缩为20个数字,再还原为784像素。生成的数字虽模糊但可识别。
当将潜在变量数量减少到10时,结果变差,如2看起来像被咬了一口的3,4看起来像9,这表明10个数字不足以让系统很好地表示输入。
总结来看,自编码器需要足够的计算能力(即足够的神经元和权重)来编码数据,以及足够的潜在变量来找到输入的有效压缩表示。
下面是简单自编码器的架构图示意:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



