人脸识别(三):2017 Additive Margin Softmax for Face Verification

本篇是人脸识别的第三篇文章:
人脸识别第一篇:Center Loss
人脸识别第二篇:SphereFace
人脸识别第三篇:CosFace
人脸识别第四篇:ArcFace
人脸识别第五篇:CCL

人脸特征点检测第一篇:[综述]
(https://blog.****.net/u014230646/article/details/79445384)
人脸特征点检测第二篇:[Cvpr 2012 树模型实现]
https://blog.****.net/u014230646/article/details/79445524
人脸特征点检测第三篇:[基于CNN的方法-VGG, Mobilenetv2尝试]
https://blog.****.net/u014230646/article/details/79445676
人脸特征点检测第四篇:[基于FCN的方法]
https://blog.****.net/u014230646/article/details/79445867

方法

这篇是对sphereface的改进之一,具体的方法是把角度裕量从cos(mθ)cos(θ)+m,主要的好处是这样改进之后容易收敛

回顾Sphereface

在上一篇博文里我们分析了sphereface的形式 论文阅读:Cvpr 2017 Sphereface,这里再复习下。
首先来看看经典的softmax loss的形式:
人脸识别(三):2017 Additive Margin Softmax for Face Verification
实际上,我们可以这么理解上面这个式子:第一步是做softmax归一化,以得到类别的概率估计,概率最大的类别即为分类预测结果;第二步是取KL散度,拟合预测的概率分布与真实分布。这里KL散度化简之后就是交叉熵。这是经典的softmax loss用于分类的形式。
接下来看看Sphereface的损失函数:
人脸识别(三):2017 Additive Margin Softmax for Face Verification
人脸识别(三):2017 Additive Margin Softmax for Face Verification
这个损失函数主要做了两个修改:(1)归一化权重;(2)加入角度裕量。注意到这个角度裕量的形式是在cos函数里乘以m,使得分类更加困难。为达到这个目的,把目标函数里的函数cos(θyi)额换成了 ψ(θyi),即改进后的余弦函数。
我们来看看这个余弦函数ψ(θ) 的性质。最好的方式是可视化,画出函数曲线。所幸,Wang et.al [1] 已经在论文里给出了这个函数的图:
人脸识别(三):2017 Additive Margin Softmax for Face Verification
这个图纵坐标是函数值,横坐标是角度。可以看到,原始的余弦函数的取值范围是[-1, +1],而ψ(θ) 的曲线随着参数mλ 的取值变化。注意到,相同的角度值下,ψ(θ)的函数值比原始的余弦函数更小一些,从而导致分类任务更加困难。样本算出来的角度值必须超过裕量,才认为这个样本判决正确。这正是加入裕量的目的。

Additive Margin Softmax

主要的改进是Sphereface [2]的加裕量的方式。改成加性的裕量。改进后的余弦函数如下:
人脸识别(三):2017 Additive Margin Softmax for Face Verification
相当于原始余弦函数在y轴上的偏移,使得分类更加困难。相应的函数曲线见上一部分的分析。改进后的优点是更加容易收敛。这个可以从函数曲线图看出,Sphereface由于函数曲线向下偏移过大,导致收敛比较困难。

特征归一化

Wang et.al [2] 给出了特征归一化起作用的一种解释:归一化之后,范数小的特征算出来的梯度会更大;而范数小的特征一般对应的是质量较差的图片。因此,特征归一化起到类似于难例挖掘的作用。

总结

这波做loss的人脸识别文章,感觉已经做的很多了。人脸识别还可以做的方向我认为应该在引入新的数据类型上,从二维到三维。特别是加入深度信息,活体检测等方面也会更加容易做。

引用

[1] Wang F, Liu W, Liu H, et al. Additive Margin Softmax for Face Verification[J]. arXiv preprint arXiv:1801.05599, 2018.
[2] Liu W, Wen Y, Yu Z, et al. Sphereface: Deep hypersphere embedding for face recognition[C]//The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2017, 1.