图像分类迁移学习是否需要反例?

Does image classification transfer learning require negative examples?

任务是确定图像属于 3 个 class 中的哪一个,或者 none。

我收到了现成的模型。具有 ImageNet 权重的 EfficientNet B4 应用迁移学习来识别 4 classes:3 个目标目标和第 4 个 "None"。后者接受了不包含任何目标对象的随机图像示例的训练。

问题是它是否是正确的方法 – 是否需要第 4 个 class?

我的直觉是应该只在 3 个目标 classes 上训练网络。如果输出概率保持在某个阈值(90%?)以下,则图像应被视为不包含任何目标对象。我说得对吗?

由于 softmax 函数的性质和网络训练的方式,您需要第 4 个 class。

让我们看一个具体的例子:你训练你的网络来区分苹果、橙子和香蕉。然而,你莫名其妙地得到了一张李子的照片。

乍一看您可能会感到惊讶,但您需要数据集中的另一个 class。不能保证使用阈值会帮助您消除其他 class.

您可能会想到以下两种情况:

  1. 对于未知 class,输出概率保证为 1/N,假设您正在测试未知 N+1 class。
  2. 超过某个阈值(如您假设的那样)< 90% 它不是 class。

假设接下来的情况:

  1. 如果你有一个苹果真的看起来像 橙色,您的模型正确预测了 40% 苹果、30% 橙色、30% 香蕉,但由于您应用了正确识别的阈值 apple (True Positive) 被淘汰了?消除网络良好输出的简单案例
  2. 你仍然可以对 class 进行 91% 的分配,尽管新的 'fruit' 到达不是你的数据集的一部分;这是由于固有的计算和 softmax 的工作方式。

个人经验:我曾经训练过一个网络来区分多种类型的交通标志。出于纯粹的好奇,我给了它一个客厅椅子的例子。我期待和你一样的事情(阈值),但令我惊讶的是,它是 85%“屈服方式”。