具有“未知”类的机器学习分类算法

时间:2016-06-08 21:58:01

标签: algorithm

据我所知,如果我在苹果,梨和香蕉的样本图片上训练ML分类算法,它将能够在这三个类别之一中对新图片进行分类。但是,如果我提供一辆汽车的照片,它也会将其分类为这三个类中的一个,因为它无处可去。

但是有没有一个ML分类算法能够判断一个项目/图片是否真的不属于它所训练的任何类别?我知道我可以创建一个“未知”的课程,并在各种不是苹果,梨或香蕉的图片上进行训练,但我认为训练集需要很大。这听起来不太实际。

4 个答案:

答案 0 :(得分:3)

在本文中可以找到一种方法 - https://arxiv.org/pdf/1511.06233.pdf

本文还比较了简单地将阈值放在最终得分上的结果和作者提出的(OpenMax)技术。

答案 1 :(得分:2)

您应该查看One-class classification。这是学习班级成员资格的问题,而不是区分两个班级。如果第二类的示例太少(例如,“非同类”),或者没有很好地定义“非同类”类,这将很有趣。

这曾经一次出现在我的脑海中,是将Wikipedia文章归类为某种缺陷-由于尚不清楚未标记为缺陷的文章是否确实没有缺陷,因此一种方法是一类分类。我必须补充一点,尽管这对于我的问题来说效果不佳,所以您应该将性能与其他解决方案进行比较。

答案 2 :(得分:1)

编辑02/2019:

我同意以下评论,原始形式的以下答案不正确。您绝对需要负样本来为训练数据集提供一些平衡,否则您的模型可能无法在正样本和负样本之间学习有用的鉴别器。

话虽这么说,你不需要训练每一个可能的负面课程,只需要在你进行推理时可能存在的那些课程。这将更多地解决您如何设置问题以及计划如何使用训练有素的模型。

原始答案:

大多数分类算法都会输出一个分类以及一个分数/确定性度量,表明该算法对返回标签的正确性有多大(基于一些内部计算,这不是外部精度评估)。

如果分数低于某个阈值,您可以输出unknown而不是其中一个已知类。没有必要训练负面的例子。

答案 3 :(得分:0)

这无疑有助于将一个带有随机图片的类(没有要检测的其他类的对象)标记为UNKNOWN类。这将防止很多误报。这也是最佳做法。在这里阅读以了解它与AutoML一起使用:https://cloud.google.com/vision/automl/docs/prepare