如何最好地处理图像分类中的“以上都不是”?

2023-12-28

这似乎是一个基本问题,你们中的一些人必须对此有自己的看法。我有一个用 CNTK 实现的图像分类器,有 48 个类。如果图像与 48 个类别中的任何一个都不能很好地匹配,那么我希望能够得出结论,它不属于这 48 个图像类型。我最初的想法很简单,如果最终 Softmax 层的最高输出较低,我就可以得出测试图像匹配不佳的结论。虽然我偶尔会看到这种情况发生,但在大多数测试中,当提供“未知图像类型”时,Softmax 仍然会产生非常高(且错误)的结果。但也许我的网络“过度适应”,如果不是,我最初的想法就可以正常工作。你怎么认为?有什么方法可以定义名为“none-of-the-above”的第 49 类吗?


您确实有这两个选项——对后验概率(softmax 值)进行阈值设置,并添加垃圾类。

在我的领域(演讲),这两种方法都有其用武之地:

如果“以上都不是”输入与“以上”具有相同的性质(例如非语法输入),则阈值处理效果很好。请注意,类别的后验概率等于一减去选择该类别的错误率的估计。拒绝后验概率

如果“以上都不是”输入具有相似的性质,但您的类别数量非常小(例如 10 位数字),或者如果输入具有完全不同的性质(例如关门声或某人咳嗽的声音),则阈值化通常会失败。然后,人们会训练一个“垃圾模型”。根据我们的经验,包含正确类别的训练数据是可以的。现在,上述类别中的任何一个也可能与正确的类别匹配。但只要上述类别没有过度训练,那就没问题了——它的分布会更加平坦,因此即使它与已知类别匹配,它也会以较低的分数匹配它,从而不会战胜它实际已知类的 softmax 输出。

