参考文献: Liu W, Wen Y, Yu Z, et al. SphereFace: Deep Hypersphere Embedding for Face Recognition[J]. arXiv preprint arXiv:1704.08063, 2017.
摘要
之前写过一篇large-marin softmax (L-Softmax) 的介绍,与Softmax Loss 相比,它能够学习区分度更高的特征。基于L-Softmax的改进,这篇paper提出Angular-Softmax(A-Softmax)去学习判别特征,它在超球面流形上强加了一个判别约束,而这个超球面流形本质上与人脸的先验知识位于同一个流形上。A-Softmax在人脸数据库LFW/YTF/MegaFace上的识别结果均优化其它loss函数。与L-Softmax类似,angular margin 同样可以由一个参数 m 来调整。
算法介绍
1. Softmax Loss
在介绍A-Softmax之前,我们先来回顾softmax loss。当定义第
i
个输入特征
其中 fj 表示最终全连接层的类别输出向量 f 的第 j 个元素,
其中 θ(j,i 0≤θj,i≤π )是 Wj 和 xi 之间的夹角。 当 Wj=1 , bj=0 时,我们可以得到一个修改的softmax loss:
PS: 与L-Softmax不同的是,作者除了假设 bj=0 ,还将 ∥Wj∥ 设为1。
2. 引入Angular margin
为了便于说明,作者以二分类作为示例。为了将属于类1特征
x
正确分类,修改后的softmax损失函数要求
cos(θ1)>cos(θ2)
,即
θ1<θ2
。本文在此基础上增加一个参数
m(m≥2)
,此时要正确分类,需使
cos(mθ1)>cos(θ2)
,即
θ1<θ2/m
,
θ2<θ1/m
。这样就增强了判决的约束,使得学习出的特征的区分更强。根据这种思想修改的softmax loss函数为:
其中 0≤θyi,i≤πm 。与L-Softmax论文中相同,为了保证上式能在CNN中进行前/后向反馈,上式变换为:
在这里, ψ(θ) 可以表示为:
其中 θ∈[kπm,(k+1)πm] , k 是一个整数且
我们可以看出,
m
的值越大,angular magin也就越大,那么
下表为不同的Loss函数的决策边界对比:
直观分析
为了分析A-Softmax Loss的有效性,作者将初始的Softmax,修改后的Softmax以及A-Softmax在二分类的结果首先用一个简单的二维空间几何表示:
可以看到,与前两者相比,A-Softmax在类别的角度维度上的分类更加分明,决策边界明显扩大。同时,从图中我们也可以看出,Softmax 在内在的角度分布特性,这也是作者提到基于Euclidean margin和Softmax融合不能取得较好效果的原因。
各个Loss函数在2D、3D超球面流形的表示如下图所示,对于更高维度的超球面,不好描述,但大家可以脑补下。
实验结果
为了证明A-Softmax的有效性, 作者构建了Sphere Face的网络,实验在人脸识别数据上进行。训练集采用CASIA-WebFace,测试集分别在LFW/YTF上进行。
m 的影响
可以看出,随着
m
的增大,特征的类别的区分性也就越高。(普遍反应这个图画得非常好,值得学习)
人脸识别测试
在LFW/YTF上,A-Softmax均得了最好好的结果,只比FaceNet略差(采用了更多的训练集);在MegaFace的数据集上的1:1开集比对和开集1:N搜索,Sphere Face均取得了最佳的结果。
总结
本文通过增加angular margin的约束,在Softmax的基础上提出了A-Softmax,以此来学习区分力更强的人脸特征Sphereface,并且证明了增强参数