假设我们有一个包含 3 类图像的训练集:1.Cats,2.Dogs,3.Neither Cats 和 Dogs。我们只关心检测图像是否是猫/狗,或者两者都不是,但我们不在乎它是猫还是狗,只关心它是两者之一。
通过将 Dog 和 Cat 类合并为单个“正”类而不是训练 3 类 CNN 来训练二元类 CNN 本质上“更好”吗?
如果是,那么如果我们确实关心图像是狗还是猫,那么最好先运行二元分类器来确定它是否是狗/猫,然后再运行第二个二元分类器只对猫和狗进行了训练,以确定它实际上是两者中的哪一个?
假设我们有一个包含 3 类图像的训练集:1.Cats,2.Dogs,3.Neither Cats 和 Dogs。我们只关心检测图像是否是猫/狗,或者两者都不是,但我们不在乎它是猫还是狗,只关心它是两者之一。
通过将 Dog 和 Cat 类合并为单个“正”类而不是训练 3 类 CNN 来训练二元类 CNN 本质上“更好”吗?
如果是,那么如果我们确实关心图像是狗还是猫,那么最好先运行二元分类器来确定它是否是狗/猫,然后再运行第二个二元分类器只对猫和狗进行了训练,以确定它实际上是两者中的哪一个?
我会用 3 个类训练一个分类器:
cat, dog, neither
使用交叉熵作为成本函数。
网上有很多这样的例子。如果您使用 Google MNIST 神经网络,您会发现许多简单的示例。或者,您可以使用 Google 的训练网络之一并重新训练最后一层。
这是在Cifar 图像集上训练的卷积。
使用预训练网络区分两只家猫。