掌桥专利:专业的专利平台
掌桥专利
首页

训练具有可变图块大小的大规模视觉变换器神经网络

文献发布时间:2024-04-18 20:00:50


训练具有可变图块大小的大规模视觉变换器神经网络

技术领域

本说明书涉及训练神经网络。

背景技术

神经网络是采用一层或多层非线性单元来针对接收输入预测输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作对于在网络中下一层——即下一个隐藏层或输出层——的输入。网络的每一层根据相应参数集的当前值从接收到的输入生成输出。

发明内容

本说明书描述了一种在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统训练视觉变换器神经网络(ViT)。ViT是一种神经网络,其处理包括图像的输入,即其处理图像的像素的强度值,以生成图像的输出,例如分类或回归输出,并且其包括一个或多个自注意力层和一个或多个输出层。

本说明书中描述的主题可以在特定实施例中实现,从而实现以下优点中的一个或多个。

一些神经网络,例如视觉变换器(ViT),通过将图像切片成图块(patch)来将图像转换为序列。这些图块的大小控制着速度/精度的权衡,较小的图块以更大的计算成本导致更高的精度,但改变图块大小通常需要重新训练模型。本说明书总体上描述了用于在神经网络的训练期间重复调整图像图块的图块大小的技术。这导致了单个经训练的神经网络,即具有单个权重集合的神经网络,其跨广泛的图块大小范围表现良好,使得有可能在部署时根据不同的计算预算来定制模型。

换句话说,本说明书描述了对ViT的架构、训练或两者的修改。所描述的修改包括改变训练过程的每个步骤的图像图块生成方案,并允许系统预先训练ViT神经网络,然后该网络在具有可调准确度和计算成本的各种下游任务中的任何任务上实现最先进的性能。特别地,当在训练过程期间采用可变图像图块生成方案时,部署的ViT可以跨一范围的图像图块大小来操作,并充当用于特定下游任务的微调的模型的骨干。

本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。本主题的其他特征、方面和优点将从说明书、附图和权利要求中变得显而易见。

附图说明

图1是具有可变图像图块生成系统的示例神经网络训练系统的图。

图2示出了通过经训练的ViT对单个图像的处理。

图3是利用可变图像图块生成系统训练ViT的过程的流程图。

图4示出了通过可变图块生成系统对图像的处理。

图5示出了通过具有可变图块大小的图像图块嵌入系统对图像图块的处理。

图6描绘了用可变图块大小训练的ViT以高精度处理多个图块大小的能力。

图7演示了与在固定图像图块大小上训练的ViT的精度相比,在多个图像图块大小上训练的ViT的精度。

不同附图中相同的附图标记和名称指示相同的元件。

具体实施方式

本说明书描述了一种在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统训练视觉变换器神经网络(ViT)。

图1是示例神经网络训练系统100的示意图。神经网络训练系统100是在一个或多个位置的一个或多个计算机上实现为计算机程序的系统的示例,其中,可以实现下面描述的系统、组件和技术。

神经网络训练系统100被配置为训练视觉变换器(ViT)神经网络110。

ViT 110被配置为处理输入图像以生成针对输入图像的输出。

ViT 110包含图像图块嵌入系统160,该系统处理来自输入图像的多个图像图块以生成在多个位置中的每个位置处包括相应输入元素(“图块嵌入”)的输入序列。每个图块是输入图像内的相应空间区域。

通常,输入序列包括与多个图像图块中的每个图像图块相对应的相应输入元素。

在一些实施方式中,对于每个图像图块,与图像图块相对应的相应输入元素是根据图像中像素的强度值的嵌入和其在图像内的相应位置的嵌入(“位置嵌入”)的组合而生成的。位置嵌入是经学习的嵌入,其包含关于图块相对于图像中其他图块位于的位置的信息。

下面参考图5更详细地描述关于图像图块嵌入系统的进一步细节。

ViT 110通过多个自注意力神经网络块处理输入序列,以生成输出序列,该输出序列包括在每个位置处的相应输出元素,即,对于输入序列中的每个输入元素的相应输出元素。这些块被称为“自注意力”神经网络块,因为每个块包括一个或多个自注意力层130,作为更新输入序列的一部分,每个自注意力层对(如由块所接收的)输入序列中的元素应用自注意力机制。

VIT 110然后使用一个或多个输出层140来处理输出元素中的一个或更多个,以生成用于图像的输出,例如,用于不同任务的分类输出或不同输出。

