Multi-Task Learning as Multi-Objective Optimization
本文只看到了MGDA前,没有仔细看实验部分和MGDA upper bound,是最近看过的最难的文章了,恰好看这篇论文的时候小孙感冒了,好难受啊啊啊啊啊
目录
一、总结
这是Intel在NIPS 2018上发表的关于多任务学习的文章: Multi-Task Learning as Multi-Objective Optimization。本文是multi task的文章,但不是multi domain,本文所指的多任务是在一个数据集上有多个label的情况。多任务学习其实有很多种做法, hard parameter sharing, soft parameter sharing等等,这篇文章属于用hard parameter sharing 做多任务学习,通过loss weighting来提升效果,而本文的主要贡献是对这个weight的快速计算。
1. multi task的一般形式
多任务学习求解的一般形式:
min
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
∑
t
=
1
T
c
t
L
^
t
(
θ
s
h
,
θ
t
)
\min\limits_{\theta^{sh},\theta^1,...,\theta^T}\sum\limits_{t=1}^Tc^t\hat L^t(\theta^{sh},\theta^t)
θsh,θ1,...,θTmint=1∑TctL^t(θsh,θt)
c
t
c^t
ct是每个任务的计算权重,
L
^
t
(
θ
s
h
,
θ
t
)
\hat L^t(\theta^{sh},\theta^t)
L^t(θsh,θt)是每个任务的经验损失,定义为
L
^
t
(
θ
s
h
,
θ
t
)
≜
1
N
∑
i
L
(
f
t
(
x
;
θ
s
h
,
θ
t
)
,
y
i
t
)
\hat L^t(\theta^{sh},\theta^t)\triangleq \frac{1}{N}\sum_iL(f^t(x;\theta^{sh},\theta^t),y_i^t)
L^t(θsh,θt)≜N1i∑L(ft(x;θsh,θt),yit)
2. 将多任务学习转为多目标优化
可以将MTL公式化为多目标优化:优化可能冲突的目标的集合。 我们使用向量值损失L定于MTL的多目标优化公式:
min
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
L
(
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
)
=
min
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
(
L
^
1
(
θ
s
h
,
θ
1
)
,
.
.
.
,
L
^
T
(
θ
s
h
,
θ
T
)
)
T
\min\limits_{\theta^{sh},\theta^1,...,\theta^T}L(\theta^{sh},\theta^1,...,\theta^T)=\min\limits_{\theta^{sh},\theta^1,...,\theta^T}(\hat L^1(\theta^{sh},\theta^1),...,\hat L^T(\theta^{sh},\theta^T))^T
θsh,θ1,...,θTminL(θsh,θ1,...,θT)=θsh,θ1,...,θTmin(L^1(θsh,θ1),...,L^T(θsh,θT))T
多目标优化的目标是实现帕累托最优。
3. 将帕累托最优的求解转化成任务权重的求解
对于两个任务而言,优化问题转为:
对于两个向量而言,和的范式由向量起点为起点,重点落在两个向量终点的连线上,所以法线是最短的,当两个向量在法线同一侧时取小的向量,两个向量在法线两侧时,通过计算得出法线结果。
4. 简化该计算
通过链式法则的推导, 并证明了, 在梯度为full rank的情况下, 我们不需要对每个任务的向后传播都算到底(所有层), 只需要算到共享模型的最后一层, 用这个去解出各个任务的权重, 既能加快速度, 又能得到一个比较好的解.
二、翻译
0. 摘要
abstract:
在多任务学习中,多个任务共同解决,它们之间共享归纳偏差。多任务学习本质上是一个多目标问题,因为不同的任务可能会发生冲突,因此需要进行权衡。常见的折衷方案是优化代理目标(proxy objective),以最小化每个任务损失的加权线性组合。但是,这种解决方法仅在任务不竞争时才有效,这种情况很少发生。在本文中,我们明确地将多任务学习视为多目标优化,其总体目标是找到帕累托最优解。为此,本文使用了基于梯度的多目标优化文献中开发的算法。这些算法不能直接应用于大规模学习问题中,因为随着梯度维度和任务数量的增加,算法结果会变得很差。因此我们为多目标损失提出了一个上界,实验结果表明这样可以有效对其进行优化。本文进一步证明,对这个上界进行优化可以在现实假设下得到帕累托最优解。我们将本文提出的方法应用于各种多任务深度学习任务中,包括数字分类、场景理解(联合语义分割、实例分割和深度估计)以及多标签分类,结果表明该方法产生的模型性能比多任务学习公式或单任务训练产生的模型性能更好。
1. 引言
introduction:
统计学中最令人震惊的结论之一是 Stein 估计。Stein(1956)认为,若要估计高斯随机变量,最好是从所有样本中估计三个或三个以上变量的均值,而不是分别单独进行估计,即使这些高斯分布是相互独立的。Stein 悖论是探索多任务学习(MTL)(Caruana,1997)的早期动机。多任务学习是一种学习范式,其中来自多任务的数据被用来获得优于独立学习每个任务的性能。MTL 的潜在优势超出了 Stein 悖论的直接含义,因为即便是真实世界中看似无关的任务也因数据共享的过程而存在很强的依赖性。例如,尽管自动驾驶和目标操纵看似无关,但相同的光学规律、材料属性以及动力学都对基础数据产生了影响。这启发人们在学习系统中使用多任务作为归纳偏好。
典型的 MTL 系统被给定一组输入点和每点各种任务的目标集。设置跨任务的归纳偏好的常用方法是设计一个参数化假设类,它会在不同任务中共享一些参数。一般而言,可以通过为每个任务最小化经验风险的加权和这种优化问题来学习这些参数。但是,只有当一个参数组在所有任务中都有效时,这样的线性组合公式才有意义。换言之,只有当任务之间不存在竞争关系时,最小化经验风险的加权和才有效,但这种情况比较少有。目标冲突的 MTL 需要对任务之间的权衡进行模型,但这已经超出了线性组合能够实现的范围。
MTL 的另一个目标是找到不受任何其它方案主导的解决方案。据说这种方案就是帕累托最优(Pareto optimal)。本文从寻找帕累托最优解的角度出发探寻 MTL 的目标。
在给定多个标准的情况下,寻找帕累托最优解的问题也被称为多目标优化。目前已有多种多目标优化算法,其中一种叫多梯度下降算法(MGDA),使用基于梯度的优化,证明了帕累托集合上的点是收敛的(Désidéri,2012)。MGDA 非常时候具有深层网络的多任务学习。它可以用每个任务的梯度解决优化问题来更新共享参数。但有两个技术性的问题阻碍了 MGDA 的大规模应用。
- (i)基本的优化问题无法扩展到高维度梯度,而后者会自然出现在深度网络中。
- (ii)该算法要求明确计算每个任务的梯度,这就导致反向迭代的次数会被线性缩放,训练时间大致会乘以任务数量。
我们在本文中开发了基于 Frank-Wolfe 且可以扩展到高维问题的优化器。此外,我们还给 MGDA 优化目标提供了一个上界,并表明可以在没有明确特定任务梯度的情况下通过单次反向迭代来计算该优化目标,这使得该方法的计算成本小到可以忽略不计。本文证明,用我们的上界可以在现实假设情况下得到帕累托最优解。最终我们得到了一个针对深度网络多目标优化问题的精确算法,计算开销可以忽略不计。
我们在三个不同的问题上对提出的方法进行了实证评估。首先,我们在 MultiMNIST(Sabour 等人,2017)上做了多数字分类的延伸评估。其次,我们将多标签分类作为 MTL,并在 CelebA 数据集(Liu 等人,2015b)上进行了实验。最后,我们将本文所述方法应用于场景理解问题中。具体而言,我们在 Cityscapes 数据集(Cordts 等人,2016)上做了联合语义分割、实例分割以及深度估计。在我们的评估中,任务数量从 2 到 40 不等。我们的方法明显优于所有基线。
2. 相关工作
related work:
多任务学习
我们总结了与我们最密切相关的工作,并向感兴趣的读者推荐Ruder(2017)和Zhou等人(2011b)的评论进一步了解更多背景。多任务学习(MTL)通常是通过硬参数共享或软参数共享进行的。在硬参数共享中,参数的子集在任务之间共享,而其他参数是特定于任务的。在软参数共享中,所有参数都是特定于任务的,但它们通过贝叶斯先验或联合字典共同约束。我们专注于基于梯度优化的硬参数共享,深度多任务学习在计算机视觉、自然语言处理、语音处理(speech processing )、甚至在多个模式上毫不相关的数据集上都很成功了。
Baxter(2000)从理论上将MTL问题分析为个体学习者(individual learners)和元算法(meta-algorithm)之间的相互作用。每个学习者负责一项任务,元算法决定如何更新共享参数。所有前面提到的MTL算法都使用加权求和作为元算法,超越加权求和的元算法也被研究出来了。Li等考虑了每个学习者都基于内核学习(kernel learning)并利用多目标优化的情况。 Zhang and Yeung考虑了每个学习者都是线性模型并使用任务亲和力矩阵的情况。 周等和Bagherjeiran等人使用这样的假设:任务共享一个词典,并开发出一个期望最大化的元算法。 de Miranda等和Zhou等使用群体优化。 这些方法都不适用于基于梯度的大容量模型(如现代深度网络)的学习。 Kendall等和Chen等分别基于不确定性和梯度幅度提出启发式算法,并将其方法应用于卷积神经网络。 最近的另一项工作是使用多主体强化学习(Rosenbaum et al)。
多目标优化
多目标优化解决了优化一组可能的相反目标(contrasting objectives)的问题。我们推荐Miettinen(1998)和Ehrgott(2005)在该领域的综述。与我们的工作特别相关的是基于梯度的多目标优化,比如Fliege和Svaiter(2000),Schäffler(2002)和Désidéri(2012)。这些方法使用多目标Karush-Kuhn-Tucker(KKT)条件,并找到降低所有目标的下降方向。Peitz和Dellnitz(2018)和Poirion等人将这种方法扩展到了随机梯度下降。 在机器学习中,这些方法已应用于多智能体学习,内核学习,顺序决策和贝叶斯优化。我们的工作将基于梯度的多目标优化应用于多任务学习。
3. 多任务学习转为多目标优化
Multi-Task Learning as Multi-Objective Optimization:
假设有一个多任务学习问题,输入空间为
X
X
X,任务空间为
{
Y
t
}
t
∈
[
T
]
\{Y^t\}_{t\in[T]}
{Yt}t∈[T],独立同分布的数据集
{
x
i
,
y
i
1
,
y
i
2
,
.
.
.
,
y
i
T
}
i
∈
[
N
]
\{x_i,y_i^1,y_i^2,...,y_i^T\}_{i\in [N]}
{xi,yi1,yi2,...,yiT}i∈[N],
T
T
T是任务的数量,
N
N
N是数据集大小,
y
i
t
y_i^t
yit是第
i
i
i个数据在第
t
t
t个任务的标签。 我们进一步考虑每个任务的预测函数为
f
t
(
x
;
θ
s
h
,
θ
t
)
:
X
→
Y
t
f^t(x;\theta^{sh},\theta^t):X\rightarrow Y^t
ft(x;θsh,θt):X→Yt,其中
θ
s
h
\theta^{sh}
θsh是任务之间的共享参数,
θ
t
\theta^t
θt是特定任务的参数。定义任务相关的损失函数
L
t
(
⋅
,
⋅
)
:
Y
t
×
Y
t
→
R
+
L^t(·,·):Y^t×Y^t\rightarrow R^+
Lt(⋅,⋅):Yt×Yt→R+
尽管MTL文献中已经提出了许多预测函数和损失函数,但是经验损失一般定义为:
min
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
∑
t
=
1
T
c
t
L
^
t
(
θ
s
h
,
θ
t
)
\min\limits_{\theta^{sh},\theta^1,...,\theta^T}\sum\limits_{t=1}^Tc^t\hat L^t(\theta^{sh},\theta^t)
θsh,θ1,...,θTmint=1∑TctL^t(θsh,θt)
c
t
c^t
ct是每个任务的计算权重,
L
^
t
(
θ
s
h
,
θ
t
)
\hat L^t(\theta^{sh},\theta^t)
L^t(θsh,θt)是每个任务的经验损失,定义为
L
^
t
(
θ
s
h
,
θ
t
)
≜
1
N
∑
i
L
(
f
t
(
x
;
θ
s
h
,
θ
t
)
,
y
i
t
)
\hat L^t(\theta^{sh},\theta^t)\triangleq \frac{1}{N}\sum_iL(f^t(x;\theta^{sh},\theta^t),y_i^t)
L^t(θsh,θt)≜N1i∑L(ft(x;θsh,θt),yit)
尽管加权求和公式在直观上很有吸引力,但它通常要么需要在各种缩放比例上进行昂贵的网格搜索,要么需要使用启发式方法(Kendall等人,2018; Chen等人,2018)。 扩展的基本理由是无法在MTL中定义全局最优性。考虑任务
t
1
,
t
2
t_1,t_2
t1,t2的两个结果
θ
,
θ
‾
\theta,\overline\theta
θ,θ使得
L
^
t
1
(
θ
s
h
,
θ
t
1
)
<
L
^
t
1
(
θ
‾
s
h
,
θ
‾
t
1
)
\hat L^{t1}(\theta^{sh},\theta^{t1})<\hat L^{t1}(\overline\theta^{sh},\overline \theta^{t1})
L^t1(θsh,θt1)<L^t1(θsh,θt1),同时
L
^
t
2
(
θ
s
h
,
θ
t
2
)
>
L
^
t
2
(
θ
‾
s
h
,
θ
‾
t
2
)
\hat L^{t2}(\theta^{sh},\theta^{t2})>\hat L^{t2}(\overline\theta^{sh},\overline \theta^{t2})
L^t2(θsh,θt2)>L^t2(θsh,θt2)。对于任务1,
θ
\theta
θ会更好;对于任务2,
θ
‾
\overline \theta
θ会更好。
或者,可以将MTL公式化为多目标优化:优化可能冲突的目标的集合。 这就是我们采取的方法。 我们使用向量值损失L定于MTL的多目标优化公式:
min
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
L
(
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
)
=
min
θ
s
h
,
θ
1
,
.
.
.
,
θ
T
(
L
^
1
(
θ
s
h
,
θ
1
)
,
.
.
.
,
L
^
T
(
θ
s
h
,
θ
T
)
)
T
\min\limits_{\theta^{sh},\theta^1,...,\theta^T}L(\theta^{sh},\theta^1,...,\theta^T)=\min\limits_{\theta^{sh},\theta^1,...,\theta^T}(\hat L^1(\theta^{sh},\theta^1),...,\hat L^T(\theta^{sh},\theta^T))^T
θsh,θ1,...,θTminL(θsh,θ1,...,θT)=θsh,θ1,...,θTmin(L^1(θsh,θ1),...,L^T(θsh,θT))T
多目标优化的目标是实现帕累托最优。
定义一(MTL的帕累托最优):
- (a)对于所有任务t都有 L ^ t ( θ s h , θ t ) < L ^ t ( θ ‾ s h , θ ‾ t ) \hat L^{t}(\theta^{sh},\theta^{t})<\hat L^{t}(\overline\theta^{sh},\overline \theta^{t}) L^t(θsh,θt)<L^t(θsh,θt),并且 L ( θ s h , θ 1 , . . . , θ T ) ≠ L ( θ ‾ s h , θ ‾ 1 , . . . , θ ‾ T ) L(\theta^{sh},\theta^1,...,\theta^T)\neq L(\overline\theta^{sh},\overline\theta^1,...,\overline\theta^T) L(θsh,θ1,...,θT)=L(θsh,θ1,...,θT),我们则称 θ \theta θ支配 θ ‾ \overline\theta θ
- (b)如果不存在 θ \theta θ支配 θ ∗ \theta^* θ∗,我们则称 θ ∗ \theta^* θ∗是帕累托最优
帕累托最优解集合叫做帕累托解集
P
θ
P_\theta
Pθ,图像叫做帕累托最优前沿
(
P
L
=
{
L
(
θ
)
}
θ
∈
P
θ
)
(P_L=\{L(\theta)\}_{\theta\in {P_\theta}})
(PL={L(θ)}θ∈Pθ)本文中,我们将重点放在基于梯度的多目标优化上,因为它与基于梯度的多任务学习直接相关。
在本节的其余部分,我们将在第3.1节中首先总结如何使用梯度下降执行多目标优化。 然后,我们在3.2节中建议一种实用的算法,用于在很大的参数空间上执行多目标优化。 最后,在3.3节中,我们提出了一种直接针对大容量深度网络设计的多目标优化的有效解决方案。 我们的方法可以扩展到非常大的模型和大量任务,而开销却可以忽略不计。
3.1 多梯度下降算法
multiple gradient descent algorithm:
与单目标一样,多目标优化问题也可以通过梯度下降法求解局部最优。 在本节中,我们总结了一种称为多重梯度下降算法multiple gradient descent algorithm(MGDA)的方法。MGDA利用了优化问题中非常重要的KKT条件,现在我们针对任务特定参数和共享参数说明KKT条件:
- 存在 α 1 , α 2 , . . . , α T ≥ 0 , ∑ t = 1 T α t = 1 \alpha^1,\alpha^2,...,\alpha^T\geq0,\sum\limits_{t=1}^T\alpha^t=1 α1,α2,...,αT≥0,t=1∑Tαt=1使得 ∑ t = 1 T α t ▽ θ s h L ^ t ( θ s h , θ t ) = 0 \sum\limits_{t=1}^T\alpha^t\triangledown_{\theta^{sh}}\hat L^t(\theta^{sh},\theta^t)=0 t=1∑Tαt▽θshL^t(θsh,θt)=0
- 对于所有任务 t , ▽ θ t L ^ t ( θ s h , θ t ) = 0 t,\triangledown_{\theta^t}\hat L^t(\theta^{sh},\theta^t)=0 t,▽θtL^t(θsh,θt)=0
满足这些条件的任何解决方案都称为帕累托固定点。 尽管每个帕累托最优点都是帕累托平稳的,但反之可能不成立。 考虑优化问题
min
α
1
,
α
2
,
.
.
.
,
α
T
{
∣
∣
∑
t
=
1
T
α
t
▽
θ
s
h
L
^
t
(
θ
s
h
,
θ
t
)
∣
∣
2
2
∣
∑
t
=
1
T
α
t
=
1
,
α
t
≥
0
∀
t
}
\min\limits_{\alpha^1,\alpha^2,...,\alpha^T}\{||\sum\limits_{t=1}^T\alpha^t\triangledown_{\theta^{sh}}\hat L^t(\theta^{sh},\theta^t)||_2^2|\sum\limits_{t=1}^T\alpha^t=1,\alpha^t\geq0 \forall t\}
α1,α2,...,αTmin{∣∣t=1∑Tαt▽θshL^t(θsh,θt)∣∣22∣t=1∑Tαt=1,αt≥0∀t}
Désidéri(2012)表明,该优化问题的结果为0则得出满足KKT条件的点;如果不为0则该解决方案给出了改善所有任务的下降方向。因此,最终的MTL算法将是针对特定任务参数的梯度下降,然后求解
- 1.对所有 θ t \theta^t θt做一般的gradient descent
- 2.解出上面的式子,对 θ s h \theta^{sh} θsh做 ∑ t = 1 T α t ▽ θ s h \sum\limits_{t=1}^T\alpha^t\triangledown_{\theta^{sh}} t=1∑Tαt▽θsh的gradient descent
我们将在第3.2节中讨论如何为任意模型求解优化问题,并在第3.3节中当基础模型是编码器/解码器时提出一种有效的解决方案。
3.2 解决优化问题
solving the optimization problem:
上述定义的优化问题等效于在输入点集的凸包中找到最小范数点。这个问题自然出现在计算几何中:它等效于在凸包中找到最接近给定查询点的点。它已被广泛研究,尽管已经提出了许多算法,但是由于它们所依据的假设不成立,因此它们不适用于我们的环境。计算几何学文献中提出的算法解决了在低维空间(通常为2或3维)中的大量点的凸包中找到最小范数点的问题。 在我们的设置中,点数是任务数,通常很少。 相反,维数是共享参数的数量,可以是数百万。 因此,我们使用基于凸优化的另一种方法,因为(3)是具有线性约束的凸二次问题。
在处理一般情况之前,让我们考虑两个任务的情况,优化问题可以被定义为
min
α
∈
[
0
,
1
]
)
∣
∣
α
▽
θ
s
h
L
^
1
(
θ
s
h
,
θ
1
)
+
(
1
−
α
)
▽
θ
s
h
L
^
2
(
θ
s
h
,
θ
2
)
∣
∣
2
2
\min_{\alpha\in[0,1])}||\alpha\triangledown_{\theta^{sh}}\hat L^1(\theta^{sh},\theta^1)+(1-\alpha)\triangledown_{\theta^{sh}}\hat L^2(\theta^{sh},\theta^2)||_2^2
minα∈[0,1])∣∣α▽θshL^1(θsh,θ1)+(1−α)▽θshL^2(θsh,θ2)∣∣22,它是
α
\alpha
α的一维二次函数,具有解析解:
α
^
=
[
(
▽
θ
s
h
L
^
2
(
θ
s
h
,
θ
2
)
−
▽
θ
s
h
L
^
1
(
θ
s
h
,
θ
1
)
)
T
▽
θ
s
h
L
^
2
(
θ
s
h
,
θ
2
)
∣
∣
▽
θ
s
h
L
^
1
(
θ
s
h
,
θ
1
)
−
▽
θ
s
h
L
^
2
(
θ
s
h
,
θ
2
)
∣
∣
2
2
]
+
,
1
T
\hat \alpha=[\frac{(\triangledown_{\theta^{sh}}\hat L^2(\theta^{sh},\theta^2)-\triangledown_{\theta^{sh}}\hat L^1(\theta^{sh},\theta^1))^T\triangledown_{\theta^{sh}}\hat L^2(\theta^{sh},\theta^2)}{||\triangledown_{\theta^{sh}}\hat L^1(\theta^{sh},\theta^1)-\triangledown_{\theta^{sh}}\hat L^2(\theta^{sh},\theta^2)||_2^2}]_{+,\mathop1\limits_T}
α^=[∣∣▽θshL^1(θsh,θ1)−▽θshL^2(θsh,θ2)∣∣22(▽θshL^2(θsh,θ2)−▽θshL^1(θsh,θ1))T▽θshL^2(θsh,θ2)]+,T1
[
⋅
]
[·]
[⋅]表示被裁剪到[0,1],例如
[
a
]
+
,
1
T
=
max
(
m
i
n
(
a
,
1
)
,
0
)
[a]_{+,\mathop1\limits_T}=\max(min(a,1),0)
[a]+,T1=max(min(a,1),0)我们在图中进一步可视化此解决方案。尽管仅当T = 2时才适用,但是由于可以通过解析来解决线搜索,因此可以有效地应用Frank-Wolfe算法(Jaggi,2013年)。 因此,我们使用Frank-Wolfe来解决约束优化问题,将(4)作为行搜索的子例程。 我们在算法2中给出了Frank-Wolfe求解器的所有更新方程式。
3.3 编码-解码结构的有效优化
efficient optimization for encoder-decoder architecture:
算法2中描述的MTL更新适用于使用基于梯度下降的优化的任何问题。 我们的实验还表明,Frank-Wolfe求解器非常有效且准确,因为它通常以适度的迭代次数收敛,而对训练时间的影响可以忽略不计。 但是我们描述的需要计算每个任务
▽
θ
s
h
L
^
t
(
θ
s
h
,
θ
t
)
\triangledown_{\theta^{sh}}\hat L^t(\theta^{sh},\theta^t)
▽θshL^t(θsh,θt),所以需要每个任务在共享参数上进行反向传播。因此梯度计算需要向前传播后T次反向传播。考虑到向后遍历的计算通常比向前遍历更昂贵的事实,这导致了训练时间的线性缩放,并且对于有多个任务的问题可能是禁止的。
现在,我们提出一种有效的方法,该方法可以优化目标的上限,并且只需要单次向后传递。 我们进一步表明,在实际假设下,优化此上限会产生帕累托最优解。我们提出的体系结构将共享表示函数(shared representation function)与特定任务的决策功能(specific-task decision functions)结合在一起。此类体系结构涵盖了大多数现有的深层MTL模型,可以通过将假设类约束为
f
t
(
x
;
θ
s
h
,
θ
t
)
=
(
f
t
(
⋅
;
θ
t
)
∘
g
(
⋅
;
θ
s
h
)
)
(
x
)
=
f
t
(
g
(
x
;
θ
s
h
)
;
θ
t
)
f^t(x;\theta^{sh},\theta^t)=(f^t(·;\theta^t)\circ g(·;\theta^{sh}))(x)=f^t(g(x;\theta^{sh});\theta^t)
ft(x;θsh,θt)=(ft(⋅;θt)∘g(⋅;θsh))(x)=ft(g(x;θsh);θt)
其中
g
g
g是所有任务共享的表示函数,
f
t
f^t
ft是将这种表示(representation)作为输入的特定任务的函数,如果我们将representation表示为
Z
=
(
z
1
,
.
.
.
,
z
N
)
,
z
i
=
g
(
x
i
;
θ
s
h
)
Z=(z_1,...,z_N),z_i=g(x_i;\theta{sh})
Z=(z1,...,zN),zi=g(xi;θsh),我们可以将上限作为链式规则的直接结果
∣
∣
∑
t
=
1
T
α
t
▽
θ
s
h
L
^
t
(
θ
s
h
,
θ
t
)
∣
∣
2
2
≤
∣
∣
∂
Z
∂
θ
s
h
∣
∣
2
2
∣
∣
∑
t
=
1
T
α
t
▽
Z
L
^
t
(
θ
s
h
,
θ
t
)
∣
∣
2
2
||\sum\limits_{t=1}^T\alpha^t\triangledown_{\theta^{sh}}\hat L^t(\theta^{sh},\theta^t)||_2^2\leq||\frac{\partial Z}{\partial \theta^{sh}}||_2^2||\sum\limits_{t=1}^T\alpha^t\triangledown_Z \hat L^t(\theta^{sh},\theta^t)||_2^2
∣∣t=1∑Tαt▽θshL^t(θsh,θt)∣∣22≤∣∣∂θsh∂Z∣∣22∣∣t=1∑Tαt▽ZL^t(θsh,θt)∣∣22
其中
∣
∣
∂
Z
∂
θ
s
h
∣
∣
2
||\frac{\partial Z}{\partial \theta^{sh}}||_2
∣∣∂θsh∂Z∣∣2是Z关于
θ
s
h
\theta^{sh}
θsh的雅可比矩阵范数。此上限的两个理想属性是(i)对于所有任务而言,
▽
Z
L
^
t
(
θ
s
h
,
θ
t
)
\triangledown_Z \hat L^t(\theta^{sh},\theta^t)
▽ZL^t(θsh,θt)可以在一次反向传播时被计算。(ii)
∣
∣
∂
Z
∂
θ
s
h
∣
∣
2
2
||\frac{\partial Z}{\partial \theta^{sh}}||_2^2
∣∣∂θsh∂Z∣∣22不是
α
1
,
.
.
.
,
α
T
\alpha^1,...,\alpha^T
α1,...,αT的一个函数,因此将其用作优化目标时可以将其删除。我们用刚得到的上限替换
∣
∣
∑
t
=
1
T
α
t
▽
θ
s
h
L
^
t
(
θ
s
h
,
θ
t
)
∣
∣
2
2
||\sum\limits_{t=1}^T\alpha^t\triangledown_{\theta^{sh}} \hat L^t(\theta^{sh},\theta^t)||_2^2
∣∣t=1∑Tαt▽θshL^t(θsh,θt)∣∣22,以获得近似优化问题,并删除
∣
∣
∂
Z
∂
θ
s
h
∣
∣
2
||\frac{\partial Z}{\partial \theta^{sh}}||_2
∣∣∂θsh∂Z∣∣2项,因为它不会影响优化。那么优化问题变成了:
min
α
1
,
.
.
.
,
α
T
{
∣
∣
∑
t
=
1
T
α
t
▽
Z
L
^
t
(
θ
s
h
,
θ
t
)
∣
∣
2
2
∣
∑
t
=
1
T
α
t
=
1
,
α
t
≥
0
∀
t
}
\min\limits_{\alpha^1,...,\alpha^T}\{||\sum\limits_{t=1}^T\alpha^t\triangledown_Z \hat L^t(\theta^{sh},\theta^t)||_2^2|\sum\limits_{t=1}^T\alpha^t=1,\alpha^t\geq0\forall t\}
α1,...,αTmin{∣∣t=1∑Tαt▽ZL^t(θsh,θt)∣∣22∣t=1∑Tαt=1,αt≥0∀t}
我们将此问题称为MGDA-UB(Multiple Gradient Descent Algorithm-Upper Bound)。 实际上,MGDA-UB对应于使用任务损失的梯度,而不是共享参数。 我们仅使用算法2,并将此更改作为最终方法。
尽管MGDA-UB是原始优化问题的近似值,但是我们现在陈述一个定理,该定理表明我们的方法在温和的假设下产生了帕累托最优解。 证明在补编中给出。
定理一:假设
∂
Z
∂
θ
s
h
\frac{\partial Z}{\partial\theta^{sh}}
∂θsh∂Z是满秩,如果
α
1
,
.
.
.
,
T
\alpha^{1,...,T}
α1,...,T是MGDA-UB的解,那么下面其中一个则是正确的:
- (a) ∑ t = 1 T α t ▽ Z L ^ t ( θ s h , θ t ) = 0 \sum\limits_{t=1}^T\alpha^t\triangledown_Z \hat L^t(\theta^{sh},\theta^t)=0 t=1∑Tαt▽ZL^t(θsh,θt)=0即为帕累托静止点
- (b) ∑ t = 1 T α t ▽ Z L ^ t ( θ s h , θ t ) \sum\limits_{t=1}^T\alpha^t\triangledown_Z \hat L^t(\theta^{sh},\theta^t) t=1∑Tαt▽ZL^t(θsh,θt)是降低所有目标的下降方向。
该结果来自以下事实:只要 ∂ Z ∂ θ s h \frac{\partial Z}{\partial\theta^{sh}} ∂θsh∂Z为满秩,则优化上限对应于使用b定义的Mahalonobis范数来最小化梯度的凸组合范数。
四、实验
experiments:
我们在许多问题上评估了提出的MTL方法。首先,我们使用MNIST的MTL改编版本MultiMNIST。接下来,我们处理CelebA数据集上的多标签分类,方法是将每个标签视为不同的二进制分类任务。这些问题包括分类和回归,任务数量从2到40不等。最后,我们在Cityscapes数据集上进行了场景理解,语义分割联合任务处理,实例分割和深度估计等任务。我们将在以下小节中分别讨论每个实验。
baseline为:
(i)均匀缩放:最小化损失函数的均匀加权总和
1
T
∑
t
L
t
\frac{1}{T}\sum_tL^t
T1∑tLt
(ii)单任务:独立解决每个任务
(iii)网格搜索:从
{
c
t
∈
[
0
,
1
]
∣
∑
t
c
t
=
1
}
\{c^t\in[0,1]|\sum_tc^t=1\}
{ct∈[0,1]∣∑tct=1}中尝试各种值优化
1
T
∑
t
c
t
L
t
\frac{1}{T}\sum_tc^tL^t
T1∑tctLt
(iv)使用Kendall等人提出的不确定性加权
(v)GradNorm:使用Chen等人提出的归一化方法
4.1 MultiMNIST
MultiMNIST:
我们的初始实验是在MNIST数据集的MTL版本MultiMNIST上进行的。为了将数字分类转换为多任务问题,Sabour等人将多个图像叠加在一起。 我们使用类似的构造。 对于每个图像,随机地均匀选择一个不同的图像。 然后,这些图像之一放在左上角,另一幅在右下角。 产生的任务是:对左上角的数字进行分类(任务L),对右下角的数字进行分类(任务R)。 我们使用6万个示例,并直接应用现有的单任务MNIST模型。 补充说明了MultiMNIST数据集。
我们使用LeNet架构(LeCun等,1998)。 我们将除最后一层以外的所有层都视为表示函数g,并将两个完全连接的层作为特定于任务的函数(有关详细信息,请参见补充资料)。 我们将性能概况可视化为下图中对Task-L和Task-R的准确性的散点图,并在下表中列出了结果。
在此设置中,与单独解决每个任务(单任务基线)相比,任何静态缩放都会导致较低的准确性。 这两项任务似乎在争夺模型能力,因为一项任务的准确性提高会导致另一项任务的准确性降低。 不确定度加权(Kendall等人,2018)和GradNorm(Chen等人,2018)发现的解决方案比网格搜索稍好,但明显比单任务基线差。 相比之下,我们的方法找到了一种可以有效利用模型容量并产生与单任务解决方案一样好的准确性的解决方案。 该实验证明了我们方法的有效性以及将MTL视为多目标优化的必要性。 即使经过大的超参数搜索,任务的任何缩放也无法达到我们方法的有效性。
4.2 多标签分类
multi-label classification:
接下来,我们处理多标签分类。给定一组属性,多标签分类要求确定每个属性是否都适合输入。我们使用CelebA数据集(Liu等人,2015b),该数据集包含200000张带有40个属性的人脸图像。每个属性都引起一个二进制分类任务,我们将其转换为40向MTL问题。我们使用没有最终层的ResNet-18(He等人,2016)作为共享表示函数,并为每个属性附加一个线性层(更多信息请参见补充资料)。我们将每个二进制分类任务的结果误差绘制为雷达图,如下图所示。下表列出了它们的平均值。由于在40个任务中不可行,因此我们跳过了网格搜索。尽管统一缩放是多标签分类文献中的标准,但单任务性能明显更好。对于大部分任务,我们的方法均优于基线,并且在静止状态下可达到相当的性能。该实验还表明,当任务数量很多时,我们的方法仍然有效。