博士的最后一年,我一直在尝试修改我的 AM Softmax[1] 上的一个重要缺陷:这个损失函数存在两个超参数:s和m,在 AM Softmax 论文中,这两个超参数是人工指定的,我们需要大量时间来调整这两个参数,给众多调参狗带来了不小的困扰。
然而回头想想,对于分类问题来说,损失函数 Softmax Loss 中并不存在任何参数,所以我一直觉得对于度量学习问题,也一定存在一种方法可以做到无参化。我对此做了很长时间的研究,虽然我觉得以目前的进展并不足以完成一篇论文,但由于我已经不再搞人脸识别了,所以还是记录下来,希望有人能接着我的思路将研究进行下去。
第一种思路是基于度量学习本身的要求,即“最小的类间距离大于最大的类内距离”。对这个思路的探索在SphereFace[2] 中已经给出了推导,在第5页的 Property 3 中,作者通过“最小的类间距离大于最大的类内距离”推导出了
“最小的类间距离大于最大的类内距离”在图上即为“
这种思路我觉得还是有可以改进的地方:Property 3 对于最大类内距离的定义有点过强了,在高维空间中,对于P1来说,应该不存在一个正好在另外一边对称的点P3,也就是说实际的最大类内距离应该比我们推导中使用的要小得多。但如何对最大类内距离下一个新的定义实在是有点困难,我暂时还没有思路。
第二条路就跟自适应梯度下降的AdaGrad、Adam等方法比较像了,是根据一些统计量来设置超参数。目前我最大的进展也是来自于这个思路。
对于一个二分类问题,损失函数如下(NormFace,W和f均做了归一化):
我们可以轻易地得到特征
对于多分类问题,我们需要一点小技巧才能推导出隐式间隔。在第一篇文章中我们介绍了一个叫LogSumExp的函数,这里我们使用它的一个带s的变种对非目标分数的全体进行表示:
有了这个函数,多类的Softmax就可以转化为:
从形式上来看,多类的Softmax形式变成了类似二分类的Softmax形式,我们也可以从这个公式中轻易地得到多分类下的隐式间隔:
这个隐式间隔也代表了Softmax损失函数将
下面就是非常tricky的实验环节了。注意到对于每个样本
最终经过一系列的尝试,发现用全局统计的方式来计算隐式间隔效果还不错,一个使用AM Softmax默认参数训练的模型上的统计结果如下:
LSE函数的分布是一个方差非常小的类高斯分布,而目标分数是一个偏向右边的长尾分布。对于高斯分布我们就直接统计其均值就好了,非常方便;而对于目标分数而言,其均值并不能很好的代表这个分布,在多次尝试之后,我使用了众数(Mode)作为目标分布的统计量:
而另一个超参数s的设置相比之下就非常简单了,在我的NormFace[3]中,s是作为网络参数通过BP来进行优化的,但在AM Softmax中,由于设置了一个定死的m,在网络优化的初期s会不断下降至0,因此我将s也定死了。但当我们动态地使用隐式间隔来更新m值后,优化初期m值=0,此时模型退化为NormFace,s就又可以作为网络参数来训练了。
在训练过程中,由于对于
而最终的结果与手工设置的结果也比较接近,CASIA-Webface上训结果大概一样,VGGFace2上训能稍微高零点几个点,其他数据集的实验之前在实验室没条件进行,有愿意帮忙的可以试一下。代码一年前就已经开源了:https://github.com/happynear/AMSoftmax/tree/master/prototxt/auto。这个方法当时也写了一篇英文文章,详情参见[4]的第4章,其实跟[1]相比只是加了一章内容而已,但后来觉得这两个统计量拼凑的痕迹实在太明显,故事讲起来不怎么好听,就又拿原版覆盖回去了。
[1] Wang F, Cheng J, Liu W, et al. Additive margin softmax for face verification[J]. IEEE Signal Processing Letters, 2018, 25(7): 926-930.
[2] Liu W, Wen Y, Yu Z, et al. Sphereface: Deep hypersphere embedding for face recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 212-220.
[3] Wang F, Xiang X, Cheng J, et al. Normface: l 2 hypersphere embedding for face verification[C]//Proceedings of the 25th ACM international conference on Multimedia. ACM, 2017: 1041-1049.
[4] https://arxiv.org/pdf/1801.05599v3.pdf