趋近智
在训练自编码器时,如前所述,我们的主要目的就是让重建输出尽可能接近原始输入。我们通过损失函数来衡量这一点,并试图将其减小。但就像一个通过背诵特定问答来备考的学生一样,模型有时会对训练数据学习过度,或学习不足。这在机器学习中会引出两种常见情形:过拟合与欠拟合。让我们简单看一下这些在自编码器中的含义。
设想你正在学画一只猫,但你只看了一张非常模糊的图片,或者只花了很少时间研究。之后你画的猫可能就不太像了。这类似于欠拟合。
当自编码器过于简单,无法捕获数据中的重要模式时,就会发生欠拟合。它未能学到数据的基础结构,因此不仅在新数据上表现差,在训练过的数据上表现也差。两种情况下的重建误差都会很高。
什么可能导致自编码器欠拟合呢?
欠拟合的自编码器不擅长重建输入,而且它在瓶颈层学到的特征可能过于普通或不完整,无法派上用场。
在欠拟合情形下,训练误差和验证误差都保持高位,表明模型没有很好地学习数据。
现在,设想相反情况。你正在准备那场考试,但你没有理解主题,而是记住课本例子中的每一个标点符号。你可能在那些使用完全相同例子的测试中取得高分,但如果问题略有不同,你就会很吃力。这就是过拟合。
当自编码器对训练数据学习得过于具体,包括该特定数据集中的任何噪声或随机波动时,就会发生过拟合。它变得如此适应训练例子,以至于无法泛化到新的、未见过的数据。因此,你会看到训练数据上的重建误差非常低,但当你用它之前未遇到的数据进行测试时,误差会高得多。
为什么会发生过拟合?
过拟合的自编码器可能会给你训练图像的美丽重建,但它提取的特征可能对那些特定图像过于定制化,对于更广泛的用途不太有用。
过拟合的特点是训练误差减小,但在某个点之后验证误差开始增加。
我们的目标是良好拟合。这是指自编码器能够从训练数据中很好地学到真实的基础模式,从而泛化到新数据。它不只是记忆训练集,也不会过于简单而无法捕获重要信息。训练误差和未见过数据上的误差(通常称为验证误差或测试误差)都较低并彼此接近。
良好拟合的模型表明训练误差和验证误差都收敛到低值。
即使自编码器通常以无监督方式训练(只是尝试重建输入),瓶颈层中学到的表示的质量也具有重要作用。
因此,在减小重建误差的同时,我们还需要注意模型是在学习可泛化的特征还是仅仅记忆。
这只是对这些内容的一个快速介绍。有各种方法可以帮助避免过拟合并确保你的模型泛化良好,例如调整模型复杂度、使用正则化方法,或在适当时间停止训练(一种称为早期停止的方法)。我们现在不会详细说明这些,但当你开始使用自编码器及其他机器学习模型时,了解这些常见问题是有益的。当你准备构建你的第一个自编码器时,记住这些可能的问题将帮助你更好地理解训练过程并评估模型表现。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造