EET_loss学习
传统的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=N1a=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=N1a=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)1i=1∑Myi=yj∑MeD(Ci,Cj)
其中,yi,yjy_i,y_jyi,yj是样本i,ji,ji,j的类别标签,另外D(Ci,Cj)=minyi=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=yCjd(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=M1a=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=M1i=1∑Myi=yj∑Me−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学习相关推荐
- 如何零基础做高质量PPT?
一. 按照受众特点,调整PPT风格 工作中的PPT可以分为,总结报告型, 培训课件型,演示报告型,介绍说明型,宣传胶片型,商业演示型... 不同类型的PPT,受众不同,做PPT需要提前了解受众,并按照 ...
- java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】
类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
- FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器
文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...
- FastAI 课程学习笔记 lesson 1:宠物图片分类
文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...
- 深度学习学习指南-工具篇
colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...
- Redis学习之路(一)--下载安装redis
redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...
- python内置库之学习configparser库(一)
python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...
- 前端Vue学习之路(二)-Vue-router路由
Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...
最新文章
- 黑客进阶必读书《Linux命令行与Shell脚本编程大全》(第2版)
- python查看类的属性和方法_Python 获取对象的属性和方法—dir 函数
- 使用java解析XML文件的步骤
- linux c 文件映射,linuxc-共享内存
- handler和thread之间如何传输数据_换机必备知识:如何将数据转移到Oppo手机上
- Java 中nextLine()方法没有执行直接跳过解决办法
- 0基础学python做什么工作好-零基础自学Python多久可以找工作?
- fatal error: hb.h: 没有那个文件或目录
- 使用JSP 编写九九乘法表
- wps2019启用宏+excel批量打开网址
- 焊缝标注vlx实用程序_【CAD自动标注插件下载】CAD自动标注插件yjbz.VLX v1.0 最新版-开心电玩...
- vue 中 自定义按钮实现video暂停和播放
- pixhawk源码下载与编译
- subplots与figure函数参数解释说明以及简单的使用脚本实例
- 等高线节点过密如何处理?CASS10.1复合线滤波功能详解
- Sitecore学习总结(1)
- USB会议摄像机的重要的网络特性
- UVA 10118 dfs
- 圆周率近似计算matlab,matlab 圆周率的近似计算 实验报告.doc
- 江民杀毒软件发展史(以发布版本为时间轴)