换句话说,ViT 100的输出可以采取若干形式。分类输出通常包括与多个类别中的每个类别相对应的相应分数。类别的分数指示图像属于该类别的可能性。在一些情况下,类别可以是对象的类(例如,狗、猫、人等),并且如果图像描绘了包括在与该类别相对应的对象类中的对象,则该图像可以属于该类别。在一些情况下,类别可以表示全局图像属性(例如,图像是描绘白天还是晚上的场景,或者图像是描绘夏天还是冬天的场景),并且如果图像具有与该类别相对应的全局属性,则该图像可以属于该类别。

下面将更详细地描述ViT的示例配置。

为了训练ViT 110,系统100获得第一训练数据120。

第一训练数据120包括多个训练图像和每个训练图像的相应目标输出。例如,目标输出可以是来自标准监督学习过程的真实值图像标签。作为另一示例,目标输出可以是用于训练图像的更大的、预先训练的“教师”神经网络的输出。例如,预先训练的神经网络可以是具有比ViT 110更多的参数的ViT。

然后,系统100在第一训练数据120上例如通过监督学习训练ViT神经网络110,以最小化适当的分类损失,例如,包括给定训练图像的目标分类输出和由ViT 110为给定训练图像生成的分类输出之间的交叉熵损失的损失函数,以及可选地包括一个或多个正则化项。

在该训练之后,系统100可以使用经训练的ViT 110来对新的输入图像执行分类任务,或者提供指定用于执行分类任务的经训练的ViT110的数据。

可替代地或附加地,系统100可以在不同的下游任务上,例如在不同的分类任务上或在回归任务上,即在下游任务的训练数据上,与另一输出层集合联合训练包括自注意力块130的下游神经网络。

作为特定示例,神经网络训练系统100可以配置包括自注意力块和另一输出层集合的下游神经网络,以生成分类输出。分类输出可以包括与多个类别中的每个类别相对应的相应分数,其中,多个类别不同于初始训练中使用的那些类别。这被称为在与特定下游任务相关的新数据上微调预先训练的ViT 110,该特定下游任务可能已经存在于或可能尚未存在于初始训练数据中。

原始任务和下游任务可以是各种计算机视觉任务中的任何一个。

例如,原始任务、下游任务或两者都可以是分类任务,即,其中网络输出可以是分类输出的任务。分类输出通常包括与多个类别中的每个类别相对应的相应分数。类别的分数指示图像属于该类别的可能性。在一些情况下,类别可以是对象的类(例如,狗、猫、人等),并且如果图像描绘了包括在与该类别相对应的对象类中的对象,则该图像可以属于该类别。在一些情况下,类别可以表示全局图像属性(例如,图像是描绘白天还是晚上的场景,或者图像是描绘夏天还是冬天的场景),并且如果图像具有与该类别相对应的全局属性,则该图像可以属于该类别。

作为另一示例,任务可以包括一个或多个对象检测任务。在对象检测任务中,由神经网络生成的输出识别输入图像中对象类型被描绘所在的位置,例如边界框或其他区域。

作为另一示例,任务可以包括一个或多个实例分割任务。在实例分割任务中,由神经网络生成的输出针对图像中属于特定对象类型的每个像素识别该像素所对应的对象实例。

作为另一示例,任务可以包括一个或多个语义分割任务。在语义分割任务中,由神经网络生成的输出针对图像中的每个像素识别该像素属于多个类别中的哪一个。

作为另一示例,任务可以包括一个或多个深度预测任务。在深度预测任务中,由神经网络生成的输出针对图像中的每个像素识别该像素处场景的预测深度。

作为另一示例,任务可以包括一个或多个表面法线预测任务。在表面法线预测任务中,由神经网络生成的输出针对图像中的每个像素识别该像素处场景的预测表面法线。

在一些实施方式中,对于由系统100执行的下游任务训练或原始训练,用文本处理神经网络来训练神经网络以执行需要处理文本和图像输入两者的多模式任务。也就是说,要为给定图像生成的目标输出取决于由文本处理神经网络为一个或多个对应的文本输入生成的一个或多个输出。这样的任务的示例包括开放词汇图像分类、开放词汇对象检测、图像说明文字、基于文本的图像搜索、基于图像的检索等等。

在该训练之后,系统100可以使用经训练的下游神经网络来对新的输入图像执行下游任务,或者提供指定用于执行分类任务的经训练的下游神经网络的数据。

