学习对象之间的相似性在人类的认知过程和人工系统的识别和分类中具有主导作用。使用适当的距离度量,度量学习试图在进行学习任务时量化样本的相似度。公制学习技术通常使用线性投影,在处理非线性的真实世界场景方面能力有限。公制学习中采用了核方法来克服这个问题。在这篇文章中,我们将了解什么是度量学习和深度度量学习,以及深度度量学习如何解决度量学习所面临的挑战。我们还将在本帖中探讨公因子学习如何在实践中使用。本文要讨论的主要内容概述如下。
目录
- 各种学习计划的工作
- 什么是度量衡学习?
- 深度公制学习
- 深度公制学习的要点
让我们从讨论开始,简要地讨论各种学习方案的工作原理,在此基础上,我们来看看公制学习。
各种学习方案的工作原理
在计算机实现了识别物体的能力之后,机器学习的想法逐渐发展起来,它允许计算机在没有明确编程的情况下明确学习。今天,我们可以利用机器学习以各种方式使我们的生活更轻松。人脸识别、医疗诊断、入侵检测系统、音频识别、语音识别、文本挖掘、物体识别,以及更多的应用都使用它。因此,机器学习可以说为复杂的问题和巨大的数据量提供了成功的答案。
在机器学习应用中,可以采用K-近邻、支持向量机和Naive Bayes分类器。尽管这些算法有一定的分类性能,但要更好地描述数据是可行的。这些算法不会将现有的数据集转移到一个新的位置。在分类方面,每个属性都有不同的影响。
因此,在分类之前可以应用特征加权。数据集也可以从原来的位置转移到一个新的位置。数据转换算法,如主成分分析,就是用来做这个的。线性判别分析以及其他的方法也有好处。
度量学习是一种根据距离度量来确定项目之间的相似性或不相似性的方法。公制学习寻求增加不相似事物之间的距离,同时减少相似物体之间的距离。因此,有计算距离信息的方法,如k-nearest neighbours,也有将数据转化为新表示法的方法。
该方法建立在W投影矩阵上,而度量学习程序则是利用距离信息重新定位到转换空间。目前的研究主要集中在一般的Mahalanobis距离上。当Mahalanobis距离被转化为欧氏距离时,就提供了度量学习策略,它是基于协方差矩阵的分解和执行这些操作时对称正定矩阵的使用。
近年来,深度学习和度量学习被结合起来,形成了深度度量学习的概念。样本之间的相似性原则是深度度量学习的基础。在进入深度公因子学习之前,让我们先看看公因子学习。
什么是度量学习?
在分类和聚类方面,每个数据集都有自己的一套问题。学习能力差的距离度量,不管是什么问题,可以说都无法产生成功的数据分类结果。为了在输入数据上产生满意的结果,需要一个合适的距离度量。已经进行了一些研究,采用度量学习方法来解决这个问题。
通过对数据的评估,公因子学习创造了一个新的距离度量。一个在数据上执行学习过程的公制学习策略将能够更好地区分样本数据。公制学习的主要目标是学习一个新的公制,使同一类别的样本之间的距离最小化,同时增加不同类别的样本之间的距离。虽然公因子学习试图将相似的东西拉近,但它却增加了不相似的物体之间的差距,如下图1c所示。

图-1(来源)
说到文献中的度量学习研究,很明显,它们都与马哈兰诺比斯的距离度量有关。训练样本为X=[x1,x2,...,xN] ∈R**d×N 其中xi∈Rd
是第i个训练例子,N是训练样本的总数。下面的公式用来计算xi和xj之间的距离。

