二进制分类作为 2 类分类问题

数据挖掘 机器学习 深度学习 图像分类
2021-10-09 03:23:05

我想创建一个狗分类器,它输出包含狗的图像的概率。

我有两种方法-

  1. 二元分类器(1-class),它只输出图像包含狗的概率。这在我看来是合理的。

  2. 2 类分类器,两个类分别表示“狗”和“非狗”。但我对这种方法的问题是神经网络也必须学习“非狗”类,这是不可能的,因为它没有模式并且在每个训练示例中都不同。

第二种方法会不如第一种有效吗?甚至根本工作?

4个回答

tl;博士

您提到的两种方法同样有效

为什么?

首先,我假设您指的是神经网络类型的模型。您应该注意,卷积神经网络是判别模型,这意味着它们经过训练可以找到两个类别之间的差异(例如dognot-dog)。

第二种方法会不如第一种有效吗?

只是为了反驳这种说法,请考虑以下内容。您有一个 2 输出分类网络;让我们将输出命名为dognot-dog现在想象一下,正如你所说,网络只能识别狗的模式。它所要做的就是为类的这些模式赋予正权重,为非狗类赋予负权重。从这个意义上说,非狗类将被训练为与狗类相反,这不会使其不如单输出二元分类器有效。

即使not-dog类无法训练并保持不变,由于我们使用的是 softmax 激活,预测也将仅通过dog输出和恒定not-dog输出之间的相对差异来生成。就像拥有一个单输出二元分类器。

您可以使用异常检测自动编码器架构。基本上,你要做的是,

  • 创建具有卷积层的自动编码器架构。

  • 我们在狗的图像上训练模型。

  • 所以当我们在训练好的自动编码器上喂狗的图像时,它会产生相对较小的损失。

  • 当将狗以外的图像喂给模型时,损失值会很高。

因此,我们可以使用损失值检测图像中是否存在狗。

二元分类二分类。您列出的区别实际上是分类和硬分类之间的区别。在软分类中,您在所有类上都有一个连续分布,在硬分类中,输出是一个单热编码向量。

在某些时候,您的模型必须能够表达某种分类(“狗”或“非狗”),因此无论如何您最终都会得到硬分类。

同意 Schubam 的回答,将其视为异常检测系统,仅对狗图像进行训练,并将任何具有高损失的图像标记为非狗图像。是的,使用 2 类狗和非狗,就像癌症检测一样。