CN118043818A - 用于处理来自多个模态的网络指标的基于自注意力的神经网络 - Google Patents
用于处理来自多个模态的网络指标的基于自注意力的神经网络 Download PDFInfo
- Publication number
- CN118043818A CN118043818A CN202280064882.0A CN202280064882A CN118043818A CN 118043818 A CN118043818 A CN 118043818A CN 202280064882 A CN202280064882 A CN 202280064882A CN 118043818 A CN118043818 A CN 118043818A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network
- input
- modality
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 230
- 238000012545 processing Methods 0.000 title claims description 37
- 238000012549 training Methods 0.000 claims abstract description 127
- 238000000034 method Methods 0.000 claims abstract description 96
- 230000008569 process Effects 0.000 claims description 71
- 238000010801 machine learning Methods 0.000 claims description 47
- 230000007246 mechanism Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 abstract description 15
- 239000013598 vector Substances 0.000 description 13
- 230000009471 action Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 206010027175 memory impairment Diseases 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013526 transfer learning Methods 0.000 description 2
- TVYLLZQTGLZFBW-ZBFHGGJFSA-N (R,R)-tramadol Chemical compound COC1=CC=CC([C@]2(O)[C@H](CCCC2)CN(C)C)=C1 TVYLLZQTGLZFBW-ZBFHGGJFSA-N 0.000 description 1
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 241000009334 Singa Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
- G06F40/44—Statistical methods, e.g. probability models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
用于执行和训练多模态多任务自注意力神经网络的方法、***和装置,包括编码在计算机存储介质上的计算机程序。
Description
相关申请的交叉引用
本申请要求2021年10月5日提交的美国临时申请No.63/252,593的优先权的权益,其全部内容通过引用并入本文。
技术领域
本说明书涉及使用神经网络处理输入。
背景技术
神经网络是采用一个或多个非线性单元层来预测接收到的输入的输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层(即,下一隐藏层或输出层)的输入。网络的每个层根据相应的参数集的当前值来从接收到的输入生成输出。
发明内容
本说明书描述了一种被实现为一个或多个位置中的一个或多个计算机上的计算机程序的***,该***使用多模态、多任务神经网络来针对接收到的网络输入生成网络输出。
也就是说,神经网络能够被用于针对来自多个不同模态的输入执行多个不同的机器学习任务。
具体地,神经网络包括在任务和模态之间共享的共享自注意力层集。神经网络还能够包括模态特定层、任务特定层或两者。
能够实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
使用本说明书中描述的技术,***能够训练并且执行单个神经网络,该单个神经网络被配置为使用自注意力处理对应于多个不同模态的相应的输入序列。通过使用对应于不同模态的机器学习任务来共同训练神经网络,与使用单个任务或单个模态训练神经网络相比,训练***能够在每个任务上实现更高的性能。
通过处理对应于不同模态的相应的输入,神经网络能够学习生成在多个域上一般化的输入的特征表示。作为特定示例,通过处理表示图像的输入,神经网络能够学习生成在处理表示音频数据的输入时也有用的特征表示。
针对不同模态训练相同的神经网络能够进一步提高训练的效率。例如,训练多个模态的神经网络所需的训练步骤的数量能够显著少于训练不同任务和模态的相应的神经网络所需的训练步骤的总数,使得训练神经网络所需的时间和计算成本小于训练多个相应的神经网络所需的时间和计算成本。
作为另一示例,与针对与每个模态相对应的每个任务训练单独的神经网络相比,训练单个神经网络需要学***板计算机)上,该边缘设备具有有限的计算和存储器资源,否则将使在边缘设备上部署n个不同的经训练的神经网络不可行。
与针对单个任务或模态训练的神经网络相比,被配置为处理来自多个模态的输入序列的神经网络能够在推理时间进一步具有改善的时间、存储器和/或计算效率。例如,在一些实施方式中,对于对应于任何给定任务和/或模态的输入序列,神经网络能够仅激活其网络参数的严格子集来处理输入序列。作为特定示例,如上所述,神经网络能够包括一个或多个任务特定的网络块和/或一个或多个模态特定的网络块。因此,神经网络能够对每个输入执行更少的计算,因为仅使用网络块的子集。这些效率增益在可能具有可用的有限计算资源的边缘设备上能够特别重要。
在本说明书中描述的一些实施方式中,***能够训练神经网络而不需要相对于单任务单模态神经网络的任何附加超参数调整,从而进一步提高训练效率。
如本说明书中所描述的,被配置为处理来自相应的模态(例如,包括一个或多个图像、视频和/或音频序列的输入)的输入的基于自注意力的神经网络能够需要更少的计算来实现与现有技术卷积神经网络相同的性能。也就是说,对于固定的计算预算,基于自注意力的神经网络表现优于卷积神经网络。这是因为应用自注意力通常比跨整个序列卷积核更高效,因为自注意力机制能够利用比卷积更少的计算来注意序列的不同区域。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了示例神经网络***。
图2是用于训练神经网络的示例过程的流程图。
图3图示了用于在多个任务上训练神经网络的不同方案。
图4是用于使用神经网络生成网络输出的示例过程的流程图。
各个附图中相同的附图标记和标号指示相同的元件。
具体实施方式
本说明书描述了被实现为一个或多个位置中的一个或多个计算机上的计算机程序的***,其能够使用基于自注意力的神经网络来执行多个不同的任务。
图1示出了示例神经网络***100。神经网络***100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的***的示例,其中能够实现下面描述的***、组件和技术。
该***100执行基于自注意力的神经网络,该基于自注意力的神经网络已经通过训练被配置为处理来自多个不同模态之一的网络输入并且生成表征网络输入的网络输出。
基于自注意力的神经网络是包括一个或多个自注意力神经网络层的神经网络。自注意力神经网络层接收层输入元素的序列作为输入,并且将注意力机制应用于层输入元素的序列以生成层输出元素的序列。具体地,对于每个输入元素,自注意力神经网络层使用从输入元素导出的一个或多个查询在层输入元素的序列上应用注意力机制以生成相应的输出元素。一些自注意力神经网络层是多头自注意力神经网络层。多头自注意力神经网络层并行地应用h个不同的注意力机制以生成输出元素的相应的序列,并且然后组合输出元素的多个序列以生成输出元素的最终序列。
下面更详细地描述自注意力机制。
基于自注意力的神经网络被配置为处理对应于多个模态中的每个模态的相应的网络输入102。
在本说明书中,“模态”表征能够通过其表示数据的模式,并且能够定义网络输入的分类,每个网络输入根据模式表示数据。
例如,多个模态能够包括“图像”模态,其中对应于图像模态的网络输入包括或表示一个或多个图像。
作为另一示例,多个模态能够包括“视频”模态,其中对应于视频模态的网络输入包括或表示一个或多个视频。
作为另一示例,多个模态能够包括“音频”模态,其中对应于音频模态的网络输入包括或表示一个或多个音频样本。
对于每种模态,基于自注意力的神经网络能够被配置为生成并处理对应于模态的输入序列,以执行对应于模态的一个或多个机器学习任务。
例如,对应于每个模态的一个或多个机器学习任务可以包括分类任务。
例如,在模态包括图像模态的情况下,***可以处理包括在对应于图像模态的网络输入中或由其表示的图像的像素,以生成对应于图像模态的输入序列。***可以处理输入序列以生成包括图像分类输出的预测网络输出,该图像分类输出包括对应于多个类别中的每个类别的相应的分数。
在模态包括视频模态的情况下,***可以处理包括在对应于视频模态的网络输入中的一个或多个图像帧的像素以生成对应于视频模态的输入序列。***可以处理输入序列以生成预测网络输出,该预测网络输出可以包括视频分类输出或视频帧分类输出。视频(或视频帧)分类输出可以包括对应于多个类别中的每个类别的相应的分数。
在模态包括音频模态的情况下,***可以处理包括在对应于音频模态的网络输入中的音频样本以生成对应于音频模态的输入序列。***可以处理输入序列以生成包括音频分类输出的预测网络输出,该音频分类输出包括对应于多个类别中的每个类别的相应的分数。
在一些示例中,模态包括图像模态、视频模态或音频模态中的一个,并且一个或多个机器学习任务包括该模态的分类任务。在一些示例中,模态包括图像模态、视频模态或音频模态中的两者,并且一个或多个机器学习任务包括这两种模态中的每一种模态的分类任务(例如,两种模态可以包括视频模态和音频模态)。作为另一特定示例,模态可以包括图像模态、视频模态和音频模态。在这种情况下,一个或多个机器学习任务可以包括图像分类任务、视频(或视频帧)分类任务和音频分类任务。
其他机器学习任务对于各种模态也是可能的。例如,对于表示一个或多个图像的输入序列,基于自注意力的神经网络能够处理输入序列以执行一个或多个图像处理机器学习任务。
下面进一步讨论示例机器学习任务。
基于自注意力的神经网络使用一个或多个共享神经网络层120来处理每个输入序列,而不管对应于输入序列的模态或机器学习任务。
共享神经网络层120包括一个或多个自注意力神经网络层。例如,基于自注意力的神经网络能够包括一系列自注意力网络块(也称为“Transformer层”),每个自注意力网络块包括一个或多个自注意力神经网络层,其中每个自注意力网络块的输入是序列中的前一块的输出。在图1的示例中,共享层120包括L个Transformer层的序列。
通常,基于自注意力的神经网络还包括一个或多个模态特定神经网络层,其被配置为仅处理与多个模态中的特定模态相对应的输入序列(或由基于自注意力的神经网络中的先前神经网络层生成的输入序列的中间表示)。
在一些实施方式中,基于自注意力的神经网络能够包括一个或多个任务特定神经网络层,其被配置为仅处理与多个模态中的特定模态的特定任务相对应的输入序列(或其中间表示)。
也就是说,神经网络能够包括共享层120、一个或多个模态特定层以及一个或多个任务特定层。
具体地,在自注意力网络块序列之前和/或之后并且对于多个模态中的每个模态,基于自注意力的神经网络能够包括一个或多个模态特定网络块,其包括模态的一个或多个模态特定神经网络层。
每个模态的模态特定网络块能够在基于自注意力的神经网络的架构中的相同位置处,使得当架构中的在前神经网络层生成对应于具有特定模态的输入序列的层输出时,基于自注意力的神经网络能够确定将层输出提供给对应于特定模态的模态特定网络块。然后,当模态特定网络块生成块输出时,基于自注意力的神经网络能够将块输出提供给相同的后续神经网络层,而与特定模态无关。
类似地,在自注意力网络块序列之前和/或之后并且对于与每个模态相对应的每个机器学习任务,自注意力神经网络能够包括一个或多个任务特定网络块,该一个或多个任务特定网络块包括用于任务的一个或多个任务特定神经网络层。每个模态的每个任务的任务特定网络块能够在基于自注意力的神经网络的架构中的相同位置处,如上所述。
作为特定示例,模态特定网络块能够包括被配置为生成和处理输入序列的输入网络块110,并且任务特定网络块能够是被配置为生成输入序列的网络输出的输出网络块130。
也就是说,神经网络能够包括每个模态的相应的输入网络块110(也称为“词元分析器(tokenizer)”),并且能够包括用于每个任务的相应的输出网络块130(也称为“任务头”)。
在一些这样的实施方式中,基于自注意力的神经网络的大多数网络参数跨模态共享,即,在共享神经网络层120中。作为特定示例,能够跨所有模态共享基于自注意力的神经网络的多于50%、多于60%、多于70%、多于80%或多于90%的网络参数。
可选地,神经网络还能够包括一个或多个模态特定自注意力层块,其接收由用于模态的词元分析器生成的序列作为输入,并且生成被第一共享自注意力块作为输入而消耗的输出。
因此,基于自注意力的神经网络能够显著受益于跨模态的共同训练,因为共享网络参数能够学习从对应于任何模态的网络输入中提取有意义的信息。
给定对应于特定模态的输入数据对象,基于自注意力的神经网络能够使用模态的词元分析器110生成输入序列112,并且然后使用共享神经网络层120处理输入序列112以生成输出序列122。
与要对输入数据对象执行的任务相对应的任务头130然后能够处理输出序列122以生成任务的输出。例如,每个任务头130能够包括一个或多个全连接层,其被配置为处理输出序列122,或者更具体地,处理输出序列122中的一个或多个嵌入,以生成任务的输出。
具体地,给定特定模态的输入数据对象,模态的词元分析器110能够通过确定输入数据对象的多个分块(patch)来生成输入序列112,其中每个分块包括数据对象的元素的不同子集。
例如,给定对应于图像模态的输入图像,基于自注意力的神经网络能够确定每个包括图像的像素的子集的相应的图像分块。
作为另一示例,给定与视频模态相对应的输入视频,基于自注意力的神经网络能够生成视频分块,每个视频分块包括:视频的一个或多个帧、视频的单个帧的像素的子集、或者包括来自视频的多个帧中的每个帧的像素子集的视频的时间片。
作为另一示例,给定对应于音频模态的输入音频样本,基于自注意力的神经网络可以能够每个包括音频样本的时间步长的子集的相应的音频块。
然后,词元分析器110能够处理输入数据对象的分块,以生成包括多个输入位置中的每一个处的相应的输入元素的输入序列。一个或多个输入位置中的每个输入位置能够对应于输入数据对象的相应的不同分块。
例如,词元分析器110能够针对数据对象的每个分块生成包括分块的元素的一维输入元素。作为特定示例,如果每个分块是具有维度L×W×C的图像分块,其中C表示图像的通道的数量(例如,对于RGB图像,C=3),则***能够在输入序列中生成具有维度1×(L·W·C)的输入元素。
作为另一示例,词元分析器110能够针对数据对象的每个分块生成如上所述的一维初始输入元素。然后,词元分析器110能够使用嵌入神经网络,该嵌入神经网络处理初始输入元素以生成初始输入元素的嵌入。例如,嵌入神经网络能够包括将初始输入投影到嵌入空间中的一个或多个前馈神经网络层。
在一些实施方式中,词元分析器110能够将初始输入元素的嵌入确定为输入序列112中的输入元素。
在一些其他实施方式中,词元分析器110能够将初始输入元素与初始输入元素的位置嵌入组合,以生成输入序列中的输入元素。位置嵌入表示对应于初始输入元素的分块的数据对象内的位置。在一些实施方式中,与数据对象的每个分块相对应的位置嵌入能够是整数。例如,输入图像的左上方的第一图像分块能够具有'1'的位置嵌入,紧邻第一图像分块的右侧的第二图像块具有'2'的位置嵌入,以此类推。在一些其他实施方式中,位置嵌入是机器学习的。例如,在基于自注意力的神经网络的训练期间,训练***能够通过经由基于自注意力的神经网络并且向位置嵌入反向传播基于自注意力的神经网络的误差来同时学习位置嵌入。
在一些实施方式中,输入序列112中的输入元素中的一个或多个不对应于数据对象的任何分块。作为特定示例,输入序列112能够包括一个机器学习输入元素(也称为“分类”词元);例如,输入序列的第一个输入元素和/或最后一个输入元素能够是机器学习输入元素。例如,在基于自注意力的神经网络的训练期间,训练***能够通过经由基于自注意力的神经网络并且向机器学习输入元件反向传播基于自注意力的神经网络的误差来同时学习一个或多个机器学习输入元件。在对应于相应的分块的输入元素包括位置嵌入的实施方式中,词元分析器110也能够将位置嵌入添加到机器学习输入元素,例如,机器学习位置嵌入或全零的位置嵌入。当输入序列112包括分类词元时,输出头能够处理与输出序列中的分类词元相对应的嵌入,以生成任务的输出。
在生成对应于相应的数据对象的输入序列112之后,基于自注意力的神经网络能够使用共享层120来处理输入序列112以生成输出序列112,并且然后使用与适当任务相对应的头130来处理输出序列122以生成表征任务的相应的数据对象的网络输出。
在图1的示例中,神经网络被配置为处理三种不同模态的输入:图像、音频和视频。更具体地,神经网络被配置为对图像执行任务1、任务2和任务3、对视频执行任务4和5以及对音频执行任务6和7。
然而,更一般地,神经网络能够被配置为执行与任何适当的模态集相对应的任何适当的机器学习任务集。
以下一些具体示例。
例如,机器学习任务中的至少一个可以是语音识别任务,其中神经网络被配置为处理音频波形的表示以生成表征与音频波形相对应的音素、字符或单词的序列的输出。
作为另一示例,机器学习任务中的至少一个可以是视频分析任务,其中神经网络被配置为处理视频帧序列以生成表征视频帧的输出,例如,通过表征视频帧是否描绘执行特定动作的人。
作为另一示例,机器学习任务中的至少一个可以是自然语言处理任务,其中神经网络被配置为处理文本的一部分以生成表征文本的该部分的输出,例如,通过将文本的该部分的翻译表征为不同的自然语言。
作为另一示例,机器学习任务中的至少一个可以是图像处理任务,其中神经网络被配置为处理包括图像的输入以生成对应的输出,例如分类输出、回归输出或其组合。
神经网络能够被配置为处理任何适当类型的图像,例如RGB图像、LIDAR图像(例如,点云)等。神经网络能够被配置为处理图像以执行任何适当的图像处理任务,例如分类任务、回归任务或其组合。
特别地,在本说明书中,处理图像是指处理图像的像素的强度值。
作为特定示例,神经网络能够被配置为生成包括与多个类别中的每个类别相对应的相应的分数的分类输出。类别的分数指示图像属于该类别的可能性。在一些情况下,类别可以是对象的分类(例如,狗、猫、人等),并且如果图像描绘了包括在与类别相对应的对象分类中的对象,则图像可以属于该类别。在一些情况下,类别可以表示全局图像属性(例如,图像描绘白天还是晚上的场景,或者图像描绘夏天还是冬天的场景),并且如果图像具有对应于类别的全局属性,则图像可以属于该类别。
作为另一特定示例,神经网络能够被配置为生成元素级分类输出(例如,RGB图像的像素级分类输出或LIDAR图像的点级分类输出),该元素级分类输出对于图像中的每个元素包括对应于多个类别中的每个类别的相应的分数。对于给定元素(例如,对于给定像素或点),类别的分数指示元素属于类别的可能性。在一些情况下,类别可以是对象的分类,并且如果元素是与类别相对应的对象分类中包括的对象的一部分,则元素可以属于该类别。也就是说,元素级分类输出可以是语义分割输出。
作为另一特定示例,神经网络能够被配置为生成回归输出,该回归输出估计表征图像的一个或多个连续变量(即,能够假设无限地许多可能的数值)。在特定示例中,回归输出可以估计包围图像中描绘的相应的对象的边界框的坐标。边界框的坐标可以由边界框的顶点的(x,y)坐标定义。
在一些实施方式中,神经网络能够被配置为处理多个图像,例如视频的多个帧。例如,神经网络能够接收作为视频的视频帧的多个图像,并且能够如上所述处理每个视频帧以生成表征视频帧的输出,例如,通过表征视频帧是否描绘执行特定动作的人。
在一些这样的实施方式中,神经网络在相应的不同时间点处理每个视频帧以生成表征视频帧的预测的每个视频帧的相应的网络输出。例如,神经网络能够生成预测视频帧的分类的网络输出。在一些此类实施方案中,神经网络组合对应于相应的视频帧的多个网络输出以生成表征视频的最终网络输出。例如,神经网络能够使用下游神经网络(例如,递归神经网络)来处理相应的网络输出。
在一些其他实施方式中,神经网络并行处理每个视频帧以生成表征视频的单个网络输出。作为特定示例,***能够针对每个视频帧生成输入序列中的一个或多个相应的输入元素。
在使用神经网络来执行一个或多个任务之前,***100或另一训练***在用于任务的训练数据上训练神经网络,即,使得神经网络能够有效地对来自多个不同模态的数据执行多个任务。
下面将参考图2和图3描述训练神经网络。
在训练之后,能够以任何适当的设置来部署基于自注意力的神经网络。
在一些实施方式中,当部署经训练的基于自注意力的神经网络时,基于自注意力的神经网络被配置为处理与针对其训练基于自注意力的神经网络的多个模态中的仅单个特定模态相对应的输入序列。例如,能够从基于自注意力的神经网络的架构中移除与其他模态相对应的模态特定网络块和/或与其他模态的相应的任务相对应的任务特定网络块,仅留下共享网络块以及可选地与特定模态相对应的模态特定网络块和任务特定网络块。在一些这样的实施方式中,所部署的基于自注意力的神经网络被配置为执行与针对其训练基于自注意力的神经网络的特定模态相对应的多个任务中的仅单个任务。
在一些其他实施方式中,所部署的基于自注意力的神经网络被配置为处理与多个模态中的每个模态相对应的相应的输入序列。也就是说,基于自注意力的神经网络能够被部署在例如数据中心中或边缘设备上的环境中,其中基于自注意力的神经网络将接收与每个模态相对应的相应的输入序列,并且能够执行与针对其训练基于自注意力的神经网络的模态相对应的一个或多个机器学习任务中的每个机器学习任务。
作为特定示例,在训练之后,客户端设备能够通过应用编程推断(API)(例如,基于web的API)与***100交互。具体地,客户端设备能够提交包括或标识要被分析的网络输入的API调用,并且***100能够响应于标识输入的网络输出的数据来提供。例如,***100可以将对象检测输出格式化为指定格式,例如,作为JavaScript对象表示法(JSON)文件或作为另一种类型的数据交换格式的文件,并且响应于API调用而提供文件。
图2是用于训练神经网络的示例过程200的流程图。为了方便起见,过程200将被描述为由位于一个或多个位置中的一个或多个计算机的***执行。例如,适当编程的神经网络***(例如,图1的神经网络***100)能够执行过程200。
***能够对不同批次的训练示例重复地执行过程200的迭代,以更新神经网络的参数,即,词元分析器、共享层和神经网络头的参数。
也就是说,在过程200的每次迭代,***例如通过从更大的训练数据集采样批次来获得一个或多个训练示例的批次,并且使用该一个或多个训练示例的批次来更新神经网络***的参数。
***能够继续执行过程200的迭代,直到已经满足用于神经网络的训练的终止标准,例如直到参数已经收敛,直到已经过去了阈值量的壁时钟时间,或者直到已经执行了过程200的阈值次数的迭代。
每个训练示例包括对应模态的训练输入和要对对应模态的输入执行的多个任务之一的目标输出。
在一些实施方式中,***选择批次,使得批次中的每个训练输入具有相同的模态,并且每个训练示例用于相同的任务。
在一些其他实施方式中,***选择批次,使得不同的示例能够用于多个任务中的不同任务。
下面参考图3描述用于从包括用于多个不同任务的训练示例的训练数据集中选择批次训练示例的示例技术。
在过程200的每次迭代,***针对批次中的每个训练示例执行步骤202-210。
***获得对应于特定模态并具有多个元素的网络输入(步骤202)。
***确定网络输入的多个分块(步骤204)。通常,每个分块包括网络输入的元素的不同子集。
***处理多个分块以生成具有在多个输入位置中的每一个处的相应的输入元素的输入序列,其中输入元素中的一些或全部对应于相应的不同分块(步骤206)。具体地,***能够使用神经网络的输入网络块(“词元分析器”)来处理分块以生成输入序列。
***使用神经网络处理输入序列,以针对与特定模态相对应的一个或多个机器学习任务中的至少一个生成相应的预测网络输出(步骤208)。
如上所述,神经网络具有一个或多个自注意力神经网络层,每个自注意力神经网络层被配置为将自注意力机制应用于输入序列或输入序列的中间表示。附加地,至少自注意力神经网络层的子集跨多个模态共享。例如,神经网络能够仅包括共享自注意力层块或一个或多个模态特定自注意力层块,之后是在所有模态之间共享的共享自注意力块集。
然后,***根据相应的预测网络输出中的误差确定对神经网络的多个参数的更新(步骤210)。
当任务需要分类输出时,错误能够是交叉熵损失或其他适当的分类损失。
当任务需要回归输出时,误差能够是均方差损失或其他适当的回归损失。
具体地,***能够针对批次中的每个训练示例计算误差相对于神经网络的参数的梯度,并且能够组合例如平均值或总和以确定组合梯度。然后,***能够将优化器应用于组合梯度和参数的当前值,以生成参数的更新值。
通常,对于任何给定输入,对于对应于输入的模态、共享网络块和对应于对输入执行的任务的分量,梯度将仅为非零。
换句话说,对于多个模态中的每个模态,训练***能够处理对应于模态的训练网络输入,以针对与模态相对应的一个或多个机器学习任务中的每个机器学习任务生成相应的预测网络输出。然后,训练***能够确定机器学习任务的相应的预测网络输出中的误差,并且例如使用反向传播和梯度下降、根据误差来确定对基于自注意力的神经网络的网络参数的更新。通常,对于给定的机器学习任务和给定模态,训练***仅确定对处理与给定任务和给定模态相对应的输入序列的网络参数的更新。例如,如果基于自注意力的神经网络包括每个模态的相应的模态特定网络块,则训练***能够仅确定对与输入序列的模态(以及跨所有模态共享的网络参数,例如,自注意力网络块的参数)相对应的模态特定网络块的参数的更新。
当确定对应于特定模态或特定任务的参数更新时,训练***能够标识对应于特定模态或特定任务的预定训练超参数集。例如,对于每个模态或对于每个任务,训练***能够标识相应的不同学习速率、预热步骤的数量、网络参数的初始化、训练步骤、动量、Adam超参数等。换句话说,贯穿基于自注意力的神经网络的训练,训练***能够根据训练***针对其正在处理训练网络输入的模态或任务来改变超参数。此外,***可能不需要执行超参数搜索以确定这些超参数的值,而是能够重新使用在训练对应的单任务神经网络时使用的超参数的值,即,在对应的单任务神经网络的训练之前作为超参数搜索的输出生成的超参数的值。
图3示出了用于从训练数据集中选择训练示例的批次的示例方案。
具体地,图3示出了用于在训练数据集包括以下三个任务的训练示例时选择训练示例的批次的示例方案:来自任务#1的三个批次的示例、来自任务#2的五个批次的示例以及来自任务#3的七个批次的示例。也就是说,训练数据集是由三个任务中的每个任务的单独训练数据集组成的“大”训练数据集。
在图3的示例中,每个任务对应于不同的模态。然而,在一些其他示例中,一个或多个模态能够具有多于一个对应的任务。
在上述过程200的每次迭代,***从较大的训练数据集中选择训练示例的批次,并且使用该批训次练神经网络,即,更新神经网络的参数。
***能够以各种方式中的任何一种从较大训练数据集中选择用于过程200的每次迭代的训练示例的批次。
在一些实施方式中,在训练期间,***能够根据从其生成批次的对应训练数据集的大小(即,每个任务的对应训练数据集的相应大小)来对批次进行采样。也就是说,***基于多个任务的对应训练数据集的大小来对批次进行采样。因此,***将针对具有更大量训练数据的任务更频繁地训练神经网络。
这在图3中被称为“逐任务”训练310。在逐任务训练中,***随机排序任务,并且然后继续根据该顺序在任务上训练神经网络。当在给定任务上训练神经网络时,***在进行到下一个任务之前(或者,对于顺序中的最后一个任务,终止训练)在所有批次的训练数据上训练神经网络。因此,在图3的示例中,***将在来自任务2的所有5个批次上、然后在来自任务1的所有3个批次上、以及然后在来自任务3的所有7个批次上训练神经网络。然而,这种训练的模式能够导致灾难性遗忘,其中较早的任务被“忘记”以有利于按顺序较晚的任务。
为了帮助防止这种灾难性遗忘,其另一示例在图3中被称为“加权任务采样”训练340。在该训练方案中,在每个训练步骤,针对每个任务,为该训练步骤选择的批次的可能性基于任务的训练数据中的批次的数量相对于所有任务的批次的总数。例如,可能性能够等于任务的批次的数量除以训练批次的总数。***能够以确保用于任何任务j的训练步骤的数量等于Uj/U的方式实现该方案,其中U是所有任务的批次的总数,并且Uj是任务j的批次的总数。例如,这能够通过随机地置换具有U个元素的阵列来完成,其中阵列包括每个任务j的Uj个元素。
在一些其他实施方式中,在训练期间,***针对多个任务中的每个任务确定对神经网络的多个参数的相同数量的更新。也就是说,***选择批次,使得神经网络针对任务的教导在相同数量的批次上训练,而不管用于任务的训练数据集的大小。换句话说,在图3的示例中,当针对15次迭代训练时,***在每个任务的5个批次上训练,即使任务3具有比任务2和任务1更大的训练集。
该方案的一个示例被称为“交替”训练320。在交替训练中,***以固定的重复顺序在任务之间交替,使得用于每个任务的相同数量的批次被用于训练。
该方案的另一示例在图3中被称为“均匀任务采样”训练330。在该训练方案中,在每个训练步骤,针对该训练步骤选择的批次对应于任何给定任务的可能性对于所有任务是相同的,即,等于1除以任务的总数T。***能够通过用U元素随机置换阵列来实现该方案,其中阵列包括每个任务的U/T个元素。
在一些实施方式中,每个批次的训练示例包括对应于多个模态中的相应的不同模态的多个批次的网络输入。这在图3中被称为“累积梯度”方案350。也就是说,作为训练的一部分,在过程200的每次迭代,***使用对应于多个模态中的相应的不同模态的多个批次的网络输入来确定对神经网络的多个参数的单个更新。如图3所示,每个较大批次包括多个单独批次,即来自三个任务中的每一个的一个批次。因此,在训练结束时,因为存在执行5个训练迭代,所以已经在来自任务1的5个批次、来自任务2的5个批次和来自任务3的5个批次上训练了神经网络。
在一些实施方式中,在使用过程200训练神经网络之前,***使用一个或多个单个任务神经网络来初始化神经网络的参数的值。例如,***能够将共享自注意力块的参数的值初始化为等于已经在任务之一上训练的单个任务神经网络中的对应块的训练值。
如上所述,在训练之后,能够以各种方式中的任何一种部署神经网络。
在一些实施方式中,在训练之后,神经网络仅用于处理多个模态中的单个特定模态的输入。因此,在这些实施方式中,在如上所述训练神经网络之后,即,通过训练神经网络以处理与多个模态中的每个模态相对应的相应的输入序列,***能够通过修改架构来生成新的单模态神经网络。特别地,***能够移除对应于与特定模态不同的相应的模态的模态特定网络块。该***还移除与在与特定模态不同的相应的模态的输入上执行的任务相对应的任务特定网络块。
在这些实施方式中的一些实施方式中,在训练之后,神经网络被配置为执行对应于特定模态的多个机器学习任务。因此,作为新任务特定神经网络的一部分,***保持与对特定模态的输入执行的任务相对应的所有任务特定网络块。
在这些实施方式中的其他实施方式中,在训练之后,神经网络被配置为仅执行对应于特定模态的单个机器学习任务。在这些实现中,除了对应于单个机器学习任务的一个或多个任务之外,***移除所有任务专用网络块。
在其他实施方式中,在训练之后,神经网络仍然用于处理不同模态的不同输入,即,***将神经网络部署为多任务、多模态神经网络。
在任何上述实施方式中,在上述训练之后并且在部署神经网络之前,***能够在1)附加训练数据上微调神经网络,2)仅在训练之后使用神经网络的任务的训练数据,或3)两者。
图4是用于在训练之后使用多任务多模态神经网络生成新输入的网络输出的示例过程400的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的***执行。例如,适当编程的神经网络***(例如,图1的神经网络***100)能够执行过程400。
***接收对应于多个模态中的每个模态的相应的网络输入(步骤402)。在一些实施方式中,对于给定模态,***对所有接收到的输入并行地执行模态的所有任务。在一些其他实施方式中,***还接收指定针对每个网络输入要对网络输入执行哪个任务的数据。
***使用神经网络处理每个相应的网络输入,以针对网络输入中的每个网络输入生成相应的网络输出。
具体地,对于每个网络输入,***确定网络输入的多个分块(步骤404),并且使用如上所述的对应模态的词元分析器处理该分块以生成输入序列(步骤406)。然后,***使用神经网络处理输入序列,以针对与对应于网络输入的模态相对应的一个或多个机器学习任务中的至少一个生成相应的预测网络输出(步骤408)。也就是说,如果***接收指定针对每个网络输入要对网络输入执行哪个任务的数据,则***仅生成(多个)指定任务的输出。如果不是,则对于每个网络输入,***生成对应于网络输入的模态的每个任务的输出。
如本说明书中使用的“嵌入”是具有预定维度(例如,具有预定数量的值)的数值的向量,例如浮点或其他类型的数值。
如上所述,自注意力块是包括注意力机制的神经网络层,该注意力机制在自注意力块输入(或从层输入导出的输入)上操作以生成自注意力块输出。自注意力机制可以被有原因地掩蔽,使得输入序列中的任何给定位置在输入序列中的给定位置之后不参加(例如,使用来自)任何位置的数据。存在许多不同的可能的注意力机制。包括注意力机制的自注意力层的一些示例以下各项中描述:Vaswani等,“Attention is all you need(你需要的就是注意力)”,31st Conference on Neural Information Processing Systems(NIPS2017),Long Beach,CA,USA;Colin Raffel,Noam Shapeer,Adam Roberts,KatherineLee,Sharan Narang,Michael Matena,Yanqi Zhou,Wei Li和Peter J Liu,Exploring thelimits of transfer learning with a unified text-to-text transformer(用统一的文本到文本transformer来探索转移学习的限制),arXiv preprint arXiv:1910.10683,2019;Daniel Adifingana,Minh-Thang Luong,David R.So,Jamie Hall,Noah Fieedel,Romal Thoppilan,Zi Yang,Apoorv Kulshrehtha,Gaurav Nemade、Yifeng Lu和QuocV.Le,Towards a human-like open-domain chatbot(面向类人开放域聊天机器人),CoRR,abs/2001.09977,2020;以及Tom B Brown,Benjamin Mann,Nick Ryder,Melanie Subbiah,Jared Kaplan,Prafula Dhariwal,Arvind Neelkantan,Pranav Shyam,Grish Sastry,Amanda Askell等,Language models are few-shot learners(语言模型是小样本学习者)arXivpreprint arXiv:2005.14165,2020。
通常,注意力机制将查询和键值对集合映射到输出,其中查询、键和值都是向量。输出被计算为值的加权和,其中分配给每个值的权重由具有对应键的查询的兼容性函数(例如点积或缩放点积)计算。
通常,自注意力机制被配置为将相同序列中的不同位置相关联以确定序列的变换版本作为输出。例如,注意力层输入可以包括输入序列的每个元素的向量。这些向量向自注意力机制提供输入,并且被自注意力机制用于确定注意力层输出的相同序列的新表示,其类似地包括输入序列的每个元素的向量。自注意力机制的输出可以被用作注意力层输出,或者可以由前馈层、跳跃连接或归一化操作中的一个或多个来处理以提供注意力层输出。
在一些实施方式中,注意力机制被配置为将例如由矩阵WQ定义的查询变换、例如由矩阵WK定义的键变换、以及例如由矩阵WV定义的值变换中的每一个应用于作为对注意力层的输入数据X的注意力层输入,以导出包括输入序列中的每个向量的相应的查询的查询矩阵Q=XWQ、包括输入序列中的每个向量的相应的键的键矩阵K=XWK、以及包括输入序列中的每个向量的相应的值的值矩阵V=XWV,其被用于确定输出的注意序列。例如,注意力机制可以是这样的点积注意力机制:通过将每个查询向量应用于每个键向量以确定每个值向量的相应的权重,然后使用相应的权重组合值向量以确定输入序列的每个元素的自注意力层输出而应用的点积注意力机制。自注意力层输出可以通过缩放因子(例如,通过查询和键的维度的平方根)来缩放,以实现缩放点积注意力。因此,例如,注意力机制的输出可以被确定为V,其中d是键(和值)向量的维度。在另一实施方式中,注意力机制包括“加性注意力”机制,其使用具有隐藏层的前馈网络来计算兼容性函数。注意力机制的输出可以由一个或多个完全连接的前馈神经网络层进一步处理。
注意力机制可以实现多头注意力,即可以并行地应用多种不同的注意力机制。然后可以将这些的输出组合(例如,级联),其中所学习的线性变换应用于在必要时减小到原始维度。
本说明书使用与***和计算机程序组件有关的术语“被配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的***,***已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使***执行操作或动作。用于被配置为执行特定操作或动作的一个或多个计算机程序意味着一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行该操作或动作。
本说明书中描述的主题和功能操作的实施例能够在数字电子电路中、在有形地体现的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构及其结构等同物)中或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,被编码在有形非暂时性存储介质上以供数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机存取存储器设备或它们中的一个或多个的组合。替代地或附加地,程序指令能够被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,该传播信号被生成以对信息进行编码以传输到合适的接收器设备以供数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置还能够是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置能够可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
还可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序能够以任何形式的编程语言编写,包括编译或解释语言、或声明性或过程语言;并且其能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境中的其他单元。程序可以但不必对应于文件***中的文件。程序能够被存储在文件的一部分中,该文件保存其他程序或数据,例如,存储在标记语言文档中的一个或多个脚本、专用于所讨论的程序的单个文件中、或存储在多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序能够被部署为在一个计算机上或在位于一个站点处或分布在多个站点上并且通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广义地用于指代任何数据集合:数据不需要以任何特定方式结构化,或者根本不结构化,并且它能够被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广义地用于指代被编程为执行一个或多个特定功能的基于软件的***、子***或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,能够在同一计算机或计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程能够由一个或多个可编程计算机执行,其执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也能够由专用逻辑电路(例如,FPGA或ASIC)或由专用逻辑电路和一个或多个编程计算机的组合执行。
适合于执行计算机程序的计算机能够基于通用或专用微处理器或两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或将数据传送到用于存储数据的一个或多个大容量存储设备或两者,一个或多个大容量存储设备例如是磁性、磁光盘或光盘。然而,计算机不需要具有这样的设备。此外,计算机能够被嵌入另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或便携式存储设备,例如通用串行总线(USB)快闪驱动器,仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例能够在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,以及用户能够通过其向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。其他类型的设备也能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档和从该设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户设备上的web浏览器。此外,计算机能够通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且从用户返回响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还能够包括例如用于处理机器学习训练或生产的公共和计算密集型部分(即,推理、工作负载)的专用硬件加速器单元。
能够使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例能够在计算***中实现,该计算***包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有图形用户界面的客户端计算机、网络浏览器或用户能够通过其与本说明书中描述的主题的实施方式交互的应用,或者一个或多个这种后端组件、中间件组件或前端组件的任何组合。***的组件能够通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算***能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器例如出于向与充当客户端的设备交互的用户显示数据和从用户接收用户输入的目的,向用户设备传输数据,例如HTML页面。能够在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
虽然本说明书包含许多具体实施方式细节,但是这些细节不应被解释为对任何发明的范围或所要求保护的范围的限制,而是应当被解释为对特定发明的特定实施例可能特定的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也能够在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也能够单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初被要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从组合中被去除,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中示出并在权利要求中以特定顺序描述了操作,但是这不应当被理解为要求以所示的特定顺序或以相继的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的分离不应被理解为在所有实施例中要求这种分离,并且应当理解,所描述的程序组件和***通常能够在单个软件产品中集成在一起或封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作能够以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定顺序或相继的顺序以实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (25)
1.一种训练神经网络以处理与多个模态中的每个模态相对应的相应的输入序列并且生成所述输入序列的相应的网络输出的方法,
其中,所述神经网络被配置为针对所述多个模态中的每个模态执行与所述模态相对应的一个或多个机器学习任务,
所述训练包括:
获取与特定模态相对应的并且包括多个元素的网络输入;
确定所述网络输入的多个分块,其中每个分块包括所述网络输入的所述元素的不同子集;
处理所述多个分块以生成包括多个输入位置中的每个输入位置处的相应的输入元素的输入序列,其中所述输入元素中的一些或全部对应于相应的不同分块;
使用所述神经网络处理所述输入序列,以针对与所述特定模态相对应的所述一个或多个机器学习任务中的至少一个机器学习任务生成相应的预测网络输出,
其中,所述神经网络包括一个或多个自注意力神经网络层,每个自注意力神经网络层被配置为将自注意力机制应用于所述输入序列或所述输入序列的中间表示,以及
其中,所述自注意力神经网络层的至少一个子集跨所述多个模态被共享;以及
根据所述相应的预测网络输出中的误差,确定对所述神经网络的多个参数的更新。
2.根据权利要求1所述的方法,其中,所述多个模态包括图像模态、视频模态或音频模态中的一个或多个。
3.根据权利要求1或2中任一项所述的方法,其中,使用所述神经网络处理所述输入序列以针对与所述特定模态相对应的所述一个或多个机器学习任务中的至少一个机器学习任务生成相应的预测网络输出包括:
使用与所述特定模态相对应的一个或多个模态特定网络块来处理所述输入序列,以生成所述输入序列的第一中间表示;
使用一个或多个共享网络块处理所述第一中间表示以生成所述输入序列的第二中间表示;以及
对于所述至少一个机器学习任务中的每个机器学习任务,使用相应的任务特定网络块来处理所述第二中间表示以为所述机器学习任务生成所述相应的预测网络输出。
4.根据权利要求1-3中任一项所述的方法,其中,确定对所述神经网络的多个参数的更新包括:
标识与所述特定模态或所述至少一个机器学习任务相对应的训练超参数集;以及
根据标识出的训练超参数集确定所述更新。
5.根据权利要求1-4中任一项所述的方法,其中,所述神经网络的所述多个参数的至少50%、至少60%、至少70%、至少80%或至少90%跨所述多个模态被共享。
6.根据权利要求1-5中任一项所述的方法,所述训练还包括使用多个批次的网络输入中的每个网络输入来确定对所述神经网络的所述多个参数的相应的更新,
其中,对于每个批次的网络输入,所述批次中的每个网络输入对应于所述多个模态中的相同模态。
7.根据权利要求6所述的方法,其中,对于每个批次的网络输入,所述批次中的每个网络输入对应于与所述批次的所述模态相对应的所述一个或多个机器学习任务中的相同机器学习任务。
8.根据权利要求6或7中任一项所述的方法,其中,所述训练包括对于所述多个模态中的每个模态确定对所述神经网络的所述多个参数的相同数量的更新。
9.根据权利要求6-9中任一项所述的方法,其中,所述训练包括:对于所述多个模态中的每个模态,对于与所述模态相对应的每个机器学习任务,确定对所述神经网络的所述多个参数的相同数量的更新。
10.根据权利要求6或7中任一项所述的方法,其中:
所述训练还包括针对与所述多个模态中的每个模态相对应的每个机器学习任务,从与所述机器学习任务相对应的训练数据集中生成一个或多个批次的网络输入;以及
在训练期间,根据从其生成批次的对应的训练数据集的大小对所述批次的网络输入进行采样。
11.根据权利要求1-10中任一项所述的方法,其中,所述训练还包括:使用与所述多个模态中的相应的不同模态相对应的多个批次的网络输入来确定对所述神经网络的所述多个参数的单个更新。
12.一种包括一个或多个计算机和一个或多个存储设备的***,所述一个或多个存储设备存储指令,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-11中任一项所述的方法。
13.一个或多个存储指令的非暂时性计算机存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-11中任一项所述的方法。
14.一种包括第一神经网络的***,所述第一神经网络被配置为处理与多个模态中的每个模态相对应的相应的输入序列并且生成所述输入序列的相应的网络输出,所述第一神经网络已经使用根据权利要求1-11中任一项所述的方法来训练。
15.一种包括第一神经网络的***,所述第一神经网络被配置为处理与所述多个模态中的单个特定模态相对应的输入序列并且生成所述输入序列的相应的输出,
所述第一神经网络已经通过执行包括以下各项的操作来训练:
使用根据权利要求1-11中任一项所述的方法训练第二神经网络以处理与所述多个模态中的每个模态相对应的相应的输入序列;以及
修改所述第二神经网络的架构以生成所述第一神经网络。
16.根据权利要求15所述的***,其中,修改所述第二神经网络的架构以生成所述第一神经网络包括移除对应于与所述特定模态不同的相应的模态的一个或多个模态特定网络块。
17.根据权利要求15或16中任一项所述的***,其中,所述第一神经网络被配置为执行与所述特定模态相对应的多个机器学习任务。
18.根据权利要求15或16中任一项所述的***,其中,所述第一神经网络被配置为执行与所述特定模态相对应的单个机器学习任务。
19.根据权利要求15-18中任一项所述的***,其中,修改所述第二神经网络的架构以生成所述第一神经网络包括移除与所述第一神经网络未被配置的相应的任务相对应的一个或多个任务特定网络块。
20.根据权利要求15-19中任一项所述的***,其中,修改所述第二神经网络的架构以生成所述第一神经网络包括:
修改所述第二神经网络的架构以生成初始第一神经网络;以及
对所述初始第一神经网络的多个参数进行微调以生成所述第一神经网络。
21.一种方法,包括根据权利要求14-20中任一项所述的***的操作。
22.一个或多个存储指令的非暂时性计算机存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求14-20中任一项所述的***的操作。
23.一种由一个或多个计算机执行的方法,所述方法包括:
接收与多个模态中的每个模态相对应的相应的网络输入,其中,每个网络输入包括相应的多个元素;以及
使用神经网络处理所述相应的网络输入以针对所述网络输入的每个网络输入生成相应的网络输出,
所述处理包括,对于每个网络输入:
确定所述网络输入的多个分块,其中每个分块包括所述网络输入的所述元素的不同子集;
处理所述多个分块以生成包括多个输入位置中的每个输入位置处的相应的输入元素的输入序列,其中所述输入元素中的一些或全部对应于相应的不同分块;以及
使用所述神经网络处理所述输入序列,以针对与对应于所述网络输入的模态相对应的一个或多个机器学习任务中的至少一个机器学习任务生成相应的预测网络输出,
其中,所述神经网络包括一个或多个自注意力神经网络层,每个自注意力神经网络层被配置为将自注意力机制应用于所述输入序列或所述输入序列的中间表示;以及
其中,所述自注意力神经网络层的至少一个子集跨所述多个模态被共享。
24.一种包括一个或多个计算机和一个或多个存储设备的***,所述一个或多个存储设备存储指令,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求23所述的方法。
25.一个或多个存储指令的非暂时性计算机存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求23所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163252593P | 2021-10-05 | 2021-10-05 | |
US63/252,593 | 2021-10-05 | ||
PCT/US2022/045805 WO2023059737A1 (en) | 2021-10-05 | 2022-10-05 | Self-attention based neural networks for processing network inputs from multiple modalities |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118043818A true CN118043818A (zh) | 2024-05-14 |
Family
ID=84245933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280064882.0A Pending CN118043818A (zh) | 2021-10-05 | 2022-10-05 | 用于处理来自多个模态的网络指标的基于自注意力的神经网络 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4392900A1 (zh) |
CN (1) | CN118043818A (zh) |
WO (1) | WO2023059737A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018047225A1 (ja) * | 2016-09-06 | 2018-03-15 | 三菱電機株式会社 | 学習装置、信号処理装置および学習方法 |
-
2022
- 2022-10-05 CN CN202280064882.0A patent/CN118043818A/zh active Pending
- 2022-10-05 WO PCT/US2022/045805 patent/WO2023059737A1/en active Application Filing
- 2022-10-05 EP EP22800447.9A patent/EP4392900A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023059737A1 (en) | 2023-04-13 |
EP4392900A1 (en) | 2024-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110268422B (zh) | 利用强化学习的设备布局优化 | |
US11568207B2 (en) | Learning observation representations by predicting the future in latent space | |
US11669744B2 (en) | Regularized neural network architecture search | |
EP3602409B1 (en) | Selecting actions using multi-modal inputs | |
CN111279362B (zh) | 胶囊神经网络 | |
EP3574454B1 (en) | Learning neural network structure | |
CN110799992B (zh) | 使用模拟和域适配以用于机器人控制 | |
EP3596663B1 (en) | Neural network system | |
CN110114784B (zh) | 递归环境预测器及其方法 | |
CN110476173B (zh) | 利用强化学习的分层设备放置 | |
EP3593293B1 (en) | Imagination-based agent neural networks | |
US11144782B2 (en) | Generating video frames using neural networks | |
US11636347B2 (en) | Action selection using interaction history graphs | |
JP7483751B2 (ja) | 教師なしデータ拡張を使用した機械学習モデルのトレーニング | |
CN113348472A (zh) | 具有软内核选择的卷积神经网络 | |
US20230107409A1 (en) | Ensembling mixture-of-experts neural networks | |
EP3446258B1 (en) | Model-free control for reinforcement learning agents | |
CN117121016A (zh) | 在低级基元上的粒度神经网络架构搜索 | |
CN118043818A (zh) | 用于处理来自多个模态的网络指标的基于自注意力的神经网络 | |
EP3948682A1 (en) | Connection weight learning for guided architecture evolution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |