一、度量学习简单理解 【1】
度量学习(Metric Learning
)——距离度量学习(Distance Metric Learning,DML
)——相似度学习。
在数学中,一个度量(或距离函数)是一个定义集合中元素之间距离的函数。
一个具有度量的集合被称为度量空间。
度量学习(Metric Learning
)是人脸识别中常用的传统机器学习方法,由Eric Xing
在NIPS 2002
提出,可以分为两种:
- 通过线性变换的度量学习
- 通过非线性变化的度量
其基本原理是根据不同的任务来自主学习出针对某个特定任务的度量距离函数。后来度量学习又被迁移至文本分类领域,尤其是针对高维数据的文本处理,度量学习有很好的分类效果。
度量学习根据是否转换原始特征空间后再进行度量,分为两类 【2】:
- 直接度量
此类方法一般根据原始特征空间中对象间的欧式距离(Euclidean Distance
)进行度量,例如KNN算法就是直接根据欧氏距离计算对象间的相似性。
- 转换后度量
此类方法一般基于马氏距离(Mahalanobis distance
),其通过投影矩阵W对源向量投影后再进行距离的度量。
二、与经典识别网络相比
K-means
、K近邻方法
、SVM
等算法,比较依赖于输入时给定的度量。
比如:数据之间的相似性,那么将面临的一个基本的问题是如何获取数据之间的相似度。
为了处理各种各样的特征相似度,我们可以在特定的任务通过选择合适的特征并手动构建距离函数。
然而这种方法会需要很大的人工投入,也可能对数据的改变非常不鲁棒。
度量学习作为一个理想的替代,可以根据不同的任务来自主学习出针对某个特定任务的度量距离函数。
经典识别网络有一个bug
:必须提前设定好类别数。 这也就意味着,每增加一个新种类,就要重新定义网络模型,并从头训练一遍。
比如我们要做一个门禁系统,每增加或减少一个员工(等于是一个新类别),就要修改识别网络并重新训练。很明显,这种做法在某些实际运用中很不科学。
因此,Metric Learning
作为经典识别网络的替代方案,可以很好地适应某些特定的图像识别场景。一种较好的做法,是丢弃经典神经网络最后的softmax
层,改成直接输出一根feature vector
,去特征库里面按照Metric Learning
寻找最近邻的类别作为匹配项。
目前,Metric Learning
已被广泛运用于人脸识别的日常运用中。
深度度量学习 【2】
对于传统度量学习而言,由于其处理原始数据的能力有限,因此需要首先使用特征工程的知识对数据进行预处理,然后再用度量学习的算法进行学习。
一些传统的度量学习方法只能学习出线性特征,虽然有一些能够提取非线性特征的核方法被提出,但对学习效果也没有明显提升。
随着深度学习的出现,得益于激活函数学习非线性特征的优秀能力,深度学习方法能够自动地从原始数据中学出高质量的特征。
因此深度学习的网络结构与传统的度量学习方法相结合能够带来理想的效果。
深度度量学习主要由三方面组成:
- 样本挖掘
- 模型结构
- 损失函数
三、reference
【1】度量学习(Metric Learning)基础概念介绍——2020.2.2-Someday&Li-博客园(cnblogs.com)
【2】度量学习/对比学习入门: 论文阅读笔记-Deep Metric Learning: A Survey - 知乎 (zhihu.com)