机器学习笔记:triplet loss
1 Triplet loss
Triplet Loss,即三元组损失,其中的三元是Anchor、Negative、Positive。
通过Triplet Loss的学习后使得Positive元和Anchor元之间的距离最小,而和Negative之间距离最大。( 其中Anchor为训练数据集中随机选取的一个样本,Positive为和Anchor属于同一类的样本,而Negative则为和Anchor不同类的样本。)
换句话说,通过学习后,使得同类样本的positive样本更靠近Anchor,而不同类的样本Negative则远离Anchor。
1.2 目标函数
1.2.1 函数符号解释
||。。。|| | 欧氏距离 | ||||
Positive元和Anchor之间的欧式距离度量 | |||||
Negative和Anchor之间的欧式距离度量 | |||||
α | Positive元和Anchor之间的欧式距离 和 Negative和Anchor之间的欧式距离 之间的最小差距 | ||||
式子最后的“+” |
“[。。。]”内的值大于零的时候,就取“[。。。]”内的值 “[。。。]”内的值小于零的时候,就取0 ——>
|
1.3 margin取值
triplet loss 目的就是使 loss 在训练迭代中下降的越小越好,也就是要使得 Anchor 与 Positive 越接近越好,Anchor 与 Negative 越远越好。
当 margin 值越小时,loss 也就较容易的趋近于 0,于是AP距离不需要拉的太近,AN距离不需要拉的太远,就能使得 loss 很快的趋近于 0。——>这样训练得到的结果,不能够很好的区分和Anchor相似&和Anchor不同的图像。
当margin越大时,就需要使得网络拉近 AP距离,拉远 AN距离。如果 margin 值设置的太大,很可能最后 loss 保持一个较大的值,难以趋近于 0 。
因此,设置一个合理的 margin 值很关键,这是衡量相似度的重要指标。
换言之,margin 值设置的越小,loss 很容易趋近于 0 ,但很难区分相似的图像。margin 值设置的越大,loss 值较难趋近于 0,甚至导致网络不收敛,但可以较有把握的区分较为相似的图像。
1.3.1 为什么要加margin
我们希望 A和P的距离越近越好,A和N的距离越远越好,于是如果没有margin的话,我们希望:
但是这会导致一个问题,就是平凡解:
于是我们加了margin 来避免平凡解:
也即:
1.4 Triplet 梯度
参考文献:Triplet Loss及其梯度_jcjx0315的博客-CSDN博客
机器学习笔记:triplet loss相关推荐
- 【机器学习笔记】- 纵观全局 监督学习中的4个重要内容:模型、Loss/Cost、目标和优化
[机器学习笔记]- 纵观全局 监督学习中的4个重要内容:模型.Loss/Cost.目标和优化 监督学中的4个重要内容:模型.Loss/Cost.目标.优化 发现想做数据分析,除了要学习概率统计,也真的 ...
- 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 阅读笔记 此篇 ...
- 论文笔记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 ...
- Triplet Loss笔记
在有监督学习中,一般都有固定数量的类别.通常我们可以用Softmax结合Cross Entropy Loss来做分类. 在监督学习中,会有变化数量的类别,这个时候我们可以用Triplet Loss来表 ...
- Triplet Loss: A Unified Embedding for Face Recognition and Clustering(论文阅读笔记)(2015CVPR)
论文链接:<FaceNet: A Unified Embedding for Face Recognition and Clustering> 摘要 尽管人脸识别领域最近取得了重大进展[1 ...
- 机器学习笔记七:损失函数与风险函数
一.损失函数 回顾之前讲过的线性回归模型,我们为了要学习参数使得得到的直线更好的拟合数据,我们使用了一个函数 这个函数就是比较模型得到的结果和"真实值"之间的"差距&qu ...
- Scikit-Learn 机器学习笔记 -- SVM
Scikit-Learn 机器学习笔记 – SVM 参考文档: handson-ml import numpy as np# 加载鸢尾花数据集 def load_dataset():from skle ...
- 机器学习笔记(3) 随机森林
random forest 和 extra-trees是对decison tree做ensemble而得到最终模型的两种算法. 阅读本文前需要先了解一下 机器学习笔记1:决策树 机器学习笔记2:集成学 ...
- matlab回归问题,机器学习笔记(一)—— 线性回归问题与Matlab求解
给你多组数据集,例如给你很多房子的面积.房子距离市中心的距离.房子的价格,然后再给你一组面积. 距离,让你预测房价.这类问题称为回归问题. 回归问题(Regression) 是给定多个自变量.一个因变 ...
最新文章
- 怎样用ug画铝型材_用UG画钻头,适合初学UG的小伙伴,快来学习吧!
- 27 多进程之进程池Pool
- pythonapp下载-QPythonapp下载
- Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)
- (chap5 web服务器) 保存资源的缓存
- vue表单中批量导入功能_spring boot mybatis+ vue 使用POI实现从Excel中批量导入数据
- CDH 元数据库升级
- 【ES】Mac 下安装ES 报错 Failed to create native process factories for Machine Learning
- STM32重上电后,HAL_GetDEVID返回0
- Redis五大数据类型以及操作---散列表
- 打造个人专属邮箱,域名邮箱,邮件系统
- 云服务器日志4625登录验证失败
- 计算机专业想进国企考研可以考什么,毕业后想进国企,可以报考这些专业,更容易拿到铁饭碗,前途无量...
- 写给女孩:二十岁之后的每一年都很重要
- MySQL学习(十六):数据类型之日期与时间类型
- XAMPP+PhpStorm
- ORA-12516解决
- 珍藏多年的神网站都捐了,你需要的我都有,有了这些网站工作生活不用愁(二)
- XMind Zen 2020 10.3.1注册使用
- 苍蝇眼睛_桌子的布局像苍蝇一样下降=)
热门文章
- 关于Java的10个谎言
- 进程外Session和进程内Session存储
- jquery 绑定动态元素
- mysql cluster 安装NDB二进制版本
- 港湾命令行 配管理IP
- 2020年12月大学英语四六级英语作文预测(XDF王江涛)
- linux cdig 工具,linux常用工具su与su -
- OSError: Cannot initialize new instance of inotify, Errno=Too many open files (EMFILE) 问题解决
- 《剑指offer》c++版本 5.替换空格
- tcp/ip 协议栈Linux源码分析二 IPv4分片报文重组分析二