据我了解,神经网络不擅长分类“未知”,即不属于学习类的对象。但是人脸检测/识别方法通常如何确定在一个区域中没有检测/识别人脸呢?预测概率是否以某种方式阈值化?
我问是因为我的应用程序将涉及识别未知对象。事实上,大多数输入对象都是未知的,只有一小部分是已知的。
据我了解,神经网络不擅长分类“未知”,即不属于学习类的对象。但是人脸检测/识别方法通常如何确定在一个区域中没有检测/识别人脸呢?预测概率是否以某种方式阈值化?
我问是因为我的应用程序将涉及识别未知对象。事实上,大多数输入对象都是未知的,只有一小部分是已知的。
的确,神经网络本质上不擅长对“未知数”进行分类,因为如果神经网络的底层结构足够复杂,它们往往会过度拟合他们训练过的数据。但是,有多种方法可以减少过度拟合的影响。例如,用于此的一种技术称为dropout。另一个例子是批量标准化。尽管有这些技术,但减少过度拟合影响的最佳方法是使用更多数据。
对于您上面给出的面部识别示例,经过训练的模型通常会“看到”大量数据。这意味着“未知数”很少,即使有,神经网络也学会了如何判断是否存在面部特征。这是因为神经网络的某些结构非常擅长判断输入数据中是否存在某种特征模式。这有助于神经网络了解输入的图像是否具有某些特征/模式。如果找到这些特征,则输入数据被分类为人脸,否则不是。
让我们假设您要训练您的神经网络来识别输入图像是否是猫。您将使用卷积神经网络 (CNN)并对其进行训练以识别输入是否为cat。not部分意味着您必须在训练数据中包含很多不是cat的示例。在完美的情况下,您将能够向它展示所有不是猫的东西并将其分类。您还向它展示了猫是什么的多张图像。CNN非常适合这个应用程序。您可能想对此进行研究,看看哪种CNN最适合您的应用程序。如果你没有大量关于猫是什么的样本不是那么你可以使用像dropout和batch normalization这样的正则化技术。
PS:更多细节请提及您到目前为止使用的策略。如果您可以分享您想要的任务,那会更好。
我想强调一个人脸识别的导入步骤,即特征提取。根据我的经验,您可以使用蛮力匹配器、K-最近邻 (KNN)、Best- Bin-First (BBF) 和随机抽样共识 (RANSAC)。目的是确定最适合在您的应用程序中使用的方法。然后是您的机器学习模型,您需要测试上一条消息中提到的几个模型选项。