作为输入提供给ViT 110的图像图块的大小控制ViT 110的精度和速度之间的折衷。较小的图块大小导致以更高的计算成本以更高精度执行的ViT 110。另一方面,当神经网络训练系统100使用较大的图块大小时,即,输入图像被切片为较大的子图像时,经训练的ViT 110以较低的精度以降低的计算成本执行。

在部署时,当模型用于进行预测或执行下游任务时,特定的下游应用可能需要比其他下游应用更高的分辨率(更小的图块大小)。特别地,一些下游任务,诸如对象检测,在一些环境中或对于检测一些对象类可能需要更高的分辨率(更小的图块大小)。对低分辨率图像(少量像素)或具有大的区分特征的一类对象执行对象检测的系统可能需要对应的低分辨率图像图块生成方案(较大的图块大小)来保持高精度。可替代地,对高分辨率图像(大量像素)或对具有小的区分特征的一类对象执行对象检测的系统可能需要对应的高分辨率图像图块生成方案(较小的图块大小)来捕获区分细节。当图块大小过大时,图块化过程可能会平均出将一个对象与另一个对象区分开来的小或细微特征。

作为另一示例,特定的下游应用可能需要比其他下游应用更高的计算效率(因此需要更大的图块大小)。

在部署时动态更改图块大小的能力提供了更大的灵活性来取决于特定的下游任务调整性能和计算成本。

然而,在训练期间使用固定图块大小的神经网络训练系统100对ViT 110进行训练,该ViT 110仅在接近为训练选择的固定图块大小的小图块大小范围内的部署中实现高精度。因此,使用固定图块大小的神经网络训练系统100对ViT 110进行训练,该ViT 110必须针对所有下游应用以相同的固定图块大小来部署,以保持最大精度。

在一些实施方式中,为了说明这一点,神经网络训练系统100被设计为通过使用可变图像图块生成系统150在训练期间生成图像图块。

可变图像图块生成系统150针对每个训练步骤从多个图像图块生成方案中选择图像图块生成方案,使得图块大小跨不同的训练步骤不同。

在给定输入图像的情况下,多个图像图块生成方案中的每个图像图块生成方案生成输入图像的不同数量的图块,其中,每个图块包括输入图像的像素的相应子集,即,是各种大小的像素的不重叠或重叠子集。

例如,多个图像图块生成方案可以将图像划分为具有对应步幅(stride)的图块,其中,对应步幅对于多个图像图块生成方案中的每个图像图块生成方案是不同的。

作为另一示例,多个图像图块生成方案中的每个图像图块生成方案都可以将图像划分为不重叠的图块,每个图块具有相同的大小,但是对于不同的方案,大小不同。

通常,可变图像图块生成系统150选择方案,使得在不同的训练步骤选择不同的方案,即,使得任何给定的训练步骤将具有与其他训练步骤的子集不同的方案。

作为使用可变图像图块生成系统150进行训练的结果,经训练的ViT 110保持最大精度,并且可以跨多个图块大小上有效地操作。

下面参考图4更详细地描述关于可变图像图块生成系统150的进一步细节。

图2是描绘通过ViT 110对图像202的处理的图。

首先,可变图像图块生成系统150处理图像,如图4所描绘。

可变图像图块生成系统150输出多个输出图像图块222a-n。

可变图像图块生成系统150将输出图像图块222a-n馈送到ViT110中。

图像图块嵌入系统160处理每个图像图块222a-n。

此外,图像图块嵌入系统160接受关于选择了哪个图像图块生成方案223的细节,诸如对应的图块大小,以便适当地调整嵌入参数的大小,如下面详细讨论的。ViT 110使用自注意力子网络240处理包括与输入图像图块222a-n相对应的多个嵌入232a-n的序列,以生成第一图像图块输出集合242a-n。如上所述,自注意力子网络240包括层块序列,每个层块将自注意力机制应用于(如由块所接收的)输入序列中的元素来作为更新输入序列的一部分。

ViT 110然后使用输出神经网络层140的序列来处理第一图像图块输出集合242a-n中的一个或多个,以生成分类输出262。可替代地或附加地,ViT可以产生取决于下游任务的期望输出的附加输出,例如,在训练期间使用的回归输出或辅助损失的输出。

