分类器能说没有这种情况吗?

数据挖掘 机器学习 神经网络 分类 图像分类 激活函数
2021-10-12 00:17:34

我是 ML 的初学者,我需要一些帮助...

问题

假设我有一个分类器可以很好地分类左手/右手。我很好奇它是否可以决定图像中是否有手?

因为如果不是这样,我必须收集标记为“无人手”的额外数据。但是有很多东西是“无人手”的,比如狗、猫、苍蝇……我认为不可能收集所有可能的“无人手”数据。

我的直觉

我们使用一些激活函数(如 [sigmoid])作为分类器(神经网络)的最终输出,并且我们将左/右类的输出视为分类器认为输入距左侧多远的分数,这是否合理? /右手班。

然后,如果左手和右手的输出都低于某个阈值,我们可以说这个图像输入中没有手。

2个回答

一个接一个地回答你的问题:

假设我有一个分类器可以很好地分类左手/右手。我很好奇它是否可以决定图像中是否有手?

没有这不可以。手动/非手动训练的模型可以做到这一点。不是这个。最多,它应该预测具有非常低置信度分数的任一(左/手)之一。但是,将其用于手/非手识别绝对不是一个好主意。

但是有很多东西是“无手”的,比如狗、猫、苍蝇……我认为不可能收集所有可能的“无手”数据

您正在尝试构建二进制 hand.no-hand 分类模型,而不是 hand/cat/dog/... 风格的多标签分类模型。所以,你只需要有一堆手在里面的图片,还有一些没有手的图片。

我们使用一些激活函数(如 [sigmoid])作为分类器(神经网络)的最终输出,并且我们将左/右类的输出视为分类器认为输入距左侧多远的分数,这是否合理? /右手班。

可能,但不可取。

许多分类器不会直接给你 L 或 R。它们会给你一个具有更高决策度量的选项。对于朴素贝叶斯,这将是具有较高概率的类p(大号|X)p(R|X). 对于大多数分类器来说都是如此。

您可以做的是设置一个超参数(如果您有一些异常实例)来确定某个新示例必须包含在一个类中的程度,才能被归类为属于该类。

例如,如果 p(大号|X)=0.01p(R|X)=0.05 那么我们可以拒绝这两个假设并说出新的例子 X 不属于任何阶级。

您应该进一步研究异常检测算法,您还可以通过 GLRT 使用 p 值来测试您的预测是否足够属于该类,以便可以对其进行分类。例如,为您设置 p 值,p=0.05,如果给定示例的 p 值低于此阈值,则不要将类归于它并将其标记为异常。

有很多不同的方法可以做到这一点,包括使用一些聚类或 NN 技术。


简而言之,您可以使用异常检测算法包装您的分类器,以捕捉低于可接受范围的假设。