Caffe 在二元分类基准数据集上表示负样本的方式

Caffe's way of representing negative examples on benchmark dataset for binary classification

如果我想从预训练模型(例如 ILSVRC12(或 ImageNet)数据集上的 AlexNet)训练二元分类器,我想知道如何定义或表示负训练集。我目前正在考虑的是将不相关的 类 中的一个作为负训练集,而将相关的一个作为正训练集。有没有更好更优雅的方法?

在 ILSVRC 数据集上训练的 CNN 已经可以区分 1000 classes 图像。是的,您可以使用其中一种拓扑结构来训练二进制 classifier,但我建议您从未经训练的模型开始,然后 运行 通过您选择的两个 classes。如果您从经过训练的模型开始,您必须 取消学习 很多,而您的结果仍然试图区分 1000 classes:最后一个 FC 层将给出麻烦你了

有多种方法可以解决 1000-class 问题。如果您的应用程序已经与一个或多个经过训练的 classes 重叠,则只需添加一个图层,将这些 classes 映射到标签“1”,将所有其他映射到标签“0”。

如果您坚持要保留经过训练的内核,请尝试用 2-class FC 层替换最终的 FC 层 (1000)。然后选择你的两个 classes(适用图像与其他所有图像)和 运行 你的训练。