本文主要介绍/对比三种常用的Loss function:
(1)Triplet Loss
(2)Contrastive Loss
(3)Focal Loss
前两种主要用于Metric Learning(度量学习)任务中,而Focal Loss更多的是处理正负样本极其不均衡情况下的一种Cross Entropy Loss的升级版。
(1)Triplet Loss
最初是在FaceNet一文中提出的,研究重点在于如何学习到更好的face embedding。
在人脸识别系统中,如果使用传统的image classification的做法,则会遇到两个问题:
- 新增or减少人的时候,需要重新训练一遍model;
- 有时我们不一定知道label,但是知道两个照片是来自同一个人或不同人。
(2)Contrastive Loss
最初来源于Yann LeCun的Dimensionality Reduction by Learning an Invariant Mapping,主要是用在降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似;而原本不相似的样本,在经过降维后,在特征空间中,两个样本仍旧不相似。
contrastive loss的表达式如下:
其中 d 代表两个样本特征的欧氏距离,y为两个样本是否匹配的标签,y=1代表两个样本相似或者匹配,y=0则代表不匹配,margin为设定的阈值。
(3)Focal Loss
Focal Loss的提出是用来解决一阶段目标检测算法面对的极端不平衡前景和背景目标(框)数量,作者表示可能有1:1000。原论文主要是关心处理简单的二分类问题,即前景背景检测,但是loss本身也非常容易扩展到多分类问题。