深度度量学习 (metric learning deep metric learning )度量函数总结

article/2025/11/10 19:19:25
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_16234613/article/details/81210320

曼哈顿距离(CityBlockSimilarity)

同欧式距离相似,都是用于多维数据空间距离的测度。
这里写图片描述

欧式距离(Euclidean Distance)

用于衡量多维空间中各个点之间的绝对距离。欧式距离的缺点就是将每个维度同等看待,但显然不是,比如人脸vector,显然眼睛、鼻子、嘴部特征应该更为重要。因此使用时各个维度量级最好能够在同一个尺度上。
这里写图片描述

马氏距离(Mahalanobis distance)

一种有效的计算两个未知样本集的相似度的方法。与欧氏距离将所有维度同等看待不同,其考虑到各种维度之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant),即独立于测量尺度。作为欧式距离的标准化版,归一化特征的同时也有可能过分看重微小变化的特征。
这里写图片描述
其中x为单个样本,u为样本集合均值,S为样本集合协方差。

明可夫斯基距离(Minkowski Distance)

明氏距离,是欧氏空间中的一种测度,被看做是欧氏距离和曼哈顿距离的一种推广。
这里写图片描述

切比雪夫距离(Chebyshev Distance)

各坐标数值差的最大值。
这里写图片描述


搬土距离(Earth Mover’s Distance)

待续


余弦相似度(Cosine Similarity)

用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。
这里写图片描述

调整余弦相似度(Adjusted Cosine Similarity)

在余弦相似度的介绍中说到:余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感。因此没法衡量每个维数值的差异,会导致这样一个情况:比如用户对内容评分,5分制,X和Y两个用户对两个内容的评分分别为(1,2)和(4,5),使用余弦相似度得出的结果是0.98,两者极为相似,但从评分上看X似乎不喜欢这两个内容,而Y比较喜欢,余弦相似度对数值的不敏感导致了结果的误差, 
需要修正这种不合理性,就出现了调整余弦相似度,即所有维度上的数值都减去一个均值,比如X和Y的评分均值都是3,那么调整后为(-2,-1)和(1,2),再用余弦相似度计算,得到-0.8,相似度为负值并且差异不小,但显然更加符合现实。


皮尔森相关性(Pearson correlation-based similarity)

用于表示两个变量之间的线性相关程度,它的取值在[-1, 1]之间。当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数等于0,表明它们之间不存在线性相关关系。
这里写图片描述

未知类似:
这里写图片描述

斯皮尔曼秩相关系数(SpearmanCorrelationSimilarity)

用来度量两个变量之间联系。
这里写图片描述

Tanimoto系数(TanimotoCoefficientSimilarity),又称广义杰卡德系数(Jaccardsimilarity coefficient)

Tanimoto Coefficient主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此无法衡量差异具体值的大小,只能获得“是否相同”这个结果。其值介于[0, 1]之间,如果两个用户关联的物品完全相同,交集等于并集,值为1;如果没有任何关联,交集为空,值为0。
这里写图片描述

对数似然相似度(LogLikelihoodSimilarity)

主要应用于自然文本语言库中两个词的搭配关系问题。它是基于这样一种思想,即统计假设可以确定一个空间的很多子空间,而这个空间是被统计模型的位置参数所描述。似然比检验假设模型是已知的,但是模型的参数是未知的。
这里写图片描述
这里写图片描述

海明距离(Hamming distance)

在信息领域,两个长度相等的字符串的海明距离是在相同位置上不同的字符的个数,也就是将一个字符串替换成另一个字符串需要的替换的次数。
1011101与1001001之间的汉明距离是2。 
2143896与2233796之间的汉明距离是3。 
“toned”与“roses”之间的汉明距离是3。

豪斯多夫距离(hausdorff distance)

度量两组点集合之间的距离

这里写图片描述
遍历集合A中点,分别找到它们与集合B的最短距离,然后取最大距离,同理对于集合B,然后取二者较大值。

更全版本

深度度量学习(deep metric learning)

