关于人脸的种种失落
为了更好地学习特征,本文提出识别和验证都是训练目标,即采用两个损失的组合,使学习到的特征不仅可以用于分类,还可以用于判断是否是同一个人。因此:
丢失标识,用来判断属于哪一类,用softmax计算概率:
作者也用余弦相似度,如下:
训练算法如下:
显然,算法需要一次选择两个样本。
本文提出了影响神经网络效果的三个重要因素:稀疏性、选择性和鲁棒性。
作者提出DeepID2+,如下图:
本文对常用的欧氏距离提出了质疑。在常见的分类任务中,我们都会对特征进行处理,最后通过一个fc层得到每个类别的分数。分数最高的班级就是我们预测的那个。假设一个二元分类任务,分类的边界是:。其中包括分类层的参数。
如果规范化长度是1,它将被设置为。边界变成:,其中是和之间的角度。如下图所示:
本文作者对分类层(FC)的特征和参数进行了归一化处理,但发现经过多轮训练后,网络仍不收敛。因此,作者探讨了这一现象的原因,并提出了一种训练该网络的方法。
作者回答了以下问题:
回答:
在本文中,作者对特征和参数使用了以下归一化方法:
梯度如下:
作者研究了正则化度量学习,如对比损失和三元组损失。正则化后,内积可视为欧几里德距离,如下:
// TODO
这种损失有一些缺点,就是对边界内的负样本没有影响。如下图所示:
阴影中的红点是没有受到损失影响的点。
L-softmax设计了新的分类层来提高特征的表达性能。如下图所示:
在本文中,作者使用了神经网络(Inception,ResNet等。)作为特征提取器,并训练具有三元组损失的输出特征。这个结构不需要分类层,模型会很小。
三重损失:
ArcFace的损失如下:
还有很多关于人脸和度量学的文章没有仔细看过,甚至连这些介绍的文章都没有完全看懂。为了学习大规模人脸识别中判别式的特征,需要在很多地方做文章。甚至更有效的损耗,如果参数选择不好,很可能效果还不如普通fc。