最后,我会同时使用两者。一定要使用阈值(以捕获系统可以排除的情况)and使用垃圾模型,我会根据你拥有的任何东西来训练它。我希望在训练中包含正确的示例不会造成损害,即使它是您拥有的唯一数据(请检查 Anton 发布的论文,了解这是否也适用于图像)。尝试合成数据也可能有意义,例如通过随机组合来自不同图像的补丁。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何最好地处理图像分类中的“以上都不是”? 的相关文章

  • Python OpenCV SVM 实现

    因此 我有一个包含样本图像的矩阵 全部转换为向量 该矩阵通过 PCA LDA 运行 还有一个向量表示每个图像所属的类 现在我想使用 OpenCV SVM 类来训练我的 SVM 我使用的是 Python OpenCV 2 3 1 但我在定义参
  • 解析 HTML:成人分类系统

    我正在研究网络上使用的不同且 有时已过时 的评级 分类标准 IE PICS http www w3 org PICS POWDER http www w3 org 2007 powder ICRA http www fosi org icr
  • 如何计算sklearn中交叉验证的每个模型中的特征重要性

    我在用RandomForestClassifier with 10 fold cross validation如下 clf RandomForestClassifier random state 42 class weight balanc
  • 如何在java中使用StringToWordVector(weka)?

    这是我的arff文件 relation hamspam attribute text string attribute class ham spam data good ham very good ham bad spam very bad
  • 如何将 Scikit Learn 分类器应用于大图像中的图块/窗口

    给出的是 scikit learn 中经过训练的分类器 例如ARandomForestClassifier 分类器已经过对大小样本的训练 例如25x25 如何轻松地将其应用于大图像 例如 640x480 中的所有图块 窗口 What I c
  • K 最近邻算法 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 使用 KNN 算法 假设 k 5 现在我尝试通过获取 5 个最近的邻居来对未知对象进行分类 如果确定 4 个最近邻居后 接下来的 2 个
  • 如何在keras中可视化卷积神经网络中间层的输出?

    最近我创建了用于猫和狗分类的基本 CNN 模型 非常基本 如何使用 keras 可视化这些层的输出 我使用 keras 的 Tensorflow 后端 您可以定义一个模型 获取您想要查看的每一层的输出并进行预测 假设您有完整的模型 cnnM
  • 聚类和贝叶斯分类器 Matlab

    因此 我正处于下一步该做什么的十字路口 我开始学习一些机器学习算法并将其应用于复杂的数据集 现在我已经做到了 我从一开始的计划就是结合两种可能的分类器 试图建立一个多分类系统 但这就是我被困住的地方 我选择聚类算法 模糊 C 均值 在学习了
  • MATLAB - 从分类器生成混淆矩阵

    我有一些测试数据和标签 testZ 0 25 0 29 0 62 0 27 0 82 1 18 0 93 0 54 0 78 0 31 1 11 1 08 1 02 testY 1 1 1 1 1 2 2 2 2 2 2 2 2 然后我对它
  • 为什么 import cntk as C 在 google colab 中不起作用

    我安装了opencv版本3 4 4 安装了cntk 导入到google collab给出了以下结果 import cntk as C usr local lib python3 6 dist packages cntk cntk py in
  • 在 Weka 中对单实例进行分类

    我使用 WEKA gui 训练并创建了 J48 模型 我将模型文件保存到我的计算机上 现在我想用它对我的 Java 代码中的单个实例进行分类 我想获得对属性 簇 的预测 我所做的如下 public void classify double
  • 如何生成阳性预测值 (PPV) 与各种分类截止点的关系图?

    我生成了一些分数来帮助预测某些内容是 是 1 还是 否 0 假设数据包括 scores c 10 20 response c 0 0 1 0 1 0 1 1 0 1 1 mydata data frame scores response 我
  • 如何在CARET中自定义模型来执行PLS-[Classifier]两步分类模型?

    这个问题是同一线程的延续here https stats stackexchange com questions 81727 what is the best strategy to train and validate classific
  • 在java代码中使用WEKA API时出现错误:类属性未设置?

    我正在尝试在我的java代码中使用weka API 我使用 J48 树分类对 MySQL 数据库中的数据集进行分类 但出现以下错误 Trying to add database driver JDBC RmiJdbc RJDriver Er
  • 如何检查 Tensorflow LinearClassifier 的特征权重?

    我正在尝试理解使用 TensorFlow 的大规模线性模型 https www tensorflow org tutorials linear文档 这些文档对这些模型的推动如下 线性模型比神经模型更容易解释和调试 网 您可以检查分配给每个特
  • 如何使用pytorch构建多任务DNN,例如超过100个任务?

    下面是使用 pytorch 为两个回归任务构建 DNN 的示例代码 这forward函数返回两个输出 x1 x2 用于大量回归 分类任务的网络怎么样 例如 100 或 1000 个输出 对所有输出 例如 x1 x2 x100 进行硬编码绝对
  • 使用 SVM 预测概率

    我编写了这段代码并想获得分类的概率 from sklearn import svm X 0 0 10 10 20 30 30 30 40 30 80 60 80 50 y 0 1 2 3 4 5 6 clf svm SVC clf prob
  • 使用 libsvm 交叉验证后重新训练

    我知道交叉验证用于选择好的参数 找到它们后 我需要在不使用 v 选项的情况下重新训练整个数据 但我面临的问题是 在使用 v 选项训练后 我得到了交叉验证精度 例如 85 没有模型 我看不到 C 和 gamma 的值 在这种情况下我该如何重新
  • 在监督分类中,使用partial_fit() 的MLP 比使用fit() 的表现更差

    我正在使用的学习数据集是灰度图像flatten让每个像素代表一个单独的样本 第二张图像在训练后将被逐像素分类Multilayer perceptron MLP 前一个分类器 我遇到的问题是MLP当它一次接收到所有训练数据集时表现更好 fit
  • 增量决策树 C++ 实现

    有谁知道决策树分类器的增量实现吗 这样 当您将新实例添加到训练集中时 它可以根据现有决策树分类器以低计算量并尽可能快地生成最佳决策树分类器 换句话说 我有一个最优决策树分类器集A 其中命名为T 1 现在我想添加实例X to set A并找到

随机推荐