关于人脸的种种失落

人脸识别本身是一个非常复杂的系统,从人脸检测、定位、提取到识别,有很多内容需要仔细研究。单从人脸识别的角度来说,我们可以简单的把目标暂时定为学习一个好的针对人脸的特征表示。什么是好功能?简单来说就是同一个人的五官相似,不同人的五官相差很远。

为了更好地学习特征,本文提出识别和验证都是训练目标,即采用两个损失的组合,使学习到的特征不仅可以用于分类,还可以用于判断是否是同一个人。因此:

丢失标识,用来判断属于哪一类,用softmax计算概率:

作者也用余弦相似度,如下:

训练算法如下:

显然,算法需要一次选择两个样本。

本文提出了影响神经网络效果的三个重要因素:稀疏性、选择性和鲁棒性。

作者提出DeepID2+,如下图:

本文对常用的欧氏距离提出了质疑。在常见的分类任务中,我们都会对特征进行处理,最后通过一个fc层得到每个类别的分数。分数最高的班级就是我们预测的那个。假设一个二元分类任务,分类的边界是:。其中包括分类层的参数。

如果规范化长度是1,它将被设置为。边界变成:,其中是和之间的角度。如下图所示:

本文作者对分类层(FC)的特征和参数进行了归一化处理,但发现经过多轮训练后,网络仍不收敛。因此,作者探讨了这一现象的原因,并提出了一种训练该网络的方法。

作者回答了以下问题:

回答:

在本文中,作者对特征和参数使用了以下归一化方法:

梯度如下:

作者研究了正则化度量学习,如对比损失和三元组损失。正则化后,内积可视为欧几里德距离,如下:

// TODO

这种损失有一些缺点,就是对边界内的负样本没有影响。如下图所示:

阴影中的红点是没有受到损失影响的点。

L-softmax设计了新的分类层来提高特征的表达性能。如下图所示:

在本文中,作者使用了神经网络(Inception,ResNet等。)作为特征提取器,并训练具有三元组损失的输出特征。这个结构不需要分类层,模型会很小。

三重损失:

ArcFace的损失如下:

还有很多关于人脸和度量学的文章没有仔细看过,甚至连这些介绍的文章都没有完全看懂。为了学习大规模人脸识别中判别式的特征,需要在很多地方做文章。甚至更有效的损耗,如果参数选择不好,很可能效果还不如普通fc。