摘要

  Additive Margin Softmax(AM-Softmax)是一个结构简单、几何可解释的目标函数,可用于深度人脸验证。该函数和特征归一化相结合,取得了很好的效果。
  

引言

  对度量学习的损失函数进行总结:

  • 作者认为对比损失函数、三元组损失函数对样本挖掘策略非常敏感,需要耗费大量资源在策略设计上,因此现在的研究更多还是在设计更好的分类损失函数上;
  • 而对于使用广泛的softmax loss存在能实现较好的类间差异,但不能缩小类内距离,这也是很多新的损失函数的改善方向。如增加一个正则项实现聚类、添加尺度函数来增加样本梯度、添加角度上的margin实现各类权重向量的聚集;

   本文的特点就是通过cosθm实现additive margin Softmax。
Additive Margin Softmax for Face Verification
  

以前的softmax介绍

  对以前softmax和A-softmax loss的回顾,首先是softmax:

LS=1ni=1nlog(eWyiTfij=1ceWjTfi)=1ni=1nlog(e||Wyi||||fi||cos(θyi)j=1ce||Wj||||fi||cos(θj))

  A-softmax loss中权重向量被归一化(即||Wi||置为1,之所以如此是设定每个目标的人脸样本数量不应该影响到训练结果),并且将评定目标函数通过一般形式表示(即将||fi||cos(θyi)变为||fi||ψ(θyi)
LAS=1ni=1nloge||fi||ψ(θyi)e||fi||ψ(θyi)+j=1,jyice||fi||cos(θj)ψ(θ)=(1)kcos(mθ)2k+λcosθ1+λ,θ[kπm,(k+1)πm]

  其中m为一个大于1的整数,λ是一个控制分类边界扩展难度的超参数,其在训练中由1000退火到一个很小的数来不断缩减每一类的角度空间(类内差异),如图所示当λ=5,m=4时,其效果接近当只有m=1.5的情况(即图中紫线在绿线和红线之间,所以认为相当于0.35~2的中间值1.5)
Additive Margin Softmax for Face Verification
  

AM-softmax介绍

  作者本文的核心就是在A-softmax上,参考FaceNet在Triplet中对欧式距离加的Margin,在角度空间添加Margin,特别是特征归一化使||x||=1,使公式更简洁直观:

ψ(θ)=cosθmx=cosθyi=WyiTfi||Wyi||||fi||Ψ(x)=xm

  上式是一个单调递减的函数,且比L-Softmax/A-Softmax所用的 ψ(θ)在形式和计算时更为简单。特别是对特征和权重向量规范化后可使用Ψ(x)进行前向传播,该函数的导数为1,因此不需要反向传播,更适合用于shpereface的比较中。
  因此作者使用余弦距离来比较人脸特征,通过应用特征归一化、权重归一化建立余弦层,然后添加一个超参数s来调节余弦值,损失函数为:
LAMS=1ni=1nloges(cosθyim)es(cosθyim)+j=1,jycescosθjLAMS=1ni=1nloges(WyiTfim)es(WyiTfim)+j=1,jyicesWjTfi

  如果特征和权重向量不被归一化,那么通过反向传播学习s参数会发现网络的收敛会很困难,也进一步说明了特征和权重向量归一化的重要性。实验中s被默认为30。
  作者还发现由于使用margin方案,m的调节可以从0开始而不需要调节多余的超参数,很适合一般开发人员。
  作者还对角度和余弦值的计算差异,一个是乘法一个是加法,不同的方法决策会有不同,但因为cosθ1=cosθ2θ1=θ2,所以应该对余弦值进行操作问题不大。作者之所以没有对角度进行处理是因为两个相似点分别密度不同(越靠近权重向量余弦值密度越大),导致角度优化会消耗大量算力成本。
  关于特征归一化的问题,作者认为反向传播时(根据导数性质),小范数(图像质量差)会比大范数(图像质量好)取得更大的梯度,使模型在训练中更关注图像质量差的图像。因此特征归一化会提高低质量图像识别任务。但作者也注意到feature norm特别小的时候有梯度爆炸的风险,但这似乎很难碰到,具体如何处理将是后期研究。
Additive Margin Softmax for Face Verification
  

实验效果

Additive Margin Softmax for Face Verification
  重点是在不调整过多的超参数情况下取得了与sphereface相当甚至更好的效果。训练是采用MTCNN检测的公开数据集人脸作为输入(resize到112*96,然后-128再/128),通过镜像扩充数据,通过一个修改后的ResNet训练,5e-4的衰减、256的batch、学习率0.1、当达到16K、24K、28K时对学习率除了10,总迭代次数为30K。测试时将正面和镜面同时提特征并合并到一起作为人脸图像,通过余弦相识度来测量。损失函数中将超参数s设置为30,m从0.25到0.5,最后效果是在0.35~0.4。
  对于特征归一化,图像质量较差的MegaFace上归一化后效果更好,图像质量好的LFW上是原始特征更好。
  

One more thing

  作者最近似乎对之前为了减少推导难度使用的cosθm等形式不太满意,还是认为cosθm更有研究价值。
Additive Margin Softmax for Face Verification
  

参考资料

  论文:https://arxiv.org/abs/1801.05599
  代码:https://github.com/happynear/AMSoftmax
  参考博客:http://blog.csdn.net/shaoxiaohu1/article/details/79139039
  知乎回答:https://www.zhihu.com/question/67589242/answer/265483971
  关于当前人脸研究的知乎总结:https://zhuanlan.zhihu.com/p/33288325

相关文章:

  • 2021-07-15
  • 2021-09-09
  • 2021-10-01
  • 2021-06-16
  • 2021-11-21
  • 2022-12-23
  • 2021-06-24
  • 2021-04-12
猜你喜欢
  • 2021-08-15
  • 2021-07-18
  • 2021-10-23
  • 2021-09-06
  • 2022-12-23
  • 2021-08-06
  • 2021-12-01
相关资源
相似解决方案