论文:SphereFace: Deep Hypersphere Embedding for Face Recognition
首先,需要先科普一下在训练和测试人脸识别分类器的时候经常被提到的Open-set 和Close-set。Figure 1是一个直观的展示。
close-set,就是所有的测试集都在训练集中出现过。所以预测结果是图片的ID,如果想要测试两张图片是否是同一个,那么就看这两张图片的预测ID是否一样即可。
open-set,就是测试的图片并没有在训练集中出现过,那么每张测试图片的预测结果是特征向量,如果想要比较两张图片的人脸是否属于同一个人,需要测试图像特征向量的距离。
该论文主要是解决Open-set数据集上的人脸识别任务。理想的Open-set人脸识别学习到的特征应当在特定的度量空间中,满足同一类的最大类内距离小于不同类的最小类间距离。然而softmax loss仅仅能够使得特征可分,还不能够使得特征具有可判别性。尽管有一些方法通过结合softmax loss和 contrastive loss,center loss去提高特征的可判别性,但是contrastive loss和center loss需要精心地构建图像对和三元组,不仅耗时而且构建的训练对会对识别性能影响很大。因此,在这篇论文中,作者提出了angular softmax(A-Softmax)loss。
对于一个二分类的softmax的决策边界是,如果限制
,那么边界决策函数就就可以变形为
, 其中
是权重向量
和特征向量
之间的夹角,那么这个边界决策函数仅仅由
和
所决定,因此损失函数关注的是特征的角度可分性。在此基础上,作者又引进了一个整数变量m(m>=1),m控制着角度间隔,对类别1和类别2的边界决策函数变形为
和
。这就是二分类的A-Softmax loss。Table 1罗列了softmax Loss ,modified softmax loss和A-softmax loss 在二分类的情况下的边界决策函数的形式,Figure 2 则是效果展示。虽然是二分类形式,但是也可以一般化成多类别的分类。
上面以二分类的情况作为一个例子,下面就开始描述一般化的形式。
对于输入特征和它的标签
,softmax loss的一般化函数可表示如下
其中N表示训练样本的次数,卷及网络中,f通常是全连接层W的输出,所以,将f函数带入,可以将公式变换为如下:
然后,在每一次迭代中归一化权值并且将偏置 biases 设置为0,那么就可以得到 modified softmax-loss,公式如下所示:
虽然可以通过modified softmax loss学习特征,但是这些特征不一定可判别。为了进一步将强特征的可判别性,作者将角度距离加入到损失函数中,即A-Softmax loss,一般化的公式如下:
其中,的范围为
,为了消除该限制,并能够在CNN中最优,定义角度函数
扩展
的定义范围,这个函数在
区间内等价于
,因此A-softmax的公式可表示为:
其中,
。可以看出,当m=1时,A-softmax loss就变成modified softmax loss。当m增大时,角度距离也会增加,当m=1时,角度距离为0. 从决策函数角度解释A-softmax loss,A-softmax loss 对于不同的类别采用了不同的决策函数,每个决策函数比原始的更加严格,因而产生了角度距离。
总的来说,论文中的A-softmax loss并不是新的loss,只是在原始的softmax loss的基础上做了改进,加入整数m,产生了角度距离,结果表明这个角度距离可以使得特征具有可判别性,而且m越大,可判别性就越大。