三元组损失(triplet loss)及其改进
作者:互联网
1.三元组损失定义
F. Schroff, D. Kalenichenko, and J. Philbin. FaceNet: A Unified Embedding for Face Recognition and Clustering. In CVPR, 2015.
其中xa指anchor样本,xp为anchor的正样本,xn为anchor的负样本,α为正常数。
困难(N<P),一般(P>N && Loss>0),简单(P>N && Loss=0)
2.三元组的采样
Hermans A , Beyer L , Leibe B . In Defense of the Triplet Loss for Person Re-Identification[J]. 2017.
对于一个大小为P*K的(P个id,每个id有K个样本)batch,全部采样则会产生PK*(K-1)(PK-K)个三元组,计算量很大。
Batch hard sample mining(批难例挖掘)即对于每一个anchor只保留一个三元组,即其负样本为距离最近的负样本,正样本为距离最近的正样本,产生PK个三元组。
3.基于质心的
On the Unreasonable Effectiveness of Centroids in Image Retrieval
4.基于视频内的
5.circle loss
将softmax分类损失和三元组损失统一的形式
当计算anchor和类向量的距离时(即类级标签时)
当γ趋近于正无穷
优化sn-sp存在的问题,
1。优化收敛于一条直线,是模糊的
2.对于sn和sp的惩罚是相同的,但是对于样本【0.8,0.8】,sp优化的很好,却还与sn有相同的梯度
优化的收敛
为了解决这一问题,提出了circleloss,根据sn和sp距离优化目标Op和On的距离来加权
其中
此时sn和sp具有不同的梯度,其收敛边界也变成了一个圆,且收敛点为T。
标签:loss,triplet,Loss,sp,三元组,sn,样本,anchor 来源: https://blog.csdn.net/dbdxwyl/article/details/121365281