Paper name
SphereFace: Deep Hypersphere Embedding for Face Recognition
Paper Reading Note
URL: https://arxiv.org/pdf/1704.08063.pdf
TL;DR
该篇文章出自CVPR2017,提出了angular softmax(A-Softmax) loss来增强用于人脸识别任务的卷积神经网络产生更具判别性特征的能力。从几何角度看,A-Softmax损失可被视为将人脸特征强制约束在超球面流形上,同时各特征在超球面上的角度margin可以通过参数m来进行调节。基于A-Softmax损失实现的模型在LFW、YTF、MegaFace等数据集上取得了SOTA结果。
Introduction
-
人脸识别(face recognition)任务细分来说有以下两种:人脸辨认(face identification)与人脸验证(face verification)
-
从测试规则来看,人脸识别任务分为闭集评测(Closed-set),开集评测(Open-set)两种类型,如下图所示。其中闭集评测是所有评测的人脸id都存在于训练集中,这种情况下人脸辨认与人脸验证两个任务都可以看做是一个分类任务;而开集评测是评测的人脸id不存在于训练集,这种情况下人脸辨认与人脸验证则无法当做分类任务进行处理,目前的处理方式是通过度量学习(metric learning)来解决开集评测任务,度量学习具体来说就是利用深度神经网络将人脸映射到一个特征空间中,通过增强特征空间中不同id的feature之间的差异并减小相同id的feature之间的差异来使各个人脸在特征空间中能够被正确分辨出来。
-
作者认为当前的loss function不足以达到上述希望的生成极具判别力特征的能力。其中传统softmax loss能够生成separable的特征,但是不够discriminative;contrastive loss和center loss在softmax loss基础改进来提高特征的判别能力,triplet loss也别提出来用于监督embedding learning,但是其中center loss仅能够提升特征的类内紧凑性,contrastive loss和triplet loss也无法直接限制单个样本在特征空间上的分布,需要精心设计好配对的pair/triplet样本挖掘过程,这是耗时且performance-sensitive的。
-
如下图所示,作者通过将fc层输入限制为两维以便于将CASIA人脸数据集中的人脸图片映射到二维平面中进行显示,黄绿色和紫红色的点分别代表两个不同id的人脸。可以看出modified softmax loss在softmax loss基础上提高了特征判别力,而A-softmax loss又在modified softmax loss的基础上进一步提高了所提取的特征的判别力。
Dataset/Algorithm/Model/Experiment Detail
数据集
- 训练集
作者使用CASIA-WebFace数据集用于训练,使用的数据集剔除了训练集与测试集重叠的部分。CASIA-WebFace数据集有10575个不同人脸id的494414张图片。训练过程中加入了水平翻转的数据增广。值得注意的是作者认为他们使用的CASIA-WebFace(0.49M)的数据量相比于DeepFace(4M)、VGGFace(2M)、FaceNet(200M)来说并不是很大。 - 测试集
在测试过程,作者使用了最经典的LWF,YTF,MegaFace这三个数据集来进行性能评测
实现方式
- 作者提出的最核心的创新就是A-softmax loss,A-softmax loss的思路简单来说就是在传统softmax loss中加入角度的margin约束。下面对A-softmax loss的提出的基础以及具体形式进行阐述:
- 传统的softmax的形式如下所示,其中W和b在这里代表着网络最后的fc层的权重和偏移量:
- 表示成softmax loss的形式如下所示,作者利用权重与输入的二范数和权重与输入的夹角余弦值来对softmax loss进行改写,
- 将权重normalize操作到二范数为1,并使偏移量为0,则可以得到以下的modified softmax loss形式,这种方式的loss能够将feature映射到一个超球面的流行特征空间上,作者列举了之前有研究证明人脸图片也是处于类似超球面的流行空间上:
- 在modified softmax loss的基础上,作者进一步增加了angular margin的约束,具体形式如下所示:
如果要用一个公式或者一句话表示该篇文章的创新点,上面的一个公司和一句话的内容就足够了。具体来说,对于一个两类别分类任务,modified softmax loss的分界面为以下所示:
如果在上述的分类边界中增加一个angular margin约束,分别边界就变成如下所示:
很明显可以看出这需要类别1的角度要比类别2的角度大一个m的margin才能够正确被分类,这种方式能够让学习的特征达到增加类内紧凑性和类间区分性的目标。
- 传统的softmax的形式如下所示,其中W和b在这里代表着网络最后的fc层的权重和偏移量:
- 以上提到的三个loss的分界面如下表所示:
- A-softmax loss与欧氏距离margin loss与modified softmax loss的对比情况如下:
- 作者在论文中做的比较好的地方是对提出的A-softmax loss进行了一定的特性分析
- 特性一:m越大角度margin越大,在特征空间中的约束更大,学习任务也变得更难。会有一个最小的理想m值,即在这个m值能够让最大的类内距离小于最小的类间距离
- 特性二:两类的分类情况下,上述的m值约束为:
- 特性三:多类分类情况下,上述的m值约束为:
作者在试验中发现使用m=4一般就足够了。
实验结果
- 实验具体设置如下所示,在训练过程中利用A-Softmax loss来根据训练集中的labels对深度神经网络进行优化;在测试阶段则使用训练好的网络的FC层输出feature,由于这些提取的feature已经在超球面的特征空间中有优良的判别性,利用余弦相似度的度量方式即可进行人脸验证与人脸辨认任务。
- 判断m值对实验结果的影响,当m值取4时有最优结果。
-
判断网络结构对实验的影响,随着网络层数的增加,识别精度不断提高
-
在LFW与YTF数据集上的实验结果,取得了SOTA结果,在使用WebFace为训练集的方法中取得的测试精度最高
-
在MegaFace数据集上的实验结果,ensemble模型取得了最优结果
Thoughts
该篇文章的创新其实很简单,最简单来看就是在modified softmax loss的基础上加了一个角度的margin约束,以提高类内相似性的同时增加类间区分度。作者能将这么一个简单的想法构造成一篇理论基础扎实、证明充分、展示生动、实验丰富的文章是值得学习的。