自适应计算(adaptive computation)是指ML统根据环境变化调整其行为的能力。


(相关资料图)

传统神经网络具有固定的功能和计算能力,即用相同数量的FLOP来处理不同的输入。

但具有自适应和动态计算的模型,根据输入的复杂性调节其专用于处理每个输入的计算预算。

神经网络中的自适应计算之所以吸引人,有两个关键原因。

首先,引入自适应的机制提供了一种归纳偏差,可以在解决一些具有挑战性的任务中发挥关键作用。

例如,为不同的输入启用不同数量的计算步骤对于解决需要对不同深度的层次结构进行建模的算术问题至关重要。

其次,它使从业者能够通过动态计算,提供的更大灵活性来调整推理成本。

来自谷歌团队发表的论文中,介绍了一种全新自适应计算的新模型——AdaTape。

论文地址:https://arxiv.org/pdf/2301.13195.pdf

最新模型是基于Transverter架构,用动态tape token和自适应Tape读取算法来生成输入序列,可提高图像识别任务的性能。

AdaTape使用自适应tape读取机制,来确定根据输入的复杂性,添加到每个输入中的不同数量的tape token。

AdaTape实现起来非常简单,在需要时提供了一个有效的knob来提高准确性。

与其他自适应基线相比,AdaTape也更高效,因为它直接将适应性注入输入序列而不是模型深度。

最后,Adatape在标准任务(如图像分类)以及算法任务上提供了更好的性能,同时保持良好的质量和成本权衡。

弹性输入序列的自适应计算

AdaTape使用自适应函数类型和动态计算预算。

具体来说,对于分词后的一批输入序列,AdaTape使用表示每个输入的向量来动态选择可变大小的tape token序列。

AdaTape使用称为「tape bank」的token库,来存储通过自适应tape读取机制与模型交互的所有候选tape token。

研究人员称,创建tape库的2种不同方法:输入驱动库和可学习库。

输入驱动库的总体思想,是从输入中提取一组token库,同时采用与原始模型分词器不同的方法,将原始输入映射到一系列输入token序列。

这使得动态、按需访问从使用不同图像分辨率获得的输入信息。

AdaTape整体架构

在某些情况下,由于不同抽象级别的分词化是不可能的,因此输入驱动的tape库是不可行的。

例如当很难进一步拆分图Transformer中的每个节点时。

为了解决这个问题,AdaTape提供了一种更通用的方法,通过使用一组可训练向量作为tape token来生成tape库。

这种方法被称为「可学习库」,可以被视为嵌入层,其中模型可以根据输入示例的复杂性动态检索token。

可学习库使AdaTape能够生成更灵活的tape库,使其能够根据每个输入示例的复杂性动态调整其计算预算。

例如,更复杂的示例从库中检索更多token,这使得模型不仅使用存储在库中的知识,而且花费更多的FLOP来处理它,因为输入现在更大了。

最后,选定的tape token被附加到原始输入,并馈送到以下Transformer层。

对于每个Transformer层,在所有输入和tape token上使用相同的多头注意力。

但是,使用了两种不同的前馈网络(FFN):一种用于来自原始输入的所有token,另一种用于所有tape token。

研究人员观察到,通过对输入和tape token使用单独前馈网络,质量略好一些。

归纳偏差

我们在奇偶校验上评估AdaTape,这对标准Transformer来说是一项非常具有挑战性的任务,以研究AdaTape中归纳偏差的影响。

对于奇偶校验任务,给定序列1、0和-1,模型必须预测序列中1的数量的均匀性或奇异性。

奇偶校验是周期性正则语言,但也许令人惊讶的是,这项任务是标准Transformer无法解决的。

对奇偶校验任务的评估

尽管在短而简单的序列上进行了评估,但标准Transformer和通用Transformer都无法执行奇偶校验任务,因为它们无法在模型中维护计数器。

然而,AdaTape的性能优于所有基线,因为它在其输入选择机制中结合了轻量级递归,提供了归纳偏差,可以隐式维护计数器,这在标准Transformer中是不可能的。

图像分类评估

就图像分类任务,研究人员在ImageNet-1K上从头开始训练AdaTape。

下图显示了AdaTape和基线方法的准确性,包括A-ViT和通用Transformer ViT(UViT和U2T)与其速度(以每秒每个代码处理的图像数量衡量)。

在质量和成本权衡方面,AdaTape的表现,比替代的自适应Transformer基线要好得多。

在效率方面,较大的AdaTape模型(就参数计数而言)比较小的基线更快。

通过在ImageNet上从头开始训练来评估AdaTape

这样的结果与之前的研究发现一致,即自适应模型深度架构不太适合许多加速器,如TPU。

对AdaTape行为研究

除了测试在奇偶校验任务和ImageNet-1K上的性能,研究人员还评估了AdaTape在JFT-300M验证集上,使用输入驱动库的token选择行为。

为了更好地理解模型的行为,将输入驱动库上的token选择结果可视化为热图,其中较浅的颜色意味着位置被更频繁地选择。

热图显示AdaTape更频繁地选择中心patch。

这同样符合先验知识,因为中心patch通常信息更丰富。

尤其是在自然图像数据集的上下文中,其中主要对象位于图像中间。

这一结果凸显了AdaTape的智能性,因为它可以有效地识别和优先考虑更多信息patch,以提高其性能。

可视化AdaTape-B/32(左)和AdaTape-B/16(右)的tape token选择热图

AdaTape的特点是,自适应tape读取机制产生的弹性序列长度。

这也引入了一种新的感应偏置,使AdaTape有潜力解决,对标准Transformer和现有自适应Transformer都具有挑战性的任务。

通过对图像识别基准进行综合实验,研究证明,当计算保持不变时,AdaTape优于标准和自适应Transformer。

作者介绍

尤洋目前是新加坡国立大学校长青年教授。

2021年4月,入选亚洲福布斯30岁以下精英榜。他曾获得了清华大学计算机系获得硕士学位,还获得了美国加利福尼亚大学伯克利分校计算机系获得博士学位。

推荐内容