Additive Margin Softmax for Face Verification

摘要

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

引言

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

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

   本文的特点就是通过 c o s θ m 实现additive margin Softmax。
AM-softmax直观解释
  

以前的softmax介绍

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

L S = 1 n i = 1 n log ( e W y i T f i j = 1 c e W j T f i ) = 1 n i = 1 n log ( e | | W y i | | | | f i | | c o s ( θ y i ) j = 1 c e | | W j | | | | f i | | c o s ( θ j ) )

  A-softmax loss中权重向量被归一化(即 | | W i | | 置为1,之所以如此是设定每个目标的人脸样本数量不应该影响到训练结果),并且将评定目标函数通过一般形式表示(即将 | | f i | | c o s ( θ y i ) 变为 | | f i | | ψ ( θ y i )
L A S = 1 n i = 1 n log e | | f i | | ψ ( θ y i ) e | | f i | | ψ ( θ y i ) + j = 1 , j y i c e | | f i | | c o s ( θ j ) ψ ( θ ) = ( 1 ) k c o s ( m θ ) 2 k + λ c o s θ 1 + λ , θ [ k π m , ( k + 1 ) π m ]

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

AM-softmax介绍

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

ψ ( θ ) = c o s θ m x = c o s θ y i = W y i T f i | | W y i | | | | f i | | Ψ ( x ) = x m

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

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

实验效果

多种softmax比较
  重点是在不调整过多的超参数情况下取得了与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

  作者最近似乎对之前为了减少推导难度使用的 c o s θ m 等形式不太满意,还是认为 c o s θ m 更有研究价值。
知乎上作者的回答
  

参考资料

  论文: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

猜你喜欢

转载自blog.csdn.net/yangjf91/article/details/79228265