趋近智
自动编码器的训练过程核心在于让网络尽可能准确地重构其输入。如前所述,自动编码器包含一个用于压缩输入的编码器和一个用于重构输入的解码器。它的奥秘在于如何调整网络的内部参数、即权重和偏置,以便更好地完成此重构任务。这通过标准的神经网络训练方案实现,但其独特之处在于:它是一种无监督学习的形式。
有监督学习涉及使用输入数据和相应的明确标签来训练模型。例如,在图像分类任务中,你会提供图像(输入)以及它们的类别,如“猫”或“狗”(标签)。然而,自动编码器不需要这类外部标签。相反,输入数据本身就作为目标。自动编码器会学习产生一个输出,使其尽可能接近原始输入。由于目标直接源自输入数据,这被视为一种无监督学习任务。网络通过以受约束的方式学习恒等函数(),并强制通过瓶颈层,从而学习数据的表示。
训练过程的核心是损失函数,它量化了重构输出与原始输入之间的差异。训练的目标是最小化此重构误差。
如本章前面所述,对于连续输入数据,例如图像中的像素强度(归一化到[0, 1]范围)或数据集中的数值特征,**均方误差(MSE)**是一个常见选项。它的计算方式如下:
此处,是数据点(或图像中的像素,或向量中的特征)的数量,是原始输入的单个元素,是重构输出的相应元素。
如果你的输入数据是二值的(例如,黑白像素,其中值严格为0或1),或者如果解码器的输出层使用S型激活函数(它将输出压缩到[0, 1]范围,可解释为概率),那么**二元交叉熵(BCE)**通常是更合适的损失函数。对于单个数据点,它的定义如下:
其中是输入向量的维度,是真实输入的第个元素,是重构输出的第个元素(通常是S型激活的输出)。当模型自信地做出错误预测时(例如,当真实值为1时预测为0.1),此损失函数会对其进行严重惩罚。
训练自动编码器涉及迭代地将数据馈送到网络中,并调整其权重以减少重构损失。此过程通常使用优化算法,例如**随机梯度下降(SGD)**或其更高级的变体,如Adam、RMSprop或Adagrad。这些算法与反向传播算法一同,是深度学习的主力。
以下是单个训练步骤的分解:
前向传播:
损失计算:
反向传播:
权重更新:
整个序列(前向传播、损失计算、反向传播和权重更新)会重复进行多个数据批次。当网络处理完整个训练数据集一次时,就完成了一个周期(epoch)。训练通常涉及运行多个周期。
此图描绘了自动编码器的训练循环。输入数据流经编码器到达瓶颈层,然后通过解码器产生重构数据。通过比较输入和重构数据来计算损失,此损失通过反向传播和优化器用于更新网络的权重。
几个因素影响训练过程:
通过这种迭代的重构和优化过程,自动编码器的编码器会学习将输入数据提炼成瓶颈层中高效的压缩表示。同时,解码器学习如何利用这种压缩形式并忠实地重构原始数据。我们通常对这种学习到的压缩表示感兴趣,用于特征提取,因为它理想情况下捕捉了数据中最突出、信息量最丰富的部分。下一节将更仔细地研究这些有意义的特征是如何找到的。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造