游乐游手机版
首页/AI热点日报/热点详情

深度学习与度量学习融合方法综述

类型:热点整理2026-07-23
深度度量学习(DML)是机器学习领域一个极具吸引力的分支。它的核心任务是为样本之间的相似性进行量化评分,更精确地说,是学习一种距离尺度,使得同类样本彼此靠近,而不同类样本相互远离。在人脸识别、医疗诊断乃至3D建模等需要精细个体区分的场景中,DML扮演着核心引擎的角色。 本文将系统阐述深度度量学习所解

深度度量学习(DML)是机器学习领域一个极具吸引力的分支。它的核心任务是为样本之间的相似性进行量化评分,更精确地说,是学习一种距离尺度,使得同类样本彼此靠近,而不同类样本相互远离。在人脸识别、医疗诊断乃至3D建模等需要精细个体区分的场景中,DML扮演着核心引擎的角色。

本文将系统阐述深度度量学习所解决的核心问题、其发展背景、与深度学习技术的融合方式,以及当前最前沿的研究方法——包括样本选择策略和损失函数的设计。同时,我们也将探讨该领域的现状与未来可能的发展方向。

1 介绍

机器学习的应用已相当普遍,涵盖人脸识别、医疗诊断等多个领域。算法能够从数据中学习出分类模型,但挑战在于,每个数据集都有其独特性,必须定义出具有区分力的特征,才能实现准确分类。诸如k近邻、支持向量机、朴素贝叶斯等经典算法依然常用,但需注意,在这些算法中,特征的权重以及数据的变换方式,往往直接决定了最终的性能表现。

度量学习(Metric Learning)这一分支,正是为解决“距离”定义问题而专门诞生的。在众多需要比较和区分样本的任务中,一个良好的距离度量如同生命线般至关重要。

深度学习带来了更强大的数据表示能力,它可以自动提取特征,甚至能捕捉复杂的非线性结构。当深度学习和度量学习结合,便诞生了深度度量学习(如图1所示)。其核心逻辑十分简洁:基于样本的相似性进行学习。而网络结构如何搭建、损失函数如何设定、训练样本如何选择,这三者构成了决定成败的关键因素。

本文将系统梳理深度度量学习的重要意义,介绍其背景、最新进展以及与深度学习的关系,并深入探讨其中三个最关键的环节:问题定义、样本选择策略和度量损失函数。最后,我们将一同审视该领域的现状以及未来可能的发展路径。

图1 深度度量学习示意图

2 度量学习

每个数据集在分类或聚类时,都呈现出其固有的特性。要获得理想的结果,必须依赖一个可靠的距离度量。度量学习方法通过分析数据本身,能够学习出一个更合理的距离尺度,从而增强样本间的区分能力。其核心目标是学习一个新型度量,使得同类样本之间的距离最小化,而不同类样本之间的距离最大化。这样,不同对象之间便有了更清晰的界限,分类和聚类的效果自然会得到提升,如图1c所示。

众多关于度量学习的研究,都与一种经典的度量——马哈拉诺比斯距离(Mahalanobis Distance)直接相关。假设训练样本X由N个d维向量构成,那么样本xi和xj之间的距离可通过马氏距离计算:

这个dM(xi, xj)距离度量,必须满足非负性、不可辨别性恒等性、对称性和三角不等式。为实现这一目标,矩阵M必须是对称且半正定的,其特征值或行列式需大于或等于零。我们还可以对其进行分解:

从式(3)可以看出,W具有线性变换的性质。这意味着,两个样本在变换后空间中的欧几里得距离,就等于它们在原始空间中的马哈拉诺比斯距离。这个线性变换,实际上构成了度量学习最基础的工作方式。

