假设我有一个训练有素的 CNN 模型来对图像上的一些对象进行分类。通过使用这个模型,我发现了更多分类的图像。如果我现在在包含旧集和新分类图像的数据集上重新训练这个模型,这种新模型是否有可能具有更高的准确性?或者可能是因为新数据仅包含可以在初始集上找到的信息,模型将具有相似/较低的准确性?
如果有不清楚的地方,请告诉我。
假设我有一个训练有素的 CNN 模型来对图像上的一些对象进行分类。通过使用这个模型,我发现了更多分类的图像。如果我现在在包含旧集和新分类图像的数据集上重新训练这个模型,这种新模型是否有可能具有更高的准确性?或者可能是因为新数据仅包含可以在初始集上找到的信息,模型将具有相似/较低的准确性?
如果有不清楚的地方,请告诉我。
这种方法最可能的结果是浪费时间并且对准确性的影响很小。
模型会有变化。有些会有益并改进模型,但有些会适得其反,使情况变得更糟。
例如:
该模型以 0.4 的概率预测图像属于某个类别。这是最高的预测,实际上是正确的。它将以概率为 1.0 的“基本事实”添加到训练数据集中,因此平衡了更多更好的数据已添加到数据集中。这将提高泛化能力,因为最初导致相对较低的 0.4 值的任何因素(例如姿势或光照变化)现在都将在训练集中正确覆盖。
该模型以 0.4 的概率预测图像属于某个类别。这是最高的预测,实际上是错误的。它将被添加到错误类别的概率为 1.0 的“基本事实”的数据集中。这将削弱与相似输入图像的正确类别的关联,例如,已经对模型造成问题的某个姿势或光照差异将被用于将来对图像进行错误分类。
平均而言,这两种情况将以模型当前测试精度确定的速率发生。因此,如果您当前的模型准确率为 90%,那么新训练数据中十分之一的图像将被错误标记。这将以与它们已经发生的平均速率相同的速率“锁定”当前错误。
由于模型肯定会因新的训练数据而发生变化,因此影响可能是准确性的上升或下降。但是,如果您不愿意或无法监督模型对新数据生成的自动分类,您几乎无法控制这种漂移效应的发生方式。
有几种方法可以在没有监督的情况下从新数据中获得一些改进。例如:
从模型的早期卷积层构建一个自动编码器,并训练它重新生成所有输入作为输出。这应该有助于它了解您正在使用的数据变化的重要特征。完成此训练后,丢弃自动编码器的解码器部分并重新添加分类器以对其进行微调。如果您只有少量标记数据但有大量未标记数据,这可能会有所帮助。
使用比您的模型更准确的模型来自动标记数据。这可能看起来有点鸡和蛋,但您可以使用集成技术创建这样的模型。集成模型在生产中使用可能太笨拙,但仍可用于自动标记管道以改善您的训练数据。
请注意,您可能会获得更好的结果,只需忽略额外的未标记数据,而是在已有的标记数据上微调高质量的 ImageNet 训练模型 - 为您节省大量精力。取决于图像的性质,以及您已经使用了多少标记数据。