Py学习  »  机器学习算法

深度学习+度量学习的综述

数据派THU • 1 周前 • 36 次点击  
本文约6000字,建议阅读10分钟
本综述探讨了深度度量学习的意义、问题、背景、最新改进和与深度学习的关系,详述了其问题、样本选择和度量损失函数,以及现状和未来。

1 介绍

如今,机器学习的应用广泛,包括人脸识别、医疗诊断等,为复杂问题和大量数据提供解决方案。机器学习算法能基于数据产生成功的分类模型,但每个数据都有其问题,需定义区别特征进行正确分类。常用的机器学习算法包括k最近邻、支持向量机和朴素贝叶斯分类器,但需注意特征加权和数据转换。

度量学习(Metric Learning)是机器学习领域中的一个重要分支,它专注于学习数据集中样本之间的相似性或距离度量。这种学习方法在许多机器学习应用中发挥着关键作用,特别是在那些需要比较和区分不同样本的任务中。

深度学习提供了新的数据表示,自动提取特征,包括非线性结构。深度学习和度量学习结合成深度度量学习(如图1),基于样本相似性原理。网络结构、损失函数和样本选择是深度度量学习成功的关键因素。

本综述旨在探讨深度度量学习的意义以及该领域所面临的问题,介绍了其背景、最新改进、与深度学习的关系,并详细解释了深度度量学习问题、样本选择和度量损失函数,同时提出了深度度量学习的现状和未来。

图1 深度度量的学习

2  度量学习

每个数据集在分类和聚类方面都有特定的问题,需要一个良好的距离度量才能获得成功的结果。度量学习方法通过分析数据提供了新的距离度量,提高了样本数据的区分能力。其主要目的是学习一个新的度量,以减少同一类样本之间的距离并增加不同类样本之间的距离。这样可以在不同对象之间创造更大的间隙,从而优化分类和聚类的效果,如图1c。

文献中的度量学习研究与马哈拉诺比斯距离度量直接相关。训练样本X由N个d维向量组成,xi和xj之间的距离计算公式为马哈拉诺比斯距离:




dM(xi, xj) 是一种距离度量,需满足非负性、不可辨别性恒等性、对称性和三角不等式。M必须是对称且半正定的,其特征值或行列式需为正或零,分解如下:


从式(3)可知,W具有线性变换性质。因此,两个样本在变换空间中的欧几里得距离等于原始空间中的马哈拉诺比斯距离。这种线性变换体现了度量学习基础设施的现实。

更好的数据表示能力有助于更准确的分类和聚类预测。度量学习通过学习良好的距离度量,提供更有意义的数据表示。线性度量学习方法在转换后的数据空间中提供更灵活的约束并提高学习性能,但捕获非线性特征性能较差。核方法将问题转移到非线性空间以实现更高性能,但可能产生过度拟合。深度度量学习提出了更紧凑的解决方案,克服了线性和非线性方法的问题。

3  深度度量学习

传统机器学习受限于数据处理能力,需特征工程,如预处理和特征提取,需专业知识。而深度学习直接在分类结构中学习更高层次数据。深度学习需要大量数据,在小数据量下效果不佳,且训练时间长。NVIDIA推出cuDNNGPU加速库,用于深度神经网络的高性能计算,许多深度学习框架都是在使用GPU的同时开发的。

数据分类的基本相似性度量包括EuclideanMahalanobis、Matusita、Bhattacharyya和Kullback-Leibler距离,但这些预定义度量在数据分类方面的能力有限。为解决这个问题,提出了基于马哈拉诺比斯度量的方法,将数据分类为传统的度量学习,将数据变换到具有更高判别力的新特征空间。然而,这些方法不足以揭示数据的非线性知识。深度学习使用具有非线性结构的激活函数来解决这个问题。

