Machine learning Caffe&x27;在二元分类基准数据集上表示反例的方法

Machine learning Caffe&x27;在二元分类基准数据集上表示反例的方法,machine-learning,neural-network,computer-vision,deep-learning,caffe,Machine Learning,Neural Network,Computer Vision,Deep Learning,Caffe,如果我想从预先训练的模型(比如ILSVRC12(或ImageNet)数据集上的AlexNet)训练二进制分类器,我想知道如何定义或表示负训练集。我现在想的是,选择一个不相关的课程作为消极训练集,而选择一个相关的课程作为积极训练集。有没有更好的方法更优雅?在ILSVRC数据集上训练的CNN已经在1000类图像中进行区分。是的,您可以使用这些拓扑中的一种来训练二进制分类器,但我建议您从一个未经训练的模型开始,并在您选择的两个类中运行它。如果你从一个训练有素的模型开始,你必须放弃很多,你的结果仍然是试

如果我想从预先训练的模型(比如ILSVRC12(或ImageNet)数据集上的AlexNet)训练二进制分类器,我想知道如何定义或表示负训练集。我现在想的是,选择一个不相关的课程作为消极训练集,而选择一个相关的课程作为积极训练集。有没有更好的方法更优雅?

在ILSVRC数据集上训练的CNN已经在1000类图像中进行区分。是的,您可以使用这些拓扑中的一种来训练二进制分类器,但我建议您从一个未经训练的模型开始,并在您选择的两个类中运行它。如果你从一个训练有素的模型开始,你必须放弃很多,你的结果仍然是试图区分1000个类:最后一个FC层会给你带来麻烦

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


如果您坚持保留经过训练的内核,那么尝试用2类FC层替换最后的FC层(1000)。然后选择你的两个课程(适用图像与其他所有课程)并运行你的培训。

感谢您的洞察力。但是,你的意思是你在第二段提到的和第三段相同吗?如果是这样的话,您是否有任何片段显示了您所说的“然后简单地添加一个层,将这些类映射到标签“1”,将所有其他类映射到标签“0”。?我按照您在第3段中提到的方法,将FC层中的1000改为2,并根据我自己的数据进行训练,但预测精度相当低,即大约55%。我对您提到的内容感兴趣“然后简单地添加一个层,将这些类映射到标签“1”,将所有其他类映射到标签“0”。。我如何在prototxt级别实现这一点?是的,我的应用程序与一个火车类重叠。第2段:映射层将是一个新的层类型,针对适用的类标签进行硬编码。如果你不喜欢添加自己的图层类型,那就跳过它,开始训练吧。你有没有关于你的意思的指针(可能是URL)?我知道这是关于在prototxt文件中添加一个层,但就实现而言,我仍然不知道。我已经完成了培训的想法,但是效果很差,这就是为什么我想探究你提到的第二段。谢谢