对比表示学习必知的几种训练目标
对比学习的主要思想就是相似的样本的向量距离要近,不相似的要远.对比学习在有监督/无监督场景下都取得了非常亮眼的成绩,所以是我们炼丹的必备知识.早期的对比学习是只有一个正样本和一个负样本进行对比,最近的训练目标变成了一个batch内多个正/负样本进行训练.
Contrastive Loss
有一系列样本{xi},它们的label yi = {1, ..., L}, L类,还有个函数f将样本xi映射成embedding,有着相同yi的样本有着相似的embedding, 因此对比学习loss定义如下:
Triplet Loss
Triplet loss大家应该并不陌生,最早出现在FaceNet的论文里,这篇论文主要学习人脸表达,需要同一个人在不同角度位置的表达都很相近.
定义一个锚点(anchor) x,有个正例x+和一个负例x-,所以目标函数就是要最小化x和x+的距离,最大化x和x-的距离,定义如下所示:
Lifted Structured Loss
该loss为了更好的计算效率,充分利用了一个batch内所有pairwise的边.
Dij = || f(xi) - f(xj) ||2, Loss函数定义如下:
红色部分是为了挖掘hard负样本,但是不是很平滑,难收敛,因此可以改为下式:
N-pair Loss
在负样本同时有多个的时候,{x,x+, x1-, ..., x(N-1)-},包含1个正样本和N-1个负样本,N-pair loss定义如下所示:
NCE
NCE本身是统计模型做参数估计的方法,思想就是用罗杰斯特回归来区分数据和噪声.非噪声样本的概率用P表示,噪声样本的概率用q表示,如下所示:
所以NCE的loss函数定义如下:
我们看到NCE loss只对一个正样本和一个噪声样本生效.
InfoNCE
受到NCE的启发,InfoNCE使用了交叉熵损失,用在一个正样本和一系列噪声样本上.给定一个上下文环境c,我们可以得到条件概率p(x|c),N-1的负样本直接从概率分布p(x)提取,独立于c. 我们有个样本集合X = {xi},i=1~N, 其中只有一个正样本x_pos, 我们能得到下式
f(x,c)就是模型的打分函数,所以InfoNCE loss优化log loss,如下式:
Soft-Nearest Neighbors Loss
该loss扩展到包含多个正样本,假设有个batch {xi, yi} i = 1~B, 该loss会有个温度系数控制,如下所示:
温度τ用于调整特征在表示空间中的集中程度。例如,当温度较低时,损失主要是由小距离造成的,而大范围分离的表示不能起到很大作用。
对比表示学习必知的几种训练目标相关推荐
- Web开发必知的八种隔离级别
Web开发必知的八种隔离级别 转自:http://www.infoq.com/cn/articles/eight-isolation-levels ACID性质是数据库理论中的奠基石,它定义了一个理论 ...
- 从单层感知器到深度学习以及深度学习必知的框架
从单层感知器到深度学习以及深度学习必知的框架 一 单层神经网络(感知器) 1.结构 下面来说明感知器模型. 在原来MP模型的"输入"位置添加神经元节点,标志其为"输入单元 ...
- 程序员必知的几种软件架构模式
程序员必知的几种软件架构模式 前序 分层架构模式 多层模式 管道 - 过滤器架构 客户端 - 服务器架构 模型 - 视图 - 控制器架构(MVC) 事件驱动架构 微服务架构 前序 架构模式是对给定上下 ...
- 深度学习必懂的13种概率分布
作为机器学习从业者,你需要知道概率分布相关的知识.这里有一份最常见的基本概率分布教程,大多数和使用 python 库进行深度学习有关. 概率分布概述 共轭意味着它有共轭分布的关系. 在贝叶斯概率论中, ...
- 深度学习必懂的 13 种概率分布(附链接)
来源:AI开发者 本文约为1400字,建议阅读5分钟 本文为你介绍基本概率分布教程,大多数和使用 python 库进行深度学习有关. 概率分布概述 共轭意味着它有共轭分布的关系. 在贝叶斯概率论中,如 ...
- 什么是API测试?开发必知的8种API自动化测试类型
API测试 API自动化测试在产品质量控制和CI/CD流程检测中扮演着非常重要的角色.与GUI测试不同,API测试可以更灵活应地适应发布周期短和频繁变更的需求或产品,而且也不会破坏测试输出结果. 什么 ...
- 项目经理必知的17种最重要的项目管理方法,收藏了再说
为工作选择正确的项目管理方法是至关重要的.我们的项目管理方法评估指南将确保您为您的下一个项目选出最合适的方法. 为您的团队选择正确的项目管理方法是走向成功的第一步. 但是有这么多不同的–在某些情况下, ...
- php无法新数据类型,新手入门PHP必知的七种数据类型
想要入门PHP,首先要学会搭建环境,其次是学习基础语法.PHP的基础包括数据类型,运算符,变量和常量等. 在这篇文章中,我们主要了解什么是数据类型.数据类型是指同种数据的一个统称,一般会描述为XX数据 ...
- 程序员必知的7种软件架构模式
作者:Trung Anh Dang 策划:万佳 架构模式是对给定上下文的软件架构中常见问题的一种通用的可复用的解决方案. 一种模式就是特定上下文的问题的一种解决方案. 然而,很多开发者至今还对各种软件 ...
最新文章
- 微软宣布正式开源 Azure IoT Edge 边缘计算服务
- 表格td超出部分隐藏,显示...
- 9点到17点半 cron_SpringQuartz定时任务的cron表达式书写
- 让Linux修改IP、DNS等可以更简单
- 接触HTML和CSS心得体会
- 关于python语言、下列说法不正确的是-关于 Python字符串,下列说法错误的是_学小易找答案...
- Spring Boot2.x-13前后端分离的跨域问题解决方法之Nginx
- System.currentTimeMillis()用法及其计算方式与时间的单位转换
- [Unity3D]Unity3D游戏开发Lua随着游戏的债券(于)
- 为什么启动hbase shell后,创建按create 'test', 'cf'失败?
- python下载大文件
- 使用注解匹配Spring Aop切点表达式
- php 原子性,PHP下O_APPEND模式的原子性
- Zabbix 对接 LDAP 实现用户统一登录的方法
- 计算机键盘prtscr,键盘上的SCR是什么意思(电脑截图的快捷方式都有哪些)
- python爱心代码_母亲节快到了,用Python给老妈写个祝福小程序吧~
- C#使用NPOI导出excel设置单元格背景颜色
- Kafka和Unix管道的示例
- android 寺库trytry_寺库与美图达成战略合作美图美妆APP将由TryTry运营_联商网
- 遗传算法c语言代码实验报告,遗传算法的c语言程序