Additive Margin Softmax for Face Verification

摘要

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

引言

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

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

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

以前的softmax介绍

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

LS==1ni=1nlog(eWTyificj=1eWTjfi)1ni=1nlog(e||Wyi||||fi||cos(θyi)cj=1e||Wj||||fi||cos(θj)) 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中权重向量被归一化(即 ||Wi|| | | W i | | 置为1,之所以如此是设定每个目标的人脸样本数量不应该影响到训练结果),并且将评定目标函数通过一般形式表示(即将 ||fi||cos(θyi) | | f i | | c o s ( θ y i ) 变为 ||fi||ψ(θyi) | | f i | | ψ ( θ y i )
LAS=1ni=1nloge||fi||ψ(θyi)e||fi||ψ(θyi)+cj=1,jyie||fi||cos(θj)ψ(θ)=(1)kcos(mθ)2k+λcosθ1+λ,θ[kπm,(k+1)πm] 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 λ = 5 , m = 4 时,其效果接近当只有m=1.5的情况(即图中紫线在绿线和红线之间,所以认为相当于0.35~2的中间值1.5)
A-softmax性能
  

AM-softmax介绍

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

ψ(θ)=cosθmx=cosθyi=WTyifi||Wyi||||fi||Ψ(x)=xm ψ ( θ ) = 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) Ψ ( x ) 进行前向传播,该函数的导数为1,因此不需要反向传播,更适合用于shpereface的比较中。
  因此作者使用余弦距离来比较人脸特征,通过应用特征归一化、权重归一化建立余弦层,然后添加一个超参数s来调节余弦值,损失函数为:
LAMS=1ni=1nloges(cosθyim)es(cosθyim)+cj=1,jyescosθjLAMS=1ni=1nloges(WTyifim)es(WTyifim)+cj=1,jyiesWTjfi 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开始而不需要调节多余的超参数,很适合一般开发人员。
  作者还对角度和余弦值的计算差异,一个是乘法一个是加法,不同的方法决策会有不同,但因为 cosθ1=cosθ2θ1=θ2 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

  作者最近似乎对之前为了减少推导难度使用的 cosθm c o s θ − m 等形式不太满意,还是认为 cosθ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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值