度量学习DML之Lifted Structure Loss

13 篇文章 12 订阅
10 篇文章 0 订阅

度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客

度量学习DML之Triplet Loss_程大海的博客-CSDN博客

度量学习DML之Lifted Structure Loss_程大海的博客-CSDN博客

度量学习DML之Circle Loss_程大海的博客-CSDN博客

度量学习DML之Cross-Batch Memory_程大海的博客-CSDN博客

度量学习DML之MoCO_程大海的博客-CSDN博客

数据增强之SpecAugment_程大海的博客-CSDN博客

数据增强之MixUp_程大海的博客-CSDN博客

 基于pytorch-metric-learning实现的度量学习模板代码:pytorch-metric-learning-template   


度量学习的目标:

  1. 相似的或者属于同一类的样本提取到的embedding向量之间具有更高的相似度,或者具有更小的空间距离
  2. 对于out-of samples的样本,也就是未见过的样本,希望也能提取到有效的embedding,也就是模型的泛化能力更好

Lifted Structure Loss

        论文:《Deep Metric Learning via Lifted Structured Feature Embedding

        核心思想:通过前面的介绍可以知道,Contrastive Loss和Triplet Loss在每次计算loss时,只能处理mini-batch两个或者三个样本,这极大的影响了算法的优化性能。如何让算法一次处理说个样本,比如给定一个positive样本,然计算这个positive的loss时,不像Contrastive Loss和Triplet Loss那样一次只选择一个negative,而是同时选择mini-batch中的所有negative来计算loss,这也是后续好多损失函数的优化方向。如下图所示:

         

        Lifted Structure Loss的定义如下:

        其中,表示mini-batch中所有正样本对positive-pair的数量,表示mini-batch中所有的负样本对negative-pair。上面两个公式是啥意思呢?先看第二个公式,表示由样本与mini-batch中其他所有样本组成的负样本对(负样本之间的距离越大效果模型越好,距离越小模型越不好)中embedding距离最小的那个,表示由样本与mini-batch中其他所有样本组成的负样本对中embedding距离最小的那个,就是计算的所有负样本对中距离最小的那个样本表示正样本对之间embedding的距离。总结一下Loss的来源如下:

  1. 或者距离最小的负样本
  2. 之间embedding距离

        通过上述Loss函数的计算形式就可以看到了,Contrastive LossTriplet Loss一次只选择一个negative样本不同,Lifted Structure Loss对于每个正样本对ij,会考虑mini-batch中所有的negative样本。

        在上面Loss公式中,存在嵌套的max计算,作者说这容易导致模型陷入较差的局部最优,不利于模型优化,所以采用平滑上界函数来代替:

参考:深度度量学习-论文简评 - 知乎

参考:深度度量学习中的损失函数 - 知乎

参考:GitHub - KevinMusgrave/pytorch-metric-learning: The easiest way to use deep metric learning in your application. Modular, flexible, and extensible. Written in PyTorch.

参考:PyTorch Metric Learning

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值