Machine learning 当我们可以分类时,为什么要使用度量学习

Machine learning 当我们可以分类时,为什么要使用度量学习,machine-learning,classification,metric,Machine Learning,Classification,Metric,到目前为止,我已经阅读了一些被高度引用的度量学习论文。这类论文的总体思路是学习一种映射,使得具有相同标签的映射数据点彼此靠近,而远离其他类的样本。为了评估这些技术,他们报告了生成嵌入的KNN分类器的准确性。所以我的问题是,如果我们有一个带标签的数据集,并且我们对提高分类任务的准确性感兴趣,为什么我们不在原始数据点上学习分类器呢。我的意思是,我们可以学习一个适合(非嵌入)数据点的分类器,而不是找到一个适合KNN分类器的新嵌入。根据我到目前为止所读的内容,这种分类器的分类精度比度量学习方法要好得多。

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

度量学习模型可以是分类器。所以我将回答一个问题,为什么我们需要度量学习来进行分类

让我给你举个例子。当你有一个数以百万计的类的数据集,而有些类只有有限的示例时,让我们假设少于5个。如果您使用诸如支持向量机或普通CNN之类的分类器,您将发现训练是不可能的,因为这些分类器(区分模型)将完全忽略少数示例的类

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

顺便说一句,大量的类对于区分模型本身来说是一个挑战


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

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

除了在数据不平衡时很难训练区分性模型,或者更糟糕的是,每个类只有很少的示例外,它们不能很容易地扩展到新类


以人脸识别为例,如果将人脸识别模型训练为分类模型,则这些模型只适用于它所看到的人脸,而不适用于任何新人脸。当然,您可以为希望添加的面添加图像,并重新训练模型,或者在可能的情况下微调模型,但这是非常不切实际的。另一方面,使用度量学习训练的人脸识别模型可以生成新人脸的嵌入,这些嵌入可以很容易地添加到KNN中,然后您的系统可以根据新人脸的图像识别新人脸。

您是否有使用此技术的论文或问题的示例?如果您是指度量学习+KNN方法,还有很多,比如“大范围近邻分类的远程度量学习”、“汉明远程度量学习”、“用于人的再识别的深度度量学习”……你的问题基本上是“人们为什么要[Metric Learning+KNN]?”在人们使用这种方法的特定情况下,他们这样做几乎肯定是有原因的。但是这个问题太模糊了,除非你想解释一些特定的用例。上面提到的这个问题可能更适合像“谢谢”这样的问题。我同意你的观点,但如果这是度量学习技术的真正应用,那么这类论文的实验设置必须反映这种情况。换句话说,在实验中,我们应该有一些没有或很少样本的类标签,然后我们可以看到学习到的映射的泛化能力。然而,在大多数论文中,我看到映射应用于一些流行的数据集,如cifar-10(每个类标签具有相同数量的样本),然后测量KNN分类器的精度。我了解您的担忧。我的理解是,当你写一篇要发表的论文时,你通常会在一些流行的开放数据集上比较你的方法,任何人都可以访问这些数据集。其中一个原因是学院通常无法访问工业数据集。开放数据集的结果更令人信服,因为每个人都可以重复他们的实验。无论如何,请不要太担心,我认为如果基于度量的分类器在平衡数据集上击败了它们,那么它肯定会在不平衡数据集上击败它们。我正在寻找一个使用度量学习进行分类的示例,如果有人提供一个keras deep的示例,我将不胜感激learning@user8523104你好您可以搜索“一次性学习”。人脸验证就是一个例子。谢谢。是的,我可以找到:)