度量学习 (Metric Learning)(一)

度量学习(Metric Learning

度量(Metric)的定义 

在数学中,一个度量(或距离函数)是一个定义集合中元素之间距离的函数。一个具有度量的集合被称为度量空间。

为什么要用度量学习?

很多的算法越来越依赖于在输入空间给定的好的度量。例如K-meansK近邻方法、SVM等算法需要给定好的度量来反映数据间存在的一些重要关系。这一问题在无监督的方法(如聚类)中尤为明显。举一个实际的例子,考虑图1的问题,假设我们需要计算这些图像之间的相似度(或距离,下同)(例如用于聚类或近邻分类)。面临的一个基本的问题是如何获取图像之间的相似度,例如如果我们的目标是识别人脸,那么就需要构建一个距离函数去强化合适的特征(如发色,脸型等);而如果我们的目标是识别姿势,那么就需要构建一个捕获姿势相似度的距离函数。为了处理各种各样的特征相似度,我们可以在特定的任务通过选择合适的特征并手动构建距离函数。然而这种方法会需要很大的人工投入,也可能对数据的改变非常不鲁棒。度量学习作为一个理想的替代,可以根据不同的任务来自主学习出针对某个特定任务的度量距离函数。

 

图 1

度量学习的方法

根据相关论文[2,34],度量学习方法可以分为通过线性变换的度量学习和度量学习的非线性模型。

2.1 通过线性变换的度量学习

由于线性度量学习具有简洁性和可扩展性(通过核方法可扩展为非线性度量方法),现今的研究重点放在了线性度量学习问题上。线性的度量学习问题也称为马氏度量学习问题,可以分为监督的和非监督的学习算法。

监督的马氏度量学习可以分为以下两种基本类型:

I 监督的全局度量学习:该类型的算法充分利用数据的标签信息。如

 

  • Information-theoretic metric learning(ITML)
  • Mahalanobis Metric Learning for Clustering([1]中的度量学习方法,有时也称为MMC)
  • Maximally Collapsing Metric Learning (MCML)

 

II 监督的局部度量学习:该类型的算法同时考虑数据的标签信息和数据点之间的几何关系。如

 

  • Neighbourhood Components Analysis (NCA)
  • Large-Margin Nearest Neighbors (LMNN)
  • Relevant Component Analysis(RCA)
  • Local Linear Discriminative Analysis(Local LDA)

 

此外,一些很经典的非监督线性降维算法可以看作属于非监督的马氏度量学习。如

  •  主成分分析(Pricipal Components Analysis, PCA)
  • 多维尺度变换(Multi-dimensional Scaling, MDS)
  • 非负矩阵分解(Non-negative Matrix Factorization,NMF)
  • 独立成分分析(Independent components analysis, ICA)
  • 邻域保持嵌入(Neighborhood Preserving Embedding,NPE)
  • 局部保留投影(Locality Preserving Projections. LPP)

 

2.2 度量学习的非线性模型

非线性的度量学习更加的一般化,非线性降维算法可以看作属于非线性度量学习。经典的算法有等距映射(Isometric Mapping,ISOMAP) 、局部线性嵌入(Locally Linear Embedding, LLE) ,以及拉普拉斯特征映射(Laplacian Eigenmap,LE ) 等。另一个学习非线性映射的有效手段是通过核方法来对线性映射进行扩展。此外还有如下几个方面

 

  • Non-Mahalanobis Local Distance Functions
  • Mahalanobis Local Distance Functions
  • Metric Learning with Neural Networks

3 应用

度量学习已应用于计算机视觉中的图像检索和分类、人脸识别、人类活动识别和姿势估计,文本分析和一些其他领域如音乐分析,自动化的项目调试,微阵列数据分析等[4]

推荐阅读的论文

以下列举的论文大都对后来度量学习产生了很大影响(最高的google引用量上了5000次)。1-6篇论文是关于一些方法的论文,最后一篇为综述。

 

  • Distance metric learning with application to clustering with side-information
  • Information-theoretic metric learning(关于ITML)
  • Distance metric learning for large margin nearest neighbor classification(关于LMNN)
  • Learning the parts of objects by non-negative matrix factorization(Nature关于RCA的文章)
  • Neighbourhood components analysis(关于NCA)
  • Metric Learning by Collapsing Classes(关于MCML)
  • Distance metric learning a comprehensive survey(一篇经典的综述)

机器学习数据集

UCI machine learning repository:http://archive.ics.uci.edu/ml/

 

 

参考文献

[1] Xing E P, Jordan M I, Russell S, et al. Distance metric learning with application to clustering with side-information[C]//Advances in neural information processing systems. 2002: 505-512.

[2] Kulis B. Metric learning: A survey[J]. Foundations and Trends in Machine Learning, 2012, 5(4): 287-364.

[3] Yang L, Jin R. Distance metric learning: A comprehensive survey[J]. Michigan State Universiy, 2006, 2.

[4]王微融合全局和局部信息的度量学习方法研究[D]. 中国科学技术大学, 2014.

 

 

接下来,小编将继续介绍一些重要的算法,敬请期待

  • 26
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 深度度量学习(deep metric learning)是一种深度学习技术,旨在学习数据之间的相似度度量。它可以用于许多应用程序,例如人脸识别、图像检索和推荐系统。通过学习数据之间的相似度度量,深度度量学习可以使相似的数据点更加接近,而不相似的数据点更加远离。这种技术可以提高许多应用程序的准确性和效率。 ### 回答2: Deep metric learning是指在深度学习模型中建立度量函数,用于计算不同数据样本之间的距离和相似度,并且能够在训练过程中不断地优化这个度量函数,以使得相似的样本被拉近,不相似的样本被推远。 在实际应用中,deep metric learning主要用于图像检索、人脸识别、视觉跟踪等领域。通过学习深度度量函数,可以实现对于特定场景下的数据,建立更加准确的相似度度量,提升模型性能。 Deep metric learning的主要挑战是如何构建合适的损失函数,以实现良好的度量学习。通常使用的有对比损失(contrastive loss)、三元组损失(triplet loss)、n-pair损失等。对于不同类型的数据,选择不同的损失函数往往可以取得更好的效果。 除此之外,选取合适的模型架构和实现技巧也非常重要,例如使用卷积神经网络(CNN)进行特征提取、使用欧氏距离或余弦相似度进行度量、设置动态采样策略以处理数据不平衡等。 总之,deep metric learning作为一种建立深度度量函数的技术,具有广泛的应用前景和研究意义,同时也需要在算法、数据、技术等多个方面进行不断的探索和优化。 ### 回答3: 深度度量学习是一种学习如何将多个样本映射到其中一个嵌入空间的技术。通俗来讲,它可以将相似的样本映射到接近的位置,不相似的样本映射到远离的位置。这个技术可以为计算机视觉领域中许多问题提供强力的支持,例如人脸识别、目标识别和图像聚类等问题。 在深度度量学习的技术中,我们通常会使用神经网络来实现样本嵌入的映射。神经网络可以学习到样本之间的相似性和距离度量,它可以通过训练来学习嵌入空间的参数,并且最终能够将样本嵌入到具有良好性能的空间中。 在深度度量学习中最流行的方法是对比损失函数,目的是通过学习网络参数使得相似的样本更加接近,并使不相似的样本更加远离。具体来说,对比损失函数通过比较不同的样本对来构建一个损失函数,这些样本对由相同类别或不同类别的样本组成。 深度度量学习可以概括为三个阶段:训练、验证和测试。在训练阶段,我们通过对神经网络模型进行监督来学习样本嵌入空间和度量。在验证阶段,我们可以通过检查嵌入空间中的样本分布来检查模型的性能和泛化能力。在测试阶段,我们可以使用已学习好的模型来计算未知样本的距离度量并进行比对。 总的来说,深度度量学习技术是一种重要的技术,可以在计算机视觉领域的许多问题中发挥重要的作用。它可以通过学习网络参数,使得相似的样本更聚集,不相似的样本更分散,提高模型的准确性和鲁棒性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值