传统的Triplet-based约束的缺点:


如上左图中,xax_axa​是锚点,xp1、xp2x_p^1、x_p^2xp1​、xp2​是正样本,xn1、xn2x_n^1、x_n^2xn1​、xn2​是负样本。存在这样一种情况,{xa,xp1,xn1}\{x_a,x_p^1,x_n^1\}{xa​,xp1​,xn1​}出现在一个batch中,{xa,xp2,xn2}\{x_a,x_p^2,x_n^2\}{xa​,xp2​,xn2​}出现在另一个batch中。在各自的batch里的,这几条数据满足Margin Constraint。但从全局的角度来看,{xa,xn1}\{x_a,x_n^1\}{xa​,xn1​}之间的距离甚至要比{xa,xp2}{\{x_a,x_p^2\}}{xa​,xp2​}间的距离要近。

EET(Equidistant and Equidistributed Triplet-based) loss的做法

在Triplet-based Margin Constraint(公式如下)的约束的基础上,
LMC=1N∑a=1N[d(fa,fp)−d(fa,fn)+α]+L_{MC} = \dfrac{1}{N}\displaystyle\sum_{a=1}^N[d(f_a,f_p)-d(f_a,f_n)+\alpha]^+ LMC​=N1​a=1∑N​[d(fa​,fp​)−d(fa​,fn​)+α]+
增加下面几个部分:

1.约束同类别的不同样本到一个negative样本尽可能等距,如d(A1,B)d(A_{1},B)d(A1​,B)与d(A2,B)d(A_{2},B)d(A2​,B) (同字母代表同标签)

LEC1=1N∑a=1N∣d(fa,fn)−d(fp,fn)∣L_{EC_1} = \dfrac{1}{N}\displaystyle\sum_{a=1}^N|d(f_a,f_n)-d(f_p,f_n)| LEC1​​=N1​a=1∑N​∣d(fa​,fn​)−d(fp​,fn​)∣

2.最大化类间的最小距离

LM=1M∗(M−1)∑i=1M∑yi≠yjMeD(Ci,Cj)L_M = \dfrac{1}{M*(M-1)}\displaystyle\sum_{i=1}^M\displaystyle\sum_{y_i\neq y_j}^Me^{D(C_i,C_j)} LM​=M∗(M−1)1​i=1∑M​yi​​=yj​∑M​eD(Ci​,Cj​)
其中,yi,yjy_i,y_jyi​,yj​是样本i,ji,ji,j的类别标签,另外D(Ci,Cj)=min⁡yi=yCi,yj=yCjd(fi,fj)D(C_i,C_j)=\min_{y_i=y_{C_i},y_j=y_{C_j}}d(f_i,f_j)D(Ci​,Cj​)=minyi​=yCi​​,yj​=yCj​​​d(fi​,fj​)

3.约束任意一对的positive和negative样本尽可能等距 如d(A,B)d(A,B)d(A,B) 和d(B,C)d(B,C)d(B,C)

LE=1M∑a=1M∣d(fa,fn)−d(fn,fn′)∣L_E = \dfrac{1}{M}\displaystyle\sum_{a=1}^M|d(f_a,f_n)-d(f_n,f_n^{'})| LE​=M1​a=1∑M​∣d(fa​,fn​)−d(fn​,fn′​)∣
xn′x_n^{'}xn′​是与xnx_nxn​距离最近的不同标签的样本。

4.(经过实践自己添加) 最小化类内的最大距离

LN=1M∑i=1M∑yi=yjMe−D(Ci,Cj)L_N = \dfrac{1}{M}\displaystyle\sum_{i=1}^M\displaystyle\sum_{y_i= y_j}^Me^{-D(C_i,C_j)}LN​=M1​i=1∑M​yi​=yj​∑M​e−D(Ci​,Cj​)

EET 约束的表达式

LEET=LMC+LEC1+LM+LE+LNL_{EET} =L_{MC} + L_{EC_1} + L_M + L_E+L_NLEET​=LMC​+LEC1​​+LM​+LE​+LN​

EET_loss学习相关推荐

  1. 如何零基础做高质量PPT?

    一. 按照受众特点,调整PPT风格 工作中的PPT可以分为,总结报告型, 培训课件型,演示报告型,介绍说明型,宣传胶片型,商业演示型... 不同类型的PPT,受众不同,做PPT需要提前了解受众,并按照 ...

  2. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  3. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  4. FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器

    文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...

  5. FastAI 课程学习笔记 lesson 1:宠物图片分类

    文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...

  6. 深度学习学习指南-工具篇

    colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...

  7. Redis学习之路(一)--下载安装redis

    redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...

  8. python内置库之学习configparser库(一)

    python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...

  9. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

最新文章

  1. 黑客进阶必读书《Linux命令行与Shell脚本编程大全》(第2版)
  2. python查看类的属性和方法_Python 获取对象的属性和方法—dir 函数
  3. 使用java解析XML文件的步骤
  4. linux c 文件映射,linuxc-共享内存
  5. handler和thread之间如何传输数据_换机必备知识:如何将数据转移到Oppo手机上
  6. Java 中nextLine()方法没有执行直接跳过解决办法
  7. 0基础学python做什么工作好-零基础自学Python多久可以找工作?
  8. fatal error: hb.h: 没有那个文件或目录
  9. 使用JSP 编写九九乘法表
  10. wps2019启用宏+excel批量打开网址
  11. 焊缝标注vlx实用程序_【CAD自动标注插件下载】CAD自动标注插件yjbz.VLX v1.0 最新版-开心电玩...
  12. vue 中 自定义按钮实现video暂停和播放
  13. pixhawk源码下载与编译
  14. subplots与figure函数参数解释说明以及简单的使用脚本实例
  15. 等高线节点过密如何处理?CASS10.1复合线滤波功能详解
  16. Sitecore学习总结(1)
  17. USB会议摄像机的重要的网络特性
  18. UVA 10118 dfs
  19. 圆周率近似计算matlab,matlab 圆周率的近似计算 实验报告.doc
  20. 江民杀毒软件发展史(以发布版本为时间轴)

热门文章

  1. ftok函数的key值是如何产生的
  2. 交互设计师与ui设计师的区别
  3. uniapp小程序,输入框被软键盘遮住
  4. 前端学HTTP之URL
  5. 外贸线上推广引流的技巧
  6. 小程序路由跳转,如何直接回到首页
  7. 拼多多算法机制,微积分的实际应用
  8. i5 1135g7和i7 1165g7区别 i51135g7和i71165g7对比差多少
  9. php学生成绩管理系统,在线录入、统计学生成绩,多种图表展示对比学生成绩
  10. 有了这个沙雕的废话生成器,我感觉以后都不用写文章了