在有监督学习中,一般都有固定数量的类别。通常我们可以用Softmax结合Cross Entropy Loss来做分类。

在监督学习中,会有变化数量的类别,这个时候我们可以用Triplet Loss来表征。

Triplet Loss需要有三个对象,一个anchor(基准),一个positive(正例),一个negative(负例)。Triplet Loss的目标是使具有相同label的样本在embedding空间尽可能地近,使不同label的样本尽可能地远。

Loss的具体计算方式为L = max(d_p + d_n +margin,0)

根据d_pd_n的距离,Triplet可以被分为三种类型:

  • Easy Triplet
  • Hard Triplet
  • Semi-hard Triplet

采样Triplet的方法有两种:Offline Triplet Mining和Online Triplet Mining

  • Offline的方法是在每个epoch前计算所有的embedding,并挑选出hard和semi-hard triplet进行训练。
  • Online的方法是对于每个batch,动态的计算有用的triplet。当给定的batch大小为B时,我们最多可以找到B^3个triplets。(比如当B=3时,有27种可能。a,p,n都有三种可能。)其中,只有有两个相同label,一个不同label的triplet才是有效的。
    • batch all:batch all的方法是挑选出所有合规的triplet。当batch size为B = PK时(P个人,每个人K张图片。)那么一共会有PK(K-1)(PK-K)个合规的triplets。
    • batch hard:对于每个anchor,挑选出距离最远的正例和距离最近的负例。这样会产生PK个triplets。

主要参考:

深度学习从入门到放飞自我:完全解析triplet loss - 知乎 (zhihu.com)

Triplet Loss笔记相关推荐

  1. Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function 阅读笔记

    Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function 阅读笔记 此篇 ...

  2. 机器学习笔记:triplet loss

    1 Triplet loss Triplet Loss,即三元组损失,其中的三元是Anchor.Negative.Positive. 通过Triplet Loss的学习后使得Positive元和Anc ...

  3. 论文笔记3 --(ReID)In Defense of the Triplet Loss for Person Re-Identification

    <In Defense of the Triplet Loss for Person Re-Identification> 论文:https://arxiv.org/abs/1703.07 ...

  4. Triplet Loss: A Unified Embedding for Face Recognition and Clustering(论文阅读笔记)(2015CVPR)

    论文链接:<FaceNet: A Unified Embedding for Face Recognition and Clustering> 摘要 尽管人脸识别领域最近取得了重大进展[1 ...

  5. 三元组损失(Triplet loss)

    来源:Coursera吴恩达深度学习课程 在人脸识别中,我们希望学习"输入两张人脸图片,然后输出相似度"的函数d,然后Siamese 网络(Siamese network)实现了这 ...

  6. Torch 中添加自己的 nn Modules:以添加 Dropout、 Triplet Loss 为例

    Preface 因为要复现前面阅读的一篇论文:<论文笔记:Deep Relative Distance Learning: Tell the Difference Between Similar ...

  7. Triplet loss 源码解析

    2021最后一天,赶紧学习一手吧.由于 Triplet loss 很重要,而代码不复习又很容易忘,这里记录一下. 代码在这里:https://github.com/VisualComputingIns ...

  8. 一文理解Ranking Loss/Margin Loss/Triplet Loss

    点击蓝字  关注我们 作者丨土豆@知乎 来源丨https://zhuanlan.zhihu.com/p/158853633 本文已获授权,未经作者许可,不得二次转载. 前言 Ranking loss在 ...

  9. 三元组损失 Triplet Loss及其梯度

    Triplet Loss及其梯度 Triplet Loss及其梯度_jcjx0315的博客-CSDN博客 Triplet Loss简介 我这里将Triplet Loss翻译为三元组损失,其中的三元也就 ...

最新文章

  1. bigdecimal 小于等于0_半场0-0比分的比赛,你需要注意这些
  2. linux strace cpu,如何定位死循环或高CPU使用率(linux)
  3. IOC 容器中那些鲜为人知的细节(关于 FactoryBean 和 BeanFactory)
  4. C++ 调用批处理命令或者.bat(.cmd)文件或者.exe文件
  5. 精益数据分析 - 第15章 阶段1:移情
  6. rust自我解脱_如何从婚姻的痛苦中自我解脱?
  7. Kali Linux 基于Easy File Sharing Web Server 6.9 编写漏洞渗透模块 (上)
  8. 3D动画展示--3D图片旋转展示
  9. 小米摄像头有onvif协议_小米红米5Plus、小米红米Note7、vivoY3对比
  10. 一文了解啤酒、葡萄酒、黄酒的种类
  11. 章文嵩:开放与高可用是阿里云角力海外市场的关键
  12. web前端html怎么求最大值和最小值,求js数组的最大值和最小值的四种方法
  13. 学爬虫的动力是啥?那肯定就是爬美女图片了。6千多图片看到爽。
  14. 海尔对话 Unity:作为数字转型的高阶形态,数字孪生发展前景不可逆
  15. css3 动画还原,CSS3animation动画-案例人物走路动画:(三)
  16. MySQL自增列之起始与步长
  17. 小记Android Gradle插件 Iven 记于 20190522 药厂
  18. proxychans的使用
  19. 解决for循环有时只输出最后一个结果
  20. Swift基础入门知识学习(12)-枚举(列举)-讲给你懂

热门文章

  1. 计算机组成原理控制总线,计算机组成原理——总线控制(总线判优控制、总线通讯控制)...
  2. babel-plugin-react-css-modules的配置
  3. 基于”PLUS模型+“生态系统服务多情景模拟预测
  4. ORA-04098: 触发器无效且未通过重新验证
  5. 个人为什么无法上架安卓 App 到国内应用商店?
  6. 蒋冬日志-DiaryTwo 设计思维-推导方法·软件-习惯·素材-插画·书籍-励志
  7. 帝国cms刷新内容页提示_ecms_news_data_' doesn't exist不存在问题
  8. 城市数字孪生技术参考架构
  9. 根据掩码计算主机数量,确定有效主机地址。
  10. 求a的b次幂的最后3位(难度:1颗星)