Contrastive Loss(Siamese Network)

本文详细介绍了对比损失(Contrastive Loss)的概念及其在孪生神经网络中的应用。对比损失能够有效地处理配对数据,并确保相似样本在特征空间中保持接近,而非相似样本则保持远离。此外,还探讨了该损失函数在不同场景下的表现及改进方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Contrastive Loss (对比损失)

孪生神经网络(siamese network)中,其采用的损失函数是contrastive loss,这种损失函数可以有效的处理孪生神经网络中的paired data的关系。contrastive loss的表达式如下: 

其中d=||anbn||2,代表两个样本特征的欧氏距离,y为两个样本是否匹配的标签,y=1代表两个样本相似或者匹配,y=0则代表不匹配,margin为设定的阈值。

 

这种损失函数最初来源于Yann LeCun的《Dimensionality Reduction by Learning an Invariant Mapping》,主要是用在降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似;而原本不相似的样本,在经过降维后,在特征空间中,两个样本仍旧不相似。

观察上述的contrastive loss的表达式可以发现,这种损失函数可以很好的表达成对样本的匹配程度,也能够很好用于训练提取特征的模型。当y=1(即样本相似)时,损失函数只剩下∑yd2,即原本相似的样本,如果在特征空间的欧式距离较大,则损失函数(增函数)越大,则说明当前的模型不好。而当y=0时(即样本不相似)时,损失函数为∑(1−y)max(margind,0)2

(减函数),即当样本不相似时,其特征空间的欧式距离反而小的话,损失函数值会变大。


这张图表示的就是损失函数值与样本特征的欧式距离之间的关系,其中红色虚线表示的是相似样本的损失值(Y=1时),蓝色实线表示的不相似样本的损失值(Y=0时)。这里的m为阈值,要视具体问题而定,对于不同的目标m的值会有不同的大小。而事实表明Constractive Loss对于多分类的问题经常会在训练集上过拟合,显得比较乏力。针对该问题的改进方法有Triplet Loss、四元组损失(Quadruplet loss)难样本采样三元组损失(Triplet loss with batch hard mining, TriHard loss)边界挖掘损失(Margin sample mining loss, MSML)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值