更优的数据表示能力,自然能带来更准确的分类和聚类结果。度量学习通过学习良好的距离度量,提供了更有意义的数据表示。诸如线性度量学习等方法,能在变换后的数据空间中提供更灵活的约束,从而提升学习性能。然而,其捕捉非线性特征的能力较弱。核方法可以将问题映射到非线性空间,性能更强,但存在过拟合的风险。因此,深度度量学习应运而生,它提供了一种更紧凑、更强大的解决方案,有效克服了线性和非线性方法各自的缺陷。

3 深度度量学习

传统机器学习受限于数据处理能力,往往需要手工进行特征工程,如预处理和特征提取,这高度依赖专业知识和经验。而深度学习则能够在分类架构中直接学习更高层次的数据表示。当然,深度学习并非万能,它通常需要大量数据,在小数据集上效果不佳,且训练时间较长。好在NVIDIA推出的cuDNN等GPU加速库,以及众多利用GPU进行高性能计算的深度学习框架,有效缓解了这一问题。

数据分类时,常用的相似性度量包括欧几里得距离、马氏距离、Matusita距离、Bhattacharyya距离和Kullback-Leibler散度等。但这些预定义的度量在复杂任务面前能力有限。为解决此问题,基于马哈拉诺比斯度量的方法被提出,它通过将数据变换到具有更高判别力的新特征空间,来进行传统度量学习。然而,这些方法仍不足以揭示数据中复杂的非线性结构。深度学习依靠带有非线性结构的激活函数,很好地解决了这个难题。

深度学习方法通常基于深层架构,而非仅仅在新的数据表示空间中定义距离度量。不过,基于距离的方法在深度学习中日益受到关注。深度度量学习的核心目标,就是增加相似样本之间的距离(换言之,让同类更近,异类更远),这直接体现了样本之间的距离关系。通过这种方式,度量损失函数在深度学习框架中发挥了巨大优势。例如,使用对比损失在MNIST手写数字数据集上的实验,就很好地证明了这种方法的有效性。

图2 连体网络的距离关系。(a) 期望的三位数和八位数手写数据辨别,(b) Siamese网络应用于三位数和八位数的MNIST数据后

3.1 深度度量学习问题

深度度量学习通过深层架构来学习非线性子空间中的特征相似性,并针对具体问题开发解决方案。其应用范围非常广泛,涵盖视频理解、人员重新识别、医疗问题、3D建模、人脸验证和识别、签名验证等多个领域。

视频理解。理解视频存在诸多挑战,如视频注释推荐、搜索等,可通过非度量空间来寻找解决方案。例如,李等人先提取了音频和视觉特征,随后提出一个基于三元组学习的深度神经网络嵌入模型,用于学习深度度量学习的度量,以促进视频监控中的人类定位。该方法之所以优于其他方法,是因为在许多视觉任务中,预定义的距离度量往往不够用。同样,Hu等人使用基于距离度量的方法进行视觉跟踪,也证明了在度量空间中工作的优势。

人员重识别。这是机器学习中的一个重要问题,旨在识别同一个人在不同摄像头、不同场景下拍摄到的不同图像。传统的深度学习方法在此常受到质疑,因此学习一个合适的距离度量成为关键。深度度量学习使得输入图像和变换后的特征空间之间能够进行端到端学习。例如,有的模型从两层捆绑卷积和最大池化开始,通过计算交叉输入邻域差异,利用补丁求和属性、交叉补丁属性和softmax函数来识别同一个人或不同的人。另一项研究中,丁等人通过改进三元组生成方案并优化梯度下降算法,来实现三元组损失。

医疗问题。深度学习在医学图像诊断中应用广泛,用于解决分类、检测、分割和配准等难题。深度度量学习算法通过相似性方法提高数据表示级别,能有效区分正常和异常图像。与三元组网络不同,ML2损失考虑了嵌入空间的全局结构和重叠标签,为医学图像分析提供了更高级别的数据表示。