Center loss:
优化各个样本到其聚类中心的距离。
xi:第i张图片的特征值
cyi:该图片所属分类的中心(该分类的特征值的中心)
这里写图片描述
Contrastive embedding:
在 paired data (xi,xj,yij)上进行训练。 contrastive training 最小化具有相同 label 类别的样本之间的距离,然后对不同label的样本,其距离小于 α 的 negative pair 给予惩罚(距离大于α的被max(0,)置为0,可能觉得距离过大时,再优化没有意义,还会导致影响其他距离小的异类样本的优化)。每次优化只是在一对样本间。
这里写图片描述
Triplet embedding(Triplet Loss):
找一个 anchor,然后找一个正样本p,一个负样本n。训练的目的就是:鼓励网络找到一个 embedding 使得 anchor 和 negative 之间的距离大于 anchor 和 positive 加上一个 margin α 的和。相比Contrastive,其优化是在三个样本之间,彼此有了参照。
这里写图片描述
这里写图片描述
lifted structured feature embedding:
Contrastive 和 Triplet存在拟合速度慢,易陷入局部极小点问题。
Deep Metric Learning via Lifted Structured Feature Embedding
文章认为过去方法没有充分考虑一个mini-batch中存在的各个样本距离关系。因此提出考虑一个batch中所有样本距离,公式i,j表示相同label,N表示与其相异的样本集合。如下图,同样是6个样本lifted不仅考虑每个pair对关系,还考虑每个相异样本距离关系。
这里写图片描述
这里写图片描述
红色线条代表两个样本同label,蓝色表示相异。
但上述损失函数又两个问题:不够平滑;计算时同个pair重复计算了多次。
这里写图片描述
这里写图片描述
同时文章还引入难分样本挖掘思想:
这里写图片描述
Multi-class N-pair Loss Objective:
文章同样认为过去方法没有充分考虑一个mini-batch中存在的各个样本距离关系。并且在训练的末期,许多随机选择negative example由于和positive example距离太大,已经不能提供梯度信息了,因此需要使用mini negative。思想和前面的lifted非常像,就是一个特例。
这里写图片描述
这里写图片描述
如果按照原本的N-pair方法采集样本,当类别很大时,模型将需要一次载入大量数据样本。因此作者重建了一种高效新的办法,只需要2N个不同类别样本,就形成原本的N-pair方法。
这里写图片描述
Hard negative class mining步骤:
这里写图片描述
regularize L2:
这里写图片描述
Angular Loss:
Deep Metric Learning with Angular Loss
从角度相似性方向考虑对triplet loss,增强了其尺度不变性,并且考虑了3阶几何约束。这篇文章的逻辑推理很nice。
这里写图片描述
文章认为triplet loss的优化使得an的距离相比ap的距离变化程度更大,an距离的变大导致角n变小。如果从角度方向可以认为triplet loss的优化可以等效于优化角n。然而如果直接使用上式进行优化,会导致一些问题。如下图a,角n的减小导致xn移动到xn’,当这会减小an的距离,形成相反效果。
这里写图片描述
因此作者试图优化样本n和有样本p和a组成的样本分布的关系。通过样本p和a组成的圆,认为是样本分布区域,然后使用圆的中心和左点m重新构建三角关系。
这里写图片描述
这里写图片描述
global loss functions:
Learning local image descriptors with deep siamese and triplet convolutional networks by minimising global loss functions
这里写图片描述
这里写图片描述


http://chatgpt.dhexx.cn/article/13x42P79.shtml

相关文章

Multi-Scale Metric Learning for Few-Shot Learning(用于小样本学习的多尺度度量学习)

Abstract 本文提出了一种新的小样本学习方法,名字叫多尺度度量学习(multi-scale metric learning, MSML),能提取多尺度特征,学习样本间的多尺度关系,进行少镜头学习分类。提出了一种基于特征金字塔结构的多尺度特征嵌入方法&…

Metric Learning——度量学习

2018年04月10日 15:30:29 敲代码的quant 阅读数:1567 标签: 度量学习metric learning机器学习聚类 更多 个人分类: 机器学习 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/FrankieHel…

百面深度学习:基于度量学习的元学习模型

文章目录 Q1 元学习中非参数方法相比于参数方法的优点?Q2 如何用度量学习和注意力机制来改造基于最邻近的元学习方法? 更多基础知识可以查看前文内容 《百面深度学习》之元学习 基于度量学习(Metric Learning)的元学习方法&#…

行人重识别-度量学习

行人重识别-度量学习 前言 和前面介绍到的表征学习一样,度量学习也是基于全局特征学习的一种方法,且被广泛用于图像检索领域。不同于表征学习通过分类或者验证的方式,度量学习目的在于通过网络学习两张图片的相似度。在行人重识别问题上&am…

度量学习方法 - KISSME

