我已经训练了一个识别动物的模型,它正在运行,已部署到 Android 应用程序中。我正在寻找一种解决方案,使图像分类器只对经过训练的类别进行分类。我不确定是通过模型训练还是添加任何代码来解决这个问题。
例如,如果发送一张杯子的图片进行分类,结果显示为狗或其他一些动物名称。如何只对给定的类别进行分类,除此之外的任何其他类别都将其显示为“不是动物”。
我正在使用 Tensorflow 1.12,MobileNet 模型
最佳答案
简单直接的解决方案是创建额外的二元分类器来对动物与其他所有事物进行分类。所以第一步是对给定的图片是否是动物进行分类。如果第一步成功,第二步就是对它是什么动物进行分类。
您当前使用的机器学习框架的局限之一是无法推断特征的不确定性。从数据集中提取的特征通常以点估计的形式给出,它们并没有捕捉到模型对其估计的信心程度。要量化不确定性,您需要概率贝叶斯模型(例如高斯过程)。这样的模型更复杂,因为假设模型的权重是从某种概率分布中得出的。输入 x*
的输出 y*
将是具有一定均值和方差的概率分布。高方差表明模型在其预测中不确定。
有一些很棒的文献,您可以在其中详细阅读:
- Uncertainty in Deep Learning通过 Yarin Gal
- Gaussian Processes for Machine Learning Carl Edward Rasmussen 和 Christopher K. I. Williams 着
关于java - 我训练的图像分类器模型对所有不属于该类别的图像进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55441123/