3D建模。深度度量学习在3D形状检索中表现出色,通过共享权重和度量损失函数,无论是图像草图还是3D形状,都能提升检索效果。基于CNN+Siamese网络的模型在大型数据集上实现了高效的3D图像检索,它使用结合了相关性和辨别损失的度量损失。在训练过程中,甚至连隐藏层也应用了度量损失。一种新颖的损失函数结合了三重态损失和中心损失,专门用于3D图像检索任务。三元组网络模型则用于检测3D图像的风格,通过比较三元组损失值来判断相似与不相似的图像。

人脸验证和识别。深度度量学习在人脸识别和验证方面成果斐然,例如胡等人提出的分层非线性变换模型,能揭示人与人之间的亲属关系。FaceNet系统则使用在线三元组学习模型,专注于欧几里德空间下的人脸相似性,能同时处理验证、识别和人脸聚类等任务。此外,还有在面部表情识别和面部年龄估计方面的研究。

除了视觉领域,深度学习在文本理解和信息检索方面也有广泛研究。例如,Mueller和Thyagarajan利用Siamese网络识别语义相似性,贝纳吉巴等人利用回归函数训练网络模型,还有基于依赖关系的Siamese LSTM网络模型。另一项研究旨在学习句子之间的主题相似性,通过生成弱监督的三元组句子,使用Triplet网络对高质量句子嵌入的维基百科句子进行聚类。

在音频信号处理领域,深度度量学习也大有可为,例如Triplet和Quadruple网络被用于说话人二值化。不同的采样策略和裕度参数对二值化性能有明显影响。那种在计算机视觉中很成功的半硬负挖掘策略,在说话人二值化中却只在固定参数和三元组损失的情况下才有效。王等人使用原型网络损失和三元组损失进行说话人验证和识别任务,在两个数据集中都获得了很好的结果,其中原型网络损失不仅效果更好,训练时间也更快。

总的来说,深度度量学习在音乐相似性、拥挤回归、相似区域搜索、体积图像识别、实例分割、边缘检测、全色锐化等众多领域都有广泛应用,其高性能为整个文献做出了重要贡献。从学术出版物的数量来看(如图3),深度度量学习正越来越受到研究者的关注。

图3 深度度量学习的学术出版物数量

深度度量学习在很多任务上取得了显著成果(表1),例如图像聚类、图像检索、3D形状检索和语义文本相似性。评估的指标也很丰富,包括F1分数、归一化互信息(NMI)、召回@R(排名精度)、准确率、第一层(FT)、最近邻(NN)、Emeasure(E)、第二层(ST)、折扣累积增益(DCG)、平均精度(mAP)、皮尔逊相关性(r)、斯皮尔曼相关性(ρ)、均方误差(MSE)、等错误率(EER)和最小决策成本函数(MDCF)等。

表1 深度度量学习问题的基准数据集比较

3.2 样本选择

深度度量学习由三个核心部分组成:信息丰富的输入样本、合适的网络模型结构,以及精准的度量损失函数。在这三者中,信息样本的选择对最终的分类和聚类效果至关重要,它直接影响网络的成功率和训练速度。最基础的方法是通过随机挑选正负样本对来训练对比损失,但问题在于,当网络性能达到一定水平后,这种随机选择会导致学习过程变慢甚至停滞。硬负挖掘和三元组网络等方法能有效提升网络性能,但如果挑选的三元组质量不高,效果依然不佳。因此,使用信息丰富的样本三元组来训练模型,是实现更优性能的关键。

这里区分几个概念:硬负样本(Hard Negatives)指的是那些被模型错误地判断为正样本的负样本。半硬负挖掘(Semi-hard Negative Mining)则是寻找边界附近的负样本,与硬负样本相比,这些负样本距离锚点样本更远一些。三元组挖掘(Triplet Mining)根据锚点、正样本和负样本之间的距离关系来进行负样本的挖掘,如图4所示。如果负样本距离锚点太近,会导致梯度方差过高、信噪比过低,因此建议使用距离加权采样来避免引入噪声样本。还有一种负类挖掘(Negative Class Mining),它使用每个类别中的一个样本作为三元组网络的负样本,并通过贪婪搜索策略来挑选多个负样本。

