当前位置: 首页 > 科技观察

单个ViT模型执行多模态多任务,Google使用协同训练策略实现多个SOTA

时间:2023-03-17 00:46:56 科技观察

Transformer。它真的是多才多艺的。Transformers是一个灵活的神经端到端模型系列,最初是为自然语言处理任务而设计的。最近,Transformers已应用于一系列感知任务,例如图像分类、视频和音频。尽管最近在不同的领域和任务上取得了进展,但当前的SOTA方法只能为手头的每个任务训练具有不同参数的单个模型。最近,来自谷歌研究院、剑桥大学和艾伦图灵研究所的几位研究人员在他们的论文《 PolyViT: Co-training Vision Transformers on Images, Videos and Audio 》中提出了一种简单高效的单一统一模型训练方法。他们将模型命名为PolyViT,它取得了Competitive或SOTA图像、视频和音频分类结果。通过设计,研究人员不仅为不同的模态使用通用架构,而且还跨不同的任务和模态共享模型参数,从而实现潜在的协同作用。从技术上讲,他们的方法受到这样一个事实的启发:转换器是可以在任何可以标记化的模式上运行的通用架构;直觉上,由于人类感知本质上是多模态的,并且由单个大脑执行。论文地址:https://arxiv.org/abs/2111.12993下图1是PolyViT的结构概览。研究人员使用的主要方法是协同训练,即同时在多个分类任务(可能跨多个模态)上训练单个模型。他们考虑了不同的设置,同时解决了多达9个不同的图像、视频和音频分类任务。如上面的图1所示,PolyViT模型能够执行多项任务,但对于给定的输入一次只能执行一项任务。虽然在计算机视觉和自然语言领域已经探索了类似的方法,但尚不清楚以前的工作是否考虑了多种模式并使用这种方法取得了SOTA结果。我们的联合培训设置简单实用。它不需要对协同训练数据集的每个组合进行超参数调整,因为我们可以轻松调整标准单任务训练的设置。此外,协同训练不会增加整体训练成本,因为训练步骤总数不会超过每个单任务基线的总和。在图像、音频和视频上共同训练ViTPolyViT架构PolyViT是一个能够处理来自多种模式的输入的单一架构。如上图1所示,研究人员在不同的任务和模态之间共享一个transformer编码器,因此参数会随着任务数量的增加而线性下降。请注意,具有L层的PolyViT在处理图像时表现得像具有L层的ViT,在处理音频时具有L层的AST,在处理视频时具有L层的未分解ViViT。虽然PolyViT能够处理多种模态,但在前向传递时,它只能基于一种模态执行一项任务。PolyViT部署特定于模态的类标记,即输入嵌入运算符和位置嵌入。这允许网络对特定于模态的信息进行编码,而这些信息又可以被后续的共享变压器骨干网利用。为了在增加模型容量的同时对大量任务和模态进行协同训练,研究人员可以选择合并L_adapt≥0模态特定的转换器层(它们表示模态适配器层),这些转换器层在标记化之后直接应用。在这种情况下,L_=shared=L?L_adapt层在所有模态和任务之间共享。联合训练程序在使用随机梯度下降(SGD)联合训练的所有任务中,我们同时优化所有PolyViT模型参数θ。因此,在决定如何构建训练批次、计算梯度以更新模型参数以及使用哪些训练超参数时,有许多设计选择。在所有情况下,研究人员都使用来自单个任务的示例来构建他们自己的训练小批量。这种设计选择允许他们评估梯度和更新参数,同时使用与传统单任务基线相同的训练超参数(例如学习率、批量大小和动量)。这样一来,相比于单任务基线,研究人员无需任何额外的超参数即可对多个任务进行协同训练,使得协同训练在实践中易于执行,并减少了执行大规模超参数扫描(sweep)的要求以达到有竞争力的准确性。在协同训练期间,对于每个SGD步骤,研究人员对任务(或数据集)进行采样,然后从该任务中采样小批量,评估梯度,然后执行参数更新。重要的考虑因素是任务的采样顺序以及是否在不同的小批量和任务上累积梯度。研究人员在下图2中描述了几种任务采样计划,包括以下内容:Task1:Task-by-taskTask2:AlternatingTask3:UniformtasksamplingTask4:WeightedtasksamplingTask5:AccumulatinggradientsExperiments研究人员训练了PolyViT同时处理图像、音频和视频模态的9种不同分类任务。对于图像分类协同训练,他们使用了ImageNet-1K、CIFAR-10/100、Oxford-IIITPets和RESISC45数据集;对于视频任务,他们使用了Kinetics400和MomentsinTime数据集;对于音频任务,他们使用了AudioSet和VGGSound数据集。下表6显示了具体的实验设置:下表1显示了不同任务采样计划对不同模态和任务中协同训练性能的影响。粗体表示准确率最高,下划线表示准确率第二高。其中,“Task-by-task”抽样方案表现不佳,仅在一项任务上取得了良好的表现,这是灾难性遗忘造成的。“累积”采样计划需要所有任务的单一学习率,因为所有任务的累积梯度用于执行参数更新。因此,该方案仅在图像数据集上表现良好。“交替”、“均匀”和“加权”采样方案表现最佳,表明特定任务的学习率和不同任务梯度更新之间的转换对于准确性至关重要。使用PolyViT进行协同训练下面的表2显示了用于解决图像、音频和视频三种模态的9个不同任务的模型训练方法,包括ViT-Im21KLinearprobe、Single-taskbaseline和PolyViT以及本文的变体。体(分别为PolyViTL_adapt=0和PolyViTLadapt=L/2)。结果表明,在单峰性上训练的PolyViT在9个数据集中的7个上实现了SOTA性能,在其余2个数据集上的精度差异可忽略不计,不超过0.3%。此外,与单任务基线相比,参数总数减少了2/3。同时,多模式PolyViT在使用大大减少的参数的同时也取得了有竞争力的性能。使用线性探针评估学习到的表示通过简单地为新任务添加和训练一个新的线性头,研究人员评估了PolyViT学习到的特征表示。下面的表3显示了在多种模态上训练的PolyViT如何学习跨模态特征表示,这些特征表示在三种模态的11项线性评估任务中表现良好:图像、音频和视频。同时,表3还展示了多种模式的协同训练如何有益于学习可用于多个下游任务的强大的、可迁移的特征表示。使用单峰协同训练实现SOTA性能受上表2中单峰协同训练性能的启发,研究人员使用这种方法对音频和视频分类任务进行了大规模协同训练实验。下面的表4和表5显示,他们在使用明显更少的参数的同时获得了SOTA结果。如下表4所示,对于音频分类,我们将PolyViT与当前的SOTA方法MBT(audio-only)和相关变体MBT:AS-500k→VGGSound和MBT:VGGSound→AS-500k进行比较。结果表明,PolyViT在两个数据集上都优于SOTA方法,同时使用MBT(仅音频)的大约一半参数。此外,PolyViT在较小的数据集VGGSound上的Top1准确度提高了2.8%。对于视频分类,研究人员在Kinetics-400、Kinetics-600和MomentsinTime数据集上联合训练了tubelet尺寸更小的PolyViT-Large模型,并与当前的SOTA模型ViViT(使用相同的初始化、骨干和令牌数量)进行了比较)进行了比较。结果显示在下面的表5中,表明PolyViT在所有三个数据集上都优于ViViT。