【人脸识别】L2_Softmax Loss详解

论文题目:《L2-constrained Softmax Loss for Discriminative Face Verification》
论文地址:https://arxiv.org/pdf/1703.09507.pdf

1. 简介

       CNN近年来取得了很大的成功,人脸识别也受益匪浅。人脸识别的一个基准包括一个序列网络和一个Softmax标准。在这篇论文中,作者分析了Softmax损失的一些劣势,然后提出一种基于约束条件的Softmax损失,即L2 Softmax损失。
       Softmax损失优化出来的特征不具有较高的类内相似度得分及较低的类间相似度得分。论文增加了特征描述子的L2约束,使得特征分布在具有固定半径的超球上。

2. Softmax为什么不适合做人脸验证任务

       softmax loss只是保证学习到的特征不用做任何matric learning的时候,能够使得人脸特征可分。但是softmax loss并没有保证positive pairs学到的特征足够近而negative pairs学到的特征足够远,因此不是很适合去做人脸验证任务。另外一点是,softmax loss是要最大化给定的mini-batch中所有样本的条件概率。但是,由于高质量的人脸图像的特征​范数较大,低质量人脸图像的特征​范数较小,如果直接让容易验证的样本的​范数比较大,让难以验证的样本的​范数较小,则可以得到最小化的softmax loss。因此,如果直接使用softmax loss只关注了mini-batch中高质量的人脸图像,而忽略了该mini-batch中较少的低质量的人脸图像。

       作者做了一个实验验证了Softmax损失训练,高质量具有较大的L2-norm的特征性能最好,如下图所示:

在这里插入图片描述
       如上图所示,低质量的图像对验证准确率最差,而高质量的图像对验证准确率最高,证明了作者上述观点。

3. L2-Softmax

L2_Softmax表达式如下:
在这里插入图片描述
上述公式解释如下:

● x_i 是规模为 M 的 mini-batch 内的一张输入图像
● y_i 是第 i 个目标
● f(x_i) 是最后的全连接层之前的 d 维特征描述量
● C 是类别的数量
● W 和 b 是网络中可训练的权重和偏差

       上面的第一个公式是普通的 softmax 损失公式,第二个公式是约束公式。α 是最有意思的一项:用作所有特征向量的一个范数约束。好在其仅为网络引入了单个缩放参数,所以不会影响整体的训练速度。
       为什么要为网络添加一个 L2 范数约束?你可以这样看:其工作是更多地关注“坏”样本(有更多光照变化、视角变化等)。然后,好特征和坏特征都会被固定在一个超球面上,而且由于 L2 范数,它们会得到相似的关注度。对于没有约束的环境而言,给所有样本平均化的关注是极其重要的。当它能很好地泛化到质量较差的样本上时,它就可被视为为 softmax 分类器降低了非常好的样本的相对重要性。如果这个过程在人脸验证问题中实现,那么这就能强化验证信号:通过迫使同一类别的图像在这个归一化特征空间中更接近彼此,不同类别的图像距离更远,这样正例对和负例对之间的边界将变得更大。可以简单理解为:由于​损失函数使得所有人脸图像的特征的​范数大小相同,所以softmax loss不会只偏重于对easy samples的学习,也会对diffcult samples进行学习;由于特征的​范数大小一致,所以所有的特征样本的特征都分布于一个固定半径的超球面上,此时最小化softmax loss等价于最大化positive pairs之间的余弦相似度,同时最小化negative pairs之间的余弦相似度。

在这里插入图片描述
       上图为在MNIST上使用不同损失的聚类结果,显示了分别使用softmax和L2-softmax训练LeNet的效果,输出特征为2维(正常输出肯定不止两维,为了可视化简化了),可以发现两种特征的区别:一是L2-softmax损失学到的特征类内角度方差变小了,二是softmax损失学到的特征具有更大的幅值,而特征norm对L2-softmax损失影响较小。因此可以说L2-softmax学到的特征拉近了同类特征,拉远了不同类特征。

在这里插入图片描述
       如上图所示,作者使用了两个层来建立这种约束:一个L2归一化层和一个缩放层。公式如下:

在这里插入图片描述
       公式分别对应于这两层所完成的工作(只是建模这个约束等式)。L2 归一化层将输入特征向量 x 归一化成单位向量 y。然后缩放层根据参数 α 将输入单元向量 y 按固定尺度缩放。该网络中只引入了一个缩放参数,这个参数可以训练得到,也可人工设定。

       训练时,需要将损失的梯度传过这个模块,应当根据 α(对于可训练的 α)使用链式法则计算缩放因子α的梯度,如下:

在这里插入图片描述
       尺度因子要么在训练中固定一个值,要么让网络学习。但是网络学习到的α比较大,L2-约束较为宽松。更好的方式是将α固定在较小的常量。但另一方面,非常小的α将导致训练无法收敛,因为小的α会导致超球的面积太小。论文提出了α的理论低值,假设类别数目C比特征维度小2倍,这样分布在球面上的每两类中心至少距离90°。假设分类器的权值Wi是指向类别中心的单位向量,正确分类特征的平均softmax概率为:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
       上图显示了不同类别数目C,及不同尺度因子α对概率得分的影响,从图中可以看出,为了得到p=0.9的概率,大的C需要较大的α,给定p,α的下边界为:
在这里插入图片描述

4. 网络结构:Face-ResNet

       使用Face-ResNet进行实验,该网络包含27个卷积层,2个全连接层,在FC层后增加L2-norm层及scale层,网络结构为:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Roaddd/article/details/114381255