Contrastive Loss(对比损失)Contrastive Loss

Contrastive Loss

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

siamese network-孪生神经网络

contrastive loss的表达式如下:

# 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越大)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

深度学习: smooth L1 loss 计算

RPN的目标函数是分类和回归损失的和,分类采用 交叉熵,回归采用稳定的 Smooth L1,

1694
来自专栏深度学习思考者

深度学习目标检测算法——Faster-Rcnn

Faster-Rcnn代码下载地址:https://github.com/ShaoqingRen/faster_rcnn 一 前言   Faster rcnn是...

2875
来自专栏null的专栏

简单易学的机器学习算法——EM算法

一、机器学习中的参数估计问题 image.png 二、EM算法简介     在上述存在隐变量的问题中,不能直接通过极大似然估计求出模型中的参数,EM算法是一种解...

8285
来自专栏数据科学与人工智能

KNN两种分类器的python简单实现及其结果可视化比较

1.KNN算法简介及其两种分类器 KNN,即K近邻法(k-nearst neighbors),所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由...

3555
来自专栏机器学习、深度学习

快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild

Multi-Scale Fully Convolutional Network for Face Detection in the Wild CVPRW20...

2388
来自专栏瓜大三哥

DeepFace

检测→对齐→表示→分类 在文章中,通过3d模型改进了人脸对齐的方法。然后,通过基于4million人脸图像(4000个个体)训练的一个9层的人工神经网络来进行人...

2376
来自专栏AI研习社

用Kaggle经典案例教你用CNN做图像分类!

前言 在上一篇专栏《利用卷积自编码器对图片进行降噪》中,我们利用卷积自编码器对 MNIST 数据进行了实验,这周我们来看一个 Kaggle 上比较经典的一...

3686
来自专栏大学生计算机视觉学习DeepLearning

深度学习(一)神经网络中的池化与反池化原理

原文链接:https://www.cnblogs.com/DOMLX/p/9579108.html

892
来自专栏用户2442861的专栏

VGG论文笔记/小结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

1502
来自专栏机器学习算法全栈工程师

深入浅出解读卷积神经网络

作者:石文华 编辑:田 旭 卷积神经网络 ? 图1 全连接神经网络结构图 ? 图2 卷积神经网络结构图 卷积神经网络和全连接的神经网络结构上的差异还是比较大的,...

2584

扫码关注云+社区