加强正确的预测是否会进一步提高模型的准确性?

人工智能 神经网络
2021-10-25 12:20:49

假设我已经训练了一个 CNN,它可以预测/推断它以前从未见过的实时样本。如果网络做出正确的预测,在重新训练网络时将其作为新样本包含在其训练集中是否会进一步提高模型的准确性?

我对此不确定,因为似乎网络已经学习了做出正确预测所需的特征,因此将其添加为新的训练样本可能是多余的。另一方面,它也可能向网络强化它在正确的轨道上,也许让它进一步自信地用它学到的关于该类的任何特征进行泛化,它可能能够应用于其他图像中的同一类否则它可能会做出不正确的预测?

我想到这个的原因是手动标记每个图像是一个耗时的过程,但是如果在网络进行实时预测后出现一个简单的“正确/不正确”弹出框,那么只需单击一个一个按钮来生成一个新的标记训练样本,这将是一个更容易的标记任务。

那么做这样的事情会有多大用处呢?

1个回答

你的建议是有风险的。可能会改进您的分类器,但也可能会减少泛化。

两个相互冲突的因素是:

  • 将数据点添加到能够学习更多细节的模型可以提高其性能。

  • 从与目标人群不同的数据点分布进行训练可能会降低其性能。

从第一点开始,您需要您的模型能够接受新数据。这可能比您最初想象的更难实现 - 如果您通过使用交叉验证调整了一些正则化参数,那么您可能至少部分饱和了模型的容量以防止过度拟合。这意味着适应新数据可能还需要重新调整您的超参数 - 但您可能不需要从头开始,只需在附近搜索即可。

从第二点很难看出影响。这里不会有一个普遍的答案,太多取决于如何为您的问题安排数据。我的直觉是,您最初会注意到模型的改进,但由于自我选择已经正确的数据点,回报将会递减。

您绝对应该保留在生产中分发的交叉验证数据集,这些数据已被正确且完整地标记以评估这项工作。这将是您评估泛化是否正在使用您的方法改进的方法。

最坏的情况:您可能需要返回并重新标记错误,以显着提高模型的性能。所以我建议你的部分自动标签过程应该将错误分类的项目存储在某个地方,这样你就可以重新访问它们并花费额外的精力。

可悲的是,即使收集更正确标记的数据也不能保证修复——一些模型已经有足够的数据。您可以通过使用不同大小的训练集(从您目前拥有的可用训练数据)进行训练来检查这是否适用于您的情况,并查看当您增加训练集大小时性能的趋势。事实上,在您投入大量精力收集更多数据之前,您可能应该先这样做。