【问题标题】:My trained image classifer model classify all the images that are not even in the category我训练有素的图像分类器模型对甚至不在类别中的所有图像进行分类
【发布时间】:2019-03-31 12:57:29
【问题描述】:

我已经训练了一个模型来识别动物,它正在工作,部署到 Android 应用程序中。我正在寻找一种解决方案,使图像分类器仅对经过训练的类别进行分类。我不确定是通过模型训练还是要添加任何代码来解决这个问题。

例如,如果发送一个杯子的图片进行分类,结果显示为 Dog 或其他一些动物名称。如何仅对给定类别进行分类,除此之外的任何其他内容都将其显示为“不是动物”。

我使用的是 Tensorflow 1.12,MobileNet 模型

【问题讨论】:

    标签: java android python-3.x tensorflow


    【解决方案1】:

    简单直接的解决方案是创建额外的二元分类器,将动物与其他事物进行分类。所以第一步是对给定的图片是否是动物进行分类。如果第一步成功,第二步是分类它是什么动物。

    您正在使用的当前 ML 框架的一个限制是无法推断功能的不确定性。从数据集中提取的特征通常以点估计的形式给出,它们并不能反映模型对其估计的置信度。要量化不确定性,您需要概率贝叶斯模型(例如高斯过程)。这样的模型更复杂,因为模型的权重被假定为从某个概率分布中得出。输入x* 的输出y* 将是具有一些均值和方差的概率分布。高方差表明模型的预测不确定。

    有一些很棒的文献可以详细阅读:

    1. Uncertainty in Deep Learning by Yarin Gal
    2. Gaussian Processes for Machine Learning Carl Edward Rasmussen 和 Christopher K.I. Williams

    【讨论】:

      【解决方案2】:

      检查概率分数呢?即使杯子被归类为 Dog ,它的得分也会更低。所以你可以设置你的门槛。如果概率得分>阈值,则显示为动物,否则不显示。

      【讨论】:

      • 目前,模型重新训练了 2 个类别,即狗和仓鼠。现在杯子的概率是0.95……仓鼠。这种情况有可能吗?
      猜你喜欢
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 2021-04-05
      • 2017-06-08
      • 2020-10-05
      • 2021-07-09
      • 2018-11-30
      • 1970-01-01
      相关资源
      最近更新 更多