Triplet Loss
三元组(Triplet)计算而来的损失(Loss)
由Anchor(A),Negative(N),Positive(P)组成,基点为A,正匹配为P,负匹配为N。
Triplet Loss的学习目标可以形象的表示如下图:
网络没经过学习之前,A和P的欧式距离可能很大,A和N的欧式距离可能很小,如上图左边,在网络的学习过程中,A和P的欧式距离会逐渐减小,而A和N的距离会逐渐拉大。
网络会直接学习特征间的可分性:同一类的特征之间的距离要尽可能的小,而不同类之间的特征距离要尽可能的大。
通过学习,使得类间的距离要大于类内的距离。
损失函数为:
其中,左边的二范数表示类内距离,右边的二范数表示类间距离,α是一个常量。优化过程就是使用梯度下降法使得损失函数不断下降,即类内距离不断下降,类间距离不断提升。
Hard Triplets
理论上说,为了保证网络训练的效果最好,我们要选择hard positive
以及hard negative
来作为我们的三元组
Hard Triplets应该是满足类内距离最大化并且类间距离最小化的三元组。