原文链接:What is Metric Learning?
1. 问题定义
根据可依赖的训练数据的形式,可将度量学习问题公成两类:
- 有监督学习:算法不得不接近一列数据点集,其中的每一个数据有带有类别标签。一般来说,有监督下的度量学习的目的是为了学到这样的距离度量,这个距离度量能够将具有相同标签(同类)的数据点拉近,并将不同标签(异类)的数据点推开。
- 弱监督学习:该算法仅在元组级别(二元组、三元组,或者四元组)的监督下访问一组数据点。这种较弱的监督的一个典型例子是一组正对和负对;在这种情况下,目标是学习一个距离度量,将正对放在一起,负对放在远处。
2. 马氏距离
在metric-learn包中,所有当前的算法都学习一个被称之为“马氏距离”的度量。给定一个实参数距离 L ∈ R n × m L\in R^{n\times m} L∈Rn×m,其中 n n n为维数, m m m为数据的特征个数。马氏距离可以表示成如下形式:
D ( x , x ′ ) = ( L x − L x ′ ) T ( L x − L x ′ ) D(x,x')=\sqrt{(Lx-Lx')^T(Lx-Lx')} D(x,x′)=(Lx−Lx′)T(Lx−Lx′)
换句话说,马氏距离就是特征空间通过矩阵 L L L做完线性变换后的欧式距离。当 L L L为单位阵时,马氏距离就等于欧式距离。马氏距离的度量学习可以看作是学习一个新的 n n n维嵌入空间。注意到,当 n n n是比 m m m要小时,达到降维的效果。
严格意义上,马氏距离是一种伪度量:它满足度量的三个特性(非负,对称,三角不等式)。
注意:马氏距离也可以参数化为一个半正定的矩阵 M M M:
D ( x , x ′ ) = ( x − x ′ ) T M ( x − x ′ ) D(x,x')=\sqrt{(x-x')^TM(x-x')} D(x,x′)=(x−x′)TM(x−x′)
此处, M = L T L M=L^TL M=LTL。因此,对该度量学习问题的求解可是求解 M M M,也可以是 L L L。
3. 用途
度量学习的用途有很多,我们下面介绍一些受欢迎的例子。具体例子请看example。
- 最近邻模型:学习到的度量能够用来提升最近邻学习模型的分类、回归、自动检测的性能;
- 聚类:度量学习能够提供一种方法,可以使算法(如K-Means)发现聚类更倾向于预期的语义;
- 信息检索:学习到的度量可以用来检索在数据集中与查询元素在语义上更紧密的目标;
- 降维:度量学习可以被当作在弱监督设置下的一种降维方法;
- 更一般地,学到的变换矩阵 L L L能够用于将数据映射到一个新的嵌入空间,进行降维,接着用于后续的机器学习算法。
metric-learn包的应用接口是基于scikit-learn。我们能很方便地将度量学习器与其它基于scikit-learn的估计器实现其它用途。
4. 补充阅读
关于更多度量学习的信息与应用,我们可以参考以下文献:
- 教程: Similarity and Distance Metric Learning with Applications to Computer Vision (2015)
- 综述::A Survey on Metric Learning for Feature Vectors and Structured Data (2013), Metric Learning: A Survey (2012)
- 书籍:Metric Learning (2015)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/19455.html