人脸识别中的margin损失函数

用于人脸识别的损失函数,有Softmax,Contrastive Loss,Triplet Loss,Center Loss,Norm Face,Large-Margin Loss,A-Softmax Loss,InsightFace等等,这篇文章简单聊聊近年的margin损失函数。

margin损失函数:

  1. Large-margin Softmax(L-Softmax)
  2. Sphereface(A-Softmax)
  3. Additive Margin Softmax(AM-Softmax)
  4. CosFace(Large Margin Cosine Loss)
  5. InsightFace(ArcFace)

1.Large-margin Softmax(L-Softmax)

论文:Large-Margin Softmax Loss for Convolutional Neural Networks

定义:

人脸识别中的margin损失函数

其中,

人脸识别中的margin损失函数

人脸识别中的margin损失函数

这张图显示的是不同softmax loss和L-Softmax loss学习到的cnn特征分布。第一列是softmax,第2列是L-Softmax loss在参数m取不同值时的分布。通过可视化特征可知学习到的类间的特征是比较明显的,但是类内比较分散。而large-margin softmax loss则类内更加紧凑。

Softmax的分类面只有一个面,而L-softmax在Softmax的基础上对W和x的角度引入正整数扩充m,使分类条件更加严苛,此时分类面变成了两个,并且两个面中间存在(m-1)倍角度的间隙,即命名中Large-Margin的由来。

2.Sphereface(A-Softmax)

论文:SphereFace: Deep Hypersphere Embedding for Face Recognition

定义:

人脸识别中的margin损失函数

其中,

人脸识别中的margin损失函数 ,

人脸识别中的margin损失函数 and 人脸识别中的margin损失函数

人脸识别中的margin损失函数

当m=1时,A-softmax loss就会变成modified softmax loss。当m增大时,损失函数最优化的难度越大,形成的角度距离越大。当m=1时,角度距离为0. 从决策函数角度解释A-softmax loss,A-softmax loss 对于不同的类别采用了不同的决策函数,每个决策函数比原始的更加严格,因而产生了角度距离。最优化A-Softmax损失本质上是使得学习到的特征在超球面上更加具有可区分性。

3.Additive Margin Softmax(AM-Softmax)

论文:Additive Margin Softmax for Face Verification

定义:

人脸识别中的margin损失函数

在SphereFace的基础上,将乘性margin改成了加性margin,并在权值W归一化的基础上对特征f也做了归一化,采用固定尺度因子s=30,相比SphereFace性能有提升,最重要的是训练难度大幅降低。

4.CosFace(Large Margin Cosine Loss)

论文:CosFace: Large Margin Cosine Loss for Deep Face Recognition

定义:

人脸识别中的margin损失函数


其中,

人脸识别中的margin损失函数

与AM-Softmax完全一样,同样的加性margin,同样的特征归一化,权值W和特征f都进行了正则化。

5.InsightFace(ArcFace)

论文:ArcFace: Additive Angular Margin Loss for Deep Face Recognition

定义:

人脸识别中的margin损失函数


首先,原名为ArcFace,因与虹软的人脸识别SDK重名,故改名为InsightFace。

人脸识别中的margin损失函数

在SphereFace的基础上,同样改用加性margin但形式略有区别, 人脸识别中的margin损失函数 变成了 人脸识别中的margin损失函数 ,特征也做了归一化,固定因子s=64。在基于L2正则化权重和特征的角度空间中,直接最大化决策边界。相比于加性margin和乘性margin,InsightFace提出的监督信号更倾向于角度上的分解,有更好的几何解析能力,重要的是,在基于L2正则化权重和特征的角度空间中,直接最大化决策边界,使其能获得更具有判别能力的特征。