简介
越来越多的研究开始聚焦于多任务学习,End-to-End Multi-Task Learning with Attention一文中考虑了交通场景中的多任务学习,并且提出了不同具体任务的注意力模块机制。文中所提出的结构可以通过端到端的方式完成训练,易于实现且参数高效,是目前最先进的多任务学习方法,最重要的是文中给出了开源的代码,这一点对于很多初学者是非常重要的。https://github.com/lorenmt/mtan,通过多任务学习的方式具体完成了深度图像和语义分割图像的生成(已经在cityscapes上面进行了验证,同时展示了网络在更具挑战的室内场景效果)。
文中还分析了目前多任务学习存在的两个困难:
1)网络结构如何共享
多任务学习体系结构应该同时表达任务共享和任务特定的特性。通过这种方式,网络被鼓励学习一个通用的表示(以避免过度拟合),同时也提供了学习为每个任务量身定制的特性的能力(以避免欠拟合)。
2)损失函数(如何平衡任务)
一个多任务损失函数,它对每个任务的相对贡献进行加权,应该使所有任务的学习具有同等的重要性,而不是让更容易的任务占主导地位。手动调整损耗权值是繁琐的,最好是自动学习权值,或者设计一个对不同权值具有鲁棒性的网络
然而,大多数先前的MTL方法只关注这两个挑战中的一个,同时维护另一个的标准实现。在这篇论文中,我们介绍了一种统一的方法,通过设计一个新的网络(i)使任务共享和特定任务的特征能够自动学习,从而(ii)学习对损失加权方案选择的固有鲁棒性。
我们称之为多任务注意网络(MTAN)(见图1),它由单个共享网络组成,该网络学习一个包含所有任务的全局特征池。然后对于每个任务,在共享网络中,每个卷积块都应用了一个软注意掩码,而不是直接从共享特征池中学习。通过这种方式,每个注意力掩码自动确定各自任务的共享特性的重要性,允许以自监督的端到端的方式学习任务共享和特定于任务的特性。这种灵活性使得学习跨任务的泛化时可以学习到更有表现力的特性组合,同时还允许为每个单独的任务定制有区别的特性。此外,自动选择共享哪些特性以及哪些特性是特定于任务的,这使得高效架构的参数远远少于任务明确分离的多任务架构。
根据任务的类型,MTAN可以建立在任何前馈神经网络上。我们首先使用SegNet[1]对MTAN进行评估,SegNet[1]是一个编译码网络,用于对室外CityScapes数据集[4]进行语义分割和深度估计,然后再对更具挑战性的室内数据集NYUv2[21]进行表面法向预测。我们还在最近提出的Visual Decathlon Challenge[23]上测试了我们的方法,即使用不同的主干结构、宽剩余网络[31]来解决10个单独的图像分类任务。结果表明,MTAN优于多个基线,在多任务学习方面与最先进的方法具有竞争力,同时具有更高的参数效率,因此可以更优雅地扩展任务数量。此外,与基线相比,该方法对损失函数中加权方案的选择具有更强的鲁棒性。作为对鲁棒性评估的一部分,我们还提出了一种新的加权方案,即动态加权平均(Dynamic Weight Average, DWA),它通过考虑每个任务的损失变化率来调整任务的权重
结构设计
MTAN由两个部分组成:单个共享网络和K任务特定注意力网络。共享网络可以根据特定的任务进行设计,而每个特定任务的网络由一组注意力模块组成,这些注意力模块与共享网络相连接。每个注意力模块对共享网络的特定层应用一个软注意掩码,以学习特定于任务的特性。因此,注意力掩码可以看作是来自共享网络的特性选择器,它以端到端方式自动学习,而共享网络则跨所有任务学习一个紧凑的全局特性池。
图2显示了我们基于VGG-16[27]的网络的详细可视化,说明了SegNet的编码器的一半。解码器的一半然后是对称的VGG- 16。如图所示,每个注意模块学习一个软注意掩码,该掩码本身依赖于相应层共享网络中的特征。因此,共享网络中的特征和软注意掩模可以联合学习,从而在多个任务中最大化共享特征的泛化,同时通过注意掩模最大化特定任务的性能。
具体的实现原理及公式参考原文
大多数图像到图像的多任务学习体系结构是基于特定的前馈神经网络设计的,或在不同的网络体系结构上实现的,因此它们通常不能直接根据已发布的结果进行比较。我们的方法是通用的,可以应用于任何前馈神经网络,所以为了公平的比较,我们实现了5个不同的网络架构(2个单任务+ 3个多任务)基于SegNet[1],我们认为作为基线:
Single-Task, One Task: vanilla SegNet为单任务学习。
Single-Task,STAN:单任务注意力网络,我们直接应用我们提出的MTAN,而只执行一个任务。
Multi-Task, Split (Wide, Deep):标准的多任务学习,在最后一层进行拆分,对每个特定任务进行最终预测。我们引入了两个Split验证:宽的,在这里我们调整了卷积滤波器的数量;深的,在这里我们调整了卷积层的数量,直到Split拥有至少与MTAN相同的参数。
Multi-Task, Dense:与特定于任务的网络一起共享网络,其中每个特定于任务的网络接收来自共享网络的所有特性,没有任何注意力模块。
Multi-Task, Cross-Stitch: Cross-Stitch:网络[20],之前提出的自适应多任务学习方法,我们实现在SegNet。
动态权重平均
对于大多数多任务学习网络来说,如果不能在这些任务之间找到正确的平衡,就很难对多个任务进行训练,最近的一些方法试图解决这个问题[3,14]。为了在一系列加权方案中测试我们的方法,我们提出了一种简单而有效的自适应加权方法,称为动态加权平均(DWA)。受GradNorm[3]的启发,该模型通过考虑每个任务的损失变化率来计算任务的平均权重。但是,虽然GradNorm需要访问网络的内部梯度,我们的DWA方案只需要数字任务损失,因此它的实现要简单得多。
实验结果
Attention Masks as Feature Selectors
为了理解建议的注意力模块的作用,在图5中,我们可视化了使用基于CityScapes数据集的网络学习的第一层注意力掩模。我们可以清楚地看到这两个任务之间的注意掩码的区别,每个掩码作为一个功能选择器,屏蔽掉共享功能中没有信息的部分,并专注于对每个任务有用的部分。值得注意的是,深度掩码具有比语义掩码高得多的对比度,这表明虽然所有共享的特性通常都对语义任务有用,但深度任务从提取特定于任务的特性中获益更多
视觉十项全能挑战(多对多)
最后,我们评估了最近引入的视觉十项全能挑战的方法,包括10个独立的图像分类任务(多对多预测)。对该挑战的评估报告每个任务的准确性,并根据这些准确性为每个任务分配一个最大值为10,000(1,000)的累积分数。有关所使用的挑战设置、评估和数据集的完整详细信息,请访问http://www。robots.ox.ac。英国/ vgg /十项全能。表4(右)显示了挑战的在线测试集的结果。与之前的工作一致,我们使用了建立在宽幅残差网络[31]上的MTAN,深度为28,扩展系数为4,每个块的第一个卷积层的步长为2。我们使用批处理大小为100的模型进行训练,使用SGD的学习率为0.1,所有10个分类任务的权值衰减为5·10 5。我们每50个时代将学习率减半,共300个时代。然后,我们微调9个分类任务(除了ImageNet),以0.01的学习率直到收敛。结果表明,我们的方法超越了大多数基线,并与当前的技术水平相竞争,不需要复杂的规则化策略,如应用DropOut[28],按大小重新分组数据集,或根据需要对每个数据集进行自适应的权重衰减
结论
在这项工作中,我们提出了一种新的多任务学习方法——多任务注意网络(MTAN)。该网络体系结构由一个全局特性池和每个任务的任务特定注意模块组成,允许以端到端方式自动学习任务共享和任务特定的特性。NYUv2和城市风光与多个dense-prediction数据集实验任务,和视觉上的十项全能挑战与多个图像分类任务,表明,我们的方法优于或与其他方法具有竞争力,同时也表现出鲁棒性特定任务权重方案用于损失函数。由于我们的方法能够通过注意遮罩来共享权重,我们的方法实现了这种最先进的性能,同时也具有很高的参数效率。