图4 负挖掘示意图

总结来说:即便拥有再好的数学模型和网络架构,如果网络看到的样本缺乏区分度,其学习能力也会受到限制。因此,必须向网络呈现有区别的训练样例,以实现更好的学习和表示。优质的样本选择策略,作为一个预处理步骤,能显著提升网络模型的成功率。在深度度量学习领域,负挖掘策略的研究价值很高。选择信息丰富的样本,可以有效避免过拟合,提高学习速度,减少资源浪费。一旦选对了样本,性能提升往往就是水到渠成的事。

3.3 深度度量学习的损失函数

这部分我们来探讨深度度量学习中使用的损失函数,包括它们的使用方式和差异。这些损失函数的核心作用,就是通过调整对象之间的相似性,来优化最终的特征表示。

Siamese网络最初用于签名验证,它基于从基于能量的模型的判别学习框架。简单来说,就是将两张相同尺寸的图像输入一个共享权重的孪生网络,通过比较学习到的特征向量来得到一个二进制值,从而判断这两张图像是否属于同一类。作为度量学习的一种方法,它接收成对的图像样本来训练网络模型。图像对之间的距离通过损失函数来计算。对比损失(Contrastive Loss)让Siamese网络受益匪浅,也启发了后续大量深度度量学习的研究。Siamese网络通过最大化或最小化对象之间的距离来提高分类性能。网络中的共享权重机制,使得模型能在图像中提取出有意义的模式(如图5所示),对神经网络的性能产生了积极影响。Siamese网络和卷积神经网络可以很好地结合,能够同时从图像像素、颜色和纹理信息中进行相似性学习。例如,有研究就提出了结合两个Siamese卷积神经网络和马哈拉诺比斯度量的深度度量学习模型,专门用于行人重新识别。

图5 Siamese 网络和 Triplet 网络

Triplet网络受Siamese网络启发,但包含三个对象:一个锚点(Anchor)、一个正样本(Positive)和一个负样本(Negative)。它利用欧几里得空间来比较对象,与度量学习紧密相关。从等式(6)可以看出,三元组损失(Triplet Loss)关注的是同类样本对和不同类样本对的相似性差异,通过比较成对样本的相似性来进行分类(图6)。与Siamese网络相比,Triplet网络不仅利用了类内和类间关系,还提供了更强的区分能力。例如,分层三元组损失通过在线自适应树更新来提升网络性能。此外,角度损失(Angular Loss)是一种更巧妙的方法,它侧重于由锚点、正样本和负样本构成的三角形中负点处的角度约束,目标是使负点远离正簇的中心,同时让正点之间彼此靠近,并将其作为旋转和尺度不变的度量(等式(8))。四倍损失(Quadruple Loss)在每个训练批次中使用四个样本,以获得更好的接近度。直方图损失(Histogram Loss)使用四元组训练样本,通过计算正负对的相似度分布直方图来优化,无需手动调整参数,在人员重新识别数据集中表现优异。部分损失(Part Loss)则更精细,它将图像分为五个部分,分别计算每个部分的部分损失值。

损失函数是深度度量学习模型的核心。它们决定了嵌入空间中配对样本的新表示需要满足什么条件。例如,一对输入样本DW(X1, X2)的距离定义为:

其中,GW(X1) 和 GW(X2) 是输入样本的新表示。用来计算Siamese网络模型损失函数的 LContrastive 如下:

这里Y是标签值,如果输入来自同一类则Y=1,否则Y=0,m是裕度值(margin)。

对于三元组网络,它有三个输入:锚点X、与X相似的正样本X_p、与X不同的负样本X_n。其损失函数 LTriplet 定义为:

其中 α 是裕度值。

四元网络模型还有一个与三元组网络不同的输入。四倍损失 LQuadruple 定义为:

