如何通过查看图形知道模型是过拟合还是欠拟合

数据挖掘 深度学习 准确性 过拟合
2021-09-27 10:39:17

最近刚接触到张量板,但你能告诉我我应该在图中寻找哪些特征(准确度和验证准确度),并且请也启发我了解欠拟合的概念。

1个回答

过度拟合是一种场景,您的模型在训练数据上表现良好,但在训练期间未见的数据上表现不佳。这基本上意味着您的模型已经记住了训练数据,而不是学习特征和标签之间的关系。

如果您熟悉偏差/方差权衡,那么您可以将过度拟合视为模型具有高方差的情况,记住训练集中的随机噪声。

使用可用的准确度可视化很容易诊断过拟合。如果“准确度”(根据训练集测量)非常好,而“验证准确度”(根据验证集测量)不太好,那么您的模型过度拟合。

欠拟合与过拟合相反,其中您的模型表现出高偏差。当您的模型不够复杂而无法捕捉特征和标签之间的关系时(或者如果您的模型过于严格地正则化),就会出现这种情况。

欠拟合更难诊断。如果 Accuracy 和 Validation Accuracy 相似但都很差,那么您可能拟合不足。

编辑1:

避免过拟合/欠拟合的策略

回想一下,过度拟合是由模型记忆训练数据而不是学习从特征到标签的更一般的映射引起的。这通常发生在训练具有如此多参数的模型时,它几乎可以适合任何数据集。正如冯·诺依曼 (von Neumann) 所言,“我可以用四个参数来适应大象,用五个参数可以让他摆动鼻子。”

您可以通过降低模型的复杂性(即减少可训练参数的数量)来对抗过度拟合。具体如何完成取决于学习算法和领域。

对于神经网络,您可以使用更少的层(更浅的网络)、每层更少的神经元、层之间的更稀疏的连接(如在卷积网络中)或像 dropout 这样的正则化技术。

同样,您可以通过增加模型的复杂性来对抗欠拟合。这一直是近年来推动越来越深的神经网络的驱动力。通过更多层,网络可以学习更复杂的关系,并且可能在困难的现实世界任务中表现良好。

当然,您不能不顾一切地向网络添加层并期望获得出色的性能。由于许多统计和技术原因(其中之一是避免过度拟合),训练深度神经网络很困难。

因此,直接回答您的问题:如果您的网络过度拟合,添加更多层几乎肯定会使问题变得更糟,因为您正在增加模型的复杂性。如果您的网络拟合不足,添加更多层有所帮助,但它很少这么简单。您需要仔细考虑您期望网络如何运行以及可以采用哪些策略来确保它不会开始过度拟合。

编辑2:

PS 如果您是机器学习领域的新手,那么在学习过拟合/欠拟合和偏差/方差权衡时,尝试使用比神经网络更直观的模型可能会有所帮助。

我会推荐决策树(或回归问题的模型树)。基于树的模型很容易解释,使用决策树的最大深度和最小杂质减少等参数可能会帮助您对模型复杂性与过度拟合之间的关系有一些直觉。