AM-LFS: AutoML for Loss Function Search(ICCV2019)
论文链接:https://arxiv.org/abs/1905.07375v2
项目链接:https://github.com/GuHongyang/AM-LFS-PyTorch
Abstract
设计有效的损失函数在视觉分析中起着重要的作用。大多数现有的损失函数设计依赖于手工设计的启发式,这需要领域专家探索大的设计空间,这通常是次优的,而且很耗时。在本文中,我们提出了一种用于损失函数搜索(AM-LFS)的自动学习方法,它利用强化在训练过程中搜索损失函数。该工作的关键贡献在于设计了搜索空间,通过将一组现有的流行损失函数包含在一个统一的公式中,保证了在不同视觉任务上的泛化和可移植性。我们还提出了一个有效的优化框架,可以在训练过程中动态优化损失函数的分布参数。在四个基准数据集上的大量实验结果表明,在没有任何技巧的情况下,我们的方法在各种计算机视觉任务中优于现有的手工制作的损失函数。
1. Introduction
近年来,卷积神经网络由于其学习判别特征的高容量,大大提高了各种视觉分析任务的性能,如图像分类[16,33,10]、人脸识别[22,37,5]、人物再识别[24,38,34,6]和目标检测[8,28]。除了从更深的网络中开发特征以获得更好的性能外,在最近的工作中,更好的损失函数也被证明对提高计算机视觉框架的性能是有效的[22,20]。
传统的基于cnn的视觉框架通常对高级特征采用广泛使用的softmax损失。L-softmax[23]是softmax loss的一种变体,它在每个类中增加了乘法角,以提高分类和验证任务中的特征辨别能力。[22] 通过将 L-softmax [23] 应用于具有权重归一化的人脸识别任务来引入 A-softmax。[39,37]将角边移至余弦空间,克服了[22]的优化难点,实现了最先进的性能。[5]通过加入加性角边缘,可以获得更多判别深度特征,用于人脸识别。除了上述基于边缘的softmax损失函数外,焦点损失[20]是softmax损失的另一种变体,它采用重加权方案来解决目标检测中的数据不平衡问题。虽然这些方法比传统的softmax损失方法提高了性能,但它们仍然存在一些局限性:
(1) 大多数现有方法依赖于手工制作的启发式,需要领域专家付出巨大的努力来探索大的设计空间,这通常是次优的和耗时的。
(2) 这些方法通常是特定于任务的,在应用于其他视觉任务时可能缺乏可移植性。通过利用AutoML方法在一个设计良好的损失函数搜索空间中进行探索,可以提出一个通用的解决方案,以进一步提高性能。
在本文中,我们提出了从超参数优化角度出发用于损失函数搜索的AutoML(AM-LFS)方法。在分析现有对损失函数的修改的基础上,我们设计了一个新的有效的搜索空间,如图1所示,并将损失函数的超参数表示为采样的参数化概率分布。所提出的搜索空间包含了一系列流行的损失设计,其采样的候选损失函数可以调整不同难度水平的样例梯度,并平衡训练过程中类内距离和类间距离的重要性。我们进一步提出了一个双层框架,使参数化分布与网络参数同步优化。在这种双层设置中,内部目标是采样损失w.r.t网络参数的最小化,而外部目标是奖励(例如精度或mAP) w.r.t损失函数分布的最大化。在AM-LFS训练完成后,可以直接部署网络参数进行评估,从而摆脱大量的重新训练步骤。此外,由于我们的方法是基于损失层而不修改特定任务的网络架构,因此它可以很容易地应用于现成的现代分类和验证框架。
我们将这项工作的贡献总结如下:
(1) 在现有损失函数设计的基础上进行分析,提出了一种新的有效的搜索空间,保证了在不同视觉任务上的泛化和可转移性。
(2) 提出了一种能够动态优化损失函数采样分布的高效优化框架。
(3) 该方法在CIFAR-10、MegaFace、Market-1501和DukeMTMC-reID等流行分类、人脸和行人重识别数据库上的性能得到了提升。
2. Related Work
2.1. 损失函数
损失函数在各种计算机视觉任务的深度特征学习中起着重要的作用。Softmax损失是基于cnn的视觉框架中广泛使用的一种损失。A large margin Softmax (L-Softmax)[23]通过对每个身份增加乘法角约束来修正Softmax损失,以提高分类和验证任务中的特征辨别能力。SphereFace[22]将L-Softmax应用于权重归一化的深度人脸识别。CosineFace[39,37]和ArcFace[5]分别通过加入余弦边缘和加性角边缘,可以在具有更多判别深度特征的MegaFace上实现最先进的性能。SphereReID[6]采用sphere softmax,端到端训练模型,在具有挑战性的人物reid数据集上获得最先进的结果。对于目标检测,focal loss [20]和梯度协调检测器[17]采用重加权方案来解决类不平衡问题。然而,有噪声的标签可能会导致梯度的误导,而梯度重加权方案可能会放大梯度,从而导致训练失败。
2.2. AutoML
AutoML被提出作为一种基于人工智能的解决方案,通过提供更快的解决方案创建和优于手工设计的模型来解决具有挑战性的任务。近年来,自动搜索神经网络架构(NAS)的研究极大地提高了神经网络的性能。NAS利用强化学习[48,47,46]和遗传算法[27,42,31]来搜索性能优于许多人工设计架构的可转移网络块。然而,上述所有方法在搜索过程中都需要大量的计算,特别是数千天的GPU。最近的一些研究,如[21,25,26],利用了几种试图降低搜索成本的技术。[21]是一种基于差分的方法,利用双层优化过程对实值结构参数和模型参数进行联合训练。有几种方法试图通过显式地将推理延迟作为约束[36,1]或隐式地对拓扑信息进行编码[9]来自动搜索具有快速推理速度的架构。除了网络架构搜索之外,[12]还利用AutoML技术进行有效的模型压缩,其中通过强化学习自动决定修剪率。[41]利用受[7]启发的教师模型,用动态损失函数指导学生模型训练。然而,如何为不同领域的任务设计一个通用的搜索空间和一个有效的优化框架仍然是一个有待解决的问题。
3. Approach
在本节中,我们首先从一个新的角度重新审视几种损失函数设计,然后分析它们对训练过程的影响,并将它们重新表述为统一的表达式。因此,我们在统一表达式的基础上提出了一个新的搜索空间,以包含现有流行的损失函数设计的良好性质。我们还提出了一个优化框架,利用AutoML方法在整个训练过程中进行高效的损失函数搜索,如图2所示。
3.1. 重新审视损失函数设计
Softmax Loss:使用最广泛的Softmax Loss可以写成
L
=
1
N
∑
i
L
i
=
1
N
∑
i
−
l
o
g
(
e
f
y
i
∑
j
e
f
j
)
,
(1)
L=\dfrac{1}{N}\sum_i L_i=\dfrac{1}{N}\sum_i-log\left(\dfrac{e^{f_{y_i}}}{\sum_j e^{f_j}}\right), \tag{1}
L=N1i∑Li=N1i∑−log(∑jefjefyi),(1)
其中
x
i
x_i
xi和
y
i
y_i
yi分别为第i个输入特征和标签。
f
j
f_j
fj表示分数
f
f
f的向量的第j个元素(
j
∈
[
1
,
C
]
j \in [1,C]
j∈[1,C],其中C为类数),N为训练集的长度。
f
f
f通常为全连通层
W
W
W的激活。我们进一步表示
f
j
f_j
fj为
W
j
T
x
i
W^T_{j}x_i
WjTxi,其中
W
j
W_j
Wj是
W
W
W的第j列。因此,
f
j
f_j
fj可以表示为:
f
j
=
∥
W
j
∥
∥
x
i
∥
cos
(
θ
j
)
,
(2)
f_{j}=\left\|\mathbf{W}_{j}\right\|\left\|\boldsymbol{x}_{i}\right\|\cos\left(\theta_{j}\right), \tag{2}
fj=∥Wj∥∥xi∥cos(θj),(2)
式中,
θ
j
(
0
≤
θ
j
≤
π
)
\theta_j(0≤\theta_j≤π)
θj(0≤θj≤π)为向量
W
j
W_j
Wj与
x
i
x_i
xi之间的夹角,
∥
W
j
∥
\left\|\mathbf{W}_{j}\right\|
∥Wj∥和
∥
x
i
∥
\left\|\boldsymbol{x}_{i}\right\|
∥xi∥为
W
j
W_j
Wj和
x
i
x_i
xi的
L
2
L_2
L2范数。注意,如果
W
j
W_j
Wj或
x
i
x_i
xi被归一化,
∥
W
j
∥
\left\|\mathbf{W}_{j}\right\|
∥Wj∥=1或
∥
x
i
∥
\left\|\boldsymbol{x}_{i}\right\|
∥xi∥= 1。因此,原始的softmax损耗可以重写为:
L
i
=
−
l
o
g
(
e
∥
W
y
i
∥
∥
x
i
∥
c
o
s
(
θ
y
i
)
∑
j
e
∥
W
j
∥
∥
x
i
∥
c
o
s
(
θ
j
)
)
(3)
L_i=-log\left(\dfrac{e^{\|\mathbf{W}_{y_i}\|\|\mathbf{x}_i\|cos(\theta_{y_i})}}{\sum_j e^{\|\mathbf{W}_j\|\|\mathbf{x}_i\|cos(\theta_j)}}\right) \tag{3}
Li=−log(∑je∥Wj∥∥xi∥cos(θj)e∥Wyi∥∥xi∥cos(θyi))(3)
通过在Eq. 3中插入变换,我们可以很容易地得到原始softmax损失的几种变体,如margin-based softmax loss和focal loss 。
Margin-based Softmax Loss:通过在范数
∥
W
j
∥
∥
x
i
∥
\left\|\mathbf{W}_{j}\right\|\left\|\boldsymbol{x}_{i}\right\|
∥Wj∥∥xi∥和
cos
(
θ
y
i
)
\cos( \theta_{y_i})
cos(θyi)之间插入一个连续可微变换函数t(),可以得到margin-baseds函数族,其表达式为:
L
i
t
=
−
l
o
g
(
e
∥
W
y
i
∥
∥
x
i
∥
∥
x
i
∥
t
(
c
o
s
(
θ
y
i
)
)
e
∥
W
y
i
∥
x
i
∥
t
(
cos
(
θ
y
i
)
)
+
∑
j
≠
y
i
e
∥
W
j
∥
∥
x
i
∥
c
o
s
(
θ
j
)
)
(4)
\begin{array}{r l}{L_{i}^{t}=}&{-l o g\left(\frac{e^{\lVert W_{y_{i}}\rVert\lVert x_{i}\rVert\lVert x_{i}\rVert t(c o s(\theta_{y_{i}}))}}{e^{\lVert\boldsymbol{W}_{y_{i}}\lVert x_{i}\rVert t(\cos(\theta_{y_{i}}))}+\sum_{j\neq y_{i}}e^{\lVert\boldsymbol{W}_{j}\rVert\lVert x_{i}\rVert c o s(\theta_{j})}}\right)}\end{array} \tag{4}
Lit=−log(e∥Wyi∥xi∥t(cos(θyi))+∑j=yie∥Wj∥∥xi∥cos(θj)e∥Wyi∥∥xi∥∥xi∥t(cos(θyi)))(4)
其中
t
t
t用于区分不同变换的Margin-based Softmax Loss。我们还在表3.1中列出了L-softmax、A-softmax、ArcFace等变换及其表达式。
Focal Loss:这也是softmax Loss的一个变体,可以在另一个位置添加变换函数,可以描述为
L
i
t
=
−
τ
(
l
o
g
(
p
y
i
)
)
(5)
L_i^t=-\tau(log(p_{y_i}))\tag{5}
Lit=−τ(log(pyi))(5)
τ
(
x
)
=
x
(
1
−
e
x
)
α
.
(6)
\tau(x)=x(1-e^x)^\alpha. \tag{6}
τ(x)=x(1−ex)α.(6)
3.2. 损失函数分析
在本节中,我们首先在分析类内距离和类间距离相对重要性的基础上,从一个新的角度讨论基于边际的softmax损失函数对训练过程的影响。我们定义类间距离
d
j
d_j
dj为特征
x
i
x_i
xi与类中心
W
j
W_j
Wj之间的距离。类内距离
d
y
i
d_{y_i}
dyi可以用类似的方式定义。为了简化,我们假设
W
j
W_j
Wj和
x
i
x_i
xi是归一化的,即
∥
W
j
∥
=
∥
x
i
∥
=
1
\left\|\mathbf{W}_{j}\right\|=\left\|\boldsymbol{x}_{i}\right\|=1
∥Wj∥=∥xi∥=1,
f
j
=
cos
(
θ
j
)
f_j = \cos(\theta_j)
fj=cos(θj)。在此假设下,
f
j
f_j
fj与
d
j
d_j
dj的关系可以描述为:
d
j
2
=
(
x
i
−
W
j
)
2
=
2
−
2
f
j
(7)
d_j^2=(\boldsymbol{x}_i-\boldsymbol{W}_j)^2=2-2f_j \tag{7}
dj2=(xi−Wj)2=2−2fj(7)
因此,我们可以分析margin-based softmax loss 对
f
y
i
f_{y_i}
fyi和
f
j
f_j
fj的影响。影响可以用传递到激活层f的梯度范数来计算。具体来说,损失层相对于
f
y
i
f_{y_i}
fyi和
f
j
f_j
fj的梯度为
∣
∣
∂
L
i
t
∂
f
i
∣
∣
=
(
1
−
p
y
i
t
)
t
′
(
f
y
i
)
,
(8)
||\frac{\partial L_i^t}{\partial f_i}||=(1-p_{y_i}^t)t'(f_{y_i}), \tag{8}
∣∣∂fi∂Lit∣∣=(1−pyit)t′(fyi),(8)
∣ ∣ ∂ L i t ∂ f j ∣ ∣ = p j t , (9) ||\frac{\partial L_i^t}{\partial f_j}||=p_j^t, \tag{9} ∣∣∂fj∂Lit∣∣=pjt,(9)
其中:
p
y
i
t
=
e
∥
W
y
i
∥
∥
x
i
∥
t
(
c
o
s
(
θ
y
i
)
)
e
∥
W
y
i
∥
∥
x
i
∥
t
(
c
o
s
(
θ
y
i
)
)
+
∑
j
≠
y
i
e
∥
W
j
∥
∥
x
i
∥
c
o
s
(
θ
j
)
(10)
p_{y_{i}}^{t}=\frac{e^{\|\mathbf{W}_{y_{i}}\|\|\mathbf{x}_{i}\|t\big(c o s(\theta_{y_{i}}\big)\big)}}{e^{\|\mathbf{W}_{y_{i}}\|\|x_{i}\|t\big(c o s(\theta_{y_{i}}\big)\big)}+\sum_{j\neq y_{i}}e^{\|\mathbf{W}_{j}\|\|x_{i}\|c o s(\theta_{j})}} \tag{10}
pyit=e∥Wyi∥∥xi∥t(cos(θyi))+∑j=yie∥Wj∥∥xi∥cos(θj)e∥Wyi∥∥xi∥t(cos(θyi))(10)
p j t = e ∥ W j ∥ ∥ x i ∥ t ( c o s ( θ j ) ) e ∥ W y i ∥ ∥ x i ∥ t ( c o s ( θ y i ) ) + ∑ j ≠ y i e ∥ W j ∥ ∥ x i ∥ c o s ( θ j ) (11) p_{j}^{t}=\frac{e^{\|\mathbf{W}_{j}\|\|\mathbf{x}_{i}\|t\big(c o s(\theta_{j}\big)\big)}}{e^{\|\mathbf{W}_{y_{i}}\|\|x_{i}\|t\big(c o s(\theta_{y_i}\big)\big)}+\sum_{j\neq y_{i}}e^{\|\mathbf{W}_{j}\|\|x_{i}\|c o s(\theta_{j})}} \tag{11} pjt=e∥Wyi∥∥xi∥t(cos(θyi))+∑j=yie∥Wj∥∥xi∥cos(θj)e∥Wj∥∥xi∥t(cos(θj))(11)
我们进一步将类内距离与类间距离的相对显著性定义为
f
y
i
f_{y_i}
fyi和
f
j
f_j
fj梯度的范数与margin-based softmax loss之比,其描述如下:
r
i
t
=
∣
∣
∂
L
i
t
∂
f
i
∣
∣
∣
∣
∂
L
i
t
∂
f
j
∣
∣
=
(
1
−
p
y
i
t
)
p
j
t
t
′
(
f
y
i
)
(12)
r_i^t=\dfrac{||\dfrac{\partial L_i^t}{\partial f_i}||}{||\dfrac{\partial L_i^t}{\partial f_j}||}=\dfrac{(1-p_{y_i}^t)}{p_j^t}t'(f_{y_i}) \tag{12}
rit=∣∣∂fj∂Lit∣∣∣∣∂fi∂Lit∣∣=pjt(1−pyit)t′(fyi)(12)
而相对于原始的softmax损失,该显著性比为
r
i
o
=
∣
∣
∂
L
i
o
∂
f
y
i
∣
∣
∣
∣
∂
L
i
o
∂
f
j
∣
∣
=
(
1
−
p
y
i
o
)
p
j
o
.
(13)
r_i^o=\dfrac{||\dfrac{\partial L_i^o}{\partial f_{y_i}}||}{||\dfrac{\partial L_i^o}{\partial f_j}||}=\dfrac{(1-p_{y_i}^o)}{p_j^o}. \tag{13}
rio=∣∣∂fj∂Lio∣∣∣∣∂fyi∂Lio∣∣=pjo(1−pyio).(13)
o
o
o是单位变换。margin-based loss对类内距离与类间距离相对显著性的影响可以用
r
i
t
r^t_i
rit与
r
i
r_i
ri的比值来计算:
r
i
t
r
i
o
=
(
1
−
p
y
i
t
)
p
j
t
(
1
−
p
y
i
o
)
p
j
o
t
′
(
f
y
i
)
=
∑
t
≠
y
i
e
∥
W
t
∥
∥
x
i
∥
c
o
s
(
θ
t
)
e
∥
W
j
∥
∥
x
i
∥
c
o
s
(
θ
j
)
∑
t
≠
y
i
e
∥
W
t
∥
∥
x
i
∥
c
o
s
(
θ
t
)
e
∥
W
j
∥
∥
x
i
∥
c
o
s
(
θ
j
)
t
′
(
f
y
i
)
=
t
′
(
f
y
i
)
(14)
\frac{r_i^t}{r_i^o}=\frac{\frac{(1-p_{y_i}^t)}{p_j^t}}{\frac{(1-p_{y_i}^o)}{p_j^o}}t'(f_{y_i})=\frac{\frac{\sum_{t\neq y_i}e^{\|W_t\|\|x_i\|cos(\theta_t)}}{e\|W_j\|\|x_i\|cos(\theta_j)}}{\frac{\sum_{t\neq y_{i}}e^{\Vert W_{t}\Vert\Vert x_{i}\Vert c o s(\theta_{t})}}{e\Vert W_{j}\Vert\Vert x_{i}\Vert c o s(\theta_{j})}}t'(f_{y_i})\\ =t'(f_{y_i}) \tag{14}
riorit=pjo(1−pyio)pjt(1−pyit)t′(fyi)=e∥Wj∥∥xi∥cos(θj)∑t=yie∥Wt∥∥xi∥cos(θt)e∥Wj∥∥xi∥cos(θj)∑t=yie∥Wt∥∥xi∥cos(θt)t′(fyi)=t′(fyi)(14)
这里我们得出结论,基于margin-based softmax loss 层在训练过程中主要作为一个控制器,通过其导数
t
′
(
f
y
i
)
t' (f_{y_i})
t′(fyi)改变类内距离到类间距离的相对显著性。除了基于边缘的softmax损失外,我们还分析了焦点损失的影响。Focal loss的梯度相对于激活
f
f
f等于原始softmax损耗乘以
τ
′
(
log
(
p
y
i
)
\tau'(\log(p_{y_i})
τ′(log(pyi)。这个梯度对训练过程产生了完全不同但非常有效的影响,它随着对数似然性单调减少,并有助于平衡不同难度水平的样本。
3.3. 搜索空间
根据以上分析,我们可以在原softmax损失中插入两个变换
τ
\tau
τ和
t
t
t,生成具有统一公式的损失函数,该函数既具有平衡(1)类内距离和类间距离的能力,又具有平衡(2)不同难度样本的能力。统一表述为:
L
i
τ
,
t
=
−
τ
(
l
o
g
(
p
y
i
t
)
)
(15)
L_i^{\tau,t}=-\tau(log\left(p_{y_i}^t\right)) \tag{15}
Liτ,t=−τ(log(pyit))(15)
其中
τ
\tau
τ和
t
t
t是任意梯度为正的函数。为了确保
τ
\tau
τ具有有界定义域[0,1],从而降低在该空间中搜索的复杂度,我们交换
τ
\tau
τ和
log
\log
log,
L
i
τ
,
t
=
−
l
o
g
(
τ
(
p
y
i
t
)
)
.
(16)
L_i^{\tau,t}=-log(\tau\left(p_{y_i}^t\right)). \tag{16}
Liτ,t=−log(τ(pyit)).(16)
我们证明了在Eq. 15和Eq. 16中定义的这两个搜索空间是等价的:对于Eq. 15中的任意
τ
1
(
x
)
\tau_1(x)
τ1(x),我们可以通过简单地在Eq. 16中设置
τ
2
(
x
)
=
e
τ
1
(
log
(
x
)
)
\tau_2(x) = e^{\tau_1(\log(x))}
τ2(x)=eτ1(log(x))来得到相同的损失函数。
我们的搜索空间由
τ
\tau
τ和
t
t
t的选择来表示,根据上面的分析,它们对训练过程的影响由导数
τ
′
\tau'
τ′和
t
′
t'
t′决定。因此,我们简单地将候选集设置为均匀划分定义域的分段线性函数,从而确保在每个区间内独立的斜率和偏差。以函数
t
t
t为例:
t
(
x
)
=
a
i
t
x
+
b
i
t
,
x
∈
[
ζ
i
t
,
ζ
i
+
1
t
]
(17)
t(x)=a_i^tx+b_i^t,x\in[\zeta_i^t,\zeta_{i+1}^t] \tag{17}
t(x)=aitx+bit,x∈[ζit,ζi+1t](17)
式中,
ζ
t
=
[
ζ
0
,
…
,
ζ
M
]
\zeta_t = [\zeta_0,…,\zeta_M]
ζt=[ζ0,…,ζM](
M
M
M为区间的个数)为区间的端点,对于
i
∈
[
0
,
M
−
1
]
i \in [0,M - 1]
i∈[0,M−1],
ζ
i
+
1
t
−
ζ
i
t
=
(
ζ
M
t
−
ζ
0
t
)
/
M
\zeta^t_{i+1}−\zeta^t_i = (\zeta^t_M−\zeta^t_0)/M
ζi+1t−ζit=(ζMt−ζ0t)/M。
我们还分析了组件在我们的搜索空间中的有效性。不同区间的样本难度不同。例如,较大的区间包含更容易的样本,类内距离 d y i d_{y_i} dyi较小。由于 t ′ t' t′表示类内距离和类间距离的相对显著性,我们为每个区间赋独立斜率 t ′ = a i t t' = a^t_i t′=ait,以确保损失函数能够独立平衡不同难度下的类内距离和类间距离的显著性。同样, τ \tau τ的候选集是由 a i τ a^\tau_i aiτ, b i τ b^\tau_i biτ和 ζ i τ \zeta^\tau_i ζiτ描述的,它平衡了不同难度水平下样本的显著性。偏差 b i t b^t_i bit和 b i τ b^\tau_i biτ保证了的前一个间隔的每一个间隔的独立性。我们设 ζ t \zeta^t ζt和 ζ τ \zeta^\tau ζτ为常数值,它们将定义域均匀地划分为M个区间。我们定义 θ = [ a t T , b t T , a τ T , b τ T ] T \theta = [a^{t^T}, b^{t^T}, a^{\tau^ T}, b^{\tau^ T}]T θ=[atT,btT,aτT,bτT]T。给定 ζ t \zeta^t ζt, ζ τ \zeta^\tau ζτ,损失函数 L θ = L t , τ L_\theta = L^{t,\tau} Lθ=Lt,τ可以仅由 θ \theta θ决定。因此,我们的搜索空间可以用 L = { L θ } L = \{L_\theta\} L={Lθ}来参数化。
3.4. 优化
假设我们有一个参数化为
ω
ω
ω的网络模型
M
ω
M_ω
Mω,训练集
D
t
=
{
(
x
i
,
y
i
)
}
i
=
1
n
D_t = \{(x_i, y_i)\}^n_{i=1}
Dt={(xi,yi)}i=1n,验证集
D
v
D_v
Dv,我们的损失函数搜索目标是最大化模型
M
ω
M_ω
Mω的reward
r
(
M
ω
;
D
v
)
r(M_ω;D_v)
r(Mω;Dv)(如accuracy或mAP)在验证集
D
v
D_v
Dv上相对于
θ
=
[
a
t
T
,
b
t
T
,
a
τ
T
,
b
τ
T
]
T
\theta = [a^{t^T}, b^{t^T}, a^{\tau^ T}, b^{\tau^ T}]T
θ=[atT,btT,aτT,bτT]T,通过最小化搜索损失得到模型
M
ω
M_ω
Mω:
max
θ
R
(
θ
)
=
r
(
M
ω
∗
(
θ
)
,
D
v
)
s.t.
ω
∗
(
θ
)
=
arg
min
ω
∑
(
x
,
y
)
∈
D
i
L
θ
(
M
ω
(
x
)
,
y
)
(18)
\max_{\boldsymbol{\theta}}R(\boldsymbol{\theta})=r(M_{\boldsymbol{\omega}^*(\boldsymbol{\theta})},\mathcal{D}_v) \\ \textrm{s.t.}\quad\boldsymbol{\omega}^*(\boldsymbol{\theta})=\arg\min_{\boldsymbol{\omega}}\sum_{(x,y)\in\mathcal{D}_i}L^{\boldsymbol{\theta}}(M_{\boldsymbol{\omega}}(x),y) \tag{18}
θmaxR(θ)=r(Mω∗(θ),Dv)s.t.ω∗(θ)=argωmin(x,y)∈Di∑Lθ(Mω(x),y)(18)
这是一个标准的双层优化问题[3],其中损失函数参数
θ
\theta
θ被视为超参数。我们训练的模型参数
ω
ω
ω在内层使训练损失
L
θ
L_\theta
Lθ最小化,同时寻求一个好的损失函数超参数
θ
\theta
θ,其结果是模型参数
ω
∗
ω^∗
ω∗在外层使验证集
D
v
D_v
Dv的reward最大化。
为了解决这一问题,我们提出了一种超参数优化方法,对
B
B
B个超参数
{
θ
1
,
…
,
θ
B
}
\{\theta_1,…,\theta_B\}
{θ1,…,θB},并使用它们来训练当前模型。在我们的AM-LFS中,我们将这些超参数
θ
\theta
θ建模为独立的高斯分布,描述为
θ
∼
N
(
μ
,
σ
I
)
(19)
\boldsymbol{\theta}\sim\mathcal{N}(\boldsymbol{\mu},\sigma I) \tag{19}
θ∼N(μ,σI)(19)
经过一个epoch的训练,生成
B
B
B个模型,这些模型的奖励通过强化[40]来更新超参数的分布,如下所示:
μ
t
+
1
=
μ
t
+
η
1
B
∑
i
=
1
B
R
(
θ
i
)
∇
θ
l
o
g
(
g
(
θ
i
;
μ
t
,
σ
)
)
(20)
\boldsymbol{\mu}_{t+1}=\boldsymbol{\mu}_{t}+\eta\dfrac{1}{B}\sum_{i=1}^{B}R(\boldsymbol{\theta}_{i})\nabla_{\boldsymbol{\theta}}log(g(\boldsymbol{\theta}_{i};\boldsymbol{\mu}_{t},\boldsymbol{\sigma})) \tag{20}
μt+1=μt+ηB1i=1∑BR(θi)∇θlog(g(θi;μt,σ))(20)
其中
g
(
θ
;
μ
,
σ
)
g(\theta;\mu,\sigma)
g(θ;μ,σ)为高斯分布的PDF。下一个epoch使用得分最高的模型。最后,当训练收敛时,直接取
r
(
M
w
∗
(
θ
)
,
D
v
)
r(M_{w^∗(\theta)},D_v)
r(Mw∗(θ),Dv)得分最高的模型作为最终模型,无需再训练。为了简化问题,我们将
σ
\sigma
σ固定为常数并对
μ
\mu
μ进行优化。算法1总结了我们的AM-LFS的训练过程。
4. Experiments
我们在CIFAR-10[15]、MegaFace[14]、Market-1501[44]和DukeMTMC-reID[29,45]4个基准数据集上进行了实验来证明我们的方法在分类、人脸识别和行人重识别任务上的有效性。
4.1. 实现细节
由于我们的AM-LFS使用了双层优化框架,因此我们的实现设置可以分为内部级别和外部级别。在内部层面,为了公平比较,我们将所有的实验设置,如预热阶段、学习率、小批量大小和学习率衰减等,与具体任务上相应的原始基线方法保持一致。请注意,对于具有多分支损失的基线方法,我们仅用AL-LFS替换softmax损失分支,而忽略其他分支。例如,在MGN[38]中,我们只对8个软最大损耗分支应用AL-LFS,同时保持三组损耗不变。在外部层面,我们优化了损失函数在搜索空间中的分布,分布参数的梯度通过固定数量样本奖励的强化算法计算。从分类、人脸识别和行人重识别的角度来看,reward是top-1准确率、rank 1值和mAP。我们将每个样本返回的reward归一化为零均值和单位方差,设为每个样本的reward。对于所有的数据集,样本个数B和区间M分别设置为32和6。请注意,我们在第4.6节中也对这些数字进行了调查。对于分布参数,我们使用Adam优化器,学习率为0.05,设σ = 0.2。在完成分布参数的更新后,我们将mAP值最高的模型参数广播给每个样本进行同步。对于所有数据集,每个采样模型使用2个Nvidia 1080TI gpu进行训练,因此总共需要64个gpu。
4.2. 数据集
分类:CIFAR-10数据集由分辨率为32 × 32的自然图像组成。CIFAR-10由10个类中的60,000张图像组成,每个类有6,000张图像。训练集和测试集分别包含50,000和10,000张图像。在CIFAR数据集上,我们采用了如下[19,13]的标准数据增强方案(移位/镜像),使用通道均值和标准差对输入数据进行归一化处理。
人脸识别:对于人脸识别,我们设置CASIA-Webface[43]作为训练数据集,MegaFace作为测试数据集。CASIA-Webface包含来自10,575个身份的494,414张训练图像。megface数据集作为最大的公共测试基准发布,旨在评估百万干扰物尺度下人脸识别算法的性能。为了执行开集评估,我们仔细地去除训练数据集和测试数据集之间的重叠身份。
行人重识别:对于人员再识别,我们使用Market-1501和DukeMTMC-reID来评估我们提出的AM-LFS方法。Market-1501包括从6个不同的相机拍摄的1,501人的图像。用DPM检测器预测的边界框对行人进行裁剪。整个数据集分为训练集(12936张图像,751人)和测试集(3368张查询图像,19732张图库图像,750人)。在我们的实验中,我们选择单query模式,即只从一个query图像中提取特征。DukeMTMC-reID是Duke-MTMC的一个子集,用于行人重识别,包含36,411张由8台高分辨率相机捕获的1,812个不同身份的注释边界框图像。总共1404个身份被至少两台摄像机观察到,剩下的408个身份是干扰物。训练集包含702个身份的16,522张图像,测试集包含另外702个身份。
4.3. CIFAR-10的结果
我们在CIFAR-10数据集[15]上用ResNet-20[11]演示了我们的方法。我们使用标准交叉熵对模型进行训练,得到原始top-1检验误差为8.75%。表2显示了与标准交叉熵(CE)[4]和学习到教学(L2T-DLF)[41]方法的动态损失的分类结果。可以看出,在三种损失函数方法中,我们的AM-LFS帮助ResNet-20达到了6.92%的top-1错误率的最佳性能。我们还看到,最近提出的L2T-DLF将softmax损失的错误率降低了1.12%,因为L2T-DLF引入了通过教师模型输出的动态损失函数,有助于培养更好的学生模型。注意,AM-LFS可以进一步降低L2T-DLF的top-1错误率0.71%,该方法具有更有效的损失函数搜索空间和优化策略设计。
除了常规实验之外,我们还进行了CIFAR-10噪声标签实验,其中标记的类可以按照给定的噪声比随机翻转到任何其他标签,以证明AM-LFS在训练过程中具有数据重新加权的特性。如表2所示,在噪声比为10%和20%的情况下,AMLFS始终比基线softmax损失高出2.00%和2.32%。
4.4. Megface的结果
我们将所提出的AM-LFS与三种最先进的损失函数方法(包括SphereFace, CosineFace和ArcFace)进行了比较。我们使用了一个改进的20层的ResNet,它适应于人脸识别,并且在内层训练模型参数时遵循与[37]相同的实验设置。表3显示了不同损失函数下MegaFace rank1@1e6的性能。对于SphereFace和CosineFace,我们直接报道了原文的结果。对于ArcFace,我们通过运行作者提供的源代码来报告他们的结果,并自己训练模型。我们可以观察到,我们提出的AM-LFS比所有比较方法分别高出6.1%,1.0%和1.1%。主要原因是从我们提出的搜索空间中采样的候选函数可以很好地近似所有这些比较的损失函数,这意味着它们的良好性质可以在训练阶段得到充分的探索和利用。同时,我们的优化策略使得动态损失可以指导不同时代的模型训练,进一步提高了识别能力。
4.5. Market-1501和DukeMTMC-reID的结果
我们通过将我们的AM-LFS应用于一些现有的竞争对手,包括SphereReID, SFT和MGN,来证明我们的有效性。我们在两个数据集上与当前最先进的方法进行比较,以显示我们比现有基线的性能优势。我们报告了所有候选数据集在rank-1和rank-5上的平均平均精度(mAP)和累积匹配特征(CMC)在Market-1501数据集上,我们只在单查询模式下进行实验。在Market-1501数据集和DukeMTMC-reID数据集上的结果分别如表4和表5所示。我们根据是否应用我们的ALLFS将结果分为两组。
对于Market-1501, MGN(RK)+AMLFS在mAP上优于最佳竞争对手MGN(RK) 0.4%。我们观察到,采用AM-LFS后,MGN排名1下降了0.5%。主要原因是AM-LFS使用map相关的奖励进行引导,这可能并不总是与rank 1值一致。
对于DukeMTMC-reID, MGN(RK)+AM-LFS在mAP和rank上都超过了所有被比较的方法。我们得出的结论是,尽管基线模型SphereReID、SFT和MGN已经在Market1501和DukeMTMC-ReID上取得了非常高的结果,但将AM-LFS应用于它们仍然可以帮助培养更好的模型,从而持续提高性能。
4.6. 消融实验
组件的有效性:我们通过展示 (1) 所提出的损失函数搜索空间设计本身可以导致 AM-LFS 强大的经验性能和 (2) AM-LFS 动态学习更好的损失函数分布的能力,展示了组件搜索空间和搜索策略的重要性,因此提高了训练过程中的性能。我们在Market1501上训练了SphereReID模型,方法是从初始分布中采样候选者,而不更新该分布。在收敛时,模型的mAP为84.0%,优于原始基线0.4%。我们对提出的搜索空间进行了这项研究,即使在引导随机搜索设置下,它也可以保证比基线模型的性能提高。我们进一步优化了分布,并获得了0.4%的额外性能增益。因此,我们得出结论,损失函数搜索空间的设计和适当的优化程序对于良好的性能至关重要。
样本研究:通过改变AM-LFS的参数 B B B,研究了样本数量对优化过程的影响。请注意,随着B的增加,训练小批数据所需的计算资源(gpu)会增加。我们报告了表6中从{4,8,16,32}中选取的不同B值在基于市场-1501和基于DukeMTMC-reID的mAP上在SphereReID的性能结果。
结果表明,当B较小时,由于没有足够的样本,无法获得有效的梯度,性能下降。我们还观察到,当我们继续增大B时,性能呈现饱和状态。为了权衡性能和训练效率,我们选择在训练时将B固定为32。
区间研究:通过改变AM-LFS中的区间参数M,研究了区间数目对搜索空间的影响。根据我们对搜索空间的设计,不同难度的样本被分配到特定的间隔,从而实现了类内距离和类间距离的动态权衡。表7显示了mAP在Market-1501数据集和DukeMTMCreID数据集上相对于M的性能结果。当我们将区间数设置为一个较小的数(M = 3)时,mAP呈现出一个较低的值,因为在训练过程中,这些区间不足以处理所有级别的难样例。当我们设置较大的区间数(M = 10)时,由于过多的分布参数难以优化,网络难以训练并且精度下降。我们还观察到,在M = 6的中等值时,性能达到最佳。
收敛性研究:为了评估我们的AM-LFS的训练过程,我们需要对训练收敛性进行调查,特别是在外部层面。然而,由于我们的AM-LFS在训练过程中学习动态损失函数分布,因此很难简单地跟踪损失收敛性。跟踪平均奖励也不是一个好主意,因为这个信号非常嘈杂,会造成训练过程不稳定的错觉。主要原因是外部层损失函数分布的小更新可能导致内部层网络参数的大变化。因此,我们选择跟踪一个更直观的度量,即分布参数来研究我们方法的收敛性。
从图3中可以看出,随着epoch的增加,分布参数趋于收敛于特定值,这说明AM-LFS可以稳定地训练。
梯度分布的可视化:我们在图4中可视化了类内距离项fyi的梯度分布,以证明在Market-1501数据集上,AM-LFS比SphereReID中的基线Sphere softmax损失函数具有更强的辨别能力。当当激活值(x 轴)增加时,intra distance 会减小,此时数据样本处于相对容易的水平。相反,当激活值(x 轴)减小时,数据样本处于硬水平。从图4中可以看出,AM-LFS对于硬样例的梯度比基线球softmax的梯度要低,这导致了类间距离的关注。结果表明,AM-LFS可以动态权衡类内距离和类间距离的显著性,从而提高模型的识别能力。
5. Conclusion
在本文中,我们提出了损失函数搜索的自动学习(AM-LFS),它利用强化在训练过程中搜索损失函数。我们精心设计了有效且独立于任务的搜索空间和双层优化框架,保证了在不同视觉任务上的泛化和可移植性。虽然本文仅展示了AM-LFS应用于分类、人脸识别和行人再识别数据集的有效性,但它也可以很容易地应用于其他现成的现代计算机视觉框架,用于各种任务,这是一个有趣的未来工作。