Paper name
CosFace: Large Margin Cosine Loss for Deep Face Recognition
Paper Reading Note
URL: https://arxiv.org/pdf/1801.09414.pdf
TL;DR
该篇文章出自CVPR2018,在Angular softmax loss基础上改进得到Large Margin Cosine Loss,同时在SphereFace的基础上提出特征规范化,在多个人脸识别数据集上取得了SOTA结果。
Introduction
- 最近的研究发现基于传统的softmax loss训练得到的模型所生成的softmax loss的判别能力不够强,为了提高特征的判别能力,如Angular softmax loss之类的方法被提出用于增加模型生成的特征的类内相似性与类间区分度。Angular softmax loss将原始欧式空间中的特征投影到超球面的特征空间上,并且提出了angular margin用于增加类间区分度。作者任务超球面空间的angular margin相比于欧氏距离的margin更有优势,因为因为角度的余弦与softmax函数具有内在一致性。
- 作者认为angular margin还不足够合理。余弦公式与人脸识别中常用的相似性度量方法相匹配,从这个角度看,直接在不同类别之间引入余弦margin来改进余弦相关的判别信息更为合理。
- 在本文中,作者通过L2归一化特征和权重向量消除径向变化,将softmax loss重新改造为cosine loss,在此基础上引入余弦margin来进一步最大化超球面特征空间中的决策裕度。
Dataset/Algorithm/Model/Experiment Detail
实现方式
-
一句话介绍完这篇paper的创新点就是将angular softmax loss中的loss设计进行了以下替换:
- A-softmax loss
- Large Margin Cosine Loss
- A-softmax loss
-
原因是作者认为由于余弦函数的非单调性,A-softmax loss较难优化,A-softmax loss为了解决这问题使用了特殊的分段函数。同时A-softmax loss的决策面会依赖于theta值,这使得不同的类别对应着不同的angular margin,在决策空间中,一些类间特征有着较大的margin同时另一些类间特征可能有着较小的margin,这导致特征的判别能力减弱。
-
作者提出的CosFace整体框架如下所示
-
Large Margin Cosine Loss
- Large Margin Cosine Loss的推导与Angular softmax loss很相似
- 对于传统的softmax loss:
- 其中f一般是全连接层的**值,可以由全连接层的权重W与偏移量B所计算,为了简单讲B设为0:
- 其中权重W通过L2norm处理成二范数为1的形式(在测试阶段一般使用特征的余弦相似度,特征的norm也就在评测中没有影响),那么softmax loss可以转化为以下经过normalnize的形式:
-
作者认为上述softmax loss训练的模型生成的feature的判别性不够强,因为上述loss只强调正确分类即可,作者增加了cosine margin进一步提高类间判别度,其原理与angular softmax loss很相似
-
其中全连接层权重和输出特征经过normalnize操作:
-
与其他loss的对比,可以看到cosine loss相比于其他的loss的决策边界更为合理
-
Normalization on Features。不同于A-softmax loss仅规范化了权重,作者提出对特征也做规范化处理。特征规范化的重要性主要有以下原因:
- 没有特征规范化的原始softmax loss隐式学习欧几里德范数特征向量的(L2范数)及其余弦值角度。自适应学习L2范数以最小化总的损失,导致余弦约束相对较弱。作者要求整个特征向量集具有相同的L2范数,使得学习仅依赖于余弦值来发展判别能力。同一类的特征向量聚在一起,不同类的特征向量在超球面上分离
-
从特征角度对LMCL的几何解释。不同颜色区域表示不同类的特征空间。与NSL相比,LMCL具有相对紧凑的特征区域
-
LMCL的效果可视化实验,挑选了8个不同id的人的图片,生成二维的特征向量用于在特征空间中显示,得到的结果如下所示,可以看到随着m的增加类别间的决策边界更加分离,也就更利于进行人脸的特征识别比对:
实验结果
-
实现细节:
- 通过MTCNN检测人脸区域与landmarks,利用五个人脸关键点进行相似变换
- 在0.49M数据量的CASIA-WebFace数据集上进行训练,作者都来自于腾讯,可能不缺数据和计算资源,用了一些别的公开数据集以及私有数据集
- 测试阶段原始图片与flipped图片的feature经过concat操作后作为最后的人脸特征
- 余弦距离用于计算特征相似性
-
在LFW与YTF两个经典公开数据集上的实验结果,可以看到margin对于识别准确度的影响很大,m=0.35时有最佳结果
-
feature normalnization的效果
-
不同loss的结果对比
-
不同方法的对比
-
MegaFace数据集结果,SOTA效果
Thoughts
该篇文章思路、撰写方式与SpereFace都很类似,对于loss的修改有明显涨点,作者也对修改的原因进行了详尽的解释。另外作者提出对特征进行规范化的方式也有一定涨点,该部分修改的考虑作者解释得也十分清楚。人脸识别这一系列的文章就是能够将简单的创新用十分详尽的语言进行描述。