图像分类迁移学习需要负例吗?

Ser*_*rge 3 classification neural-network keras tensorflow efficientnet

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

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

问题是这是否是正确的方法——是否需要第四堂课?

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

Tim*_*lin 5

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

让我们看一个具体的例子:你训练你的网络来区分苹果、橙子和香蕉。然而,你不知何故得到了李子的照片。

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

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

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

假设以下情况:

  1. 如果您有一个苹果看起来像橙子的情况,并且您的模型正确预测了 40% 的苹果、30% 的橙子和 30% 的香蕉,但由于您应用了阈值,因此消除了正确识别的苹果(真阳性),该怎么办?一个简单的案例,您消除了网络的良好输出
  2. 您仍然可以将 91% 的分配分配给一个类,尽管新的“水果”到达不是您的数据集的一部分;这是由于固有的计算和 softmax 的工作方式。

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