Shawn Yan作者Zhen Gao, Panda编辑

用于判别式人脸验证的L2-约束softmax损失

人脸识别任务中常用的 softmax 损失存在一些缺陷,为此,马里兰大学帕克分校的研究者提出了一种改进方法:L2-约束的 softmax 损失;并取得了优于标准 softmax 的表现。机器之心技术分析师对该研究进行了解读,本文为解读的中文版。

论文地址:https://arxiv.org/abs/1703.09507

英文解读:https://syncedreview.com/2017/06/21/l2-constrained-softmax-loss-for-discriminative-face-verification/

引言

CNN 近来取得了很大的成功,人脸识别也受益匪浅。人脸识别的一个基准包括一个序列网络和一个 softmax 标准。在这篇论文中,研究者分析了 softmax 损失的一些劣势,然后提出了一种基于约束条件的 softmax 损失,即 L2 softmax 损失。

softmax 损失存在的问题

softmax 损失已经成为 TensorFlow、Torch 和 Caffe 等很多数学工具的标准内置损失函数之一。该函数主要用在分类任务中,既有优点,也当然有缺点。

softmax 损失的优点包括:

  1. 有效地分离多个类别
  2. 相比于对比损失(contrastive loss)或三重损失(triplet loss),在批选择上没有限制
  3. 容易实现

而这篇论文主要关注的缺点则包括:

  1. 如果类别过多,那么在内存匹配上会出现问题(这是个常见问题)
  2. 由于其最大化条件概率,所以它很适合高质量图像(如下图上一行)。但是,它会忽略训练 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 分类器降低了非常好的样本的相对重要性。如果这个过程在人脸验证问题中实现,那么这就能强化验证信号——通过迫使同一类别的图像在这个归一化特征空间中更接近彼此,不同类别的图像距离更远,这样正例对和负例对之间的边界将变得更大。

上图给出了使用不同损失的聚类结果:(a)softmax 损失,(b)L2-softmax 损失。与图(a)相比,图(b)中的类别方差更小,且图(b)中的特征的幅度受到了限制。

如上图所示,研究者使用了两个层来建模这种约束:一个 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% 的最佳准确度。注意:

  1. 系统学习到的 α(40.7)依然优于纯 softmax(98.02%)。
  2. 如果 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.

理论
相关数据
范数技术

范数(norm),是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。半范数反而可以为非零的向量赋予零长度。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

推荐文章
暂无评论
暂无评论~