深度学习方法通常基于深层架构,而非新的数据表示空间中的距离度量。然而,基于距离的方法在深度学习中越来越受关注。深度度量学习的目的是增加相似样本之间的距离,减少不同样本之间的距离,这与样本之间的距离直接相关。通过执行这个过程,度量损失函数在深度学习中得到了好处。为了使来自相同类别的样本彼此更接近,我们将来自不同类别的样本彼此分开(图2)。在对比损失的情况下,MNIST图像数据集上的实验证明了该方法的有效性。

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



3.1  深度度量学习问题


深度度量学习通过深层架构学习非线性子空间特征相似性,开发出基于问题的解决方案。其应用广泛,包括视频理解、人员重新识别、医疗问题、3D建模、人脸验证和识别、签名验证等。

视频理解。理解视频存在多种问题,如视频注释推荐、搜索等,可通过非度量空间提出解决方案。李等人首先提取音频和视觉特征,然后提出基于三元组学习的深度神经网络嵌入模型,用于学习基于深度度量学习的度量,以促进视频监控中的人类定位。该方法优于其他方法,因为预定义的距离度量可能不足以满足视觉任务。Hu等人使用基于距离度量的方法进行视觉跟踪,表明在度量空间中工作的优势。

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

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

3D建模。深度度量学习在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  样本选择


深度度量学习由信息输入样本、网络模型结构和度量损失函数组成。信息样本选择对分类和聚类至关重要,影响网络成功率和训练速度。随机选择正负对象对是最简单的训练样本对比损失方法,但在网络性能达到一定水平后,学习过程可能会减慢。硬负挖掘和三元组网络等方法可以提高网络性能,但简单的三元组可能效果不佳。因此,使用信息丰富的样本三元组可以提供更好的训练模型。

硬负样本是假阳性样本,半硬负挖掘寻找边界内负样本,与硬负样本相比,负样本距离锚样本更远。三元组挖掘根据锚点、正样本和负样本之间的距离进行负挖掘,如图 4 所示。负样本距离锚点太近会导致梯度高方差和低信噪比,建议使用距离加权采样避免噪声样本。负类挖掘使用每个类样本之一作为三重网络的负样本,使用贪婪搜索策略选择多个负样本。

图4 负挖掘


总之,即使有良好的数学模型和架构,网络的学习能力也会受到样本辨别能力的限制。因此,应向网络呈现有区别的训练样例,以实现更好的学习和表示。样本选择作为预处理步骤可以提高网络模型的成功率。深度度量学习中的负挖掘研究具有高影响价值。选择信息丰富的样本可以避免过度拟合,提高学习速度,并减少资源浪费。因此,在选择信息丰富的样本后,可以实现性能的显著提高。

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

本节将介绍用于应用深度度量学习的损失函数,包括其使用方式和差异。这些函数帮助我们通过调整对象相似性来优化特征表示。

Siamese网络最初用于签名验证,基于从基于能量的模型的判别学习框架中学习。该方法将两张相同图像放入连体网络,通过学习获得二进制值,判断图像是否属于同一类。Siamese网络作为度量学习方法,接收成对图像训练网络模型。图像对之间的距离通过损失函数计算(等式(5))。对比损失使Siamese网络受益,启发了深度度量学习领域的研究人员。Siamese网络可以最大化或最小化对象之间的距离以提高分类性能。共享权重用于在深度度量学习中获得图像中有意义的模式,如图 5 所示,对神经网络性能产生积极影响。Siamese网络和卷积神经网络可以结合,同时从直接图像像素、颜色和纹理信息进行相似性学习。深度度量学习模型结合两个Siamese卷积神经网络和马哈拉诺比斯度量进行行人重新识别。

图5 Siamese 网络和 Triplet 网络


