是否可以过度训练分类器?

机器算法验证 分类 神经网络 收敛 卷积神经网络 过拟合
2022-03-21 19:50:30

上下文:我正在构建一个用于文本分类的 CNN 分类器。我有一个包含 20 个不同类别和大约 20,000 个标记特征的数据集(感兴趣的人可以使用 20 个新闻组数据集)。

我想知道我是否在太多的时期训练我的模型,这将使​​它非常擅长对我的训练数据集中的特征进行分类,但无法适应新的/略有不同的输入。这就是我们所说的“过拟合”吗?这个词对我来说不是很清楚。

此外,我想澄清神经网络的“收敛”一词。当精度开始趋于平稳时,是否达到了这种收敛?还是跟损失值有关?

2个回答

Pankaj Daga 的扩展很棒,我会负责插图。这是训练神经网络时的典型曲线:

在此处输入图像描述

测试集报告的 F1-score 应该是验证集的 F1-score 最高的 epoch 的测试集的 F1-score。(这在图中称为“测试最佳”)

您对时代的评论是正确的。因此,如果您使用的 epoch 太少,您可能会欠拟合,而使用太多的 epoch 会导致过度拟合。如您所知,您始终可以通过增加模型复杂度和增加 epoch 步数来任意提高训练精度。尝试缓解此问题的一种方法是提前停止。在伪代码中:

  • 将数据拆分为训练集、验证集和测试集。
  • 在每个时期或每个N时期:
    • 评估验证数据集上的网络错误。
    • 如果验证错误低于以前的最佳值,则将网络保存到 epoch。
  • 最终模型是在验证集上表现最好的模型。

这与您在机器学习方法中使用的经典交叉验证技术非常相似。

关于收敛,如果您的误差度量和权重在几次迭代中相对恒定,您通常会说网络已经收敛到某个局部最小值。