角度损失 LAngular 考虑了样本之间的角度关系,其公式为:

其中 X c 位于 X 和 X p 的中间,定义为:

传统的深度结构度量学习模型,如Siamese和Triplet网络,往往忽略了训练样本的结构信息。而深度结构度量学习方法通过深度网络中的特殊结构化损失,将成对的距离向量提升为成对的距离矩阵,从而充分利用上下文信息。例如,Sohn提出了多类N对损失(N-pair loss)来解决Siamese和Triplet网络收敛慢和容易陷入局部最优的问题。N-pair loss受益于N-1个负类样本来与锚点样本进行比较(图6e)。多重相似性损失(Multi-similarity Loss)则同时考虑了样本之间的自相似性和相对相似性,使得模型能更有效地收集和加权信息丰富的样本对。

图6 度量损失函数示意图

在训练开始前,Siamese、Triplet和N-pair网络都需要预先准备好配对或三元组的训练数据,这个过程既耗时又占用大量磁盘空间。为了打破这个限制,宋等人提出了一种基于聚类损失的深度度量学习方法,其目标是把同类样本聚到一起(图6g),同时防止不同类的簇靠得太近。里佩尔等人则指出,三元组损失每次只评估一个三元组样本来训练,虽然能减少学习时间,但可能导致性能不佳和训练不足。因此,他们提出了磁体损失(Magnet Loss),它会惩罚不同簇之间的重叠,并评估簇中最近的邻居来分离多个簇。这种方法在局部具有很好的区分度,并且与全局的优化过程保持一致。混合损失(Hybrid Loss)受三元组损失启发,除了锚点和负样本之外,还使用了三个正样本和三个负样本来建立样本之间的相似关系。图6h展示了当使用局部邻域时,相似样本如何自然地靠近最近的集群。表2对文献中最前沿的损失函数进行了详细总结。

表2 损失指标汇总

4 讨论

深度度量学习(DML)在人脸验证、人脸识别、人员重识别和3D形状检索等领域展现出卓越性能。从表1可以看出,DML对于类别数量多、但每个类别样本数量少的长尾分布任务,效果尤为显著。DML的核心竞争力在于其由三部分协同工作:度量损失函数、采样策略和网络结构。像Siamese、Triplet和Quadruple网络,各有其优势。各种度量损失函数,如对比损失、三重损失、四重损失和n对损失,虽然能有效提高数据样本的利用效率,但也可能导致训练时间过长和内存消耗巨大。在采样方面,硬负挖掘和半硬负挖掘是提供信息丰富样本的有效手段,而正确的采样策略是模型快速收敛的基础。值得注意的是,聚类损失这类函数可以看作是度量函数,但它不需要像传统方法那样提前准备样本对,省去了一个预处理步骤。虽然DML通常在GPU上执行,但也有一些策略可以迁移到CPU集群上,以使用更大批量的数据。需要注意的是,DML高度依赖数据本身,即使有很好的度量损失函数,也可能无法保证快速收敛。一个被实践证明有效的方法是使用预训练网络模型的权重来初始化,这有助于嵌入空间快速收敛,并学习到更具判别力的特征。

5 结论

深度度量学习是近年来的研究热点,其目标十分明确:学习一个相似性度量,来计算对象之间的相似或不相似程度。目前,Siamese和Triplet网络在图像、视频、文本和音频任务中都表现出高效和强大的能力。深度度量学习的研究始终围绕着三个核心主线:信息丰富的输入样本、精巧的网络模型结构,以及设计合理的度量损失函数。未来的研究方向,很可能集中在优化采样策略、共享权重机制,以及如何更巧妙地组合多种度量损失函数上。虽然研究已经取得了显著进展,但这个领域依然充满了探索空间。例如,现有方法还有哪些缺点?局部特征和全局特征如何在统一的框架下更好地融合?这些都是值得深入挖掘的问题。

来源:https://m.elecfans.com/article/2741854.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。