三元组损失(triplet loss)及其改进

1.三元组损失定义

F. Schroff, D. Kalenichenko, and J. Philbin. FaceNet: A Unified Embedding for Face Recognition and Clustering. In CVPR, 2015.

三元组损失(triplet loss)及其改进

其中xa指anchor样本,xp为anchor的正样本,xn为anchor的负样本,α为正常数。

 三元组损失(triplet loss)及其改进

困难(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个三元组。

三元组损失(triplet loss)及其改进

3.基于质心的

On the Unreasonable Effectiveness of Centroids in Image Retrieval

4.基于视频内的

5.circle loss

将softmax分类损失和三元组损失统一的形式

三元组损失(triplet loss)及其改进

当计算anchor和类向量的距离时(即类级标签时)

三元组损失(triplet loss)及其改进

当γ趋近于正无穷

三元组损失(triplet loss)及其改进

优化sn-sp存在的问题,

1。优化收敛于一条直线,是模糊的

三元组损失(triplet loss)及其改进

2.对于sn和sp的惩罚是相同的,但是对于样本【0.8,0.8】,sp优化的很好,却还与sn有相同的梯度

优化的收敛

 三元组损失(triplet loss)及其改进

为了解决这一问题,提出了circleloss,根据sn和sp距离优化目标Op和On的距离来加权

三元组损失(triplet loss)及其改进

其中三元组损失(triplet loss)及其改进

此时sn和sp具有不同的梯度,其收敛边界也变成了一个圆,且收敛点为T。

上一篇:QT 计算工程路径下文件夹及其子文件大小


下一篇:Linux查看机器和硬盘的SN