论文题目:Multi-Task Learning Using Uncertainty to Weigh Losses
for Scene Geometry and Semantics
中文翻译:使用不确定性来衡量权重损失的多任务学习——用于几何和语义场景
代码链接:https://github.com/yaringal/multi-task-learning-example
摘要
只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜在信息,通过进行一定程度的共享不同任务之间的参数,可能会使原任务泛化更好,许多深度学习应用受益于多任务学习——多元回归和目标分类。在本篇论文中,我们观察到不同任务的损失之间的尺度差异非常大,我们不能直接将各个任务的损失相加作为整体的损失,这样会导致一个任务收敛的很快,其他的任务表现很差,一个简单的解决方案是,将损失简单相加替换为加权和,以使所有任务损失的尺度接近。但是,这引入了需要进行调节的超参数。而对这些加权值进行手工微调是一件很困难且昂贵的事情,会使得多任务学习在实践中让人望而却步。由此我们提出了一种新的确定每个任务加权值的方法——引入同方差的不确定性来确定 MTL 中损失的权重:在每个任务的损失函数中学习另一个噪声参数(noise parameter)。此方法可以接受多任务(可以是回归和分类),并统一所有损失的尺度。这样,我们就能像一开始那样,直接相加得到总损失了。
1. Introduction
多任务学习通过从共享的特征表达中学习多个目标来提高学习效率和预测精度,多任务学习现在已经应用在机器学习的方方面面——从计算机视觉到自然语言处理到语言识别。
我们在计算机视觉的环境理解中探索多任务学习,环境理解算法必须同时理解环境的几何和语义信息,这引入了一个有趣的多任务问题——环境理解涉及到不同单元和尺度的各种分类和回归任务的联合学习,视觉环境理解的多任务学习在系统中是非常重要的,因为在这样的系统中长时间的计算力投入是禁止的,比如机器人中。将所有的任务结合成一个模型可以减少计算力,并且允许这些系统实时运行。
之前同时学习多个任务的方法是简单使用损失的加权和,损失的加权值或是均匀的,或是需要手工微调,然而,我们证明了这样做的模型的表现强烈依赖于每个任务损失的加权值,而手工去微调这些加权值达到最优是很昂贵且困难的。我们观察到每个任务最佳权重依赖于一个衡量尺度——最后发现这个尺度就是任务噪声的幅度。
在这篇工作中,我们提出了一个原则性的方法——使用同方差不确定性来将多个任务损失结合来同时学习多个目标,我们将同方差不确定性看作和任务相关的加权值,同时展示了怎样得到一个原则性的多任务损失函数,它可以很好的平衡不同回归和分类损失,我们的方法可以学着去平衡这些加权值,与单独学习每个任务相比,产生了更加优越的性能。
具体来讲,我们展示了在学习环境几何和语义等三个任务中我们方法的表现。首先,我们学着去针对每个像素点对目标分类(称之为语义分割),其次,我们的模型执行实例分割,这是更难的任务——因为它不仅需要判断每个像素的类别,还需要判断这个像素点属于哪个目标。这比单独的目标检测也要难。最后,我们证明了使用语义标签和多任务深度学习可以提高几何和深度估计。
在现有文献中,经常使用单独的深度学习模型来学习深度回归、语义分割和实例分割来构建一个完整的系统。给一张单目的输入图片,我们的系统首先去做语义分割、实例分割和深度密集估计(如Figure 1所示)。而其他的视觉模型已经展示了多任务学习,我们展示了如何将几何和语义信息结合起来,将这些任务结合起来构成单个模型确保了在减少计算的同时完成单个任务的输出,最后,我们展示了多任务中的共享表达可以提高在不同指标上的性能,来使得模型更高效:
总的来说,本篇论文的主要贡献在于:
- 一个新颖且原则性的多任务损失使用同方差不确定性来同时学习不同数量和单元的各种分类和回归损失;
- 一个用来完成语义分割、实例分割和 depth regression;
- 展示了多任务学习中损失加权值得重要性,相比于单独训练每个模型,我们如何才能通过多任务学习获得更优越的表现;
2. Multi Task Learning with Homoscedastic Uncertainty
多任务学习涉及到优化到多个目标,是现在深度学习很流行的一个问题。原来将多个目标损失结合在一起的方法就是对单个任务的损失简单多一个加权和:
这是之前的工作中使用的主要方法,其中模型的表现力对于 w i w_{i} wi 特别敏感(如上面的Figure 2所示),这些加权超参数手工调参代价很高,因此发现一种便利的方法来学习最佳加权值是很迫切的。
更具体的讲,我们考虑一个网络来学习从输入图片中预测像素深度和语义类别。在Figure 2中每张图的边界表示分别在单个任务上训练的模型,曲线刻画了对于不同权重 w i w_{i} wi的表现,我们观察到在一些最佳加权值中,这种联合网络表现得比分别训练每个网络要好。Figure 2也展示了两个回归任务的相似结果:实例分割和深度回归。我们接下来展示了如何使用概率建模的想法来学习最佳任务权重。
3.1. 同方差不确定性(任务依赖型不确定性)
在贝叶斯建模中,有两种不同类型的不确定性可以建模。
- 认知不确定性是模型中常见的一种不确定性,通常由数据不足产生,可以通过增加训练数据来解释,认知不确定性测量的,是我们的input data是否存在于已经见过的数据的分布之中;
- 偶然不确定性捕捉到的是我们的数据不能解释的信息;
偶然不确定性可以再分为两个子类:
- 数据依赖型(不同方差)是一种依赖于输入数据的偶然不确定性,可以作为一个模型输出预测;
- 任务依赖性(相同方差)是不依赖于输入数据的偶然不确定性,它不是一个模型输入,对于所有输入数据来说都是常量,但是不同任务之间不同。因此被描述为任务依赖型不确定性;
在多任务设置中,我们展示了任务不确定性捕捉到了任务之间的相关置信度,反映了回归和分类任务的不确定性,它也依赖于任务的表征和衡量单元,我们提出了我们可以使用同方差不确定性作为多任务学习问题中加权损失的基础。
3.2. Multi-task likelihoods
在本节中,我们提出了基于最大化同方差高斯似然函数的多任务损失函数,我们令
f
W
(
x
)
f^{W}(x)
fW(x)作为输入x权重W的神经网络输出,我们定义了下面的概率模型,对于回归任务,我们讲我们的似然函数定义为高斯分布(均值为模型输出,方差为噪声):
加入了一个噪声因子
σ
\sigma
σ,对于分类任务我们经常用softmax函数压缩模型输出,并从结果概率向量中采样:
在有多个模型输出的情况下,我们经常多任务似然函数定义为:
模型输出为
y
1
,
y
2
.
.
.
y
K
y_{1},y_{2}...y_{K}
y1,y2...yK,
f
W
(
x
)
f^{W}(x)
fW(x)为我们充足的统计,其实就是将网络看作一个作用在输入上的函数f。
在最大化似然函数中,我们一般选择最大化对数似然函数,在回归问题中,举个例子,对数似然函数可以写为:
对于高斯似然,
σ
\sigma
σ是模型观察到的噪声参数——捕捉到了输出中有多少噪声,接着我们最大化和模型参数W和观察噪声参数
σ
\sigma
σ有关的对数似然函数。
让我们现在假设模型输出由两个向量
y
1
和
y
2
y_{1}和y_{2}
y1和y2组成,每一个都遵循高斯分布:
最大化似然函数(6)相当于最小化对数似然函数的相反数,于是我们要最小化的多目标输出模型为
£
(
W
,
σ
1
,
σ
2
)
\pounds (W,\sigma _{1},\sigma _{2})
£(W,σ1,σ2):
这里我们将
£
1
(
W
)
=
∣
∣
y
1
−
f
W
(
x
)
∣
∣
2
\pounds _{1}(W)=||y_{1}-f^{W}(x)||^{2}
£1(W)=∣∣y1−fW(x)∣∣2记为第一个输出变量的损失,
£
2
(
W
)
\pounds _{2}(W)
£2(W)类似。
我们通过最小化(7)式,来自适应地学习损失 £ 1 ( W ) 和 £ 2 ( W ) \pounds _{1}(W)和\pounds _{2}(W) £1(W)和£2(W)的相对权重 σ 1 和 σ 2 \sigma _{1}和\sigma _{2} σ1和σ2。当 变 量 y 1 变量y_{1} 变量y1的噪声参数 σ 1 \sigma _{1} σ1增加时意味着损失 £ 1 ( W ) \pounds _{1}(W) £1(W)的加权值降低了,另一方面,当噪声减少时,目标损失的相关权重增大了,同时通过(7)式中的最后一项来限制 σ 1 和 σ 2 \sigma _{1}和\sigma _{2} σ1和σ2,使得其不能太大,起了一个正则化的作用。这个地方我是这么想的,噪声参数大意味着输出变量的方差太大,结果不可靠,所以在目标损失中该损失的加权值应该减少。
这种结构可以简单扩展到多个回归输出中,然而,扩展到分类似然函数中更有趣,我们将噪声参数
σ
\sigma
σ作为一个缩放因子加入到(3)式中:
σ
\sigma
σ是一个正因子,这个可以看成是一个玻尔兹曼分布(输入被放缩了
σ
2
倍
\sigma ^{2}倍
σ2倍),这个因子可以是固定的,也可以学习得到,参数的幅度决定了离散分布的均匀性,这和不确定性有关,输出的对数似然可以被写为:
f c W f^{W}_{c} fcW可以看作是向量 f W f^{W} fW的第c个元素。
接下来,我们假设模型的多个输出由一个连续的输出
y
1
y_{1}
y1(回归值)和离散的输出
y
2
y_{2}
y2(分类值)组成,分别由高斯似然和softmax似然建模,就像之前定义一个联合损失
£
(
W
,
σ
1
,
σ
2
)
\pounds(W,\sigma _{1},\sigma _{2})
£(W,σ1,σ2),可以写成:
这里的
£
1
(
W
)
=
∣
∣
y
1
−
f
W
(
x
)
∣
∣
2
,
£
2
(
W
)
=
−
l
o
g
S
o
f
t
m
a
x
(
y
2
,
f
W
(
x
)
)
\pounds _{1}(W)=||y_{1}-f^{W}(x)||^{2},\pounds _{2}(W)=-logSoftmax(y_{2},f^{W}(x))
£1(W)=∣∣y1−fW(x)∣∣2,£2(W)=−logSoftmax(y2,fW(x)),这里观察到当
σ
2
\sigma _{2}
σ2趋向于1时,最后一项可以通过
1
σ
2
∑
c
′
e
x
p
(
1
σ
2
2
f
c
′
W
(
x
)
)
≈
e
x
p
(
f
c
′
W
(
x
)
)
1
σ
2
2
\frac{1}{\sigma _{2}}\sum _{c^{'}}exp(\frac{1}{\sigma ^{2}_{2}}f^{W}_{c^{'}}(x))\approx exp(f^{W}_{c^{'}}(x))^{\frac{1}{\sigma ^{2}_{2}}}
σ21∑c′exp(σ221fc′W(x))≈exp(fc′W(x))σ221来近似,这极大地简化了优化目标。
这种结构可以到连续和离散损失函数的任意结合,允许我们以一种原则性的方法学习每个损失的相关权重,这种损失可以平滑地区分,相关权重不会收敛到0。相反,使用(1)中简单地加权和会导致相关权重可能收敛到0。
在实践中,我们训练网络来预测对数方差 s : = l o g σ 2 s:=log\sigma ^{2} s:=logσ2,这是因为回归s比回归 σ 2 \sigma ^{2} σ2更稳定,这样也可以避免分母项为0,同时指数映射也允许来回归没有约束的缩放值,这里的exp(-s)被解析到正值,给了方差一个有效值。