TripletLoss、HardTripletLoss笔记

本文深入探讨了Triplet Loss及其变种Hard Triplet Loss的工作原理,详细解释了如何通过构造三元组样本(Anchor,Positive,Negative)来优化特征表示,使同类样本距离更近,异类样本距离更远。并通过代码示例展示了两种损失函数的实现过程。

一、TripletLoss
在这里插入图片描述
如上图所示,triplet是一个三元组,这个三元组是这样构成的:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor (记为x_a)属于同一类的样本和不同类的样本,这两个样本对应的称为Positive (记为x_p)和Negative (记为x_n),由此构成一个(Anchor,Positive,Negative)三元组。

有了上面的triplet的概念, triplet loss就好理解了。针对三元组中的每个元素(样本),训练一个参数共享或者不共享的网络,得到三个元素的特征表达,分别记为:f(xia),f(xip),f(xin)f(x_{i}^{a}),f(x_{i}^{p}), f(x_{i}^{n})f(xia),f(xip),f(xin)。triplet loss的目的就是通过学习,让x_a和x_p特征表达之间的距离尽可能小,而x_a和x_n的特征表达之间的距离尽可能大,并且满足以下公式:∣∣f(xia)−f(xip)∣∣22+α<∣∣f(xia)−f(xin)∣∣22||f(x_{i}^{a})-f(x_{i}^{p})||_{2}^{2}+\alpha<||f(x_{i}^{a})-f(x_{i}^{n})||_{2}^{2}f(xia)f(xip)22+α<f(xia)f(xin)22
对应的目标函数也就很清楚了:
∑iN[∣∣f(xia)−f(xip)∣∣22−∣∣f(xia)−f(xin)∣∣22+α]+\sum_{i}^{N}[||f(x_{i}^{a})-f(x_{i}^{p})||_{2}^{2}-||f(x_{i}^{a})-f(x_{i}^{n})||_{2}^{2}+\alpha]_{+}i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值