(来源)
dM(xi,xj)中必须具备非负性、不可辨性、对称性和三角形不等式的特性。M必须是对称的和半无限正的。要成为正半无限,M的所有特征值或行列式必须为正或为零。
拥有更好的能力来表示数据,无疑会让我们在分类和聚类挑战中做出更准确的预测。度量学习的目的是为了从数据中得出一个合适的距离度量。距离度量是一种新颖的数据格式,它利用样本之间的相似性关系来提供一个更有意义、更强的判别模型。
让我们看一下公因子学习的一个简短的实际例子,我们将用虹膜数据集来测试邻里成分分析(NCA),这是一种距离公因子学习方法,旨在与传统的欧氏距离相比,提高近邻分类的准确性。在训练集上,该算法最大限度地提高了一个随机变体的留出k-近邻(KNN)得分。它还可以学习低维的线性数据转换,用于数据展示和分类。
为此,我们将使用sci-kit learn to软件包和metric-learn软件包,两者的安装都可以通过pip命令简单完成。
from metric_learn import NCA
from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score
from sklearn.pipeline import make_pipeline
from sklearn.neighbors import KNeighborsClassifier
def evaluate(clf):
X, y = load_iris(return_X_y=True)
return cross_val_score(clf, X, y)
clf = make_pipeline(NCA(), KNeighborsClassifier())
clf1 = KNeighborsClassifier()
print("Validation Score Before Metric-Learn",evaluate(clf1))
print("Validation Score After Metric-Learn",evaluate(clf))

现在让我们来看看深度度量学习。
深度公制学习
传统的机器学习方法对原始数据的处理能力限制了它们。因此,在分类或聚类操作之前需要进行特征工程,如预处理和特征提取。所有这些过程都需要专业知识,并且不被分类系统所涵盖。另一方面,深度学习则从分类结构本身学习更高层次的数据。经典的机器学习方法和深度学习之间的基本区别在这个角度得到了证明。
欧几里得、马哈拉诺比斯、马图西塔、巴塔查里亚和库尔贝克-莱布勒距离是用于数据分类的基本相似度量。另一方面,这些预先定义的措施提供了有限的数据分类能力。为了应对这一挑战,人们开发了一种基于Mahalanobis度量的策略,将数据分类为传统的度量学习。
深度度量学习提供了基于问题的解决方案,它是通过利用深度架构从原始数据中学习,并通过非线性子空间学习找到嵌入式特征相似性而引起的。说到深度公因子学习的范围,它包括从视频理解到人类重新识别、医疗困难、三维(3D)建模、人脸验证和识别以及签名验证等一切。

图2(来源)
现有的大多数深度学习方法都依赖于深度架构背景,而不是新数据表示空间中的距离测量。而基于距离的技术,最近已经成为深度学习中最吸引人的课题之一。
深度度量学习,试图增加相似数据之间的距离,同时减少不相似样本之间的距离,与样本之间的距离直接相关。在深度学习中,公因子损失函数已经被用来进行这一过程。我们将不同类别的样本相互推开,同时努力将同一类别的样本拉近,如下图2 a所示。
我们在MNIST图片集上进行了一些实验,同时利用对比性损失来显示这种方法的图2。在图2b中,距离值反映了相似和不同图片之间距离的平均值。如图所示,相似照片的距离值在每个历时后一步步下降。
另一方面,不同照片的距离值在同一时间增加。对于可比或不同的图像,连体网络距离关系在每个历时中都被成功使用(图2b)。这个实验表明,该方法的目标可以成功实现。
深度度量学习的重要观点
知情的输入样本、网络模型的拓扑结构和度量损失函数是深度度量学习的三个基本组成部分。虽然深度度量学习的重点是度量损失函数,但知情的样本选择在分类和聚类中也是至关重要的。
有助于深度度量学习成功的最重要的组成部分之一是信息性样本。采样技术有可能提高网络的成功率以及其训练速度。在对比性损失中,确定训练样本的最简单技术是使用随机生成的正面或负面的对象对。
简而言之,即使我们构建了优秀的数学模型和架构,网络的学习能力也会受到它所呈现的样本的辨别能力的限制。为了帮助网络学习和实现更好的代表性,应该向它提供有区别的训练实例。因此,样本关系对深度度量学习的影响应该被彻底研究。
因此,在应用深度度量学习模型之前,样本选择将是非常重要的预处理步骤,以促进网络模型的成功。根据文献的研究结果,深度公因子学习中的负数挖掘研究具有很高的效果价值。
结论
深度度量学习的目的是训练一个相似度量,使用样本来计算两个或多个对象的相似性或不相似性。人脸识别、人脸验证、人的重新识别、三维形式检索、语义文本相似性、说话人验证、病人相似性以及其他图像、视频、文本和音频任务,都有大量的相似性挑战。在这里,我们试图理解度量学习和深度度量学习的概念,并强调了其重要的几点。本文的大部分讨论都是受Mahmut K和Hasan S B最近发表的研究论文的启发,其链接见下文,以了解更多细节。