为什么我们可以在分类时使用度量学习

时间:2017-07-17 20:04:00

标签: machine-learning classification metric

到目前为止,我已经阅读了一些被高度引用的度量学习论文。这些论文的一般思想是学习映射,使得具有相同标签的映射数据点彼此接近并且远离其他类的样本。为了评估这些技术,他们在生成的嵌入上报告KNN分类器的准确性。所以我的问题是,如果我们有标记的数据集,并且我们有兴趣提高分类任务的准确性,为什么我们不学习原始数据点上的分类器。我的意思是,我们可以学习一个适合(非嵌入式)数据点的分类器,而不是找到一个新的嵌入式KNN分类器。基于我到目前为止所读到的,这种分类器的分类准确性比度量学习方法好得多。是否有研究显示度量学习+ KNN比至少在某些数据集上拟合(好)分类器表现更好?

2 个答案:

答案 0 :(得分:1)

如@Tengerye所述,您可以使用通过度量学习训练的模型进行分类。 KNN是最简单的方法,但是您可以嵌入数据并训练另一个分类器,例如KNN,SVM,神经网络等。在这种情况下,度量学习的用途是将原始输入空间更改为另一个一个分类器将更容易处理。

除了区分模型很难在数据不平衡时进行训练之外,甚至更糟的是,每个类中只有很少的示例,因此无法轻松地将它们扩展到新的类中。

以面部识别为例,如果将面部识别模型训练为分类模型,则这些模型将仅适用于已看到的面部,而不适用于任何新面部。当然,您可以为要添加的面部添加图像,然后重新训练模型或对模型进行微调,但这是非常不切实际的。另一方面,使用度量学习训练的面部识别模型可以为新面孔生成嵌入,可以轻松地将其嵌入到KNN中,然后您的系统就可以根据给定的图像识别新人。

答案 1 :(得分:0)

度量学习模型 CAN BE 分类器。因此,我将回答为什么我们需要使用度量学习进行分类的问题。

让我举个例子。如果您有数百万个类的数据集,并且某些类只有有限的示例,那么假设少于5个。如果您使用分类器,如SVM或普通CNN。你会发现它无法训练,因为那些分类器(判别模型)将完全忽略几个例子的类。

但对于metri学习模型,它不是问题,因为它们基于生成模型

顺便说一句,大量的课程对于歧视模型本身来说是一个挑战。

现实生活中的挑战激励我们探索更多更好的模特。