传统的Triplet-based约束的缺点:

如上左图中,xa是锚点,xp1、xp2是正样本,xn1、xn2是负样本。存在这样一种情况,{xa,xp1,xn1}出现在一个batch中,{xa,xp2,xn2}出现在另一个batch中。在各自的batch里的,这几条数据满足Margin Constraint。但从全局的角度来看,{xa,xn1}之间的距离甚至要比{xa,xp2}间的距离要近。
EET(Equidistant and Equidistributed Triplet-based) loss的做法
在Triplet-based Margin Constraint(公式如下)的约束的基础上,
LMC=N1a=1∑N[d(fa,fp)−d(fa,fn)+α]+
增加下面几个部分:
1.约束同类别的不同样本到一个negative样本尽可能等距,如d(A1,B)与d(A2,B) (同字母代表同标签)
LEC1=N1a=1∑N∣d(fa,fn)−d(fp,fn)∣
2.最大化类间的最小距离
LM=M∗(M−1)1i=1∑Myi=yj∑MeD(Ci,Cj)
其中,yi,yj是样本i,j的类别标签,另外D(Ci,Cj)=minyi=yCi,yj=yCjd(fi,fj)
3.约束任意一对的positive和negative样本尽可能等距 如d(A,B) 和d(B,C)
LE=M1a=1∑M∣d(fa,fn)−d(fn,fn′)∣
xn′是与xn距离最近的不同标签的样本。
4.(经过实践自己添加) 最小化类内的最大距离
LN=M1i=1∑Myi=yj∑Me−D(Ci,Cj)
EET 约束的表达式
LEET=LMC+LEC1+LM+LE+LN