Have a Question?

Triplet Loss

You are here:

1 定义

Triplet Loss 也是一种用于训练样本差异化的函数,它的输入是一个三元组,包括锚(Anchor)示例、正(Positive)示例、负(Negative)示例,通过优化锚示例与正示例的距离小于锚示例与负示例的距离,实现样本之间的相似性计算。
公式为:
\(L=\max (d(a, p)-d(a, n)+\text { margin }, 0)\)
其中:

  • a:anchor,锚示例
  • p:positive,与a是同一类别的样本
  • n:negative,与a是不同类别的样本
  • margin是一个大于0的常数

最终的优化目标是拉近 a 和 p 的距离,拉远 a 和 n 的距离。

2 样本分类

对于构造 Triplet Loss 的训练样本分为 3 类
1)Easy Triplets:\(L=0\) ,即 \(d(a, p)+\text{ margin } < d(a, n)\),这种情况不需要优化,天然a和p的距离很近,a和n的距离很远

2)Hard Triplets: \(L > \text{margin}\),即 \(d(a, n) > d(a, p)\) ,a和n的距离近,a和p的距离远,这种情况损失最大,需要优化

3)Semi-hard Triplets: \(L < \text{margin}\) ,即 \(d(a, p) < d(a, n) < d(a, p)+\text{ margin }\) ,即a和p的距离比a和n的距离近,但是近的不够多,不满足margin,这种情况存在损失,但损失比hard triplets要小,也需要优化

参考文献

[1] https://zhuanlan.zhihu.com/p/171627918

Add a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

Table of Contents