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 条评论
登录 后参与评论

相关文章

来自专栏机器学习从入门到成神

机器学习之深入理解K-means、与KNN算法区别及其代码实现

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

1151
来自专栏JasonhavenDai

统计学习方法之线性回归法1.线性回归2.损失函数(Cost Function)3.梯度下降4.最小二乘法5.数据归一化6. 模型评估7.参考文献

1.线性回归 回归,统计学术语,表示变量之间的某种数量依存关系,并由此引出回归方程,回归系数。 线性回归(Linear Regression),数理统计中回...

3248
来自专栏机器学习算法原理与实践

scikit-learn 梯度提升树(GBDT)调参小结

    在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参...

1023
来自专栏智能算法

在机器学习中用到了各式各样的距离

作者:shiwei408 来源:http://blog.csdn.net/shiwei408/article/details/7602324 本文目录: 1.欧...

2926
来自专栏H2Cloud

多元线性回归公式推导及R语言实现

实际中有很多问题是一个因变量与多个自变量成线性相关,我们可以用一个多元线性回归方程来表示。

691
来自专栏Vamei实验室

概率论06 连续分布

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

701
来自专栏IT派

理解SVM的三层境界(一)

前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究...

3247
来自专栏MelonTeam专栏

机器学习入门系列06,logistic regression逻辑回归

引用课程:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ml16.html 先看这里,可能由于你正在查看这个平台行...

2207
来自专栏利炳根的专栏

学习笔记DL001 : 数学符号、深度学习的概念

深度学习是机器学习拉出的分支,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。本文主要介绍深度学习中的数学符号、数和数组。

3810
来自专栏大数据挖掘DT机器学习

数据挖掘算法-Matlab实现:Logistic 回归

什么叫做回归呢?举个例子,我们现在有一些数据点,然后我们打算用一条直线来对这些点进行拟合(该曲线称为最佳拟合曲线),这个拟合过程就被称为回归。 利用Logis...

2916

扫码关注云+社区