人脸识别之度量学习

人脸识别的研究集中在三个方面:数据集、度量学习、基础网络结构,本文主要介绍其中的度量学习。

由于人脸识别存在测试集(open dataset)的类别不在训练集中的问题,使得较新的人脸识别方法的核心在于度量学习(loss的定义),使得未知类的特征之间可以较好地分开。

这个度量学习其实就是修改softmax的定义。到目前为止主要有以下几种loss:

0、contrastive loss (DeepID2)
这里写图片描述
1、center loss
在softmax的基础上加入关于feature vector的L2度量,使得类内高度聚合。
人脸识别之度量学习_第1张图片

这里写图片描述

2、triplet loss (FaceNet)
这里写图片描述
上式中d(a,p)是anchor样本和正(positive)样本之间的欧式距离,d(a,n)是anchor样本和负(negative)样本之间的距离。当d(a,n)-d(a,p)>margin时,loss为0;否则loss大于0。
triplet loss和contrastive loss比较相似,区别在于triplet loss计算三元组的loss,而contrastive loss计算二元组的loss。

3、A-softmax (SphereFace)
A-softmax是SphereFace中设计的loss。主要是两个操作:
1)归一化前一个FC层的每一列权重,以减弱样本不平衡带来的影响;
2)将判决平面从cos(theta0)>cos(theta1)变为cos(n*theta0)>cos(theta1),文章中n取4。
缺点:由于2)中的判决平面过于严苛,使得训练不容易收敛。

4、cosFace / AM-softmax
由于在实际使用是在cos域,cos(theta0) > cos(theta1)+a,a为0.35。

5、arcFace
cos(theta0+m)>cos(theta1),m=0.5。

参考:
https://zhuanlan.zhihu.com/p/34404607
https://zhuanlan.zhihu.com/p/34436551

你可能感兴趣的:(人脸识别之度量学习)