ArcFace Additive Angular Margin Loss for Deep Face Recognition 阅读笔记
这篇论文的成果在 MegaFace 百万人脸识别挑战中,获得了state-of-art的效果,可以说是CNN在人脸领域的又一进步。它的优势主要有3点:
- 使用了Additive Angular Margin,在对feature 和 weights进行了L2 normalization的基础上,再计算决策边界时使用cos(θ+mθ+m) 函数,比起以前的loss function,可以得到more discriminative deep features
- 对网络架构进行新设计
- 进行了data refinement
1.介绍
CNN在人脸的运用已经到很成熟的地步,不同技术之间的差别主要体现在3个attribute 。而这篇论文也在这三个方面做出自己的改进。下面简述一下这些attribute的体现和改进的地方
1.1数据
学术界与工业界有许多不同的数据集,其中有些,如 MegaFace,虽然有很多identities,但是有annotation noises和long tail distribution的干扰。因为不同数据集间差别很大,有些好的人脸成果是不可模仿的
1.2 网络架构
high capacity CNN,像ResNet和Inception-ResNet 比起VGG和Google Inception V1能够获得更好的效果。
本文设计网络确保了在不同姿态和年龄下的鲁棒性,并且对最新的网络做了速度和准确度上的权衡
1.3 LOSS FUNCTION
下面是历史上一些发展历程
-
Euclidean margin based loss
主要是用Softmax, 还会加上margin作为改进,但是在GPU的运算量太大了
contrastive loss 和 the Triplet Loss 使用了pair training 策略,但是太依赖于选择有效的训练数据
-
Angular and cosine margin loss
怎样从Softmax function演化到SphereFace可以看我另一篇文章。后面又出现additive cosine margin cos(θθ)-m把margin移到cos 空间,这样有利于实现与优化的达成,它是reproducible的并且在MegaFace上达到state-of-art效果
本文的话,使用了Additive Angular Margin,在对feature 和 weights进行了L2 normalization的基础上,再计算决策边界时使用cos(θ+mθ+m) 函数,比起以前的loss function,可以得到more discriminative deep features
2. From Softmax to ArcFace
2.1 From Softmax to SphereFace
详见我的另一篇文章:SphereFace-From-Softmax-to-Angular-Margin
- Softmax
- Weights Normalization
- SphereFace: Multiplicative Angular Margin
2.2 Feature Normalization
由Softmax学来的feature的L2 norm可以体现这张人脸图像的质量。好的正面人脸的feature的L2 norm更高,模糊的姿态极端的人脸feature的L2 norm低。使用L2 normalization可以将feature 投射到固定半径的超球面上,得到好的效果
对于feature 和 weight使用L2 normalization 是很重要的一步,可以去除他们的极端差异性,把它们投射到超球面高维流形(hypersphere manifold)上
我们把||xi||||xi|| rescale 为 超参数s,本文中设定为64。于是得到如下式子
(其实我觉得$theta {j}应该换成∗应该换成∗theta {j,i}$* 更好一些,表示这是第i个样例)
2.3 Additive Cosine Margin
m被移出cos,使用如下式子
也是对$theta {yi}更严苛了,原来只要更严苛了,原来只要cos (theta {yi}) > cos (theta {j})就是分类正确,现在需要就是分类正确,现在需要cos (theta {yi}) > cos (theta_ {j}) +m$ 。这样就形成margin
在这片paper中把m设为0.35,它比起Sphere Face有三个好处
2.4 Additive Angular Margin
在角度上增加固定的Margin,在Cosine Margin的基础上,更具有几何解释性(角度)并获得更好性能,角度上的margin对应超球面流形角度距离(arc distance on the hypersphere)
由于cos(θ+mθ+m) < cos(θθ) 当θ∈[0,π−m]θ∈[0,π−m] ,所以分类的要求更严苛了。
如果展开(expand) cos(θ+mθ+m) ,我们得到cos(θ+m)=cos(θ)cos(m)−sin(θ)sin(m)cos(θ+m)=cos(θ)cos(m)−sin(θ)sin(m) 。比起additive cosine margin 的cos(θθ) -m , ArcFace 很相像但是因为sin(θθ) 显得更dynamic
(不同颜色代表不同类的feature space)
2.5 二元分类下的比较
把决策边界放在一起展示
2.6 Target Logit Analysis
为了搞清楚为什么性能能被这些结构优化,我们画出了训练中的target logit curve (WTx+bWTx+b)和 θθ 分布 .
3. Experiments
3.1 Data
3.2 Network Settings
3.2.1 输入设定
根据人脸的 5 个关键点(眼睛中心,鼻尖和嘴角)进行对齐,并且切割设置大小到 112x112,并且每个像素(范围在[0,255])被normalize(-127.5再除以128)。因为图片大小是ImageNet输入的1/4,为了保证,我们用(conv3 3 stride 1)来替换(conv 7 7 stride 2)。这个放大版网络结构被标记为L
3.2.2输出设定
这儿指的是特征向量那一层,实验了五种从最后一个卷积层如何连接到特征向量的方法,选择了最优代号E,即(Conv - BN - Dropout - FC - BN)
3.2.3 RESNET 单元设定
通过比较,发现第二个Conv 的stride 设为1好于第一个Conv, PReLU好于Original ReLU
我们把这个标记为IR
3.3 最终结果
经过实验比较(具体比较情况见论文),我们最终选择输入- L ,输出 - E, block setting -IR,weight decay value 选择5e-4, loss 中 m=0.5
Reference
- https://zhuanlan.zhihu.com/p/34477873
- ArcFace Additive Angular Margin Loss for Deep Face Recognition
- https://github.com/deepinsight/insightface
标签:
相关文章
-
无相关信息