1. Softmax

softmax改造:ArcFace
如果有n类,则权重w为n个向量组成的矩阵。
Θ\Theta是特征向量x与对应权重向量wiw_i之间的角度。在softmax中,只需要Θ1<Θ2\Theta _{1}<\Theta _{2}即可判定x属于第1类。

2. L-Softmax

softmax改造:ArcFace
首次提出angular margin的思想。对softmax进行改造,引入角度间隔系数m。m是一个大于1的数,需要在mΘ1<Θ2m*\Theta _{1}<\Theta _{2}的情况下,才判定x属于第1类,相比softmax的判别要求更加严格。

3. A-Softmax

softmax改造:ArcFace
与L-Softmax类似,不同的是对权重w L2正则化并把bias设定为0之后才引入角度间隔系数m。

4. AM-Softmax

softmax改造:ArcFace

对特征x和权重w L2正则化后,引入余弦间隔距离m。要求cosΘ1m>cosΘ2cos\Theta_{1} -m > cos\Theta_2才判定x属于第1类。由于标准化后的两个向量,它们的欧氏距离的平方与余弦距离成正比,因此,这里实际上就是要求归一化后的特征x与归一化后的权重wiw_i欧氏距离很近,即两个向量之间的夹角很小。AM-Softmax比A-Softmax的优势在于:A-Softmax倍角计算是要通过倍角公式,反向传播时不方便求导,而只减m反向传播时导数不用变化。

5. ArcFace

softmax改造:ArcFace

对特征x和权重w L2正则化,并引入角度间隔距离m。需要在Θ1+m<Θ2\Theta _{1}+m<\Theta _{2}的情况下,才判定x属于第1类,比单纯的softmax更加严格。
与AM-Softmax不同的是ArcFace引入角度距离,而非余弦距离。因为相比余弦距离,增加角度对分类的影响更加直接。
与A-Softmax有两点不同:
1.A-Softmax是乘以一个角度系数,而ArcFace是加上一个角度。
2.A-Softmax只对权重w 进行L2正则化,而ArcFace是对权重w和特征向量x都进行了正则化,再乘以一个缩放比例s。

6. 补充一个很关键的知识点:

标准化后的两个向量,它们的欧氏距离的平方与余弦距离成正比
softmax改造:ArcFace

7. xmind总结

softmax改造:ArcFace

8. ArcFace代码

9. 可视化结果

论文地址:
L-Softmax
A-Softmax
AM-Softmax
ArcFace
参考资料:
人脸识别中的常见softmax函数总结
Softmax、L-Softmax、A-Softmax的整理对比
人脸识别系列(十六):AMSoftmax
人脸识别:arcFace Loss详解

相关文章:

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