我应该选择损失最小还是准确率最高的模型?

人工智能 深度学习 长短期记忆 损失 准确性 验证
2021-11-01 23:07:42

我有两个机器学习模型(我使用 LSTM),它们在验证集(~100 个样本数据)上有不同的结果:

  • 模型 A:准确度:~91%,损失:~0.01
  • 模型 B:准确度:~83%,损失:~0.003

两种型号的尺寸和速度几乎相同。那么,我应该选择哪种型号?

3个回答

您应该选择模型 A。损失只是准确性的可微分代理。

也就是说,应该更详细地检查这种情况。如果较高的损失是由于数据项造成的,请检查产生高损失的数据并检查是否存在过度拟合或不正确的标签。

如果较高的损失是由于正则化器造成的,那么降低正则化因子可能会进一步改善结果。

您应该注意,您的两个结果都与 87% 准确度的“真实”概率一致,并且您对这些模型之间差异的测量在统计上不显着。随机应用 87% 的准确度,如果样本是从目标人群中随机选择的,那么有大约 14% 的机会获得您偶然观察到的两个极端准确度,并且模型足够不同,可以有效地随机产生错误。不过,最后一个断言通常不正确,因此您可以放松一点——也就是说,除非您在每种情况下都采用不同的随机切片进行交叉验证。

100 个测试用例并不足以辨别模型之间的细微差异。我建议使用 k 折交叉验证来减少准确性和损失估计中的错误。

此外,在这两种情况下检查交叉验证拆分是否相同也很重要。如果您使用了标准工具的自动拆分并且没有设置适当的 RNG 种子,那么您可能每次都得到不同的集合,并且您的结果只是显示由于验证拆分而导致的差异,这可能会完全淹没两者之间的任何差异模型。

但是,假设每次都使用完全相同的数据集,并且它是目标人群的代表性样本,那么平均而言,您应该期望具有最佳指标的数据集最有可能成为最佳模型。

你真正应该做的是在实验之前决定选择基于哪个指标。该指标应与模型的某些业务目标相匹配。

现在您正在尝试事后选择,您应该回到最初创建模型的原因,看看您是否可以识别正确的指标。它可能不是准确性或损失。

这取决于您的应用程序!想象一个总是非常“自信”的二元分类器——它总是将 P=100% 分配给 A 类,将 0% 分配给 B 类,反之亦然(有时是错误的,从不不确定!)。现在想象一个“简陋”的模型,它可能不太准确,但它的概率实际上是有意义的(当它说“A 类概率为 70%”时,它在 30% 的情况下是错误的)。

在您的情况下,两种损失都非常小,因此我们可能更喜欢更准确的损失。