过度拟合时分类精度提高

机器算法验证 验证 过拟合
2022-03-21 08:17:17

我正在训练一个分类模型,这些是准确性和损失历史的图表。

精度图 损失图

除了学习率太大的事实之外,我的理解是模型在 1000 轮左右开始过度拟合(您可以在损失图中看到一个圆点,表示在整个训练过程中为验证计算的最小损失),但是验证准确性不断提高,尽管速度很慢。

起初我认为在重新洗牌每个拆分的样本时,我错误地混合了训练和验证样本,但事实并非如此。

这里有什么问题吗?或者减少训练误差是否会以某种方式反映验证准确性,即使在过度拟合时也是如此?

更新:显然,验证集中的一些样本与训练集中的样本非常相似。我发现,随着训练的进行,模型学会了识别这些样本,而当它出错时所产生的损失变得非常大,从而导致平均损失不断增加。

2个回答

我认为这反映了您的数据的性质,您可以通过牺牲更有用的损失度量来提高准确性。

作为解释,假设您的数据是股票市场,并且您想对上涨或下跌的日子进行分类以进行投资。在这种情况下,并非所有日子都具有同等价值——相对几天的时间会成就或毁掉你的投资生涯——而提高对几乎没有变动或没有变动的日子的分类准确性与你想要的盈利结果无关。总体上具有相当差的准确性会好得多,但实际上在预测市场发生巨变的几天时却非常准确。

我认为即使分类和验证准确性之间的“传播”开始增加,但在许多时期内,它们都在不断增加。

只有当泛化性能真正开始下降时,您才能确定处于过度拟合状态,从而使验证误差曲线变成 U 形图。所以我不一定会从上图中推断出过度拟合的问题。

奇怪的是下面对应的损失图。在那里,我会看到一个非常明显的过度拟合,从 3000 纪元开始,但似乎验证损失的增加并没有反映验证分类的减少。这有点奇怪。

你用的是什么损失函数?

在您的情况下,可能是类集群非常紧凑,因此训练样本和测试样本之间没有太大差异,因此不容易显示过度拟合。但是那个损失图是可疑的..