图3是用于使用神经网络训练系统训练ViT的示例过程300的流程图。为了方便起见,过程300将被描述为由位于一个或多个位置的一个或更多个计算机的系统执行。例如,根据本说明书适当编程的神经网络训练系统,例如图1中描绘的神经网络培训系统100,可以执行过程300。该系统在多个训练步骤上训练ViT。

在多个训练步骤中的每个训练步骤期间,系统获得用于该训练步骤的多个训练图像和对应的目标输出302。

接下来,系统从多个可用的图像图块生成方案中选择图像图块生成方案304。

系统将所选择的图像图块生成方案应用于与训练步骤306相对应的多个图像,以针对每个训练图像生成多个图像图块。

对于每个图像,系统然后通过多个神经网络层来处理多个图像图块,所述神经网络层可以包括自注意力层和附加输出层。

然后,系统针对每个训练图像生成输出308,例如分类或回归输出,并测量相对于输入训练数据的目标输出的精度310。

系统计算对ViT的权重(“参数”)的调整,并相应地调整网络参数312。例如,系统可以计算关于损失函数的网络参数的梯度,该损失函数包括测量精度的一个或多个项,然后将优化器——例如Adam、AdamW、rmsProp、Adafactor等——应用于梯度以更新网络参数。

系统使用更新的参数进入下一个训练步骤,并继续调整神经网络的参数以最小化损失函数。

图4是描绘可变图像图块生成系统150如何在ViT 110处理图像之前处理图像的图。

神经网络训练系统100可以配置图像图块生成系统150以各种方式将图像图块生成方案应用于输入图像202。

特别地,系统150执行图像图块生成方案选择300以选择图像图块生成方案230。

传统上,系统100将针对每个训练步骤选择相同的图像图块生成方案230。该策略跨所有训练步骤生成具有固定大小的图像图块。这是培训ViT的标准手段。

相反,在一些实施方式中,针对每个训练步骤,系统150从预定义的允许方案的随机分布中对图像图块生成方案230进行采样。

在一些其他实施方式中,针对每个训练步骤,系统150从特定的非均匀概率分布对图像图块生成方案230进行采样。例如,系统150可以从具有预定义标准偏差和中心点的高斯概率分布中针对每个训练步骤对图像图块生成方案230进行采样,使得与朝向分布边缘的方案范围相比,更有可能选择分布中心的方案范围。

在一些其他实施方式中,针对每个训练步骤,系统150从随机选择的非均匀概率分布中对图像图块生成方案230进行采样。例如,针对每个训练步骤,系统150可以首先从允许的概率分布(即高斯、均匀随机或线性)集合中进行采样。然后,系统150可以从该训练步骤的所选择的概率分布中对图像图块选择方案230进行采样。

在一些其他实施方式中,针对每个训练步骤,系统150从概率分布中采样图像图块生成方案230,其中,概率分布是概率分布序列中的一个,每个概率分布与多个训练步骤的相应子集相关联。

在一些其他实施方式中,系统150可以使用针对每个训练步骤选择概率分布并从概率分布中采样以选择图像图块生成方案230的任何方式来选择图像图块产生方案230。

系统150将所选择的图像图块方案230应用于输入图像。可变图像图块生成方案150将图像图块222a-n连同关于所选择的图像图块方案223的细节一起发送到ViT 110,所述细节包括用于所选择的图像图块生成方案230的图像图块的数量。

可变图像图块生成系统150独立地、即顺序地或并行地处理多个输入图像112a-n。可变图像图块生成系统150针对每个输入图像112a-n生成s个图块122a-n的序列。每个序列中的图像图块的数量取决于由所选择的图像图块生成方案230定义的图块大小。在一些实施方式中,每个图像图块序列122a-n中的图像图块的数量可以写为

其中,h是输入图像112a-n的高度,w是输入图像112a-n的宽度,并且p是与所选择的图像图块生成方案230相对应的图块大小。输入图像112a-n的高度和宽度通常是均匀的,但是在一些实施方式中,可变图像图块生成系统150可以被配置为在具有单个图像图块生成方案230的训练步骤中采用归一化策略来跨所有非均匀图像112a-n创建图块122a-n序列。可变图像图块生成系统150将图像图块122a-n发送到图像图块嵌入系统160。

图5示出了处理n个图像图块222a-n中的每个图块的图像图块嵌入系统160。

每个图像图块嵌入232a-n表示对应图像图块222a-n的像素,并且可以通过处理对应图像图块222的像素来生成。在本说明书中,嵌入是表示特定嵌入空间中的输入的数值的有序集合。例如,嵌入可以是浮点向量或其他具有固定维度的数值。

