原文:Git Loss for Deep Face Recognition
Git Loss
1、四个问题
- 要解决什么问题?
- 诸如人脸识别、指纹识别等的识别任务,测试集不确定或类别较多而样本较少的情况。
- one-shot-learning。
- 最小化类内差异,最大化类间差异。
- 用了什么方法解决?
- 提出了一个新的loss函数——git loss。
- git loss是基于center loss的基础之上改进的,center loss可以加强网络缩小类内差异的能力,而git loss可以加强网络增加类间差异的能力。
- 效果如何?
- 在两个benchmark数据库上:Labeled Faces in the Wild(LFW) and YouTube Faces (YTF) 取得了state-of-the-art的结果。
- 还存在什么问题?
- 与center loss一样,训练时的计算成本很大,每次训练都要计算当前batch的所有特征的中心。
2、论文概述
2.1、Deep Metric Learning Approaches
- 优点:
- 深度度量学习方法,如contrastive loss可以优化样本对之间的相似度,triplet loss会优化三元组样本对之间的相对相似度。使用contrastive loss和triplet loss可以有效地加强深度网络提取很好分类的特征。
- 缺点:
- 使用contrastive loss和triplet loss需要注意样本对的选择,如果样本对选择的不好,模型的性能也会大打折扣。
- 由于训练和测试时使用的都是样本对,每次训练都要计算多张图像,这样会增加训练的计算量。
2.2、Git Loss
- git loss是基于center loss改进得到的。最小化类内间距,最大化类间间距。
- 由于让同类样本的特征更加紧凑(类似于git的pull操作),让不同类样本的特征距离更远(类似于git的push操作),所以取名为了git loss。
- 公式说明:
- L S L_S LS是Softmax Loss, L C L_C LC是Center Loss, L G L_G LG是Git Loss。
- λ C \lambda_C λC和 λ G \lambda_G λG分别是给Center Loss和Git Loss的权重。
- c y i c_{y_i} cyi表示所有属于 y i y_i yi类的特征 x i x_i xi的中心值。
2.3、Toy example
- 基于MNIST做的实验:
- 左图中 λ G = 0 \lambda_G=0 λG=0,即为Center Loss的结果;由于为引入了Git Loss的结果。
- 从图中可以直观地看出Git Loss的类间距离更大,类内也更紧凑。