CN116997939A - 使用专家混合来处理图像 - Google Patents
使用专家混合来处理图像 Download PDFInfo
- Publication number
- CN116997939A CN116997939A CN202280020920.2A CN202280020920A CN116997939A CN 116997939 A CN116997939 A CN 116997939A CN 202280020920 A CN202280020920 A CN 202280020920A CN 116997939 A CN116997939 A CN 116997939A
- Authority
- CN
- China
- Prior art keywords
- expert
- tile
- network
- module
- block
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 60
- 238000002156 mixing Methods 0.000 title description 2
- 238000013528 artificial neural network Methods 0.000 claims abstract description 194
- 238000000034 method Methods 0.000 claims abstract description 89
- 230000008569 process Effects 0.000 claims description 73
- 238000012549 training Methods 0.000 claims description 37
- 230000004913 activation Effects 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 abstract description 17
- 238000010801 machine learning Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000002591 computed tomography Methods 0.000 description 2
- 238000002595 magnetic resonance imaging Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000009607 mammography Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002600 positron emission tomography Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 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
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000002604 ultrasonography Methods 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/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- 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/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
用于生成关于图像的预测的方法、系统和设备,包括在计算机存储介质上编码的计算机程序。系统中的一个包括神经网络,该神经网络包括一个或多个网络块的序列,该一个或多个网络块各自被配置为执行操作,该操作包括:获得表示输入图像的中间表示的块输入;确定块输入或块输入的更新表示的多个片块,其中,每个片块包括块输入或块输入的更新表示的元素的不同子集;将每个片块指派给网络块的多个专家模块中的一个或多个相应的专家模块;对于多个片块中的每个片块,使用对应的专家模块来处理该片块以生成相应的模块输出;以及通过组合模块输出来生成块输出。
Description
相关申请的交叉引用
本申请根据美国法典第35卷第119条要求于2021年5月28日提交的美国临时申请序列号63/194,926的优先权,通过引用将其全部内容合并于此。
背景技术
本说明书涉及使用神经网络处理图像。
神经网络是一种机器学习模型,它采用一个或多个非线性单元的层来预测所接收的输入的输出。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一个层(即下一个隐藏层或输出层)的输入。网络的每个层根据参数的相应集合的当前值从接收的输入生成输出。
发明内容
本说明书描述在一个或多个位置的一个或多个计算机上被实施为计算机程序的系统,该系统被配置为使用神经网络处理图像以及生成表征该图像的网络输出。神经网络包括一个或多个网络块的序列,每个网络块被配置为处理包括图像或图像的中间表示的块输入并生成块输出。
网络块中的至少一个是专家网络块,专家网络块包括多个不同的专家模块的集合,每个专家模块被配置为处理块输入的元素的真子集。具体而言,专家网络块被配置为识别块输入的元素的多个“片块(patch)”,以及针对每个片块使用路由模块来处理该片块,以识别向其路由片块的专家模块的真子集。然后,针对路由到专家模块的每个片块,每个专家模块处理片块,以生成经路由的片块的相应专家模块输出。然后,专家网络块可以针对每个片块将由相应的专家模块响应于处理该片块而生成的对应专家模块输出组合,以生成相应的片块输出。然后,专家网络块可以将与块输入的每个片块对应的片块输出构组在一起,以生成块输出,其中片块输出在块输出中具有与在块输入中的对应片块所具有的彼此间的空间关系相同的彼此间的空间关系。
本说明书所述主题可以在特定实施例中实施,从而实现以下优点中的一个或多个。
一些现有系统使用“稠密”前馈神经网络(即,针对前馈神经网络的每个神经网络层,使用该神经网络层的每个网络参数来处理对该神经网络层的层输入的每个元素的前馈神经网络)来处理图像。对于被配置为处理高分辨率图像的大模型,这种稠密神经网络可能需要大量的时间和计算资源来处理单个图像。使用本说明书所述技术,系统可以通过基于网络输入选择性地激活神经网络参数的子集,使用前馈神经网络来处理图像,从而显著提高图像处理的时间和计算效率。此外,引入这种稀疏性可以允许前馈神经网络包括与先前可行的网络参数相比更多的网络参数,因为只使用参数的子集来处理任何给定的输入。
使用本说明书所述技术,系统可以实施包括具有这样的多个专家模块的专家网络块的神经网络—其中每个专家模块已经通过训练被配置为处理不同类型的图像(或不同类型的图像片块),从而允许模块“专门化(specialize)”并进一步提高神经网络的效率和性能。
如本说明书所述,被配置为处理图像的基于自注意力(self-attention)的神经网络可以需要更少的计算来实现与最先进的卷积神经网络相同的性能。换言之,对于固定的计算预算,基于自注意力的神经网络与被配置为在图像上执行相同机器学习任务的卷积神经网络相比表现更好(例如通过测试准确性、精度、召回率(recall)等加以度量)。这是因为,应用自注意力与跨整个图像卷积内核相比通常在计算上更有效率,因为自注意力机制能够通过与卷积相比更少的计算来关注图像的不同区域。
在以下的附图和描述中阐述本说明书的主题的一个或多个实施例的细节。根据该描述、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1A是被配置为生成关于图像的预测的示例神经网络的示意图。
图1B是包括多个专家模块的示例神经网络块的示意图。
图2示出被分割成图像片块的示例图像。
图3是用于执行包括多个专家模块的网络块的示例过程的流程图。
在各附图中相似的附图标记和名称表示相似的元件。
具体实施方式
本说明书描述在一个或多个位置的一个或多个计算机上实施为计算机程序的系统,该系统被配置为使用即时编译器和编译缓存来编译计算机程序模块。
图1A是示例神经网络100的示意图。神经网络100是在一个或多个位置的一个或多个计算机上实施为计算机程序的系统的示例,其中可以实施以下所述系统、组件和技术。
神经网络100被配置为根据经过训练的网络参数的集合来处理输入图像102,以生成表示输入图像102的嵌入或关于输入图像102的预测的网络输出108。神经网络100可以被配置为使用输入图像102来执行任何适当的机器学习任务。下面讨论示例机器学习任务。在本说明书中,处理图像是指处理图像的像素的强度值。
神经网络100包括L个网络块110a-l的序列,其中L≥1。每个网络块110a-l可以被配置为处理包括图像或图像的中间表示的块输入,并生成块输出。
如图1A所示,网络块110a-l的序列中的第一网络块110a被配置为处理图像102本身,以生成第一块输出104,该第一块输出104为图像102的中间表示。然后,每个后续网络块110b-l可以处理序列中先前网络块的块输出。即,第(i+1)网络块110a-n的块输入是第i网络块110a-l的块输出。
在一些其他实现方式中,第一网络块110a被配置为处理输入图像102的嵌入,而不是处理输入图像102本身。例如,虽然以下描述一般是指处理图像102的神经网络,但是在一些实现方式中,神经网络100可以被配置为接收图像102的嵌入作为输入,图像102的嵌入例如响应于处理图像102由不同的神经网络生成的嵌入。
在一些实现方式中,神经网络100的网络输出108是在网络块110a-l的序列中最终网络块110l的块输出。例如,如以下更详细所述,最终网络块110l的块输出可以包括输入图像102的多个片块中的每个片块的相应更新表示,因此,块输出可以共同表示输入图像102的嵌入,其可以例如由一个或多个下游机器学习模型存储或进一步处理。
在一些其他实现方式中,使用一个或多个神经网络层进一步处理序列中最终网络块110a-l的块输出,以生成神经网络100的网络输出108。例如,如果神经网络100被配置为对输入图像102进行分类,则神经网络100可以使用包括最终logistic层或softmax层的一个或多个神经网络层来处理序列中最终网络块110a-l的块输出,以生成网络输出108,对于候选种类的集合中的每个种类,网络输出108识别表示输入图像102属于这个种类的可能性的值。
作为特定示例,神经网络100可以包括一个或多个“头部(head)”子网络,每个“头部”子网络被配置为使用一个或多个神经网络层来处理序列中最终网络块110a-l的块输出,以针对相应的不同机器学习任务生成关于输入图像102的预测。即,在神经网络100经过训练以后,序列中最终网络块110a-l的输出(可以视为输入图像102的嵌入)可以编码对多个不同的机器学习任务有用的信息。
在一些实现方式中,神经网络100首先处理输入图像102以确定输入图像的片块的集合,例如,确定包括表示输入图像102的确定的片块的多个元素的输入序列。然后,神经网络100可以使用网络块110a-l的序列处理确定的片块(或通过神经网络100的一个或多个初始神经网络层或通过不同的神经网络生成的确定的片块的嵌入)。在一些其他实现方式中,网络块110a-l中的一个或多个各自确定到网络块110a-l的输入块的片块的集合(其是输入图像102的中间表示),并处理确定的片块以针对网络块110a-l生成块输出。下面更详细地描述网络块110a-l的操作。
在一些实现方式中,除了输入图像102之外,神经网络100还处理一个或多个其他网络输入。例如,神经网络100可以处理识别输入图像102所属种类的数据。作为另一个示例,神经网络100可以处理与输入图像102对应的文本输入,例如,表示表征输入图像102的文本的文本输入。
作为另一个示例,例如,在神经网络100确定输入图像102的片块序列(或其嵌入)以通过网络块110a-l的序列被连续更新的实现方式中,神经网络100可以处理预定令牌,有时候称为“种类(class)”令牌。即,对于神经网络100所接收的每个输入图像102,预定令牌可以是相同的,例如预定张量。例如,预定令牌可以被机器学习,例如,与神经网络100的训练同时进行。作为特定示例,可以将预定令牌附加到通过神经网络100处理的片块的序列中,使得网络块110a-l的序列中的每个网络块针对预定令牌生成更新表示。在一些实现方式中,网络输出108是(或包括)通过最终网络块110l生成的预定令牌的最终表示,其中最终表示可以视为输入图像102的嵌入。
一部分或全部网络块110a-l包括多个不同专家模块的相应集合。在本说明书中,专家模块是网络块的组件,其被配置为处理到网络块的输入块的元素的严格子集,即少于全部元素。专家模块可以被配置为使用一个或多个神经网络层处理块输入的元素的严格子集,以生成元素的严格子集的更新表示。在本说明书中,包括多个专家模块的网络块也称为专家网络块。
例如,序列中的每个网络块110a-l可以是专家网络块。作为另一个示例,序列中的网络块110a-1中每隔一个可以是专家网络块。作为另一个示例,序列中的网络块110a-l中每隔一个直到特定网络块110i(i<l)可以是专家网络块。
例如,如图1所示,网络块110a-l的序列中的第j网络块110j是包括e个专家模块130a-e(其中e>1)的专家网络块。以下描述特定引用该第j网络块110j,但是应当理解,对于神经网络100中的每个专家网络块可以实施相同的技术。
第j网络块可以将其块输入112分割成多个片块,其中每个片块包括块输入112的元素的不同子集。例如,如果块输入112是输入图像102的三维表示,则第j网络块110j可以确定每个片块具有维度L×W×C,其中C表示输入图像102的表示的通道数量(例如,如果块输入112是RGB图像,则C=3;或者如果块输入112是RGB图像的中间表示,则C为更大的数字)。
在一些实现方式中,块输入112的每个片块具有相同的大小,即包括相同数量的元素并具有相同的维度。在一些其他实现方式中,不同的片块可以具有不同的大小,例如,可以包括不同数量的元素。
在一些实现方式中,块输入112的每个元素正好在一个片块中。在一些其他实现方式中,块输入112的一部分或全部元素可以在多个不同的片块中;即,块输入112的片块可以重叠。
在一些实现方式中,网络块的序列中的每个网络块110a-l处理输入图像102的同一组片块。即,每个块输入和块输出可以具有相同的维度,使得每个网络块110a-l所确定的片块的数量、片块的大小以及片块的空间关系相同。例如,神经网络100可以处理输入图像102,以确定输入图像102的片块的输入序列,然后使用网络块的序列中的每个网络块110a-l处理确定的片块序列的相应更新表示。
可以通过任何合适的方式来表示块输入112的片块。例如,可以将每个片块表示为二维张量,其包括块输入112的元素,例如,维持块输入112中元素的空间关系的张量。作为另一个示例,可以将每个片块表示为片块的元素的一维序列。作为特定示例,如果片块是块输入112的二维区域,则片块可以是二维区域的扁平化版本,例如,其中块输入112的元素根据它们在块输入112中的相应位置在一维张量中排序。作为另一个示例,可以将每个初始图像片块112a-n表示为初始图像片块112a-n的像素的无序集合。
下面参考图2讨论用于确定图像的片块或图像的中间表示的示例技术。
在确定块输入112的片块之后,第j网络块110j可以使用路由模块120将每个片块指派给第j网络块110j的专家模块130a-e中的一个或多个。然后,第j网络块可以使用对应的指派的专家模块130a-e来处理每个图像片块,以生成相应的专家模块输出,并使用组合模块140将专家模块130a-e的专家模块输出组合,以生成第j网络块110j的块输出114。
换言之,路由模块120被配置为针对每个专家模块130a-e确定要路由到专家模块130a-e进行处理的块输入112的片块的对应集合122a-e。然后,每个专家模块130a-e处理所指派的片块的集合122a-e,以生成专家模块输出的对应集合132a-e,即每个指派的片块的相应专家模块输出。专家模块输出也可以简称为“模块输出”。
为了将片块指派给相应的专家模块130a-e,路由模块120可以使用包括一个或多个神经网络层的路由神经网络来处理每个片块。响应于处理特定片块,路由神经网络可以生成输出,其包括第j网络块110j的每个专家模块130a-e的相应路由分数。路由模块120可以确定将片块指派给与片块的最高路由分数对应的一个或多个专家模块130a-e。
在一些实现方式中,将每个片块指派到相同数量的专家模块130a-e。即,可以将每个片块指派给针对该片块具有最高路由分数的k个专家模块130a-e,其中k对于所有片块相同。
在一些其他实现方式中,可以将一些片块指派给不同数量的专家模块。例如,如果针对专家模块130a-e和片块的路由分数满足预定的阈值,则可以将片块指派给专家模块130a-e。作为另一个示例,通过指派具有在与专家模块和相应的片块相对应的所有路由分数中、与专家模块相对应的最高路由分数的p(p≥1)个片块,保证每个专家模块130a-e正好处理p个片块。
在一些实现方式中,并非第j网络块110j的每个专家模块130a-e都处理块输入112的片块;即,针对某些输入图像102,对于根据输入图像102生成的块输入112而言,第j网络块110j的一些专家模块130a-e是空闲的。在神经网络100的一些执行期间允许一些专家模块130a-e处于空闲状态通过减少生成网络输出108所需的计算数量可以提高神经网络100的效率,因为并非神经网络100的每个参数都用于处理每个输入图像102。
可以通过训练来配置路由模块120的路由神经网络,以将每个片块指派给将从片块中提取最多的信息的专家模块130a-e。即,在一些实现方式中,至少一些专家模块130a-e可以对于某些类型的片块—例如描述特定语义对象或语义对象类别的片块的—“专门化”。下面更详细地讨论用于训练神经网络100的示例技术。
在一些实现方式中,第j网络块110j限制每个专家模块130a-e可以处理的片块数量,因此没有一个专家模块130a-e可以被指派相对于其他专家模块不成比例的工作量(即计算),并且因此变成神经网络100执行的瓶颈。例如,网络块110j可以将可以指派给任何专家模块130a-e的片块数量限制为小于或等于:
其中,B是通过神经网络100处理的输入图像102的批次中图像的数量(例如,在推断时间提供给神经网络100并通过神经网络100并行处理的图像102的批次),K是指派给每个片块的专家模块130a-e的数量,P是块输入112中片块的数量,E是网络块110j中专家模块130a-e的数量。C可以是神经网络100的超参数,表示每个专家模块130a-e的容量,其中C=1表示在神经网络100的给定执行期间每个专家模块130a-e只允许处理片块的
在一些实现方式中,神经网络100设置C<<1,例如,C=0.5、0.1、0.05、或0.01。
在一些实现方式中,如果指派给专家模块130a-e的图像片块多于允许的数量,则对于具有次高路由分数的每个片块,将超过限制的片块(例如指派给专家模块130a-e的、具有与专家模块130a-e对应的最低路由分数的片块)例如重新指派给专家模块130a-e。在一些其他实现方式中,超过限制的片块不会被重新指派,而是被“丢弃”,因此该片块是由与其他片块相比少一个的专家模块130a-e来处理;这相当于使用仅仅是恒等函数(identityfunction)的专家模块处理被丢弃的片块。
在一些实现方式中,神经网络100在其不同执行期间利用C的不同值来操作;即,在训练神经网络100之后,可以改变C的值。例如,在神经网络100的训练期间,C的值可以相对高,因此丢弃相对较的片块,并且训练系统可以使用专家模块130a-e的模块输出来确定对专家模块130a-e的神经网络层的网络参数的更新。然后,在推断时间,可以降低C的值,以提高神经网络100的时间和计算效率。作为特定示例,可以将神经网络100部署在资源稀缺的推断环境中,例如,部署在诸如移动电话或平板电脑这样的计算资源相对少的装置上,或者部署在神经网络100连续接收新图像102并且必须使用固定的时间预算生成对应的网络输出108的环境中。
在一些实现方式中,对于块输入112的每个片块,路由模块120针对每个专家模块130a-e随机采样噪声值(例如根据正态分布),并在针对该片块确定k个最高路由分数之前将采样的噪声值添加到对应的路由分数中。例如,路由模块120可以在神经网络100的训练期间添加噪声值,以鼓励变化,并因此鼓励每个专家模块130a-e接收参数更新。在推断时间,路由模块120可以被配置为不添加噪声值,因为路由模块120已经被训练为指派高质量的路由分数。
在一些实现方式中,网络块可以在确定k个最高路由分数之前对路由分数应用非线性激活函数,例如softmax、Tanh或ReLU函数。
路由神经网络可以包括任何适当的神经网络层配置。
例如,路由神经网络可以包括一个或多个前馈神经网络层。作为特定示例,如果片块具有维度L×W×C,则路由模块120可以将片块重塑(reshape)为具有维度1×(L·W·C),并使用前馈神经网络层来处理经过重塑的片块。
替代性或附加性地,路由神经网络可以包括一个或多个卷积神经网络层。作为特定示例,如果片块具有维度L1×W1×C,那么路由神经网络可以使用具有维度L2×W2×C的卷积核对片块执行二维卷积,其中,L1>L2且W1>W2。
替代性或附加性地,路由神经网络可以包括一个或多个自注意力层。下面参考图1B更详细地讨论自注意力。
在一些实现方式中,并行执行e个专家模块130a-e的操作,从而提高神经网络100的时间效率。
在一些其他实施例中,在相同的处理装置上执行每个专家模块130a-e,例如,在并行处理硬件上执行,并行处理硬件被配置为在相应的不同线程一例如图形处理单元(GPU)或张量处理单元(TPU)-上执行专家模块130a-e的至少一部分。在一些其他实现方式中,可以通过不同的处理装置来执行相应的专家模块130a-e,例如,通过多个不同的并行处理装置组成的分布式系统。并行执行专家模块130a-e中的至少一些可以显著减少神经网络100的执行的延迟,例如,如果所有专家模块130a-e在不同的装置上执行,则大约减少e倍。因此,对于给定数量的网络参数,相对于仅具有稠密神经网络层的神经网络,包括专家模块的至少一个专家网络块的神经网络可以享受更短的延迟,因为两个原因:(i)通过专家模块的网络参数的严格子集来处理输入图像的每个元素,以及(ii)专家模块的执行可以并行化,而在一些实现方式中,稠密的神经网络层不能并行化。同样,出于相同的原因,给定特定的时间预算(即,对于特定的延迟阈值),包括专家模块的至少一个专家网络块的神经网络可以包括显著更多的网络参数,并且因此相对于仅具有稠密神经网络层的神经网络增加了网络容量(即,编码更多信息的能力)。
在专家模块130a-e跨多个装置分布的一些实现方式中,执行路由模块120的处理装置被配置为向执行特定专家模块130a-e的处理装置仅提供已经指派给特定专家模块130a-e的片块集合122a-e。在一些其他这样的实现方式中,执行路由模块120的处理装置被配置为将整个块输入112连同识别块输入112的哪些片块将由特定专家模块130a-e处理的数据一起提供给执行特定专家模块130a-e的处理装置。
在通过对应的一个或多个专家模块处理每个片块以生成相应的模块输出之后,网络块110j的组合模块140可以将对应于每个片块的模块输出组合,以生成网络块110j的块输出114。具体而言,组合模块140可以针对块输入112的每个片块将响应于处理该片块以生成该片块的片块输出而通过相应的专家模块130a-e生成的对应模块输出组合。然后,组合模块140可以重新构组片块输出以生成块输出114,使得片块输出在块输出114中具有与在块输入112中的对应片块所具有的空间关系相同的空间关系。
例如,在一些实现方式中,片块输出具有与对应片块相同的维度。因此,组合模块可以构组片块输出,以生成具有与块输入112相同维度L×W×C的块输出114,其中每个片块输出在块输出114中占据与对应片块在块输入112中占据的位置相同的位置。
在一些实现方式中,组合模块140对于块输入的每个片块,通过计算片块的模块输出之和来组合对应的模块输出。在一些这样的实现方式中,为了生成每个片块的片块输出,组合模块140可以使用与片块和生成模块输出的专家模块130a-e相对应的路由分数对每个模块输出进行加权。在一些其他实现方式中,组合模块140通过使用一个或多个神经网络层(例如一个或多个自注意力层或一个或多个循环神经网络层)处理模块输出来组合专家模块130a-e的模块输出。
在一些实现方式中,在将块输入102的片块指派给相应的专家模块130a-e之前,网络块110j首先使用一个或多个神经网络层来处理块输入,以生成块输入102的更新表示,然后将块输入102的更新表示的片块指派给相应的专家模块130a-e。例如,网络块110j可以首先使用被配置为处理块输入102的每个片块的一个或多个自注意力神经网络层和/或一个或多个元素方面的(element-wise)前馈神经网络层来处理块输入。换言之,给专家模块的输入可以是块输入102的更新表示的元素的严格子集,而不是块输入102本身的元素的严格子集。通常,在本说明书中,我们提及块输入102的片块,但是应当理解,可以将相同的过程应用于块输入102的更新表示的片块。同样,在路由模块120之前的一个或多个神经网络层可以视为网络块110a-l的序列中不同网络块的一部分。
可以提供第j网络块110j的块输出114作为在网络块110a-l的序列中后续网络块的块输入。
如上所述,在一些实现方式中,序列中最终网络块110l的块输出是网络输出108。例如,如果最终网络块110l的块输出包括输入图像102的多个片块中的每个片块的相应表示,则网络输出108可以包括每个片块的表示。作为另一个示例,网络输出108可以包括根据每个片块的表示生成的组合表示,例如,通过确定片块的表示的平均值或通过应用池化操作(例如平均池化、最大池化或全局池化)生成的组合表示。
作为另一个示例,如上所述,在一些实现方式中,神经网络100连同输入图像102一起处理预定种类令牌,使得网络块的序列中的每个网络块除了片块的更新表示之外,还生成预定种类令牌的更新表示。在这些实现方式中,网络输出108可以是通过最终网络块110l生成的预定种类令牌的最终表示。
可以使用任何适当的技术来训练神经网络100。例如,训练系统可以使用神经网络100来处理训练图像,以生成相应的训练输出,并确定训练输出的误差,例如,使用与训练图像相对应的真实值(ground truth)输出。然后,训练系统可以通过神经网络100反向传播误差,并使用梯度下降确定对神经网络100参数的更新。
替代性或附加性地,训练系统可以使用“重要性损失”来训练神经网络100,针对网络块110a-l的序列中的每个专家网络块,“重要性损失”鼓励与专家网络块中的每个专家模块130a-e相对应的路由分数具有相同的平均值。例如,针对每个专家模块i,训练系统可以计算:
其中,fi是由专家网络块的路由模块120的路由神经网络定义的函数,用于计算专家模块i的路由分数或专家模块i的中间路由分数。例如,fi(x)可以是添加随机噪声和应用非线性激活函数之前专家模块i和片块x的路由分数。然后,训练系统可以计算重要性损失以针对每个专家模块i鼓励impi(X)具有相同的平均值。作为特定示例,训练系统可以计算:
其中,E是专家模块的数量。
替代性或附加性地,训练系统可以使用“负载损失”来训练神经网络100,针对每个专家网络块以及针对每个片块,“负载损失”鼓励专家网络块的每个专家模块130a-e被指派片块的可能性具有相同的平均值。例如,针对每个专家模块i以及针对每个图像x,训练系统可以计算:
其中,gi(x)是由专家网络块的路由模块120的路由神经网络定义的用于计算专家模块i的路由分数或专家模块i的中间路由分数的函数。例如,gi(x)可以是在添加随机噪声之后但是应用非线性激活函数之前专家模块i和片块x的路由分数。然后,针对每个训练图像x以及针对每个专家模块i,训练系统可以计算:
pi(x)=P(gi(x)≥thresholdk(x))
其中,P(e)为事件e发生的可能性。给定随机噪声的分布,pi(x)是可直接计算的。然后,针对每个专家模块i,训练系统可以计算:
以及计算负载损失以针对每个专家模块i鼓励loadi(x)具有相同的平均值。作为特定示例,训练系统可以计算:
其中,E是专家模块的数量。
在一些实现方式中,可以使用第一机器学习任务对神经网络100进行预训练,以生成神经网络100的网络参数的初始值。然后例如可以使用第二机器学习任务与一个或多个头部神经网络同时对初始值进行微调(即更新),一个或多个头部神经网络各自被配置为处理网络输出108,以生成相应的第二机器学习任务的最终预测。例如,训练系统可以使用未标记图像以无监督或自监督方式预训练神经网络100,例如,以训练神经网络100将未标记图像基于其相似性分割成不同的种类,或者训练神经网络100对未标记图像执行无监督的语义分割。然后,训练系统可以使用经标记图像的任务特定数据集,通过有监督方式(例如,连同新的未训练的头部神经网络一起)来微调神经网络100的网络参数以执行特定任务,例如,对象识别、姿态检测、脸部识别、光流跟踪或任何其他适当的机器学习任务。
图像102可以是任何适当类型的图像。例如,图像102可以是二维图像,例如,具有多个通道的二维图像(例如RGB图像)。作为另一个示例,图像102可以是表示波长的连续光谱的高光谱图像,例如,通过对于图像102中的每个像素识别光谱上的分布来表示。作为另一个示例,图像102可以是包括多个点的点云,其中每个点例如在三维或更高维坐标空间中具有相应的坐标;作为特定示例,图像102可以是由LIDAR传感器生成的点云。作为另一个示例,图像102可以是由医学成像装置生成的医学图像;作为特定示例,图像102可以是计算机断层扫描(CT)图像、磁共振成像(MRI)图像、超声图像、X射线图像、乳房X光检查图像、荧光透视图像或正电子发射断层扫描(PET)图像。
虽然以下描述引用生成图像102的图像片块,每个片块包括图像102的相应“像素”,但是应当理解,神经网络系统101可以生成包括图像102的具有任何适当类型的组件的图像片块。例如,如果图像102是点云,则图像102的每个图像片块可以包括点云中的点的子集。作为另一个示例,如果图像102是在三维体素网格中包括多个体素的MRI图像,则图像102的每个图像片块可以包括体素网格中体素的子集。
神经网络可以被配置为处理图像以执行任何适当的图像处理任务,例如分类任务、回归任务或它们的组合。
作为特定示例,神经网络100可以被配置为生成包括对应于多个类别中的每个类别的相应分数的分类输出。类别的分数指示图像属于该类别的可能性。在某些情况下,类别可以是对象的种类(例如狗、猫、人等),如果图像描绘包括在与类别对应的对象种类中的对象,则图像可能属于该类别。在某些情况下,类别可以代表全局图像属性(例如,图像描绘白天还是晚上的场景,或者图像描绘夏天还是冬天的场景),如果图像具有与类别对应的全局属性,则图像可能属于该类别。
作为另一个特定示例,神经网络100可以被配置为生成元素级分类输出(例如RGB图像的像素级分类输出或LIDAR图像的点级分类输出),对于图像中的每个元素而言,其包括与多个类别中的每个类别相对应的相应分数。对于给定的元素(例如对于给定的像素或点),类别的分数指示该元素属于该类别的可能性。在一些情况下,类别可以是对象的种类,如果元素是包括在与类别对应的对象种类中的对象的一部分,则它可能属于该类别。即,元素级分类输出可以是语义分割输出。
作为另一个特定示例,神经网络100可以被配置为生成可以估计表征图像的一个或多个连续变量(即,可以假设无限多个可能的数值)的回归输出。在特定示例中,回归输出可以估计包围图像中描绘的相应对象的边界框的坐标。边界框的坐标可以由边界框的顶点的(x,y)坐标来定义。
在一些实现方式中,神经网络100可以被配置为处理多个图像,例如,视频的多个帧。例如,神经网络可以接收作为视频的视频帧的多个图像,并且可以如上所述处理每个视频帧,以生成表征视频帧的输出,例如,通过表征视频帧是否描绘执行特定动作的人。
在一些这样的实现方式中,神经网络100在相应的不同的时间点处理每个视频帧,以生成每个视频帧的相应网络输出,其表征视频帧的预测。例如,神经网络可以生成预测视频帧分类的网络输出。在一些这样的实现方式中,神经网络将与相应视频帧相对应的多个网络输出组合,以生成表征视频的最终网络输出。例如,神经网络可以使用下游神经网络(例如循环神经网络)来处理相应的网络输出。
在一些其他实现方式中,神经网络100并行处理每个视频帧,以生成表征视频的单个网络输出。作为特定示例,系统可以针对每个视频帧在输入序列中生成一个或多个相应的输入元素。
图1B是包括多个专家模块180的示例神经网络块150的示意图。神经网络150是在一个或多个位置的一个或多个计算机上实施为计算机程序的系统的示例,其中可以实施以下所述系统、组件和技术。
网络块150可以是被配置为处理输入图像以生成表征输入图像的网络输出的神经网络的L个网络块(L≥1)的序列中的一个网络块,例如,表示输入图像的嵌入或表示关于输入图像的预测的网络输出。例如,网络块150可以是以上参考图1A所述的网络块110a-l的序列中的网络块中的一个。
网络块150被配置为处理输入图像的嵌入片块152的集合,即根据输入图像确定的片块的、已经通过网络块的序列中的一个或多个先前网络块生成的更新表示,以生成块输出156。如果网络块150是序列中的第一网络块,则网络块150可以被配置为处理根据输入图像确定的原始片块。
网络块150包括一个或多个自注意力神经网络层。如图1B所示,网络块150包括单个自注意力神经网络层160。在一些实现方式中,自注意力神经网络层160被配置为获得嵌入片块152并在嵌入片块152上应用注意力机制。在一些其他实现方式中,自注意力神经网络层160被配置为获得嵌入片块152的相应处理版本,并在经过处理的嵌入片块152上应用注意力机制。例如,如图1B所示,在将层归一化层154的输出提供给自注意力神经网络层160之前,网络块150可以首先将层归一化层154应用于嵌入片块152。替代性或附加性地,网络块150可以在自注意力神经网络层160(例如一个或多个元素方面的前馈神经网络层)之前将一个或多个其他神经网络层应用于嵌入片块152。
例如,网络块150可以针对每个嵌入片块152生成包括嵌入片块152的元素的一维张量。如果每个嵌入片块152具有维度L1×W1×C,则网络块150可以生成具有维度1×(L·W·X)的一维张量。然后,网络块150可以根据一维张量生成输入序列,其中输入序列的至少一部分输入位置是一维张量,并使用自注意力神经网络层160来处理输入序列。
具体而言,对于与每个特定输入位置对应的相应嵌入片块152(或其经处理的版本),自注意力神经网络层160被配置为使用在特定输入位置从嵌入片块152导出的一个或多个查询,在输入位置(即其他嵌入片块152,以及在一些实现方式中,它自己)在嵌入片块152上应用注意力机制,以生成针对特定位置的相应输出。自注意力神经网络层160的输出是包括与每个输入位置对应的相应输出元素的输出序列。
在一些实现方式中,网络块150中的一部分或全部自注意力神经网络层(例如图1B所示的自注意力神经网络层160)是多头部自注意力神经网络层。多头部自注意力神经网络层并行应用h个不同的注意力机制来生成输出元素的相应序列,然后将输出元素的多个序列组合,以生成输出元素的最终序列。
在一些实现方式中,网络块150中的一部分或全部自注意力神经网络层(例如图1B所示的自注意力神经网络层160)将输入序列中相应的嵌入片块152的位置信息合并到注意力机制中。例如,当关于特定嵌入片块152应用注意力时(即,当生成与特定嵌入片块152对应的相应输出元素时),自注意力神经网络层160可以识别表示与图像相对应(或在块输入内)的嵌入片块152的位置的注意力位置嵌入。
在本说明书中,嵌入是表示特定嵌入空间中的输入的数值的有序集合。例如,嵌入可以是具有固定维度的浮点向量或其他数值。
在一些实现方式中,网络块150包括将自注意力神经网络层160的输出与自注意力神经网络层160的输入组合的残差连接层162。替代性或附加性地,网络块150可以包括将层归一化应用于自注意力神经网络层160(或残差连接层162)的输出的层归一化层164。
自注意力神经网络层160(或残差连接层162或层归一化层164)的输出包括嵌入片块152的更新表示。可以将嵌入片块152的更新表示提供给路由模块170,路由模块170被配置为对于相应嵌入片块152的每个更新表示将更新表示指派给网络块150的多个专家模块的集合中的一个或多个专家模块180。可以类似于以上参考图1B所述的路由模块120来配置路由模块170。
网络块可以针对每个专家模块180提供相应嵌入片块152的所指派的更新表示进行处理,以针对每个所指派的更新表示生成相应的专家模块输出。可以类似于以上参考图1A所述的专家模块130a-e来配置专家模块180。
如图1B所示,每个专家模块180是包括一个或多个前馈神经网络层的多层感知器(MLP)。例如,专家模块180可以包括两个或更多个经过学习的线性变换,每个变换通过激活函数(例如非线性元素激活函数,例如ReLU激活函数)来分开。
然后,可以通过网络块150的组合模块190来组合专家模块输出,以针对网络块生成块输出156。可以类似于以上参考图1A所述的组合模块140来配置组合模块190。
在一些实现方式中,网络块150包括残差连接层192,残差连接层192将组合模块190的输出与路由模块170的输入组合。即,块输出156可以是残差连接层192的输出,而不是组合模块190的输出。
可以将块输出156提供给网络块的序列中的一个或多个后续网络块进行进一步处理,以针对神经网络生成网络输出。
在生成网络输出之后,神经网络可以将网络输出108提供给一个或多个下游系统。例如,神经网络可以将网络输出提供给一个或多个头部神经网络,以针对相应的机器学习任务生成预测,如以上参考图1A所述。作为另一个示例,神经网络可以将网络输出(可以表示输入图像的嵌入)提供给数据库或一个或多个下游机器学习模型进行进一步处理。
图2示出分割成图像片块的示例图像210、220、230、240和250。
可以提供图像210至250作为神经网络系统的输入,例如以上参考图1A所述的神经网络101,其被配置为处理图像210至250,以生成关于图像210至250的预测。神经网络系统可以被配置为将图像210至250分割成多个图像片块,并使用包括一个或多个专家网络块的网络块的序列来处理图像片块。
虽然以下描述引用确定图像的片块,但是应当理解,可以使用相同的技术来确定图像的中间表示的片块,例如给网络块的块输入(例如以上参考图1A所述的块输入112)的片块。
图像210、220、230、240和250描述将图像分割成图像片块的不同可能性。具体而言,在图2中,将每个图像210至250描述为被分割成多个图像片块的集合,每个图像片块在视觉上是不同的,即,使用不同的阴影或影线。一般而言,神经网络系统将被配置为根据相同的模式来分割所有接收的图像。即,相同的神经网络系统不一定按照所示的那样分割每个图像210、220、230、240和250,因为已经根据不同的模式分割这些图像。
如第一图像210所示,在一些实现方式中,神经网络系统可以生成各自具有相同大小和形状的图像片块,例如,每个图像片块可以是矩形。此外,在一些实现方式中,神经网络系统可以分割第一图像210,使得每个像素恰好是一个图像片块的成员。作为特定示例,如图2所示,图像片块可以表示相同大小的矩形的网格。作为另一个特定示例,图像片块可以表示相同大小的六边形的网格。
如第二图像220所示,在一些实现方式中,神经网络系统可以生成具有不同大小的图像片块。
如第三图像230所示,在一些实现方式中,神经网络系统可以分割第三图像230,使得一些像素是多个不同图像片块的成员。例如,第一图像片块可以包括第二图像片块的像素的严格超集;即,第二图像片块可以完全被包围在第一图像片块内。作为特定示例,对于根据图像确定的多个第一图像片块中的每个图像片块(例如,对于第一图像片块的网格中的每个第一图像片块),神经网络系统可以生成具有相同的中心像素但是大小和/或宽高比不同的相应第二图像片块。
如第四图像240所示,在一些实现方式中,神经网络系统可以分割第四图像240,使得一些像素不是任何图像片块的成员。例如,神经网络系统可以使用机器学习模型处理第四图像240,以识别一个或多个感兴趣的区域,并且神经网络系统可以针对每个识别的感兴趣的区域生成相应的片块。例如,机器学习模型可以被配置为识别一个或多个像素,并且神经网络系统可以生成以每个识别的像素为中心的相应的片块。
如第五图像250所示,在一些实现方式中,神经网络系统可以生成任意形状的图像片块。即,图像片块不要求是矩形的。例如,神经网络系统可以使用机器学习模型来处理第五图像250,该机器学习模型被配置为分割第五图像250,例如,通过为第五图像250中的每个像素指派相应的种类。然后,神经网络系统可以针对已经通过机器学习模型指派相同种类的像素的每个连续集合生成相应的片块。
虽然在图2中将图像210至250示出为二维图像(或具有多个通道的二维图像,例如RGB图像),但是通常可以将神经网络系统配置为针对任何类型的图像生成预测,如以上参考图1A所述。
图3是用于执行包括多个专家模块的网络块的示例过程的流程图。为方便起见,将过程300描述为通过在一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的神经网络系统(例如以上参考图1A所述的神经网络100)可以执行过程300。
网络块可以是被配置为处理输入图像并针对输入图像生成网络输出的神经网络的网络块的序列中的一个网络块。
系统获得表示输入图像的中间表示的块输入(步骤302)。
系统确定块输入(或块输入的更新表示,例如通过应用以上参考图1B所述的自注意力机制生成的更新表示)的多个片块的集合,其中每个片块包括块输入(或块输入的更新表示)的元素的不同子集(步骤304)。
系统将每个片块指派给网络块的多个专家模块中的一个或多个相应专家模块(步骤306)。
针对多个片块中的每个片块,系统使用一个或多个对应的专家模块来处理该片块,以生成一个或多个相应的模块输出(步骤308)。
通过组合由相应的专家模块生成的模块输出,系统针对网络块生成块输出(步骤310)。
本说明书结合系统和计算机程序组件来使用术语“被配置为”。对于一个或多个计算机的系统而言,被配置为执行特定操作或动作意味着已经在系统上安装了软件、固件、硬件或它们的组合,在操作中这些软件、固件、硬件或它们的组合使得系统执行操作或动作。对于一个或多个计算机程序而言,被配置为执行特定操作或动作意味着一个或多个程序包括由数据处理设备执行时导致设备执行操作或动作的指令。
本说明书所述主题和功能操作的实施例可以在数字电子电路中、在通过有形方式具体实施的计算机软件或固件中、在计算机硬件中(包括在本说明书中公开的结构及其结构等效物)或者在它们的一个或多个的组合中实施。本说明书所述主题的实施例可以实施为一个或多个计算机程序,即,在有形的非暂时性存储介质上编码的计算机程序指令的一个或多个模块,用于通过数据处理设备执行或控制数据处理设备的操作。计算机存储介质可以是机器可读存储装置、机器可读存储衬底、随机或串行访问存储器装置或者它们的一个或多个的组合。替代性或附加性地,可以在人工生成的传播信号上对程序指令进行编码,例如,机器生成的电、光或电磁信号,其被生成为编码信息,以传输到合适的接收器设备,用于通过数据处理设备执行。
术语“数据处理设备”是指数据处理硬件,并涵盖用于处理数据的所有类型的设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。此外,设备可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,设备可以选择性地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
也可以被称为或描述为程序、软件、软件应用、应用程序、模块、软件模块、脚本或代码的计算机程序可以按照任何形式的编程语言来编写,包括编译语言或解释语言,或声明性语言或程序性语言;它可以按照任何形式来部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以(但不需要)对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协同文件(例如存储一个或多个模块、子程序或一部分代码的文件)中。计算机程序可以被部署为在一个计算机或位于一个站点或分布在多个站点并通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广泛用于指代任何数据集合:数据不需要按照任何特定方式结构化,或者根本不需要结构化,并且它可以存储在一个或多个位置的存储装置上。因此例如,索引数据库可以包括多个数据集合,每个数据集合可以通过不同的方式来组织和访问。
类似地,在本说明书中,术语“引擎”广泛用于指代基于软件的系统、子系统或被编程来执行一个或多个特定功能的过程。通常,引擎将被实施为一个或多个软件模块或组件,安装在一个或多个位置的一个或多个计算机上。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在相同的计算机或多个计算机上安装和运行多个引擎。
本说明书所述过程和逻辑流可以通过执行一个或多个计算机程序的一个或多个可编程计算机来执行,以通过操作输入数据和生成输出来执行功能。这些过程和逻辑流也可以通过专用逻辑电路(例如FPGA或ASIC)来执行,或者通过专用逻辑电路与一个或多个可编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用或专用微处理器,或者两者兼有,或者基于任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器装置。中央处理单元和存储器可以通过专用逻辑电路来补充或合并在其中。通常,计算机还将包括或可操作地被耦合以从用于存储数据的一个或多个大容量存储装置(例如磁盘、磁光盘或光盘)接收数据、向其传输数据、或者两者兼有。然而,计算机不需要这样的装置。此外,可以将计算机嵌入另一个装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储装置(例如通用串行总线(USB)闪存驱动器),仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,作为示例,包括半导体存储器装置,例如EPROM、EEPROM和闪存装置;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD ROM盘。
为了提供与用户的交互,本说明书所述主题的实施例可以在具有用于向用户显示信息的显示装置(例如CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以由其向计算机提供输入的键盘和点击装置(例如鼠标或轨迹球)的计算机上实施。其他类型的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;来自用户的输入可以按照任何形式接收,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的装置发送文档以及从装置接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户装置上的web浏览器发送网页。此外,计算机可以通过向个人装置(例如运行消息传递应用的智能电话)发送文本消息或其他形式的消息与用户进行交互,并从用户接收响应消息作为回报。
用于实施机器学习模型的数据处理设备例如还可以包括专用硬件加速器单元,用于处理机器学习训练或产生的通用和计算稠密部分,即推断,工作负载。
可以使用机器学习框架(例如TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架)来实施和部署机器学习模型。
本说明书所述主题的实施例可以在包括后端组件(例如作为数据服务器)、或包括中间件组件(例如应用服务器)、或包括前端组件(例如具有图形用户界面、web浏览器或用户可以由其与本说明书所述主题的实现方式交互的应用程序的客户端计算机)、或包括一个或多个这样的后端、中间件、或前端组件的任何组合的计算系统中实施。系统的组件可以通过数字数据通信(例如通信网络)的任何形式或介质进行互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常相互远离,一般通过通信网络进行交互。客户端和服务器的关系是由于计算机程序在相应计算机上运行并且相互之间具有客户端-服务器关系而生成。在一些实施例中,服务器将数据(例如HTML页面)传输到用户装置,例如,用于向与装置(充当客户端)交互的用户显示数据并接收来自用户的用户输入。在用户装置上生成的数据(例如用户交互的结果)可以在服务器处从装置接收。
除了上述实施例之外,以下实施例也具有创新性:
实施例1是一种包括神经网络的系统,所述神经网络被配置为处理输入图像以及针对所述输入图像生成网络输出,所述神经网络包括一个或多个网络块的序列,所述一个或多个网络块各自被配置为执行以下操作,包括:
获得表示所述输入图像的中间表示的块输入;
确定所述块输入或所述块输入的更新表示的多个片块,其中,每个片块包括所述块输入或所述块输入的更新表示的元素的不同子集;
将每个片块指派给所述网络块的多个专家模块中的一个或多个相应的专家模块;
对于所述多个片块中的每个片块,使用所述一个或多个对应的专家模块来处理所述片块,以生成一个或多个相应的模块输出;以及
通过组合所述相应的专家模块生成的模块输出来生成块输出。
实施例2是根据实施例1所述的系统,其中,将每个片块指派给所述网络块的一个或多个相应的专家模块包括:
使用路由子网络处理所述片块以针对所述多个专家模块中的每个专家模块生成相应的路由分数;
确定所述多个路由分数中的一个或多个最高路由分数;以及
将所述片块指派给与所述一个或多个最高路由分数的每个最高路由分数对应的专家模块。
实施例3是根据实施例2所述的系统,其中,使用路由子网络处理所述片块以针对所述多个专家模块中的每个专家模块生成相应的路由分数包括:
使用一个或多个前馈神经网络层处理所述片块以针对每个专家模块生成相应的第一中间路由分数;
针对每个专家模块,采样噪声值并将所述噪声值与所述专家模块的第一中间路由分数相加以针对所述专家模块生成第二中间路由分数;
针对每个专家模块,向所述专家模块的第二中间路由分数应用非线性激活函数以针对所述专家模块生成所述路由分数。
实施例4是根据实施例2或3中任一项所述的系统,其中,针对所述多个片块中的每个片块,使用所述一个或多个对应的专家模块来处理所述片块以生成一个或多个相应的模块输出包括:
针对与所述片块对应的一个或多个专家模块中的每个专家模块,使用所述专家模块处理所述片块以生成相应的初始模块输出;以及
针对与所述片块对应的一个或多个专家模块中的每个专家模块,根据与所述专家模块和所述片块对应的路由分数来缩放对应的初始模块输出。
实施例5是根据实施例2至4中任一项所述的系统,其中,已经使用以下中的一个或多个来训练所述神经网络:
重要性损失,所述重要性损失鼓励与每个专家模块对应的路由分数具有相同的集中趋势(central tendency)的量度,或
负载损失,所述负载损失鼓励每个专家模块被指派片块的相应可能性具有相同的集中趋势的量度。
实施例6是根据实施例5所述的系统,其中,针对训练图像X的批次确定所述重要性损失包括:
针对每个专家模块i,计算:
其中,fi是由所述路由子网络定义的、用于针对所述专家模块i计算路由分数或针对所述专家模块i计算中间路由分数的函数;以及
计算所述重要性损失以针对每个专家模块i鼓励impi(X)具有相同的集中趋势的量度。
实施例7是根据实施例6所述的系统,其中,所述重要性损失为:
其中,E是所述多个专家模块的数量。
实施例8是根据实施例5至7中任一项所述的系统,其中:
每个片块指派给k个不同的专家模块,k≥1,以及
针对训练图像X的批次确定所述负载损失包括:
针对训练图像X的批次中的每个训练图像x,计算:
其中,gi(x)是由所述路由子网络定义的、用于针对所述专家模块i计算路由分数或针对所述专家模块i计算中间路由分数的函数;
针对每个训练图像x并且针对每个专家模块i,计算:
pi(x)=P(gi(x)≥thresholdk(x))
其中,P(e)为事件e发生的可能性;以及
针对每个专家模块i,计算:
/>
以及计算所述负载损失以针对每个专家模块i鼓励loadi(x)具有相同的集中趋势的量度。
实施例9是根据实施例8所述的系统,其中,所述负载损失为:
其中,E是所述多个专家模块的数量。
实施例10是根据实施例1至9中任一项所述的系统,其中,针对所述多个片块中的每个片块,使用所述对应的专家模块来处理所述片块包括跨越所述专家模块并行处理所述片块。
实施例11是根据实施例1至10中任一项所述的系统,其中,所述多个专家模块的数量大于所述多个片块的数量。
实施例12是包括根据实施例1至11中任一项所述的操作的方法。
实施例13是一个或多个计算机存储介质,存储指令,所述指令当由一个或多个计算机执行时使得所述一个或多个计算机执行根据实施例1至11中任一项所述的操作。
虽然本说明书包含很多具体的实施细节,但是这些细节不应被解释为对于任何发明的范围或可以要求保护的范围的限制,而是作为专用于特定发明的特定实施例的特征的描述。在单独实施例的背景下在本说明书中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的背景下描述的各种特征也可以在多个实施例中单独实施或者在任何合适的子组合中实施。此外,虽然上面可以将特征描述为在某些组合中起作用,甚至一开始这样要求保护,但是在一些情况下,可以从要求保护的组合中删除一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中描述操作并按照特定顺序在权利要求书中引用,但是不应将其理解为要求按照所示的特定顺序或按照依次顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,不应将上述实施例中各种系统模块和组件的分离理解为要求在所有实施例中进行这样的分离,并且应当理解,所述程序组件和系统一般可以与单个软件产品一体集成或封装在多个软件产品中。
已经描述了本主题的特定实施例。其他实施例在以下权利要求书的范围内。例如,在权利要求书中引用的动作可以按照不同的顺序执行,并且仍然可以实现期望的结果。作为一个示例,附图中所述的过程不一定要求所示的特定顺序或依次顺序来实现期望的结果。在一些情况下,多任务处理和并行处理可能是有利的。
Claims (15)
1.一种包括神经网络的系统,所述神经网络被配置为处理输入图像以及针对所述输入图像生成网络输出,所述神经网络包括一个或多个网络块的序列,所述一个或多个网络块各自被配置为执行操作,所述操作包括:
获得块输入,所述块输入表示所述输入图像的中间表示;
确定所述块输入的多个片块或所述块输入的更新表示的多个片块,其中,每个片块包括所述块输入的元素的不同子集或所述块输入的所述更新表示的元素的不同子集;
将每个片块指派给所述网络块的多个专家模块中的一个或多个相应的专家模块;
对于所述多个片块中的每个片块,使用所述一个或多个对应的专家模块来处理所述片块以生成一个或多个相应的模块输出;以及
通过组合由相应的专家模块生成的模块输出来生成块输出。
2.根据权利要求1所述的系统,其中,将每个片块指派给所述网络块的一个或多个相应的专家模块包括:
使用路由子网络处理所述片块以针对所述多个专家模块中的每个专家模块生成相应的路由分数;
确定所述多个路由分数中的一个或多个最高路由分数;以及
将所述片块指派给与所述一个或多个最高路由分数中的每个最高路由分数相对应的专家模块。
3.根据权利要求2所述的系统,其中,使用路由子网络处理所述片块以针对所述多个专家模块中的每个专家模块生成相应的路由分数包括:
使用一个或多个前馈神经网络层处理所述片块以针对每个专家模块生成相应的第一中间路由分数;
针对每个专家模块,采样噪声值并将所述噪声值与所述专家模块的第一中间路由分数相加以针对所述专家模块生成第二中间路由分数;
针对每个专家模块,向所述专家模块的第二中间路由分数应用非线性激活函数以针对所述专家模块生成所述路由分数。
4.根据权利要求2或3中任一项所述的系统,其中,针对所述多个片块中的每个片块,使用所述一个或多个对应的专家模块来处理所述片块以生成一个或多个相应的模块输出包括:
针对与所述片块相对应的一个或多个专家模块中的每个专家模块,使用所述专家模块处理所述片块以生成相应的初始模块输出;以及
针对与所述片块相对应的一个或多个专家模块中的每个专家模块,根据与所述专家模块和所述片块相对应的路由分数来缩放对应的初始模块输出。
5.根据权利要求2至4中任一项所述的系统,其中,已经使用以下中的一个或多个来训练所述神经网络:
重要性损失,所述重要性损失鼓励与每个专家模块相对应的路由分数具有相同的集中趋势的量度,或
负载损失,所述负载损失鼓励每个专家模块被指派片块的相应可能性具有相同的集中趋势的量度。
6.根据权利要求5所述的系统,其中,针对训练图像X的批次确定重要性损失包括:
针对每个专家模块i,计算:
其中,fi是由所述路由子网络定义的、用于针对所述专家模块i计算路由分数或针对所述专家模块i计算中间路由分数的函数;以及
计算所述重要性损失以针对每个专家模块i鼓励impi(X)具有相同的集中趋势的量度。
7.根据权利要求6所述的系统,其中,所述重要性损失为:
其中,E是所述多个专家模块的数量。
8.根据权利要求5至7中任一项所述的系统,其中:
每个片块被指派给k个不同的专家模块,k≥1,以及
针对训练图像X的批次确定负载损失包括:
针对所述训练图像X的批次中的每个训练图像x,计算:
其中,gi(x)是由所述路由子网络定义的、用于针对所述专家模块i计算路由分数或针对所述专家模块i计算中间路由分数的函数;
针对每个训练图像x并且针对每个专家模块i,计算:
pi(x)=P(gi(x)≥thresholdk(x))
其中,P(e)为事件e发生的可能性;以及
针对每个专家模块i,计算:
以及计算所述负载损失以针对每个专家模块i鼓励loadi(x)具有相同的集中趋势的量度。
9.根据权利要求8所述的系统,其中,所述负载损失为:
其中,E是所述多个专家模块的数量。
10.根据权利要求1至9中任一项所述的系统,其中,针对所述多个片块中的每个片块,使用对应的专家模块来处理所述片块包括跨所述专家模块并行处理所述片块。
11.根据权利要求1至10中任一项所述的系统,其中,所述多个专家模块的数量大于所述多个片块的数量。
12.根据权利要求1至11中任一项所述的系统,其中,所述网络块的序列中的最终网络块的块输出是所述网络输出,或者其中,进一步使用一个或多个神经网络层对所述网络块的序列中的所述最终网络块的块输出进行处理以生成所述网络输出。
13.根据权利要求1至12中任一项所述的系统,其中:
所述网络输出是分类输出,所述分类输出包括与多个类别中的每个类别相对应的相应分数,
所述网络输出是元素级分类输出,针对所述图像中的一个或多个元素中的每个元素,所述分类输出包括与多个类别中的每个类别相对应的相应分数,
所述网络输出是回归输出,所述回归输出估计表征所述图像的一个或多个连续变量,或者
所述神经网络被配置为处理作为视频帧的多个图像,以生成表征所述视频帧的输出。
14.一种方法,包括根据权利要求1至13中任一项所述的操作。
15.一个或多个计算机存储介质,存储指令,所述指令当由一个或多个计算机执行时使得所述一个或多个计算机执行根据权利要求1至13中任一项所述的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163194926P | 2021-05-28 | 2021-05-28 | |
US63/194,926 | 2021-05-28 | ||
PCT/US2022/031466 WO2022251717A1 (en) | 2021-05-28 | 2022-05-27 | Processing images using mixture of experts |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116997939A true CN116997939A (zh) | 2023-11-03 |
Family
ID=82358636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280020920.2A Pending CN116997939A (zh) | 2021-05-28 | 2022-05-27 | 使用专家混合来处理图像 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP4285285A1 (zh) |
JP (1) | JP2024518232A (zh) |
KR (1) | KR20230144597A (zh) |
CN (1) | CN116997939A (zh) |
WO (1) | WO2022251717A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117541894A (zh) * | 2024-01-04 | 2024-02-09 | 支付宝(杭州)信息技术有限公司 | 一种多模态模型的训练方法及装置 |
-
2022
- 2022-05-27 EP EP22736063.3A patent/EP4285285A1/en active Pending
- 2022-05-27 CN CN202280020920.2A patent/CN116997939A/zh active Pending
- 2022-05-27 JP JP2023556541A patent/JP2024518232A/ja active Pending
- 2022-05-27 KR KR1020237030746A patent/KR20230144597A/ko unknown
- 2022-05-27 WO PCT/US2022/031466 patent/WO2022251717A1/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117541894A (zh) * | 2024-01-04 | 2024-02-09 | 支付宝(杭州)信息技术有限公司 | 一种多模态模型的训练方法及装置 |
CN117541894B (zh) * | 2024-01-04 | 2024-04-16 | 支付宝(杭州)信息技术有限公司 | 一种多模态模型的训练方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022251717A1 (en) | 2022-12-01 |
JP2024518232A (ja) | 2024-05-01 |
KR20230144597A (ko) | 2023-10-16 |
EP4285285A1 (en) | 2023-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816790B2 (en) | Unsupervised learning of scene structure for synthetic data generation | |
Xie et al. | Spatially adaptive inference with stochastic feature sampling and interpolation | |
CN111279362B (zh) | 胶囊神经网络 | |
US20190279075A1 (en) | Multi-modal image translation using neural networks | |
DE112020003547T5 (de) | Transfer Learning für neuronale Netzwerke | |
AU2021354030B2 (en) | Processing images using self-attention based neural networks | |
US11375176B2 (en) | Few-shot viewpoint estimation | |
US11816185B1 (en) | Multi-view image analysis using neural networks | |
US20220375211A1 (en) | Multi-layer perceptron-based computer vision neural networks | |
CN109447096B (zh) | 一种基于机器学习的扫视路径预测方法和装置 | |
EP4095758A1 (en) | Training large-scale vision transformer neural networks | |
DE102022128165A1 (de) | Datenpfadschaltungsentwurf unter verwendung von reinforcement learning | |
US20230237671A1 (en) | Object detection in image stream processing using optical flow with dynamic regions of interest | |
CN116997939A (zh) | 使用专家混合来处理图像 | |
WO2023140044A1 (ja) | モデル生成方法、モデル生成装置、推論プログラム、及び推論装置 | |
US20230110925A1 (en) | System and method for unsupervised multi-model joint reasoning | |
US20220172066A1 (en) | End-to-end training of neural networks for image processing | |
US20230114556A1 (en) | Neural network models using peer-attention | |
Yifan et al. | An efficient deep learning model for predicting Alzheimer's disease diagnosis by using pet | |
US20240127075A1 (en) | Synthetic dataset generator | |
US20230343073A1 (en) | Novel category discovery using machine learning | |
US20240169686A1 (en) | Directed inferencing using input data transformations | |
US20240221166A1 (en) | Point-level supervision for video instance segmentation | |
WO2022261950A1 (en) | System and method for model composition of neural networks | |
KR20240095894A (ko) | 주의 매커니즘을 이용한 고품질의 장면 이미지 생성 방법 및 장치 |
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 |