论文阅读笔记:UniFace: Unified Cross-Entropy Loss for Deep Face Recognition

论文阅读笔记:UniFace: Unified Cross-Entropy Loss for Deep Face Recognition

  • [1 背景](#1 背景)
  • [2 创新点](#2 创新点)
  • [3 方法](#3 方法)
    • [3.1 回顾softmax损失](#3.1 回顾softmax损失)
    • [3.2 统一交叉熵损失](#3.2 统一交叉熵损失)
    • [3.3 人脸验证中的UCE损失](#3.3 人脸验证中的UCE损失)
    • [3.4 进一步的优化](#3.4 进一步的优化)
      • [3.4.1 边际UCE损失](#3.4.1 边际UCE损失)
      • [3.4.2 平衡BCE损失](#3.4.2 平衡BCE损失)
  • [4 实验](#4 实验)
    • [4.1 消融实验](#4.1 消融实验)
    • [4.2 和SOTA方法对比](#4.2 和SOTA方法对比)

论文:UniFace_ICCV_2023_paper.pdf

代码:https://github.com/cvi-szu/uniface

1 背景

一个通用的人脸识别系统包含3个核心步骤:人脸检测、人脸特征提取和识别(包括一对一验证和一对其余识别)。因此,判别性的人脸特征学习对于人脸识别系统至关重要。具体来说,一个主体的面部特征应该接近属于同一身份的特征,而远离其他身份的特征,即来自正对的最小特征相似度理想情况下应该大于一个阈值 t t t ,来自负对的最大特征相似度应该小于这个阈值t。

基于深度学习的人脸识别方法根据其学习目标可以分为两类:

  • 样本到样本的距离

  • 样本到类的相似性

基于样本间距离的方法将人脸图像映射到一个高度紧凑的欧式特征空间,其中距离被用来度量人脸特征的相似性。然而,这类方法的训练是困难的,因为需要复杂的采样策略来构建有效的负对和正对/元组。

基于样本间相似度的方法通常采用softmax损失作为学习目标,将人脸识别作为多类别分类问题来处理。一些工作提出将softmax损失与额外精心设计的损失相结合,以增加类内相似性或降低类间相似性。这些方法引入了额外的超参数,需要对超参数进行精细的调整。其他工作(如L-softmax损失,SphereFace,AMsoftmax,CosFace 和 ArcFace等)通过引入类间边距对原始的softmax损失进行扩展,以减少类内距离,增大类间距离。然而,Softmax损失只是鼓励单个训练样本与其对应的正类代理之间的最大角度相似度,并没有考虑该正类代理与其他样本之间的相似性。换句话说,在softmax和边际softmax损失下,很难选择一个统一的阈值 t t t 来分离负样本对和正样本对,如图1所示。

为了解决这个问题,本文提出了一个统一交叉熵损失UCE,他明确的鼓励所有正样本到类的相似度都大于一个阈值 t = c o s θ t t=cos\theta t t=cosθt,而所有负样本到类的距离都小于这个阈值。作者进一步改进了UCE损失:

  • 引入了强制边际

  • 提出了两种可供选择的方式来平衡大量人脸身份的训练

作者将使用UCE损失训练的人脸检测模型命名为UniFace。

2 创新点

  • 在研究了softmax损失之后,作者发现它学习到的最小正样本到类的相似度实际上并不能保证大于它的最大负样本到类的相似度。为了解决这个问题,我们通过假设一个固定的阈值t来约束正负样本对的相似性,从而设计了UCE损失。

  • 本文是第一个将统一的 t t t 作为一个自动可学习的参数纳入深度人脸识别框架的工作。UCE损失鼓励所有正样本到类的相似度都大于负样本到类的相似度,这与实际人脸识别应用的期望非常匹配。

  • UCE损失单独使用效果很好,可以直接替代现有深度人脸识别模型(表1和表2)中的softmax损失。此外,作者还提出了UCE的两个扩展,即边际UCE和平衡UCE损失,以结合边际和平衡策略来提高UCE损失的性能。值得注意的是,边际UCE损失比softmax损失对超参数更加稳健(图3 ( a ) )。

3 方法

3.1 回顾softmax损失

假设 M M M 是在由 N N N 个主体组成的面部样本集 D D D 上训练的深度人脸模型,

其中, D i D_i Di 表示包含同一主体 i i i 的面部图像子集。对于任意样本 X ∈ D X∈D X∈D,令:

表示 X X X 的特征,其中 M M M 为特征向量的长度。然后,我们可以得到一个特征集合 F F F,

在使用softmax损失训练的人脸模型中,采用全连接(FC)分类器,权重矩阵 W W W 和偏置 b b b,根据 X X X 的特征 x x x 进行分类,其中:

在式(4)中, W i ∈ R M × 1 W_i∈R^{M×1} Wi∈RM×1 是主体 i i i 的类别代理。

为了方便,分别归一化 W W W 并省略 B B B:

对于所有的 x ∈ F x∈F x∈F,将特征归一化为 ∣ ∣ x ∣ ∣ = s ||x||=s ∣∣x∣∣=s。

随机抽取 N N N 个样本 { X ( i ) } i = 1 N ⊂ D \{X^{(i)}\}_{i=1}^N⊂D {X(i)}i=1N⊂D,其中 ∀ i , X ( i ) ∈ D i ∀i,X^{(i)}∈D_i ∀i,X(i)∈Di。那么,对于给定的样本 X ( i ) X^{(i)} X(i),典型的多类softmax损失为:

其中,

< x ( i ) , W j > <x^{(i)},W_j> <x(i),Wj> 为两个向量的内积。

我们称 c o s θ x , w ( i i ) = 1 s W i T x ( i ) cos \theta_{x,w}^{(ii)} = \frac{1}{s}W_i^Tx^{(i)} cosθx,w(ii)=s1WiTx(i) 为正样本类间相似度, c o s θ x , w ( i j ) = 1 s W j T x ( i ) cos \theta_{x,w}^{(ij)} = \frac{1}{s}W_j^Tx^{(i)} cosθx,w(ij)=s1WjTx(i) 为负样本类间相似度,从而得到样本类间相似度矩阵 S s a m − c l a S_{sam-cla} Ssam−cla:

为了正确分类 X ( i ) X(i) X(i),softmax损失鼓励比负样本到类的相似性 ( c o s θ x , w ( i j ) ) (cos \theta_{x,w}^{(ij)}) (cosθx,w(ij)) 更大的正样本到类的相似性 ( c o s θ x , w ( i i ) ) (cos \theta_{x,w}^{(ii)}) (cosθx,w(ii)) ,即

那么,存在 t i t_i ti 使得:

然而,softmax损失没有考虑 c o s θ x , w ( j i ) cos \theta_{x,w}^{(ji)} cosθx,w(ji) 和 c o s θ x , w ( i i ) cos \theta_{x,w}^{(ii)} cosθx,w(ii) 之间的关系。也就是说,可能存在一个负样本对 ( x ( j ) , W i ) (x^{(j)},W_i) (x(j),Wi) ,其相似度甚至大于正样本对 ( x ( i ) , W i ) (x^{(i)},W_i) (x(i),Wi),即可能存在一个样本 X ( j ) ∈ D j , j ≠ i X^{(j)}∈D_j,j≠i X(j)∈Dj,j=i,,其特征 x ( j ) x^{(j)} x(j) 满足:

我们预期来自正对的相似度大于某个阈值 t t t,来自负对的相似度小于 t t t。虽然在式(13)和(14)中,人脸图像 X ( i ) X^{(i)} X(i) 和 X ( j ) X^{(j)} X(j) 都被正确地归类到正确地主体中。我们注意到,与我们的预期相反,正样本对 ( x ( i ) , W i ) (x^{(i)},W_i) (x(i),Wi) 比负样本对 ( x ( j ) , W i ) (x^{(j)},W_i) (x(j),Wi) 具有更小的相似度。由于 t i < t j t_i < t_j ti<tj,可以很容易地得出结论,没有统一的相似度阈值 t = t i = t j t = t_i = t_j t=ti=tj 可以同时正确地将正样本对 ( x ( i ) , W i ) (x^{(i)},W_i) (x(i),Wi) 和 ( x ( j ) , W i ) (x^{(j)},W_i) (x(j),Wi) 与负样本对 ( x ( j ) , W i ) (x^{(j)},W_i) (x(j),Wi) 分开。

因此用式(11)中的样本到类的相似度矩阵 S s a m − c l a S_{sam-cla} Ssam−cla 来选择阈值是困难的,即softmax是鼓励对角元素 c o s θ x , w ( i i ) cos \theta_{x,w}^{(ii)} cosθx,w(ii) 在第 i i i 行占优,以实现样本 X ( i ) X^{(i)} X(i) 的良好分类,而忽略了鼓励 c o s θ x , w ( i i ) cos \theta_{x,w}^{(ii)} cosθx,w(ii) 在第 i i i 列占优,然而这在人脸识别中也很重要。

3.2 统一交叉熵损失

为了避免式(14)中的问题,并鼓励一个相似矩阵 S s a m − c l a S_{sam-cla} Ssam−cla 的行和列都是对角占优的。作者期望一个统一的阈值 t t t,使得:

如果我们将特征与其正类代理之间的最大夹角定义为 θ p o s \theta_{pos} θpos,将特征与其负类代理之间的最小夹角定义为 θ n e g \theta_{neg} θneg,即:

那么,当且仅当 θ p o s ≤ θ n e g \theta_{pos}≤\theta_{neg} θpos≤θneg,且统一阈值 t = c o s θ t t=cos\theta_t t=cosθt,存在一个阈值 t t t 使得任意样本都满足式(15),对任意 θ t \theta_t θt 有效,其中:

即图1中所有行中所有的"×"都要在所有的"o"左边。

如3.1中所述,softmax损失没有考虑统一阈值 t t t 的约束。作者首次将统一阈值 t t t 作为一个可自动学习的参数加入到损失函数中。提出的统一交叉熵UCE损失前提是存在一个统一阈值 t = c o s θ t t=cos\theta_t t=cosθt(即 θ p o s ≤ θ n e g \theta_{pos}≤\theta_{neg} θpos≤θneg)。从式(8)中的softmax开始推导:

根据式(16)-(18),可得:

不等式的详细推导见附录。

附录证明过程:

定义UCE损失 L u c e ( X ( i ) ) L_{uce}(X^{(i)}) Luce(X(i)) 为:

其中 b ˜ = s c o s θ t + l o g ( N − 1 ) \~b=scos\theta_t+log(N-1) b˜=scosθt+log(N−1) 是一个待学习的常数。

式(23)中第一项中的 e − s c o s θ x , w ( i i ) + b ˜ = e − s ( c o s θ x , w ( i i ) − c o s θ t − l o g ( N − 1 ) s ) e^{-scos\theta {x,w}^{(ii)}+\~b}=e^{-s(cos\theta{x,w}^{(ii)}-cos\theta_t-\frac{log(N-1)}{s})} e−scosθx,w(ii)+b˜=e−s(cosθx,w(ii)−cosθt−slog(N−1)) ,第二项中的 e s c o s θ x , w ( i j ) + b ˜ = e s ( c o s θ x , w ( i j ) − c o s θ t − l o g ( N − 1 ) s ) e^{scos\theta {x,w}^{(ij)}+\~b}=e^{s(cos\theta{x,w}^{(ij)}-cos\theta_t-\frac{log(N-1)}{s})} escosθx,w(ij)+b˜=es(cosθx,w(ij)−cosθt−slog(N−1)),缩放因子 s > 0 s>0 s>0,当模型训练收敛时,则会出现 c o s θ x , w ( i i ) − c o s θ t − l o g ( N − 1 ) s > 0 cos\theta_{x,w}^{(ii)}-cos\theta_t-\frac{log(N-1)}{s}>0 cosθx,w(ii)−cosθt−slog(N−1)>0 , c o s θ x , w ( i j ) − c o s θ t − l o g ( N − 1 ) s < 0 cos\theta_{x,w}^{(ij)}-cos\theta_t-\frac{log(N-1)}{s}<0 cosθx,w(ij)−cosθt−slog(N−1)<0,即 c o s θ x , w ( i j ) < c o s θ t + l o g ( N − 1 ) s < c o s θ x , w ( i i ) cos\theta_{x,w}^{(ij)}<cos\theta_t+\frac{log(N-1)}{s}<cos\theta_{x,w}^{(ii)} cosθx,w(ij)<cosθt+slog(N−1)<cosθx,w(ii) ,其中 l o g ( N − 1 ) s \frac{log(N-1)}{s} slog(N−1) 为常数可以忽略不计,所以训练目标满足式(15)。

UCE损失比softmax损失对正负样本到类特征之间的举例更有约束。当使用UCE损失代替softmax损失训练模型时,期望最终的样本特征更具有判别性。如图2所示,在提出的UCE损失划分的特征空间中, x ( 1 ) x^{(1)} x(1) 和 W 1 W_1 W1 之间的相似性比原始的softmax损失训练增加,而 x ( 2 ) x^{(2)} x(2) 和 W 1 W_1 W1 之间的相似性降低。

虽然UCE损失的最终公式(式(23))类似于二元交叉熵损失,但他们之间有几个关键区别。首先,UCE损失是从显式统一阈值 t t t 的目标设计的,用于约束正负样本对的相似性,而BCE损失及其变体没有这种显式约束。其次,从softmax损失中推导出UCE损失,并通过清晰的数学推导给出了统一阈值 t t t 与偏差 b ˜ = s c o s θ t + l o g ( N − 1 ) \~b=scos\theta_t+log(N-1) b˜=scosθt+log(N−1) 的关系,然后通过图4(c)的定性说明来评估 t t t 是否符合人脸验证的预期。最后,作者在一个大型的benchmark上系统的比较了UCE损失和BCE损失,其中作者比较了:

  1. 一个为不同类别分配各自偏置的标准BCE损失

  2. 一个直接删除了任何偏置的修改BCE损失,这意味着偏置 b = 0 b=0 b=0

实验结论表明,UCE损失比BCE损失的两个朴素变体表现更佳,见表1。

3.3 人脸验证中的UCE损失

在真实人脸验证系统中,对于任意两个人脸图像样本, X ( i ) ∈ D i , X ( j ) ∈ D j X^{(i)}∈D_i,X^{(j)}∈D_j X(i)∈Di,X(j)∈Dj,通过比较它们的特征相似度 g ( X ( i ) , X ( j ) ) g(X^{(i)},X^{(j)}) g(X(i),X(j)) 与置信度阈值 t ∗ t^* t∗,选择一个统一的阈值来验证他们是否来自同一主体,这个过程隐含了一个损失 L v L_v Lv:

其中 α \alpha α 是重加权参数。

那么在训练中,对于给定的 X ( i ) X^{(i)} X(i),它的损失为:

对于每一个样本,都会耗费大量的计算量,利用类代理 W i W_i Wi 代替了 F i F_i Fi 中的所有特征 x ( i ) x^{(i)} x(i),设计了一个合理的损失函数。对于所有的 i i i:

式(27)中,损失采用函数 R e L U ( x ) = m a x ( 0 , x ) ReLU(x)=max(0,x) ReLU(x)=max(0,x) 在 x = 0 x=0 x=0 处不可微,一个合理的替代可以是 softplus 函数:

当 β \beta β 趋于+∞时,softplus(x)趋于ReLU(x) 。

利用softplus函数,则 L v 3 ( X ( i ) ) L_{v3}(X^{(i)}) Lv3(X(i)) 可代换为:

当我们令 α = β = s \alpha=\beta=s α=β=s 时,

损失 L v 4 ( X ( i ) ) L_{v4}(X^{(i)}) Lv4(X(i)) 就是提出的UCE损失 L u c e ( X ( i ) ) L_{uce}(X^{(i)}) Luce(X(i)),满足 b ˜ ∗ = s t ∗ \~b^*=st^* b˜∗=st∗。因此,作者将UCE损失和人脸验证联系起来。

3.4 进一步的优化

3.4.1 边际UCE损失

先前的工作表明边际softmax损失比原始的性能更好。在这里通过增加一个余弦余量 m m m,将所提出的UCE损失扩展到边际UCE损失:

3.4.2 平衡BCE损失

L u c e L_{uce} Luce 和 L u c e − m L_{uce-m} Luce−m 只计算一个正样本对 ( x ( i ) , W i ) (x^{(i)},W_i) (x(i),Wi) 的相似度,但却有 N-1 个负样本对 ( x ( i ) , W j ) (x^{(i)},W_j) (x(i),Wj) ,这种不平衡会导致不理想的性能。本文引入两个参数来平衡正负样本对的数量:

其中 p j p_j pj 是负样本对 ( x ( i ) , W j ) (x^{(i)},W_j) (x(i),Wj) 从均匀分布中抽样得到的随机数, λ \lambda λ 和 r r r 分别是所有负样本对的重加权和抽样参数。不同的 λ \lambda λ 和 r r r 的影响如图3所示。

4 实验

4.1 消融实验

UCE损失中超参数的消融实验。

不同框架中使用UCE损失的提升。

normalized softmax损失,BCE损失和UCE损失的效果对比。

4.2 和SOTA方法对比


相关推荐
fmk102318 小时前
TailwindCSS 学习笔记
笔记·学习
摇滚侠18 小时前
Vue 项目实战《尚医通》,完成确定挂号业务,笔记46
java·开发语言·javascript·vue.js·笔记
摇滚侠18 小时前
Vue 项目实战《尚医通》,完成取消预约业务,笔记49
vue.js·笔记
Just right18 小时前
AndroidApp笔记环境配置
笔记
xinxingrs18 小时前
贪心算法、动态规划以及相关应用(python)
笔记·python·学习·算法·贪心算法·动态规划
四谎真好看19 小时前
Java 黑马程序员学习笔记(进阶篇28)
java·笔记·学习·学习笔记
Oll Correct19 小时前
Excel基础操作(二)
笔记·excel
hd51cc20 小时前
文档与视图 学习笔记
笔记·学习
chenzhou__1 天前
LinuxC语言并发程序笔记(第二十天)
linux·c语言·笔记·学习
北顾南栀倾寒1 天前
[杂学笔记]C++编译过程、静态链接库与动态链接库的区别、动态多态的实现机制、虚拟地址空间分布与C++内存分布、volatile的作用以及使用场景
笔记