Triplet网络受Siamese网络启发,包含三个对象,形成正、负和锚样本。这种网络利用欧几里得空间来比较模式识别过程中的对象,与度量学习紧密相关。从等式(6)中可以看出,三元组损失关注相同类和不同类的成对样本相似性,通过比较成对样本的相似性进行分类(图 6)。三元组网络不仅利用类内和类间关系,还提供了更高的区分能力。分层三元组损失通过在线自适应树更新提高了网络的性能。另外,角度损失是一种新颖的方法,侧重于三重三角形负点处的角度约束,将负点推离正簇的中心,使正点彼此靠近,同时使用作为旋转和尺度不变度量的角度(等式(8))。四倍损失在每个训练批次中使用四倍样本,以获得更好的接近度。直方图损失使用四元组训练样本,利用直方图来计算正负对的相似度分布,无需调整参数,在人员重新识别数据集的实验研究中获得了优异的结果。部分损失旨在使用不同的身体部位进行评估,将图像分为五个部分,计算每个部分的部分损失值。

损失函数是深度度量学习模型的关键,嵌入空间中配对样本的新表示需要考虑一些损失函数。例如,一对输入样本DW(X1, X2)的距离为:



其中,GW(X1) 和 GW(X2) 是新表示的输入样本,DW用于计算损失函数中两个输入之间的距离。用于计算 Siamese 网络模型中损失函数的 LContrastive 是:


其中Y是标签值,如果输入来自同一类则Y=1,否则Y=0。m是LContrastive中的margin值。三元组网络有三个输入:锚输入X、与X相似的X_p、与X不同的X_n。LTriplet损失是:


其中 α 是裕度值。四元网络模型还具有与三元网络模型不同的另一个输入X。X s 类似于 X 输入,如 X p 输入。四倍损失 LQuadruple 是:


角度损失考虑了样本之间的角度关系。角度损失 LAngular 是:


其中 X c 位于 X 和 X p 的中间。Xc 是:


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

图6 度量损失函数


在训练阶段之前,必须为Siamese、Triplet和n-double网络准备训练数据,此过程需要更多磁盘空间并且非常耗时。宋等人提出了一种新的深度度量学习方法,使用聚类损失将样本聚集在一个聚类中(图 6g),防止不同的簇相互接近。里佩尔等人强调三元组损失一次评估一个三元组样本来训练数据集,减少网络的学习时间。然而,这种方法会导致性能不佳和培训不足。因此,他们建议磁体损失,这会惩罚簇重叠并评估簇中最近的邻居以分离多个簇。所提出的方法具有局部区分度,并且与优化过程全局一致。混合损失受到三元组损失的启发,除了anchor和负样本之外,还使用三个正样本和三个负样本来建立样本之间的相似关系。图6h说明了在使用局部邻域时相似样本如何接近最近的集群。表2详细总结了文献中最先进的损失指标。

表2 损失指标


4  讨论

深度度量学习(DML)用于人脸验证、识别、人员重识别和3D形状检索,表1显示,DML对类别多、样本少的任务效果显著。DML由度量损失函数、采样策略和网络结构组成,如Siamese、Triplet和Quadruple网络。度量损失函数如对比损失、三重损失、四重损失和n对损失,增加数据样本大小,但可能导致训练时间过长和内存消耗大。硬负挖掘和半硬负挖掘提供信息丰富的样本,而正确的采样策略对快速收敛至关重要。聚类损失作为度量函数,无需数据准备步骤。DML通常在GPU上执行,但某些策略也可用于CPU集群以使用大批量数据。DML高度依赖数据,度量损失函数可能无法提供快速收敛。预训练网络模型的权重有助于嵌入空间快速收敛和更具辨别力的学习。

5  结论

深度度量学习是近年来的研究热点,旨在学习相似性度量,用于计算对象间的相似性或不相似性。目前,Siamese和Triplet网络在图像、视频、文本和音频任务中表现出高效性。深度度量学习研究包括信息输入样本、网络模型结构和度量损失函数。未来研究方向包括优化采样策略、共享权重和度量损失函数的组合。虽然研究已取得进展,但仍有许多方面有待探索,如现有方法的缺点和局部特征与全局特征的结合。

参考资料:《 Deep Metric Learning: A Survey》

编辑:黄继彦

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169330
 
36 次点击