人脸识别任务中常用的 softmax 损失存在一些缺陷,为此,马里兰大学帕克分校的研究者提出了一种改进方法:L2-约束的 softmax 损失;并取得了优于标准 softmax 的表现。机器之心技术分析师对该研究进行了解读,本文为解读的中文版。
论文地址:https://arxiv.org/abs/1703.09507
引言
CNN 近来取得了很大的成功,人脸识别也受益匪浅。人脸识别的一个基准包括一个序列网络和一个 softmax 标准。在这篇论文中,研究者分析了 softmax 损失的一些劣势,然后提出了一种基于约束条件的 softmax 损失,即 L2 softmax 损失。
softmax 损失存在的问题
softmax 损失已经成为 TensorFlow、Torch 和 Caffe 等很多数学工具的标准内置损失函数之一。该函数主要用在分类任务中,既有优点,也当然有缺点。
softmax 损失的优点包括:
- 有效地分离多个类别
- 相比于对比损失(contrastive loss)或三重损失(triplet loss),在批选择上没有限制
- 容易实现
而这篇论文主要关注的缺点则包括:
- 如果类别过多,那么在内存匹配上会出现问题(这是个常见问题)
- 由于其最大化条件概率,所以它很适合高质量图像(如下图上一行)。但是,它会忽略训练 minibatch 中的罕见困难图像(如下图下一行).
上面的第一个缺点是很棘手的,除非使用采样的 softmax 来解决。但对于第二个缺点,研究者提出了一种有界约束来降低其负面影响,并且导致更加关注相对困难的样本。他们将其称为 L2-softmax 约束,而且他们使用了一个定制的 L2 归一化层和一个缩放层(scaling layer)来建模这种约束。我们将在下一节讨论。
L2-softmax 损失
因为研究者并不是想提出中心损失(center loss [1])那样的辅助损失,所以他们直接提出了一个单一的顺序网络——“一损失系统”,这意味着 L2-softmax 损失可直接替代标准的 softmax 损失,如下式所示:
这就是 L2-softmax 损失的整体目标,其中:
- x_i 是规模为 M 的 mini-batch 内的一张输入图像
- y_i 是第 i 个目标
- f(x_i) 是最后的全连接层之前的 d 维特征描述量
- C 是类别的数量
- W 和 b 是网络中可训练的权重和偏差
上面的第一个公式是普通的 softmax 损失公式,第二个公式是约束公式。α 是最有意思的一项:用作所有特征向量的一个范数约束。好在其仅为网络引入了单个缩放参数,所以不会影响整体的训练速度。
为什么要为网络添加一个 L2 范数约束?你可以这样看:其工作是更多地关注“坏”样本(有更多光照变化、视角变化等)。然后,好特征和坏特征都会被固定在一个超球面上,而且由于 L2 范数,它们会得到相似的关注度。对于没有约束的环境而言,给所有样本平均化的关注是极其重要的。当它能很好地泛化到质量较差的样本上时,它就可被视为为 softmax 分类器降低了非常好的样本的相对重要性。如果这个过程在人脸验证问题中实现,那么这就能强化验证信号——通过迫使同一类别的图像在这个归一化特征空间中更接近彼此,不同类别的图像距离更远,这样正例对和负例对之间的边界将变得更大。
如上图所示,研究者使用了两个层来建模这种约束:一个 L2 归一化层和一个缩放层。基本而言,下面的约束等式
就等于
其分别对应于这两层所完成的工作(只是建模这个约束等式)。L2 归一化层将输入特征向量 x 归一化成单位向量 y。然后缩放层根据参数 α 将输入单元向量 y 按固定尺度缩放。该网络中只引入了一个缩放参数,这个参数可以训练得到,也可人工设定。
对于梯度,应当根据 α(对于可训练的 α)计算梯度,以及根据输入 x 计算梯度。
上面两个模块都是完全可微分的,而且可以被整合进一个端到端的训练网络中。之后的等式是考虑了 α 和输入特征向量 x 的梯度。
实验和结果
其训练使用了 L2-softmax 损失,并且基于两个不同的数据集。一个数据集被称为 MS-small,包含 50 万张人脸图像,分为 13403 个类别。另一个数据集被称为 MS-large,包含 370 万张人脸图像,分为 58207 个类别。研究者在 L2-softmax 损失和标准 softmax 损失之间做了大量比较试验,还在 IJB-A、LFW 和 YTF 这三个流行的人脸验证数据集上进行了评估。结果 L2-softmax 损失的表现优于标准的 softmax 损失。
在 IJB-A 上的结果
IJB-A(IARPA Janus Benchmark A)数据集包含 5399 张静态图像和 20414 个视频帧,包含不同视角、分辨率和光照变化的极端环境。
从上表可以看到,不管 α 是可训练参数还是人工固定的参数,基于 L2 约束 softmax 的损失总是优于 softmax 损失,尤其是 FAR 较小时。举个例子,如果我们看 TAR@FAR = 0.0001 这一列(即表格中第一列数据),可以看到 L2-softmax 显著优于 softmax,这意味着对于某些极其困难的样本,L2-softmax 确实能关注到它们,这样该系统就能从这些困难样本中学习了。因此,给定不同的 FAR,L2-softmax 损失的 TAR 波动小于 softmax 损失。
在 LFW 上的结果
LFW(Labeled-face in the wild)数据集包含 13233 张从网上收集的正面人脸图像,来自 5749 个不同身份。
如上图所示,对于不同的 α,当其大于一个阈值(比如 8)时,L2-softmax(红线)损失的验证准确度总是优于 softmax 损失(绿线);而当使用固定的 α=16 时,能得到 98.82% 的最佳准确度。注意:
- 系统学习到的 α(40.7)依然优于纯 softmax(98.02%)。
- 如果 L2 约束过于严格,例如将 α 固定为 1 或 4,我们看到准确度会显著降低。原因是具有小半径(α)的超球面整体而言在来自同样类别的嵌入特征上只有有限的表面积,而那些来自不同类别的嵌入特征又相隔很远。因此该系统的区分能力将不及“再 soft 一点”的约束。
在 YTF 上的结果
YTF(YouTube Face in the Video)包含来自 1595 个不同的人的 3425 段视频,平均长度为每段视频 181.3 帧。其评估标准设置与 LFW 评估一样。
这里,L2-softmax 在 YTF 数据集评估上的结果为 95.54%,优于 softmax 的 93.82%;同样,这是由于 L2-softmax 更为关注视频内更困难的帧。
分析师简评
在这篇论文中,研究者为判别式特征学习在标准 softmax 损失上添加了一个有效的 L2 约束。其核心思想是通过在一个固定半径的超球面上强制使用特征,使得大幅度特征的相对重要性变得更小,小幅度特征则变得更大,从而让系统有可能在所有样本上更平衡地分配关注,进而让罕见困难样本有“更大权重”。这种技巧所带来的整体效果是极大提升系统在极端无约束环境中的识别性能。仍然还有待改进的一点是内存拟合问题。因为在这篇论文中,当在处理 MS-large 数据集时,他们使用了一个带有 58207 个对象的 softmax,这确实需要考虑内存拟合问题。在我个人看来,我还希望能尝试某种随机方法来学习采样的 softmax 分类器。
参考文献
[1] Y. Wen, K. Zhang, Z. Li, and Y. Qiao. A discrimina- tive feature learning approach for deep face recognition. In European Conference on Computer Vision, pages 499–515. Springer, 2016.