如前所述,训练深度学习模型的主要目标不仅是在其训练数据上获得高准确率,而是在新的、未见过的数据上表现良好。这种能力称为泛化。当模型未能有效泛化时,通常属于两种情况之一:欠拟合或过拟合。让我们更仔细地审视这些。欠拟合:模型过于简单想象一下,你试图用一条直线穿过一组明显呈曲线分布的点。这条线不够复杂,无法反映数据的潜在模式。这便是欠拟合的实质。欠拟合模型未能学习到训练数据中重要的模式。它通常过于简单,可能因为容量不足(层数或神经元过少)或训练时间不够长。欠拟合的迹象:训练误差高: 模型即使在其训练过的数据上表现也很差。验证/测试误差高: 因此,模型在新的数据上表现也很差。验证误差可能与训练误差非常接近,但两者都高得无法接受。当模型欠拟合时,这表明它没有学习到输入特征与目标输出之间的相关关系。它具有高偏差,表明它对数据结构的设定过于简单或不正确。增加模型复杂度、添加更多相关特征或延长训练时间,可能有助于缓解欠拟合。过拟合:模型学得过多现在,考虑相反的情况。想象一下,你画了一条高度复杂、弯曲的线,它精确地穿过训练集中的每一个点,包括任何随机噪声或异常值。尽管这条线完美地描述了训练数据,但它不太可能代表真实潜在趋势,并且在预测新点时很可能会表现不佳。这便是过拟合。过拟合模型学训练数据学得太好了。它不仅学到了潜在的模式,还学到了训练集特有的噪声和随机波动。它实际上是记忆了训练样本,而不是学习管理数据的一般规律。过拟合的迹象:训练误差低: 模型在训练数据上表现优异。验证/测试误差高: 模型在新的、未见过的数据上的表现明显差于训练数据。训练误差与验证误差之间存在显著差距。过拟合通常发生于模型容量过大(相对于训练数据量过于复杂)或训练时间过长时。模型开始拟合噪声,导致泛化能力差。它具有高方差,表明其预测对所见到的具体训练数据高度敏感。正则化、获取更多数据或使用早停等方法是应对过拟合的常用手段。直观理解差异训练误差和验证误差在训练周期内的关系提供了一个有用的诊断工具。我们可以直观了解欠拟合、过拟合以及良好拟合模型的典型模式。{"layout": {"title": {"text": "训练误差对比验证误差"}, "xaxis": {"title": {"text": "训练周期"}}, "yaxis": {"title": {"text": "误差"}}, "legend": {"title": {"text": "情况"}}, "margin": {"t": 40, "b": 40, "l": 40, "r": 10}, "width": 600, "height": 400}, "data": [{"type": "scatter", "mode": "lines", "name": "欠拟合(训练)", "x": [1, 10, 20, 30, 40, 50], "y": [0.8, 0.75, 0.72, 0.71, 0.7, 0.7], "line": {"color": "#4263eb", "dash": "dash"}}, {"type": "scatter", "mode": "lines", "name": "欠拟合(验证)", "x": [1, 10, 20, 30, 40, 50], "y": [0.82, 0.78, 0.75, 0.74, 0.73, 0.73], "line": {"color": "#4263eb"}}, {"type": "scatter", "mode": "lines", "name": "过拟合(训练)", "x": [1, 10, 20, 30, 40, 50], "y": [0.7, 0.4, 0.25, 0.15, 0.1, 0.05], "line": {"color": "#f03e3e", "dash": "dash"}}, {"type": "scatter", "mode": "lines", "name": "过拟合(验证)", "x": [1, 10, 20, 30, 40, 50], "y": [0.72, 0.45, 0.35, 0.38, 0.45, 0.55], "line": {"color": "#f03e3e"}}, {"type": "scatter", "mode": "lines", "name": "良好拟合(训练)", "x": [1, 10, 20, 30, 40, 50], "y": [0.75, 0.45, 0.3, 0.2, 0.15, 0.12], "line": {"color": "#37b24d", "dash": "dash"}}, {"type": "scatter", "mode": "lines", "name": "良好拟合(验证)", "x": [1, 10, 20, 30, 40, 50], "y": [0.77, 0.5, 0.38, 0.3, 0.28, 0.27], "line": {"color": "#37b24d"}}]}训练期间误差曲线的比较。欠拟合时,训练(蓝色虚线)和验证(蓝色实线)误差都较高。过拟合时,训练误差(红色虚线)下降,但验证误差(红色实线)在某个点后上升。良好拟合则显示两种误差均下降并趋于收敛(绿色线条)。在模型复杂度和数据中的模式之间找到恰当的平衡点是基本要求。过于简单的模型(欠拟合)学不到足够信息,而过于复杂的模型(过拟合)会学到不正确的东西(噪声)。后续章节中讨论的方法,即正则化和优化手段,旨在帮助把握这种平衡,并构建在新的数据上泛化良好的模型。