Machine learning CNN二值图像分类-选择“最佳实践”;“否定”;数据集?

Machine learning CNN二值图像分类-选择“最佳实践”;“否定”;数据集?,machine-learning,neural-network,computer-vision,deep-learning,conv-neural-network,Machine Learning,Neural Network,Computer Vision,Deep Learning,Conv Neural Network,比如说,我想训练一个CNN来检测图像是否是一辆汽车 选择“非汽车”数据集的最佳实践或方法有哪些 因为这个数据集可能是无限的(基本上是任何不是汽车的东西)——有没有关于数据集需要有多大的指导方针?它们是否应该包含与汽车非常相似的对象,但不是(飞机、船只等)?与所有有监督机器学习一样,训练集应该反映模型将要使用的真实分布。神经网络基本上是一种函数逼近器。您的实际目标是近似真实世界的分布,但在实践中,只能从中获取样本,而此样本是神经网络将看到的唯一内容。对于训练流形之外的任何输入方式,输出都只是猜测(

比如说,我想训练一个CNN来检测图像是否是一辆汽车

选择“非汽车”数据集的最佳实践或方法有哪些


因为这个数据集可能是无限的(基本上是任何不是汽车的东西)——有没有关于数据集需要有多大的指导方针?它们是否应该包含与汽车非常相似的对象,但不是(飞机、船只等)?

与所有有监督机器学习一样,训练集应该反映模型将要使用的真实分布。神经网络基本上是一种函数逼近器。您的实际目标是近似真实世界的分布,但在实践中,只能从中获取样本,而此样本是神经网络将看到的唯一内容。对于训练流形之外的任何输入方式,输出都只是猜测(另请参见)

因此,当选择负数据集时,您应该回答的第一个问题是:此模型的可能用例是什么?例如,如果你正在为智能手机构建一个应用程序,那么负面样本可能包括街景、建筑物和商店的图片、人、室内环境等。智能手机摄像头的图像不太可能是野生动物或抽象画,也就是说,这在你的真实分布中是不可能的输入

包括看起来像正面类的图像(卡车、飞机、船只等)是一个好主意,因为低conv层特征(边缘、角落)非常相似,神经网络正确学习重要的高级特征非常重要


一般来说,我会使用比正片多5-10倍的负片图像。这是一个很好的起点:在50000张训练图像中,5000张是汽车,5000张是飞机,等等。事实上,构建一个10级分类器不是一个坏主意。在本例中,您将通过对其确定的推断类为汽车的阈值,将此CNN转换为二元分类器。CNN不确定的任何东西都将被解释为非汽车。

我认为应该根据您的模型工作的场合选择阴性样本。如果您的模型在街道上用作汽车检测器,那么合理的负样本应该是街道背景、树木、行人和街道上常见的其他车辆。因此,我认为没有一个通用的否定样本选择规则,而只取决于您的需要