TripletLoss
什麼是TripletLoss?
TripletLoss 最初是在《FaceNet: A Unified Embedding for Face Recognition and Clustering》這篇論文中所提出的
可以学到较好的人脸的特征值(embedding)
和SoftMax相比TripletLoss 更适合训练差异性较小的样本(比如判断人脸相似度)
TripletLoss是如何实现的呢?
- 首先,我们从训练数据中随机选择一个样本,我们暂且称这个样本是Anchor(锚)(x_a)
- 第二步,我们再从数据集中选择一个与Anchor同属于同一个类别的样本,称这个样本为:Positive(x_p)
- 第三步,我们再从数据集中选择一个与Anchor不同属于一个类别的样本,称这个样本为:Negative(x_n)
- 第四步,我们将这三个元素构成一个三元组(triplet):<Anchor, Positive, Negative>
- 第五步,我们通过优化锚示例与正示例的距离小于锚示例与负示例的距离,来实现样本的相似性计算