曼哈顿距离(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

度量学习 度量函数 metric learning deep metric learning 深度度量学习相关推荐

  1. 《强化学习周刊》第29期:Atari 深度强化学习的研究综述、金融强化学习的最新进展...

    No.29 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

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

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

  3. 【强化学习】Playing Atari with Deep Reinforcement Learning (2013)

    Playing Atari with Deep Reinforcement Learning (2013) 这篇文章提出了第一个可以直接用强化学习成功学习控制policies的深度学习模型. 输入是r ...

  4. 强化学习论文分析4---异构网络_强化学习_功率控制《Deep Reinforcement Learning for Multi-Agent....》

    目录 一.文章概述 二.系统目标 三.应用场景 四.算法架构 1.微基站处----DQN 2.宏基站处---Actor-Critic 五.伪代码 六.算法流程图 七.性能表征 1.收敛时间 2.信道总 ...

  5. 【强化学习-医疗】用于临床决策支持的深度强化学习:简要综述

    Article 作者:Siqi Liu, Kee Yuan Ngiam, Mengling Feng 文献题目:用于临床决策支持的深度强化学习:简要综述 文献时间:2019 文献链接:https:// ...

  6. 用深度强化学习玩atari游戏_(一)深度强化学习·入门从游戏开始

    1.在开始正式进入学习之前,有几个概念需要澄清,这样有利于我们对后续的学习有一个大致的框架感 监督型学习与无监督型学习 深度强化学习的范畴 监督型学习是基于已有的带有分类标签的数据集合,来拟合神经网络 ...

  7. 吴恩达深度学习2.1笔记_Improving Deep Neural Networks_深度学习的实践层面

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/weixin_42432468 学习心得: 1.每周的视频课程看一到两遍 2.做笔记 3.做每周的作业 ...

  8. 论文笔记之: Deep Metric Learning via Lifted Structured Feature Embedding

    Deep Metric Learning via Lifted Structured Feature Embedding CVPR 2016 摘要:本文提出一种距离度量的方法,充分的发挥 traini ...

  9. SoftTriple Loss: Deep Metric Learning Without Triplet Sampling

    1. Abstract 距离度量学习(DML)用于学习嵌入(特征提取),其中来自同一类别的示例比来自不同类别的示例更接近. 可以将其转换为具有三元约束的优化问题. 由于存在大量三元组约束,因此DML的 ...

最新文章

  1. [codeforces 339]D. Xenia and Bit Operations
  2. 文件头_常见文件文件头
  3. Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写
  4. 社区计算机义务维修策划书,计协义务维修策划书(模板).doc
  5. VMware install MikroTik RouterOS
  6. 【Codeforces - 900C】Remove Extra One(思维,STLset,tricks)
  7. linux遍历双向队列,双向循环队列
  8. MySQL存储过程之查询受影响的行数与查询到的行数
  9. noi 9271 奶牛散步
  10. [BZOJ2850]巧克力王国
  11. python常用数据结构及算法_常用数据结构和算法汇总
  12. iphone 6p拆机,换开机键排线
  13. 小程序项目:基于微信小程序的每日签到打卡——计算机毕业设计
  14. 【前端教程】如何监控网页的卡顿?
  15. 生成微信公众号二维码(动态,彩色)(python)
  16. 人物回眸效果怎么用Vegas设置
  17. 谈谈Google AdSense以外的国外优秀广告联盟
  18. java中画幅相机推荐_比全画幅更大 平民中画幅相机推荐
  19. MacBookPro你真的会使用吗?
  20. linux管理控制面板--可视化管理linux

热门文章

  1. 打印100~200 之间的素数,输出乘法口诀表,判断1000年---2000年之间的闰年
  2. ES6中字符串和数组新增的方法
  3. 逆向某视频直播软件,破解收费观看
  4. 如何测试服务器性能?
  5. 机器学习算法(线性回归)-Lect01
  6. JAVA实现导出mysql表结构到Word详细注解版
  7. 测试岗/测试开发岗面试真题及参考答案
  8. 微信小程序云开发导出CSV文件时出现乱码
  9. 如何在IDEA设置Java类和方法的注释模板?
  10. Android使用addr2line定位native崩溃堆栈