Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Contrastive Loss(对比损失)Contrastive Loss

Contrastive Loss(对比损失)Contrastive Loss

作者头像
致Great
发布于 2018-06-13 06:35:26
发布于 2018-06-13 06:35:26
4.1K00
代码可运行
举报
文章被收录于专栏:自然语言处理自然语言处理
运行总次数:0
代码可运行

Contrastive Loss

在传统的siamese network中一般使用Contrastive Loss作为损失函数,这种损失函数可以有效的处理孪生神经网络中的paired data的关系。

siamese network-孪生神经网络

contrastive loss的表达式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# tensorflow伪代码
def contrastive_loss(self, y,d,batch_size):
      tmp= y *tf.square(d)
      #tmp= tf.mul(y,tf.square(d))
      tmp2 = (1-y) *tf.square(tf.maximum((1 - d),0))
      return tf.reduce_sum(tmp +tmp2)/batch_size/2    

其中d=||an-bn||2,代表两个样本的欧式距离,y为两个样本是否匹配的标签,y=1代表两个样本相似或者匹配,y=0则代表不匹配,margin为设定的阈值。 这种损失函数最初来源于Yann LeCun的Dimensionality Reduction by Learning an Invariant Mapping,主要是用在降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似;而原本不相似的样本,在经过降维后,在特征空间中,两个样本仍旧不相似。 观察上述的contrastive loss的表达式可以发现,这种损失函数可以很好的表达成对样本的匹配程度,也能够很好用于训练提取特征的模型。当y=1(即样本相似)时,损失函数只剩下

即原本相似的样本,如果在特征空间的欧式距离较大,则说明当前的模型不好,因此加大损失。

而当y=0时(即样本不相似)时,损失函数为

即当样本不相似时,其特征空间的欧式距离反而小的话,损失值会变大,这也正好符号我们的要求。

这张图表示的就是损失函数值与样本特征的欧式距离之间的关系,其中红色虚线表示的是相似样本的损失值,蓝色实线表示的不相似样本的损失值。

