趋近智
自动编码器包含一个编码器,用于将输入数据 压缩成紧凑的低维度潜在表示 ,其位于瓶颈层。在数据被压缩之后,自动编码器需要将其转换回有意义的形式。解码器是自动编码器的一个主要组成部分,负责进行这种重建。
解码器的主要职责是接收潜在表示 ,并尝试重建原始输入数据。它旨在反转编码器执行的压缩过程,将 扩展回一种理想情况下与原始数据 匹配的格式。这个重建过程的输出通常表示为 (读作“X撇”)。
想象一下,编码器写了一个长故事的非常简洁的摘要。解码器的工作就是阅读这个简短的摘要(),并尝试重新写出完整的故事()。当然,在此重建过程中,某些细节可能会丢失或改变,但一个训练有素的解码器将旨在尽可能忠实地再现原始故事。
在许多自动编码器设计中,解码器的架构通常是编码器的镜像,但操作方向相反。如果编码器由多个层组成,这些层逐渐减少特征数量(例如,从784个特征的输入减少到128个,然后到64个,最终到32维的潜在向量 (vector) ),那么解码器通常会拥有逐渐增加特征数量的层(例如,从32维的 增加到64个特征,然后到128个,最终到784个特征以产生重建输出 )。
数据从瓶颈层()流经解码器层,以产生重建输出()。解码器的结构通常是编码器的镜像,但方向相反,用于扩展数据表示。
解码器内部的过程可以分解为几个步骤:
接收潜在向量 (vector):解码器从潜在向量 开始其工作。这个向量是编码器和瓶颈层的输出,它封装了从输入数据中学习到的压缩信息。
经过解码器层进行扩展:潜在向量 随后会经过解码器内的一个或多个隐藏层。与编码器隐藏层降低维度不同,解码器的隐藏层旨在增加维度。解码器中每个随后的层通常比前一个层拥有更多神经元,有效地进行“上采样”或扩展表示。例如,如果 有32维,第一个解码器隐藏层可能会将其扩展到64维,第二个扩展到128维,以此类推,直到数据的维度接近原始输入。
输出层:生成 :解码器中的最后一层是输出层。该层中的神经元数量必须精确匹配原始输入数据 的维度数量(或特征)。如果原始输入是一张784像素的图像,解码器的输出层也必须有784个神经元,才能生成相同大小的重建图像 。
激活函数在解码器中与在编码器中一样重要。它们引入非线性,使解码器能够学习从潜在空间到原始数据空间的复杂映射。
隐藏层:对于解码器中的中间隐藏层(即瓶颈层和输出层之间的层),修正线性单元(ReLU)激活函数是一个常用选择。ReLU 的定义为 。它的简洁性以及在防止梯度消失等问题上的有效性,使其在许多深度学习 (deep learning)架构中(包括解码器)受到欢迎。
输出层:解码器输出层的激活函数选择尤为重要,因为它直接影响重建数据 的范围和性质。此选择取决于原始输入数据 的特点:
正如章节背景中提到的,对于入门示例,特别是那些处理归一化到[0,1]的图像数据(如MNIST手写数字数据集),Sigmoid函数是解码器输出层一个非常普遍且实用的选择。
训练自动编码器的总体目标是调整其内部参数 (parameter)(编码器和解码器中的权重 (weight)和偏置 (bias)),使重建输出 尽可能接近原始输入 。这种学习如何实际发生,通过损失函数 (loss function)和优化算法等机制,将在下一章中详细说明。目前,重要的理解是,解码器是负责将压缩知识()转换回完整数据表示()的组件。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•