度量学习DML之Triplet 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,也就是模型的泛化能力更好

Triplet Loss(三元组损失)

        论文:《FaceNet:A Unified Embedding for Face Recognition and Clustering》

         三元组损失顾名思义,一次输入的样本数量有三个:

        Anchor:随机选择一个样本,假设所属的类别为A

        Positive:在所有类别为A的训练样本中,选择一个正样本

        Negative:在其余类别中选择一个训练样本作为负样本

        优化目标:在特征向量空间中,之间的距离要小于之间的距离,并且距离的差值还要满足限制条件

        通过上图可以看到,期初在向量空间中,Anchor与Negative的距离比Anchor与Positive的距离近,通过学习优化之后,Anchor与Negative的距离比Anchor与Positive的距离远,函数表示形式如下:

        一组三元组样本的损失表示如下:

        三元组整体损失函数表示如下:

        对于min-batch中的样本,Triplet Loss一次也只是使用一个anchor,一个positive和一个negative。

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

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

参考: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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值