个人见解:欧式距离表示两个文本向量在空间之间的距离,如果距离很小说明样本相似;反过来,两个文本越相似,那么它们之间的欧式距离越小;从上面图中我们可以看出,x轴为d(欧式距离),以红色虚线为例,它们描述了两个相似文本loss与欧式距离之间的关系,因为欧式距离越大与"两个文本相似"这个事实事与愿违,那么我们就对它们惩罚越大(即loss越大)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.06.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
对比损失 Contrastive Loss
Contrastive Loss(对比损失)是一种损失函数,通常用于训练对比学习(Contrastive Learning)模型,这些模型旨在学习数据中的相似性和差异性。对比学习的主要目标是将相似的样本对映射到接近的位置,而将不相似的样本对映射到远离的位置。Contrastive Loss 有助于实现这一目标。
为为为什么
2023/12/20
4.2K0
对比损失 Contrastive Loss
利用Contrastive Loss(对比损失)思想设计自己的loss function
来源:PaperWeekly本文约4500字,建议阅读9分钟该损失函数主要是用于降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似。 1、Contrastive Loss简介 对比损失在非监督学习中应用很广泛。最早源于 2006 年Yann LeCun的“Dimensionality Reduction by Learning an Invariant Mapping”,该损失函数主要是用于降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似;而
数据派THU
2023/04/12
3.8K0
利用Contrastive Loss(对比损失)思想设计自己的loss function
孪生网络入门(上) Siamese Net及其损失函数
最近在多个关键词(小数据集,无监督半监督,图像分割,SOTA模型)的范畴内,都看到了这样的一个概念,孪生网络,所以今天有空大概翻看了一下相关的经典论文和博文,之后做了一个简单的案例来强化理解。
huofo
2022/03/17
9300
孪生网络入门(上) Siamese Net及其损失函数
【损失函数合集】Yann Lecun的Contrastive Loss 和 Google的Triplet Loss
昨天在介绍Center Loss的时候提到了这两个损失函数,今天就来介绍一下。Contrastive Loss是来自Yann LeCun的论文Dimensionality Reduction by Learning an Invariant Mapping,目的是增大分类器的类间差异。而Triplet Loss是在FaceNet论文中的提出来的,原文名字为:FaceNet: A Unified Embedding for Face Recognition and Clustering,是对Contrastive Loss的改进。接下来就一起来看看这两个损失函数。论文原文均见附录。
BBuf
2020/02/14
2.6K0
【损失函数合集】Yann Lecun的Contrastive Loss 和 Google的Triplet Loss
表征学习 Contrastive Loss
F表示两点间弹簧的作用力,K是弹簧的劲度系数,X为弹簧拉伸或收缩的长度,弹簧静止状态时X=0.
为为为什么
2022/08/09
5720
表征学习 Contrastive Loss
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系
Ranking Loss被用于很多领域和神经网络任务中(如 孪生网络Siamese Nets 或 Triplet Nets),这也是它为什么拥有 Contrastive Loss、Margin Loss、Hinge Loss 或 Triplet Loss 等这么多名字的原因。
对白
2022/04/01
2.5K0
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系
孪生网络入门(上) Siamese Net及其损失函数
以这个孪生网络入门,我想着分成上下两篇,上篇也就是这一篇讲解模型理论、基础知识和孪生网络独特的损失函数;下篇讲解一下如何用代码来复线一个简单的孪生网络。
机器学习炼丹术
2020/12/16
8.5K0
神经网络中的损失函数
在《神经网络中常见的激活函数》一文中对激活函数进行了回顾,下图是激活函数的一个子集——
半吊子全栈工匠
2023/09/02
1.6K0
神经网络中的损失函数
人脸识别损失函数疏理与分析
两张人脸图像,分别提取特征,通过计算特征向量间的距离(相似度)来判断它们是否来自同一个人。选择与问题背景相契合的度量方式很重要,人脸识别中一般有两种,欧氏距离和余弦距离(角度距离)。
李拜六不开鑫
2020/08/05
2.4K1
人脸识别损失函数疏理与分析
【干货】Lossless Triplet Loss: 一种高效的Siamese网络损失函数
【导读】本文是数据科学家Marc-Olivier Arsenault撰写的一篇博文,主要讲解了在Siamese网络中使用Lossless Triplet Loss。尽管Google的FaceNet利用Triplet Loss效果显著,但作者认为,原来网络中triplet_loss函数存在一定的瑕疵:“每当你的损失小于0时,损失函数就不能提供任何信息”。为解决这种问题,作者构建一个能够捕捉到小于0的损失——Lossless Triplet Loss。在文中充分分析了不同传统Triplet Loss及其变体的不
WZEARW
2018/04/16
3.7K0
【干货】Lossless Triplet Loss: 一种高效的Siamese网络损失函数
自监督、半监督和有监督全涵盖,四篇论文遍历对比学习的研究进展
机器之心分析师网络 作者:仵冀颖 编辑:Joni 本文通过四篇相关论文对自监督学习中的对比学习(Contrastive Learning)进行了深入的探讨。 自监督学习意思是使用非人工标记数据进行学习。在机器学习中,比较著名的自监督方法就是自然语言处理中的 word2vec。由此可见,与无监督学习不同,自监督中仍然存在标记,只不过,这些标记不是人类参与生成的,而是从输入数据中生成的,通常可以使用启发式算法生成标记。 而在机器视觉领域,自监督学习主要有两类方法,生成类方法(Generative)和区别类方法
机器之心
2023/03/29
1.3K0
自监督、半监督和有监督全涵盖,四篇论文遍历对比学习的研究进展
孪生网络入门(下) Siamese Net分类服装MNIST数据集(pytorch)
在上一篇文章中已经讲解了Siamese Net的原理,和这种网络架构的关键——损失函数contrastive loss。现在我们来用pytorch来做一个简单的案例。经过这个案例,我个人的收获有到了以下的几点:
机器学习炼丹术
2020/12/16
3.4K3
深度学习人脸识别核心技术—框架和优化目标
注:本文选自人脸图像资深工程师言有三出版的新书《深度学习之人脸图像处理:核心算法与案例实战》(机械工业出版社出版)的6.2节,略有改动。经授权刊登于此。
CV君
2020/08/11
1.1K0
深度学习+度量学习的综述
如今,机器学习的应用广泛,包括人脸识别、医疗诊断等,为复杂问题和大量数据提供解决方案。机器学习算法能基于数据产生成功的分类模型,但每个数据都有其问题,需定义区别特征进行正确分类。常用的机器学习算法包括k最近邻、支持向量机和朴素贝叶斯分类器,但需注意特征加权和数据转换。
算法进阶
2024/04/12
6640
深度学习+度量学习的综述
Siamese Network & Triplet NetWork
在孪生网络中,我们把一张图片$X_1$作为输入,得到该图片的编码$G_W(X_1)$。然后,我们在不对网络参数进行任何更新的情况下,输入另一张图片$X_2$,并得到改图片的编码$G_W(X_2)$。由于相似的图片应该具有相似的特征(编码),利用这一点,我们就可以比较并判断两张图片的相似性
mathor
2020/10/14
2.8K0
[深度学习概念]·Siamese network 孪生神经网络简介
Siamese和Chinese有点像。Siam是古时候泰国的称呼,中文译作暹罗。Siamese也就是“暹罗”人或“泰国”人。Siamese在英语中是“孪生”、“连体”的意思,这是为什么呢?
小宋是呢
2019/06/27
3.9K0
[深度学习概念]·Siamese network 孪生神经网络简介
[深度学习概念]·深度学习中人脸识别开发解析
人脸验证做的是 1 比 1 的比对,即判断两张图片里的人是否为同一人。最常见的应用场景便是人脸解锁,终端设备(如手机)只需将用户事先注册的照片与临场采集的照片做对比,判断是否为同一人,即可完成身份验证。
小宋是呢
2019/06/27
1.5K0
[深度学习概念]·深度学习中人脸识别开发解析
一文归纳Ai数据增强之法
数据、算法、算力是人工智能发展的三要素。数据决定了Ai模型学习的上限,数据规模越大、质量越高,模型就能够拥有更好的泛化能力。然而在实际工程中,经常有数据量太少(相对模型而言)、样本不均衡、很难覆盖全部的场景等问题,解决这类问题的一个有效途径是通过数据增强(Data Augmentation),使模型学习获得较好的泛化性能。
算法进阶
2022/06/01
8180
一文归纳Ai数据增强之法
带你理解对比学习损失函数的性质以及温度系数的作用
对比学习中的温度系数是一个神秘的参数,大部分论文都默认采用小的温度系数来进行自监督对比学习(例如0.07,0.2)。然而并没有对采用小温度系数的解释,以及温度系数是如何影响学习过程的,即温度系数这个角色的意义。
演化计算与人工智能
2021/10/27
7.2K0
训练自己的孪生网络(理论篇)
我的毕设选题是:基于孪生网络的苹果外观品质分级系统研究。以前只是粗略的了解过孪生网络,没有系统学习过,所以现在重新完整的学习一遍孪生网络,学习内容分为两个blog,一篇是理论内容,一篇是代码实操。
计算机与AI
2022/01/18
2.7K0
训练自己的孪生网络(理论篇)
推荐阅读
相关推荐
对比损失 Contrastive Loss
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验