在其中每个图像图块222a-n被表示为图像202的二维子图像的一些实施方式中,每个图像图块嵌入232a-n是对应图像图块222a-n的重塑版本。例如,图像图块嵌入系统160可以“平面化(flatten)”每个图像图块222a-n以生成图像图块嵌入232a-n,该图像图块嵌入232a-n是包括图像图块222a-n中的每个像素的一维张量。作为特定示例,如果每个图像图块222a-n具有维度L×W×C,其中,C表示图像的通道数(例如,对于RGB图像,C=3),则图像图块嵌入系统160可以生成具有维度1×(L·W·C)的图像图块嵌入232a-n。

在一些其他实施方式中,图像图块嵌入系统160可以处理包括图像图块222a-n的像素的一维张量(例如,图像图块222a-n的平面化版本),以生成对应的图像图块嵌入232a-n。如下面更详细描述的,图像图块嵌入232a-n将由ViT 110处理,ViT 110已通过训练被配置为接受具有例如特定大小和形状的特定格式的输入。因此,图像图块嵌入系统160可以将每个图像图块222a-n投影到具有由ViT 110所需的维度的坐标空间中。

例如,图像图块嵌入系统160可以使用线性投影来处理每个图像图块222a-n:

z

其中,

在一些实施方式中,图像图块嵌入系统160使用相应不同的投影矩阵E

