Triplet Loss

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应该是满足类内距离最大化并且类间距离最小化的三元组。

猜你喜欢

转载自blog.csdn.net/qq_33373858/article/details/81509666