回顾一下Angular Softmax ( A-softmax ) ,它是以乘法的方式合并angular margin(角度间隔)
从上式中的
![]()
可以看出,m乘以目标角
![]()
。所以这种类型的损失函数称为:
乘性Margin Softmax
本文讲述的AM-Softmax提出了一种更具解释性的方法:将angular margin(角度间隔)引入到softmax loss中,提出一个新的margin。这个margin是用
减去
![]()
,所以称之为:
加性Margin Softmax。它比
A-softmax 更简单(加法比乘法简单)和具有更好的性能。
在讲述AM-Softmax之前,有必要先讲一下Angular Softmax中的
![]()
代表什么,有什么用。
1. Angular Softmax中
的定义
original Softmax Loss公式:
其中
![]()
是最后一个完全连接层的输入(
![]()
表示第
![]()
个样本),
![]()
是最后一个完全连接层参数矩阵
![]()
的第
![]()
列。
![]()
也称为第
![]()
个样本的
target logit (目标逻辑)。
A-softmax loss公式:
作者提出了归一化权重向量
![]()
,并且将
target logit (目标逻辑)从
![]()
改成
其中
![]()
通常是一个分段函数,定义为
其中
![]()
通常是一个大于1的整数,而
![]()
是一个超参数,用于控制推动分类边界的难易程度。在训练过程中,将
![]()
从1000退火到一个较小的值,使每个类别的角度间隔变得越来越紧凑。
图1
![]()
用于
conventional Softmax、
Angular Softmax和
Hard Margin Softmax。
对于Angular Softmax,图中画了三个参数集的logit曲线。可以看到 Angular Softmax
![]()
介于
conventional Softmax和
Angular Softmax
![]()
之间,也就是说它大概相当于
![]()
。在
![]()
之间,可以观察到
Additive Margin Softmax
![]()
和
Angular Softmax
![]()
十分相似。
2. AM-Softmax
AM-Softmax在此基础上,进一步提出一个特殊的
与L-SoftMax和A-softmax(式子3)中定义的
![]()
相比,
AM-Softmax 中的
更简单和直观。
归一化是形成 angular margin(角度间隔) 的关键。如果没有归一化,margin
![]()
不一定可以形成
large
angular margin(大角度间隔) 。
将特征和权重归一化后的输入
![]()
, 所以在正向传播中,只需要计算
可以看到式子5非常简洁,不需要计算反向传播的梯度,因为
![]()
。与
A-softmax相比,它更容易实现。
为了对分离良好的样本产生更高的梯度,以进一步缩小类内方差,使用超参数s缩放余弦值,作者发现如果通过反向传播来学习缩放因子
![]()
,
![]()
不会增加而且网络收敛很慢。所以将
超参数s定为30(一个足够大的值),以加速和稳定优化。
那么AM-Softmax Loss 变成:
3. AM-Softmax的几何解释
图2 权向量“agent”与特征均值向量“center”之间的关系
conventional softmax的决策边界在
![]()
处,其中有
![]()
这样的关系。
AM-Softmax,类1的决策边界在
![]()
处,
![]()
,从一条决策边界变为2条决策边界
![]()
和
![]()
。
图中标记的距离并不代表实际距离,实际距离通过角度的余弦函数计算。图中使用角度作为距离,以获得更好的可视化效果。使用“center”这个词来表示在最后的内积层中对应类的权向量,图中的
![]()
、
![]()
。它们不一定是类中特征的均值向量。
4. 角度间隔与余弦间隔
A-softmax是用
![]()
乘以
![]()
,而
AM-Softmax是用
![]()
减去
![]()
,两者的最大不同之处:一个是
角度距离,一个是
余弦距离。
对于conventional softmax来说,决策边界的角度距离和余弦距离是等价的, 也就是:
当要试图推动决策边界的时候,角度距离和余弦距离就有所不同了,最终的决策边界是和余弦相关的。角度距离和余弦距离具有不同的密度,当角接近0或π时,余弦值更密集。根据这个性质可以推测,优化角度距离比优化余弦距离更有效果。
作者之所以选择了
![]()
而不是
![]()
,因为
![]()
,如果要优化
![]()
可能会涉及到
![]()
运算,计算成本高。考虑到计算成本,余弦距离更高效,因为它可以用较好的计算成本的实现相同的目标。
5. 特征归一化
作者认为,是否对特征进行归一化,取决于图像的质量。如图3,特征范数与图像质量高度相关,高质量的图片提取出来的特征范数大,低质量的图片提取出来的特征范数小。
图3
图4
考虑到反向传播
α 代表范数的大小
经过归一化后,与具有较大范数的特征相比,具有较小范数的特征将获得更大的梯度,如图5所示。
图5:w/ 蓝色曲线代表经过特征归一化后,特征范数和特征梯度范数之间的关系。w/o 橙色曲线代表没有特征归一化,特征范数和特征梯度范数之间的关系。对于特征归一化的softmax loss,作者将缩放因子s设置为 30,所以两条曲线的交点是30。
Softmax的目标是尽可能最大化正确分类的概率,所以它会优先拟合容易分类的高质量图片,忽略掉一些比较难分辨的低质量图片。通过反向传播,低质量图片由低范数变成较高的范数,网络将更多地关注低质量的人脸图像。所以说,特征归一化最适用于图像质量很低的任务。
6. 特征分布可视化
图6
作者给出了几个损失函数的特征分布可视化。球面上的每个点代表一个归一化特征。不同的颜色表示不同的类。
从图6可以观察到,AM-Softmax(s=10,m=0.2)模型与最好的SphereFace(m=1,λ=0.5)模型的性能相似。从AM-Softmax(s=10,m=0.5)模型可知,通过设置更大的m可以进一步缩小类内方差。与A-SoftMax相比,AM-SoftMax具有适当的缩放因子
![]()
,损失更容易收敛。可视化的3D特征很好地表明,
AM-SoftMax可以在不调整过多超参数的情况下,使得特征之间具有
large margin 。
7. 超参数m和特征归一化的影响
作者列出了这么一个表格:
从表中可以看出,损失函数中的主要超参数是margin
![]()
,
![]()
的值在0.25到0.5之间变化。从m=0.25到0.3性能显著提高,m=0.35到m=0.4时性能最佳。
此外,作者还提供了不进行特征归一化(即W/O FN)和缩放系数s的损失函数结果。通过对比
可以看到,特征归一化在Megaface等低质量图像上表现得更好,不使用特征归一化在LFW等高质量图像上表现得更好。
参考文章:
https://blog.csdn.net/Fire_Light_/article/details/79602310blog.csdn.net
https://blog.csdn.net/weixin_42546496/article/details/88193191#41__207blog.csdn.net