趋近智
自动编码器的解码器组件接收来自前置瓶颈层的压缩数据表示,通常表示为 。它的作用是将这个紧凑的摘要转换回一个尽可能接近原始输入数据的格式。这个重要的重建过程最终在自动编码器的输出层完成,该层负责生成最终的重建数据。
输出层是解码器工作的最终成果。它在此处生成网络对原始输入数据的最佳推测,我们称之为重建数据,通常表示为 。可以把编码器看作是将复杂的绘图概括为少量重要指令(即瓶颈 ),而解码器,特别是其输出层,则尝试仅根据这些指令重新绘制原始图像。
输出层的主要作用是生成与原始输入数据 具有相同形状和格式的数据。如果您的输入是图像,输出层必须生成相同尺寸的图像。如果您的输入是一组数值特征,输出层必须生成相同数量的数值特征。
输出层结构的一个重要方面是其大小,具体来说是它包含的神经元(或单元)数量。这个数量必须与原始输入数据的维度相匹配。
例如:
维度上的这种一一对应关系是根本性的,因为自动编码器通过将其输出 与原始输入 直接比较进行训练。如果它们的形状不匹配,这样的比较将无法进行。
下图展示了输出层在解码器中的位置以及它在生成重建数据中的作用。
解码器最终在输出层生成重建数据 。 的维度(例如,像素或特征的数量)必须与原始输入 的维度相匹配。
与神经网络 (neural network)中的其他层一样,输出层通常对其输入的加权和(加上偏置 (bias))应用激活函数。输出层激活函数的选择很重要,因为它决定了重建输出 中值的性质和范围。这个选择应该与输入数据的特点保持一致。
Sigmoid 函数: 如果您的输入数据归一化 (normalization)到0到1的范围(例如,灰度图像中的像素强度,其中0是黑色,1是白色),Sigmoid激活函数是一个常用选择。 Sigmoid 函数定义为:
它将任意输入值 压缩到0到1之间的输出值。这使其适合重建自然落在此范围内的值的数据。例如,如果一个输入像素值为0.8,Sigmoid 函数有助于该像素的输出神经元生成接近0.8的值。
线性函数(或无激活): 如果您的输入数据可以是任意实数值(正或负,没有特定上限或下限),或者如果它归一化到-1到1等不同范围,Sigmoid 不适用,则通常使用线性激活函数。线性激活函数意味着神经元的输出就是其输入的加权和加上偏置: 。实践中,这通常通过不指定激活函数来实现,因为直接使用了原始的和。
Tanh(双曲正切)函数: 如果您的输入数据归一化到-1到1的范围,tanh 函数是个不错的选择。它将值压缩到 (-1, 1) 的范围。
输出激活函数的选择受以下需求的引导:生成重建数据 ,其值与原始输入 处于相同的域中。这确保了 和 之间的比较(使用损失函数 (loss function),我们稍后讨论)是有意义的。
输出层神经元在经过所选激活函数 (activation function)后生成的值,构成了重建数据 。这个 是自动编码器在数据经过瓶颈压缩后,尝试重现原始输入 的结果。 越接近 ,自动编码器就越好地学到了数据中的主要信息。
总之,输出层是一个重要组成部分,它:
了解输出层的结构和作用,以及编码器和瓶颈层,能让您对自动编码器的架构有一个全面的认识。接下来,我们将研究这些组件如何在学习过程中配合工作。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•