【度量学习 · 二】经典度量学习方法

举报
MUR11 发表于 2020/08/29 15:42:09 2020/08/29
【摘要】 作为本系列的第二篇文章,主要介绍一些经典的度量学习算法,包括传统的非深度学习算法和目前热门的深度学习算法。

  通常我们在计算两个向量之间的距离的时候,都会采用一些特定的距离度量方式。其中比较常见的距离度量方式包括:欧氏距离、余弦距离、曼哈顿距离、Mahalanobis距离等。但是这些距离度量方式通常都不够灵活,在实际使用的时候不一定能够满足需要。

  例如,为了进行人脸认证,我们需要的距离度量必须保证同一个人的两张照片的相似度大于不同人的两张照片的相似度。为了实现这个目标,通常需要先提取照片的特征向量,之后再计算特征向量之间的相似度。但是由于图片具有高度的复杂性,提取出的特征中难免会包含一定的干扰(噪声),导致特征向量之间在一定程度上混杂在一起。以下图为例,图中不同颜色的图形代表不同身份的人,每个图形代表一张照片的特征向量。实际情况下,不同人的不同照片的特征之间往往是混杂在一起的。例如最左侧的蓝色圆圈与左边的红色、绿色方块更靠近,而离右边的蓝色圆圈则较远。在这种情况下,使用欧氏距离等传统的距离度量方式就很容易将蓝色圆圈表示的人识别为红色或绿色方块表示的人,导致人脸识别系统出错。为了解决这个问题,我们需要做的就是去学习一个能够满足我们的需要的度量,而不是使用固定的度量。这类方法也因此得名“度量学习”。

常见的度量学习方法在形式上可以分为两类:

 

一、度量矩阵学习

在经典的Mahalanobis距离的计算中,涉及一个度量矩阵M。例如,当计算两个1*d维向量xy之间的距离的时候,Mahalanobis距离的定义为:

d = (x – y)M(x – y)T

其中M是一个d*d维的半正定矩阵。

在上面的公式中,通过改变矩阵M,即可改变计算出来的距离的值。因此度量学习中的一种经典思路就是去学习一个符合我们要求的度量矩阵M

在这条思路上,比较经典的方法是LMNNLarge Margin Nearest Neighbor[1]。如下图所示,这是一种有监督的度量学习方法。在标注的过程中,一些样本对被标注为相似样本对,而另外一些样本对被标注为不相似样本对。这个方法的目标是:寻找一个最优的M矩阵,来最小化相似样本对之间的距离d,同时保证不相似样本对之间的距离要足够大。

    虽然这个算法从提出到现在已经过去了十多年,但是这个算法中设计的损失函数,其思想已经成为了当前深度度量学习的基础。

 

二、嵌入空间学习

上述学习度量矩阵的方法虽然能够在一定程度上改变距离度量的计算方式,但是由于可以学习的参数比较有限,模型的复杂度也比较有限,方法的能力也比较有限。并且由于是在Mahalanobis距离的基础上进行的学习,能够修改的地方也不多,想向更复杂的方向扩展也存在一定的困难。

相比之下,另一种主流的度量学习方法则更加灵活。这种方法通过线性或非线性的映射,将图像或图像特征(可以统称为样本)变换到一个嵌入空间(embedding space)中,使变换后的样本在嵌入空间中满足一定的距离约束。由于这类方法不限制变换的类型,所以变换既可以是简单的线性变换,也可以是各种复杂的深度学习模型,使得这类方法在近几年获得了大量的关注。

这类方法中,最常用的距离约束主要有两类。第一类基于样本对定义距离约束,第二类则是基于三个样本组成的三元组定义距离约束。

(一)样本对距离约束

第一类方法中,具有代表性的是对比损失(contrastive loss[2]。如下图所示,如果是相似的样本对,则距离约束的目标是将两个样本之间的距离拉近。反之如果是不相似的样本对,当两个样本之间的距离小于一定阈值的时候,距离约束的目标是将两个样本之间的距离推远;而当样本之间的距离已经大于这个阈值的时候,则样本之间的距离已经满足距离约束,距离约束不会影响这对样本。

这种方法可以看作在每对样本之间存在一个弹簧。对于相似样本对,这个弹簧始终处于被拉伸的状态,因此弹簧会倾向于收缩,减小相似样本对之间的距离;对于不相似的样本对,可以认为弹簧有一个原始长度,当样本对之间的距离小于弹簧的原始长度的时候,弹簧被压缩,因此弹簧会倾向于恢复原始的长度,也就是会增大不相似样本对之间的距离。而当样本对之间的距离大于弹簧的原始长度的时候,样本对就会和弹簧脱钩,弹簧不再对样本对施力。相应地,对模型的优化就可以看成是使整个弹簧系统达到平衡状态。

 

(二)三元组距离约束

另一类经典的距离约束是基于样本的三元组定义的。具体来说,这类方法认为图像对距离约束中对相似样本对的约束过于严格了。因此这类方法提出,只要相似样本对之间的距离小于不相似样本对之间的距离就足够了,具体的距离是多大并不重要。采用这类思想的比较有代表性的方法有FaceNet [3]等。

当时这类基于三元组定义距离约束的方法通常存在另一个问题:在训练的后期,绝大多数三元组都已经满足距离约束了,只有少数的三元组还不满足约束。如何高效地找到这少数尚不满足约束的三元组,并让这些三元组在模型训练过程中发挥作用是采用三元组距离约束方法的关键。

 

(三)其他距离约束

近年来结合深度学习和度量学习的方法越来越多,研究人员也提出了更多新的距离约束方式,如Triplet Center LossN-pair lossLifted Structure Loss等,使度量学习模型的训练更容易、效果更好。不过从方法设计的基本思想上看,还是基于样本对距离约束或三元组距离约束。

 

[1] Kilian Q. Weinberger, John Blitzer, Lawrence K. Saul. Distance Metric Learning for Large Margin Nearest Neighbor Classification. NIPS 2005.

[2] Raia Hadsell, Sumit Chopra, Yann LeCun. Dimensionality Reduction by Learning an Invariant Mapping. CVPR 2006.

[3] Florian Schroff, Dmitry Kalenichenko, James Philbin. FaceNet: A Unified Embedding for Face Recognition and Clustering. CVPR 2015.


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。