尽管最近在深度学习方面取得了进展,但大多数方法仍然采用竖井式的解决方案,即为每个单独的任务训练一个单独的神经网络。然而,许多现实世界的问题需要同时解决许多任务。例如,一辆自动驾驶汽车应该能够检测场景中的所有物体,对其进行定位,估计其距离和轨迹等,以便在其周围环境中安全导航。类似地,用于商业应用的图像识别系统应该能够标记产品、检索类似的商品、提出个性化的建议等,以便为客户提供尽可能好的服务。这类问题促使研究人员建立多任务学习模型。多任务学习的核心思想是并行学习多个任务,同时共享学习到的表示。与单任务情况相比,多任务网络具有许多实际的优点,单任务情况下,每个单独的任务由自己的网络单独解决。首先,由于层的共享,产生的内存占用大大减少。其次,由于它们避免在共享层中重复计算特征,每个任务一次,它们显示出提高的推理速度。第三,如果相关的任务共享互补信息,或者作为一个正则化器,它们有可能提高性能。
在构建多任务学习模型时,我们面临着两个重要的挑战。首先,我们需要想出能够处理多个任务的神经网络架构。其次,我们需要为共同学习任务制定新的训练方案。特别是,由于我们并行地优化多个目标,一个或多个任务可能会开始主导权重更新过程,从而阻碍模型学习其他任务。在这份手稿中,我们在视觉场景理解的背景下钻研了这两个问题。我们提出了两种新的模型类型来解决体系结构问题。首先,我们探索了分支多任务网络,其中神经网络的更深层次逐渐成长为更具体的任务。我们介绍了一种有原则的方法来自动构建这样的分支多任务网络。构造过程将可以用一组相似特征来解决的任务组合在一起,同时在任务相似性和网络复杂性之间进行权衡。通过这种方式,我们的方法生成的模型可以在性能和计算资源量之间做出更好的权衡。
其次,我们提出了一种新的神经网络结构,用于联合处理多个密集的预测任务。其关键思想是从多个尺度上对其他任务的预测中提取有用信息,从而提高对每个任务的预测。包含多个尺度的动机是基于这样的观察:在某个尺度上具有高相似性的任务不能保证在其他尺度上保持这种行为,反之亦然。在密集标记的两个流行基准上进行的广泛实验表明,与之前的工作不同,我们的模型提供了多任务学习的全部潜力,即更小的内存占用,减少的计算数量,以及更好的性能w.r.t.单任务学习。此外,我们还考虑了多任务学习优化问题。我们首先分析几种平衡任务学习的现有技术。令人惊讶的是,我们发现了这些工作之间的一些差异。我们假设,这可能是由于多任务学习缺乏标准化的基准,不同的基准受益于特定的策略。基于这个结果,我们然后分离最有希望的元素,并提出一组启发式方法来平衡任务。启发式具有实际性质,并在不同的基准测试中产生更鲁棒的性能。
在最后一章中,我们从另一个角度来考虑场景理解的问题。文献中描述的许多模型都受益于有监督的预训练。在这种情况下,在转移到感兴趣的任务之前,模型首先在一个更大的带注释的数据集(如ImageNet)上进行预训练。这使得模型能够很好地执行,即使是在只有少量标记示例的数据集上。不幸的是,有监督的预训练依赖于带注释的数据集本身,这限制了它的适用性。为了解决这个问题,研究人员开始探索自监督学习方法。我们以对比学习为基础来回顾最近流行的作品。首先,我们展示了现有的方法,如MoCo可以在不同的数据集上获得稳健的结果,包括以场景为中心的数据、长尾数据和特定领域的数据。其次,我们通过增加额外的不变性来改进学习的表示。这一结果直接有利于许多下游任务,如语义分割、检测等。最后,我们证明了通过自监督学习所获得的改进也可以转化为多任务学习网络。综上所述,本文提出了几个重要的贡献,以改进多任务学习模型的视觉场景理解。创新集中在改进神经网络结构、优化过程和训练前方面。所有方法都经过了各种基准测试。该代码公开发布:https://github.com/SimonVandenhende。
https://www.zhuanzhi.ai/paper/cc8635c9982cce67062ee5d9154ca71e