在一些实施方式中,线性投影是机器学习的。例如,在ViT 110的训练期间,神经网络训练系统100可以同时更新线性投影的参数(例如,投影矩阵E

代替或补充用线性投影处理与图像图块222a-n相对应的一维张量,图像图块嵌入系统160可以使用嵌入神经网络来处理一维张量。例如,嵌入系统160可以被认为是ViT 110的组件。也就是说,嵌入系统160可以是ViT 110的嵌入子网络,该嵌入子网络包括一个或多个神经网络层,该一个或多个神经网络层被配置为处理一维张量并生成图像图块嵌入232a-n。

例如,嵌入神经网络可以包括一个或多个前馈神经网络层,其被配置为处理与图像图块222a-n相对应的一维张量。

作为另一示例,嵌入神经网络可以包括一个或多个自注意力神经网络层,其被配置为使用自注意力机制并发处理与相应图像图块222a-n相对应的每个一维张量。

作为另一示例,嵌入神经网络可以包括一个或多个卷积神经网络层,其被配置为使用卷积滤波器来处理图像图块222a-n。作为特定示例,如果图像图块222a-n被表示为二维图像,则图像图块嵌入系统160可以使用一个或多个卷积神经网络层来处理每个(未平面化的)图像图块222a-n,以生成图像图块222a-n的特征图。图像图块嵌入系统160然后可以使特征图平面化,并且如上所述使用线性投影来处理平面化的特征图,以生成对应的图像图块嵌入232a-n。

作为另一个特定示例,图像图块嵌入系统160可以使用一个或多个卷积神经网络层来处理整个图像202,以生成图像202的特征图。特征图可以是二维的(或者,像图像202一样,可以是二维的,其中,每个元素具有多个通道)。神经网络训练系统100然后可以确定图像202的特征图的n个图块,其中,每个图块包括特征图的一个或多个元素。也就是说,代替将图像202本身分割成图像图块222a-n,可变图像图块生成系统150可以分割由图像图块嵌入系统160的嵌入神经网络生成的图像202的特征图。作为特定的示例,每个图块可以包括特征图的单个元素。图像图块嵌入系统160然后可以例如通过如上所述将线性投影应用于特征图的图块从特征图的n个图块生成图像图块嵌入232a-n。

在图像图块嵌入系统160生成图像图块嵌入232a-n之后,神经网络训练系统100可以从图像图块嵌入232a-n生成要被提供为对于ViT110的输入的输入序列。通常,输入序列包括与相应图像图块嵌入232a-n相对应的一个或多个输入元素。例如,输入序列可以包括与n个图像图块嵌入232a-n中的每个图像图块嵌入相对应的相应输入元素。作为特定示例,与n个图像图块嵌入232a-n相对应的输入元素可以在输入序列中以对应的图像图块222a-n的光栅次序进行排序。

在一些实施方式中,与图像图块嵌入232a-n相对应的输入序列中的输入元素等于图像图块嵌入232a-n自身。

在一些其他实施方式中,为了生成与图像图块嵌入232a-n相对应的输入序列的输入元素,神经网络训练系统100可以组合(i)图像图块嵌入232a-n和(ii)位置嵌入,该位置嵌入表示图像图块222a-n在图像202内与图像图块嵌入232a-n相对应的位置。例如,神经网络训练系统100可以将位置嵌入附加到图像图块嵌入232a-n。通过结合位置嵌入,神经网络训练系统100可以编码空间信息,例如,图像中每个图像图块的相对定位,这些空间信息可以由ViT 110充分利用以生成分类输出262。

在一些实施方式中,与图像202的每个图像图块222a-n相对应的位置嵌入是整数。例如,位于图像202左上角的第一图像图块可以具有位置嵌入“1”,紧邻第一图像图块右侧的第二图像图块可以具有位置嵌入“2”,依此类推。

在一些其他实施方式中,位置嵌入是机器学习的。例如,在ViT 110的训练期间,训练系统可以通过经由ViT 110向位置嵌入反向传播ViT110的训练误差来并发学习位置嵌入。在一些这样的实施方式中,训练系统可以针对每个图像图块生成相应不同的位置嵌入(例如,假设由神经网络训练系统100接收的每个图像202被分割成相同数量的图块)。

在一些其他实施方式中,训练系统可以通过针对图像202的两个维度学习沿着该维度的每个坐标的相应位置嵌入,将二维信息合并到位置嵌入中。例如,如果图像202被分割成图像图块222a-n的二维网格,则训练系统可以生成两个位置嵌入集合:第一集合包括沿网格的竖直轴的每个索引的相应位置嵌入,并且第二集合包括沿网格的水平轴的每个索引的相应嵌入。为了生成特定图像图块222a-n的位置嵌入,神经网络训练系统可以例如通过连结下述部分来组合:(i)与沿着竖直轴的特定图像图块222a-n的索引相对应的位置嵌入,以及(ii)与沿着水平轴的特定图像图块222a-n的索引相对应的位置嵌入。

在一些实施方式中,输入序列中的一个或多个输入元素不与图像202的任何图像图块222a-n相对应。例如,输入序列可以包括对于所有接收到的图像102相同的类嵌入。例如,类嵌入可以是具有与图像图块嵌入232a-n相同维度的张量。作为特定的示例,类嵌入可以是全部‘0’或全部‘1’的张量。

类嵌入可以插入到输入序列中的任何位置;例如,类嵌入可以是输入序列的第一个输入元素,或者输入序列的最后一个输入元素。

在一些实施方式中,类嵌入是机器学习的。例如,在ViT 110的训练期间,训练系统可以通过经由ViT 110向类嵌入反向传播ViT 110的训练误差来并发学习用于类嵌入的参数。

在其中与每个图像图块222a-n相对应的输入元素包括与图像图块222a-n相对应的位置嵌入的实施方式中,神经网络训练系统100也可以将位置嵌入附加到类嵌入,例如,机器学习的位置嵌入或预定的位置嵌入(例如全部‘0’或全部‘1’的位置嵌入)。

然而,将类嵌入添加到输入序列需要ViT 110处理更长的输入序列。在给定现代硬件的配置和ViT 110的大量参数的情况下,这可以增加ViT的存储器开销,例如,由于由现代机器学习加速器所需的词元(token)填充。

在一些实施方式中,为了去除该存储器开销,序列不包括类嵌入,即,输入序列中的每个元素与图像202的不同图块相对应,并且该序列不包括不与图块相对应的任何元素。

在生成输入序列之后,神经网络训练系统100将输入序列提供为对于ViT 110的输入。ViT 110可以处理输入序列以生成分类输出262。

如上所述,神经网络训练系统100配置图像图块嵌入系统160以接受具有在训练步骤之间变化的图块大小的图像图块222a-n。

因此,图像图块嵌入系统160包括图像图块嵌入大小调整器231,其适应于与从可变图像图块生成系统150选择的图像图块生成方案223相对应的可变图块大小。

在一些实施方式中,图块和位置嵌入参数取决于输入图像图块122a-n的维度。因此,图像图块嵌入系统160根据与所选择的图像图块生成方案223相对应的图像图块122a-n的维度来调整对应参数的大小。

图像图块嵌入大小调整器231可以使用多种数值技术来根据与所选择的图像图块生成方案232相对应的图像图块122a-n的维度来调整嵌入参数的大小。

特别地,嵌入系统保存跨图块大小和训练步骤共享的原始图像图块嵌入参数(“权重”)集合和位置嵌入参数(“权重”)集合。在每个训练步骤,大小调整器231调整共享的图块嵌入参数集合和位置嵌入参数集合的大小,以匹配已经针对训练步骤选择的图像图块生成方案223。

因此,在训练之后或对于具有固定图块大小的下游训练,大小调整器231可以调整经训练的位置嵌入参数和图像图块嵌入参数的共享集合的大小,以匹配固定图块大小。

在一些实施方式中,图块嵌入大小调整器231使用线性大小调整变换,该变换可以由线性变换表示:

其中,

其中,

在图块大小减小p

因此,对于增加图块大小和减小图块大小这两种情况,图块嵌入大小调整器231实现伪逆调整大小变换。伪逆调整大小变换的表达式可以写成:

其中,

图块嵌入系统160调整位置嵌入的大小以匹配所选择的图块生成方案223的参数。当图块大小改变时,共享的位置嵌入可能不与每个图块的正确位置相对应,因为每个训练步骤的图块数量不同。当所选择的图块生成方案223改变时,图块嵌入系统160可以调整位置嵌入以反映新的图块大小。

在一些实施方式中,图块嵌入系统160调整在所有可能的图块生成方案中共享的共享位置嵌入的大小。图块嵌入系统160执行插值过程,例如双线性插值,以缩放共享的位置嵌入,以反映图像图块相对于其他图像图块生成方案的准确位置。此外,图像图块嵌入系统160可以将图像的调整大小的图块嵌入与内插位置嵌入——该内插位置嵌入与图像内的图像图块的位置相对应——相组合来作为自注意力神经网络130的输入。通过组合位置嵌入和图块嵌入,图块内像素的特征和图块在图像中的位置两者都被编码在输入聚合嵌入中。

在一些实施方式中,在系统100训练ViT 110之后,系统100或不同的神经网络训练系统训练所得到的预先训练的ViT 110以执行下游任务。因此,训练系统可以利用用于预先训练的ViT 110的相同图块生成方案或与用于训练预先训练的ViT 110的图块生成方案不同的图块生成方案,利用特定于下游任务的训练输入来微调预先训练的神经网络。

例如,训练系统可以利用固定的图块大小来微调预先训练的ViT110。微调的神经网络跨多个图块大小表现出相同的性能,即使它是用固定的图块大小微调的。由于预先训练的ViT 110是用可变的图块大小来训练的,因此微调的神经网络跨多个图块大小保持其高性能。

在一些实施方式中,神经网络训练系统利用图像图块生成方案S1来预先训练ViT110。神经网络训练系统可以利用图像图块生成方案S2来微调预先训练的ViT 110。可以利用图像图块生成方案S3来部署特定于下游任务的预先训练ViT 110的微调实例。图像图块生成方案S1、S2、S3可以是也可以不是相同的、具有相同类型的(固定的或可变的)、或相关的。与其他图像图块生成方案相比,S1、S2和S3可以生成更多或更少的与相应的图像图块生成方案一致的图像图块。

图6示出了通过ViT 110从多个图像102中选择的单个图像的流程。神经网络训练系统100使用可变图像图块生成系统150来训练ViT110。图6演示了从多个可用的图像图块生成方案中选择的两个图像图块生成方案232的选择。图6演示了两个所选择的图像图块生成方案232,其中,一个所选择的图像图块生成方案232由四个图像图块组成,并且一个所选择图像图块生成方案232由9个图像图块组成。由四个图像图块组成的图像图块生成方案232在计算上更便宜,同时以更低的精度执行下游任务。由九个图像图块组成的图像图块生成方案232在计算上更昂贵,同时在下游任务上获得性能。在“图块化”过程之后,图6描绘了与图块大小无关的共享嵌入权重的大小调整。图像图块嵌入大小调整器231根据所选择的图像图块生成方案232中的图块数量来调整嵌入权重的大小。

图像图块嵌入系统160将调整大小的图像图块嵌入发送到使用可变图像图块生成系统150来训练的ViT 110。ViT 110不需要知道“图块化”过程的细节或者输入图像中有多少图块。用可变图像图块生成系统150来训练的ViT 110在多个图块大小上保持高度的准确性,如图6所描绘。

图7演示了与采样可变图块大小的神经网络训练系统100相比,对于使用采用固定图块大小的神经网络训练系统100训练的ViT 110模型的图块大小依赖性。当被部署时,预先训练的ViT 110可以选择处理输入图像的哪个图块大小。当被部署时,经过使用固定图块大小(ViT-B/16和ViT-B/30)来训练的预先训练的ViT 100递送与其训练图块大小(分别为16和30)匹配的峰值输出分类性能。可替代地,经过使用可变图块大小来训练的预先训练的ViT 100(FlexiVit-B)跨广泛的图块大小范围递送峰值输出分类性能。图块大小和性能的解耦是有利的,因为图块大小是用于控制部署的ViT 110神经网络的总体准确度和计算成本的方便杠杆。

本说明书总体上描述了用可变图块大小来训练的神经网络是ViT。然而,更一般地,所描述的用于在训练期间调整图块大小的技术可以在具有接收作为输入的图像图块集合的任何适当架构的任何神经网络的训练期间使用,即,而不是直接对整个输入图像进行操作。

本说明书结合系统和计算机程序组件使用术语“被配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使得系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。

本说明书中描述的主题和功能操作的实施例可以被实现在数字电子电路中、在有形地实施的计算机软件或固件中、在计算机硬件——包括本说明书中公开的结构及其结构等同物——中或在它们的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。可替代地或附加地,程序指令可以编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。

术语“数据处理装置”指代数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。所述装置也可以是或进一步包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,所述装置还可以选用地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

计算机程序——也称为程序、软件、软件应用、应用、模块、软件模块、脚本或代码——可以以任何形式的编程语言编写,该任何形式的编程语言包括编译或解释语言或者声明性或过程语言;并且该计算机程序可以以任何形式部署,包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据——例如,存储在标记语言文档中的一个或多个脚本——的文件的一部分中、在专用于所涉及的程序的单个文件中或者在多个协同文件——例如存储一个或多个模块、子程序或代码部分的文件——中。计算机程序可以被部署为在一个计算机上或在位于一个地点或跨多个地点分布并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由例如FPGA或ASIC的专用逻辑电路系统或专用逻辑电路系统和一个或多个编程计算机的组合来执行。

适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于实施或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路系统补充或并入专用逻辑电路系统中。通常,计算机还将包括一个或多个大容量存储设备,或可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备或两者都有,所述一个或多个大容量存储设备用于存储数据,例如是磁盘、磁光盘或光盘。但是,计算机不需要这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器,此处仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及,CD ROM和DVD-ROM盘。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备——例如,CRT(阴极射线管)或LCD(液晶显示器)监视器——和用户可以通过其向计算机提供输入的键盘以及指示设备——例如,鼠标或轨迹球——的计算机上实现。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过下述方式来与用户交互:向用户使用的设备发送文档和从用户使用的设备接收文档;例如,响应于从Web浏览器接收的请求将网页发送到用户设备上的Web浏览器。此外,计算机可以通过向个人设备——例如,运行消息收发应用的智能电话——发送文本消息或其他形式的消息并且从用户接收响应消息作为回报来与用户交互。

用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集部分,即推断、工作负载。

可以使用例如TensorFlow框架、Microsoft认知工具包框架、Apache Singa框架或Apache MXNet框架的机器学习框架来实现和部署机器学习模型。

本说明书中描述的主题的实施例可以实现在计算系统中,该计算系统包括诸如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有图形用户界面、Web浏览器或应用的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合,用户可以通过该图形用户界面、Web浏览器或应用与本说明书中描述的主题的实施方式交互。系统的组件可以通过任何形式或介质的数字数据通信——例如,通信网络——互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)——例如因特网。

计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将例如HTML页面的数据发送到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从用户接收用户输入的目的。可以在服务器处从所述设备接收在用户设备处生成的数据,例如,用户交互的结果。

虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对任何发明的范围或可以要求保护的范围的限制,而是解释为特定于特定发明的特定实施例的特征的描述。在分离的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分离地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变体。

类似地,虽然在附图中描绘了操作并且以特定次序在权利要求中叙述了操作,但是这不应该被理解为要求以所示的特定次序或按顺序次序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。

已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在权利要求中记载的动作可以以不同的次序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或顺序次序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。

相关技术
  • 一种联合多种注意力的最大化句法信息的作者归属方法
  • 一种句法信息感知的作者归属方法
技术分类

06120116544704