KISSME(keep it simple and straightforward metric), 属于有监督的线性度量学习方法,本质上还是学习马氏距离中的矩阵M. 推导 首先,认为对于样本对,它们之间的差异程度(dissimilar)可以通过似然…

论文 基于度量学习的小样本学习研究 阅读心得

论文主要工作: 本文提出带间隔的小样本学习, 提升了所学习嵌入表示的质量。 为引入间隔, 本文根据小样本场景特点提出了多路对比损失, 使得小样本学习模型可以学习到一个更加具有判别性的度量空间,同时泛化误差可以减小…

度量学习1

度量学习: 度量学习作为小样本学习中主要方法之一,在解决小样本问题上应用较广,本篇博客主要介绍几篇metric learning的基础文献。 分别是: (1)Siamese Neural Networks for One-shot Image Recognition &a…

度量学习DML之Circle Loss

度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structure Loss_程大海的博客-CSDN博客 度量学习DML之Circle Loss_程大海的博客-CSDN博客 度量学习DML之Cross-Batch Memory_程大海的…

度量学习DML之MoCO

度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structure Loss_程大海的博客-CSDN博客 度量学习DML之Circle Loss_程大海的博客-CSDN博客 度量学习DML之Cross-Batch Memory_程大海的…

【ReID】表征学习和度量学习

文章目录 1.表征学习1.1分类损失1.2验证损失1.3表征学习总结 2.度量学习2.1 Introduction2.2 对比损失2.3 三元组损失2.4 改进三元组损失2.5 四元组损失2.6 TriHard loss2.7 Triple loss with adaptive weights2.8 度量学习总结 3. 总结 表征学习和度量学习是行人重识别最基本的…

度量学习---综述

introduction 度量学习的对象通常是样本特征向量的距离,度量学习的目的是通过训练和学习,减小或限制同类样本之间的距离,同时增大不同类别样本之间的距离。 度量学习 (Metric Learning) 距离度量学习 (Distance Metric Learning&#xff0…

Deep metric learning 深度度量学习 总结

最近的工作用是深度度量学习的改进,这里将DML进行一个总结。 根据个人的理解,开篇用一句话介绍一下度量学习: “不同于分类学习,度量学习是通过学习数据之间的相似性程度来获得一个更有意义或者说更具可分性的特征空间。” Tra…

度量学习方法总结

目录 一.距离度量 闵可夫斯基距离 欧式距离(Euclidean Distance): 标准化欧氏距离 (Standardized Euclidean distance ) 曼哈顿距离(ManhattanDistance) 切比雪夫距离(Chebyshevdistance) 马氏距离 马氏距离代…

度量学习

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

度量学习(Metric learning、损失函数、triplet、三元组损失、fastreid)

定义 Metric learning 是学习一个度量相似度的距离函数:相似的目标离得近,不相似的离得远. 一般来说,DML包含三个部分, 如下图.。 1)特征提取网络:map embedding 2)采样策略:将一个mini-batch里的样本组合成很多个sub…

度量学习Metric Learning

度量学习 (Metric Learning) 距离度量学习 (Distance Metric Learning,DML) 相似度学习 度量学习 是指 距离度量学习,Distance Metric Learning,简称为 DML,是人脸识别中常用传统机器学习方法,由Eric Xing在NIPS 2…

度量学习(Metric Learning)基础概念

一、什么是度量学习? 度量学习 (Metric Learning) 距离度量学习 (Distance Metric Learning,DML) 相似度学习。 在数学中,一个度量(或距离函数)是一个定义集合中元素之间距离的函数。一个具有度量的集合被称为度量空…

度量学习——总结

传统方法 User guide: contents — metric-learn 0.6.2 documentation 深度学习 基于深度学习的度量学习方法大都由两个部分组成:特征提取模块和距离度量模块。距离度量模块的任务是使同一类样本间的距离更靠近,而不同类样本间的距离更远离。这一模块…

ffmpeg命令分析-r

本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 之前的文章分析 FFMpeg 工程的 do_video_out() 函数的时候,建议不关注 delta0,delta,nb0_frames,nb_frames 等变…

使用FFmpeg命令处理音视频

文章目录 前言一、ffprobe相关命令1.使用ffprobe查看音频文件的信息2.使用ffprobe查看视频文件的信息 二、ffplay相关命令1.基本的ffplay命令2.音视频同步命令 三、ffmpeg相关命令1.ffmpeg通用参数2.ffmpeg视频参数3.ffmpeg音频参数4.ffmpeg示例 总结 前言 FFmpeg是一套可以用…