CN113348472A - 具有软内核选择的卷积神经网络 - Google Patents
具有软内核选择的卷积神经网络 Download PDFInfo
- Publication number
- CN113348472A CN113348472A CN202080010184.3A CN202080010184A CN113348472A CN 113348472 A CN113348472 A CN 113348472A CN 202080010184 A CN202080010184 A CN 202080010184A CN 113348472 A CN113348472 A CN 113348472A
- Authority
- CN
- China
- Prior art keywords
- input
- network
- output
- convolution
- neural network
- 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
Images
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
用于使用包括一个或多个条件卷积层的神经网络处理输入的方法、系统和装置,其包括在计算机存储介质上编码的计算机程序。条件卷积层具有多个内核,并针对多个内核中的每个内核确定相应的与输入相关的权重,并根据相应的与输入相关的权重通过计算多个内核的加权和来生成与输入相关的内核。
Description
相关申请的交叉引用
本申请要求于2019年1月23日提交的临时美国专利申请No.62/796,045的优先权,该申请的完整内容通过引用并入本文。
技术领域
本说明书涉及使用卷积神经网络来处理输入。
背景技术
神经网络是机器学习模型,该机器学习模型采用非线性单元的一个或多个层来预测针对接收到的输入的输出。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即,下一隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。
卷积神经网络已在计算机视觉中的许多任务上实现了最先进的性能。
发明内容
本说明书描述了一种在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统使用卷积神经网络处理网络输入以生成用于网络输入的网络输出。特别地,卷积神经网络包括一个或多个条件卷积层,每个条件卷积层相对于常规卷积层具有增加的计算容量,而计算开销的增加最小,即相对于仅具有常规卷积神经网络层的神经网络用于执行神经网络推理的处理功率的增加最小。
可以实施本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
所描述的技术允许神经网络具有增加的大小而推理成本仅略有增加。特别地,通过使用所描述的与输入相关的条件计算(即,使用一个或多个条件卷积层)来增强神经网络,如果用常规卷积层替换条件卷积层,则可以相对于神经网络的性能提高神经网络在多种任务(例如,图像分类或对象检测)上的性能。更具体地,至少部分地实现了这些额外的性能增益,因为以与输入相关的方式生成了用于条件卷积层的各种内核的权重。另外,这种改进可以以最小的计算开销实现,即计算复杂度和资源消耗(例如,处理功率和存储器消耗)的增加最小。特别地,条件卷积层仍然仅执行单个卷积,并且因此由于生成权重和确定内核的加权和而招致唯一的额外计算费用,这相对于执行卷积的成本具有最小的计算成本。因此,可以实现性能的显著提高而没有相应的显著增加资源使用。
用于增加模型容量的一些常规方法是利用条件计算。在条件计算模型中,通过针对每个示例启动整个网络的仅一部分来实现该增加。然而,条件计算模型通常很难训练,因为它们需要学习从个别示例到网络的不同部分的离散路由决策。与这些方法不同,所描述的技术不需要示例的离散路由,因此可以使用梯度下降轻松地优化。
在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据描述、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了示例神经网络系统。
图2图示了示例条件卷积层的操作。
图3是用于处理网络输入以生成图像处理输出的示例过程的流程图。
图4是用于在训练神经网络期间生成条件卷积层的输出的示例过程的流程图。
图5是示出相对于基线神经网络具有条件卷积层的神经网络的性能的表格。
各种图中相同的附图标记和名称指示相同的元件。
具体实现方式
本说明书描述了一种在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统使用卷积神经网络处理网络输入以生成用于网络输入的网络输出,即对于接收到的网络输入执行机器学习任务。特别地,卷积神经网络包括一个或多个条件卷积层,每个条件卷积层相对于常规卷积层具有增加的计算容量,而计算开销的增加最小,即相对于仅具有常规卷积神经网络层的神经网络用于执行神经网络推理的处理功率的增加最小。
在一些情况下,网络输入包括可视数据,并且任务是计算机视觉任务。
在一些情况下,网络输入包括一个或多个图像,并且该任务是图像处理任务。
例如,图像处理任务可以是图像分类,其中图像处理输出是分值的集合,每个分值对应于不同的对象类别,并且表示一个或多个图像描绘属于该对象类别的对象的可能性。
作为另一示例,图像处理任务可以是对象检测,其中图像处理输出识别出一个或多个图像中的一个或多个区域,并且对于每个区域,识别出该区域描绘感兴趣的对象的可能性。
作为另一示例,图像处理任务可以是图像分割,其中图像处理输出针对一个或多个图像中的每个像素定义用于预定分类集合中每个分类的相应可能性。例如,分类集合可以是前景和背景。作为另一示例,分类集合可以是对象类别。
作为另一示例,图像处理任务可以是深度估计,其中图像处理输出针对一个或多个图像中的每个像素定义相应的深度值。
作为另一示例,图像处理任务可以是运动估计,其中网络输入包括多个图像,并且图像处理输出针对输入图像中的一个输入图像的每个像素,定义在网络输入中的图像之间的像素处描绘的场景的运动。
作为另一示例,任务可以包括用于自动驾驶汽车的实时服务器侧视频处理,或实时车载感知。
在一些其他情况下,网络输入可以是序列,而输出可以是不同类型的序列。例如,网络输入可以是源语言的序列,而输出可以是目标语言的文本序列,该文本序列是输入序列到目标语言的翻译。作为另一示例,网络输入可以是表示话语的音频序列,而输出序列可以是作为话语转录的文本序列。作为另一示例,输入序列可以是文本序列或文本的语言特征序列,而输出序列可以是音频序列,例如音频样本序列,例如作为输入文本的字句化的幅度值。
图1示出了示例神经网络系统100。神经网络系统100是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中实现了下述系统、部件和技术。
系统100接收网络输入102,处理网络输入102以生成用于网络输入102的网络输出122。
特别地,系统100通过卷积神经网络110处理网络输入102来生成网络输出122。
卷积神经网络110包括一个或多个条件卷积层120(以下称为“第一卷积层”)。与常规卷积层一样,条件卷积层120接收输入张量并且从输入张量生成输出张量。然而,与常规层不同,条件卷积层120实现“软内核选择”,这是一种类型的输入条件计算,它通过计算开销的最小增加来提高层的计算容量。
虽然图1中示出了单个条件卷积层120,实际上卷积神经网络110可以具有任何数量的条件卷积层120。例如,可以用条件卷积层120替换现有神经网络架构中的一些或全部常规卷积层,以生成用于卷积神经网络110的架构。
因此,卷积神经网络110包括一个或多个条件卷积层120,并且在一些情况下,包括一个或多个其他类型的神经网络层,例如常规卷积层、全连接层、池化层、softmax层等等。一般来说,卷积神经网络110可以具有任何架构,该架构包括至少一个条件卷积层120并且适于接收机器学习任务所需的输入类型并生成输出类型。
特别地,每个条件卷积层120具有多个内核的集合。
当接收到卷积层120的给定输入张量时,系统100为来自输入张量的多个内核中的每个内核生成相应的与输入相关的权重。与输入相关的权重被称为“与输入相关”,因为系统100基于到卷积层120的输入张量而生成权重,其中不同的输入张量导致条件卷积层120的各种内核的权重不同。下面将参考图3更详细地描述生成与输入相关的权重。
然后,系统100根据相应的与输入相关的权重,通过计算内核集合的加权和来生成与输入相关的内核(即,具有每个被分配了权重的内核的和,该和被用于生成内核)。这可以看作是在条件卷积层120的多个内核之间执行软内核选择。
然后,系统100从条件卷积层的输入张量生成用于条件卷积层120的输出张量。作为生成输出张量的一部分,系统在与输入相关的内核与输入张量之间执行卷积。因为在应用单个与输入相关的内核之前执行了内核的加权和,所以卷积的大小和计算复杂度与具有单个内核的常规卷积层所应用的大小和计算复杂度相同。
系统100还可以对该卷积的输出执行其他操作,例如通过对卷积输出应用批量归一化、激活函数或两者,以便生成条件卷积层120的输出张量。
因为生成权重和计算加权和所需的处理比执行卷积要便宜得多,并且因为卷积的大小与仅具有单个内核的层的大小相同,所以所描述的技术增加了卷积神经网络的大小和性能,而计算开销的增加最小。
图2示出了示例条件卷积层的操作。在图2的示例中,条件卷积层具有三个内核:W1、W2和W3。
如图2中所示,条件卷积层接收由卷积神经网络中的前一层已经生成的输入张量(“PREV LAYER OUTPUT”)作为输入。通常,输入张量是多维阵列。例如,输入张量可以是从输入图像生成的X×Y×Z特征图。作为另一示例,输入张量可以是从输入序列生成的特征向量的X×D矩阵。
系统应用路由函数(“ROUTE FN”)为三个内核W1、W2和W3中的每个内核生成相应的与输入相关的权重,并且然后根据相应的与输入相关的权重组合(“COMBINE”)三个内核以生成组合内核。
然后,系统计算输入张量(“PREV LAYER OUTPUT”)与组合内核之间的卷积(CONV)以生成卷积输出。
对于给定的输入张量x,这些操作可以表示为:
Output(x)=(α1·W1+α2·W2+α3·W3)*x,
其中α1、α2、和α3分别是与输入相关的权重,而*表示卷积。
条件卷积层所应用的卷积类型取决于卷积神经网络的架构。例如,卷积可以是标准卷积、点卷积(pointwise convolution)或深度卷积(depthwise convolution),这取决于卷积神经网络的架构以及条件卷积层在架构中放置的位置——同一神经网络内的不同条件卷积层可以执行不同类型的卷积。
有利地,在执行单个卷积之前组合内核,即不是用三个单独的内核计算三个单独的卷积,并且因此仅需要执行单个卷积以便生成卷积输出。
在图2的示例中,然后,条件卷积层对卷积输出应用批量归一化(“BN”)以生成批量归一化输出,并且然后应用整流线性单元激活函数(ReLU)为条件卷积层生成输出张量。然而,一般来说,任何给定的条件卷积层都可以将常规神经网络操作应用于卷积输出,以生成用于该层的输出张量。在一些情况下,系统直接将卷积输出用作条件卷积层的输出。
然后,系统可以提供输出张量作为卷积神经网络中下一层的输入。
图3是用于处理网络输入以生成网络输出的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置处的一个或多个计算机的系统执行。例如,被适当编程的神经网络系统(例如,图1的神经网络系统100)可以执行过程300。
该系统接收图像处理神经网络中多个卷积层中的第一卷积层的输入张量(步骤302)。通常,从网络输入得出输入张量,即已经通过卷积神经网络中的一个或多个其他层对网络输入进行处理以生成网络输入。第一卷积层是条件卷积层,与常规的卷积层不同,该条件卷积层具有多个内核。
系统从输入张量确定多个内核中的每个内核的相应的与输入相关的权重(步骤304)。
特别地,系统通过具有多个参数的非线性路由函数来处理输入张量,以生成用于多个内核的相应的与输入相关的权重。
通常,路由函数包括一个或多个神经网络层,该一个或多个神经网络层共同将输入张量转换成向量,该向量具有针对内核中的每个内核的相应值。
在一些实现方式中,神经网络层包括全局平均池化层,该全局平均池化层跨输入张量的空间维度执行全局平均池化。也就是说,非线性路由函数首先对输入张量应用全局平均池化以生成池化的张量,并且然后对平均池化的张量应用额外的、与参数相关的操作以生成与输入相关的权重。卷积操作仅在局部感受野上方操作,因此通过采用全局平均池化,路由函数允许使用整个输入张量内的全局语境来适应这些局部操作。
作为示例,额外的、与参数相关的操作可以包括通过一个或多个全连接层处理平均池化张量,并且然后通过非线性度(例如,Sigmoid激活函数)处理全连接层的输出以生成权重。
在一些实现方式中,当神经网络包括多个条件卷积层时,系统可以独立地为每个条件卷积层执行路由,即生成路由权重。
在一些其他实现方式中,当神经网络包括多个条件卷积层时,为了减少计算开销,系统可以在条件卷积层中的某些条件卷积层之间共享路由权重。例如,系统可以在多个卷积层的给定块中的每个条件卷积层之间共享路由权重,即仅为每个块中的第一层计算新权重,并且然后为块中的剩余层维持相同的权重。作为另一示例,系统可以在神经网络中在每隔一个或每隔三个条件卷积层之间共享路由权重。尽管如此,在这些示例中的每个示例中,任何给定条件卷积层的路由权重仍然取决于当前网络输入,并且对于不同的网络输入(并且因此,对于到条件卷积层的不同输入)通常会有所不同。
系统根据相应的与输入相关的权重通过计算多个内核的加权和来生成与输入相关的内核(步骤306)。
系统从第一卷积层的输入张量生成第一卷积层的输出张量(步骤308)。作为生成输出张量的一部分,系统在与输入相关的内核与输入张量之间执行卷积。因此,即使第一卷积层具有多个内核,系统在生成第一卷积层的输出时仅使用单个组合内核来执行单个卷积。
在神经网络已经被训练作为为新网络输入生成新网络输出的一部分之后,系统可以执行过程300。该系统还可以在训练输入的集合上训练神经网络期间来执行过程300以确定卷积神经网络的参数的经过训练的值,例如条件卷积层的内核和条件卷积层的路由函数的参数。当在训练期间执行过程300时,系统可以计算相对于目标函数的网络参数的梯度,该目标函数测量网络输出相对于网络输入的目标输出的品质,并且使用常规的机器学习技术(例如Adam、rmsProp或随机梯度下降)使用该梯度来更新参数。
然而,在一些其他情况下,系统在神经网络的训练期间以不同的方式计算条件卷积层的输出张量。也就是说,在训练之后,系统可以使用过程300来计算输出,而在训练期间,系统可以使用下面参考图4所描述的不同过程来计算输出。
图4是用于在训练期间为条件卷积层生成输出张量的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置处的一个或多个计算机的系统执行。例如,被适当编程的神经网络系统(例如,图1的神经网络系统100)可以执行过程400。
系统接收第一卷积层的层输入(步骤402)。
系统根据内核的当前值,在层输入与多个内核中的每个内核之间执行相应的卷积以生成用于每个内核的相应的卷积输出(步骤404)。也就是说,与过程300不同,系统对第一卷积层的多个内核中的每个内核执行不同的卷积。
系统根据非线性路由函数的参数的当前值通过路由函数处理输入张量,以生成用于多个内核中的每个内核的相应的与输入相关的权重(步骤406)。
该系统根据与输入相关的权重,通过计算内核的卷积输出的加权和来生成用于第一卷积层的总体卷积输出(步骤408)。因此,与过程300中不同,系统在已经执行个别卷积之后组合卷积输出以生成总体卷积输出。
一旦已经为训练输入生成了网络输出,系统就可以确定关于目标函数的网络参数的梯度,该网络参数包括多个内核和非线性路由函数的参数,并使用梯度来更新参数的当前值和内核。
在一些实现方式中,系统基于条件卷积层具有多少内核来确定在训练期间对于给定条件卷积层是使用过程300还是过程400。特别地,用于神经网络训练的许多硬件加速器被优化来对大批量卷积进行训练,并且很难在小批量大小上充分利用它们。因此,在内核数量小(例如,小于或等于4)的情况下,可能更高效的是使用过程400和大批量卷积来训练条件卷积层,并且然后在训练之后使用过程300进行推理。在内核数量较大(例如,大于4)的情况下,可能更高效的是直接使用过程300来训练条件卷积层。
图5是表格500,其示出了相对于基线神经网络的具有条件卷积层的神经网络的性能。
特别地,对于五个基线神经网络(MobileNetV1(1.0x)、MobileNetV2(1.0x)、MnasNet-A1、ResNet-50和EfficientNet-B0)中的每一个,表格500示出了关于计算基线网络的输出所需的乘加(MADD)数量的计算成本,以及基线神经网络在ImageNet 2012数据集图像分类任务上的第一准确率百分比(top-1)。
对于五个基线神经网络中的每一个,表格500还示出了神经网络的修改版本(“CondConv”)的性能,其是通过使用具有八个内核的条件卷积层替换基线神经网络中的卷积层而生成的。如从表格500可以看出,CondConv提高了所有基线神经网络的准确率,而推理成本的相对增加很小(<10%)。
本说明书使用与系统和计算机程序部件有关的术语“已配置”。将一个或多个计算机的系统配置成执行特定操作或动作意味着系统上已经安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中会使系统执行所述操作或动作。将一个或多个计算机程序配置成执行特定操作或动作意味着该一个或多个程序包括指令,所述指令当由数据处理装置实行时使该装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构以及其结构等效物,或它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形的非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置实行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。替代地或另外地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电气、光学或电磁信号)上,该人工生成的传播信号被生成来对信息进行编码以传输到合适的接收器装置以供数据处理装置实行。
术语“数据处理装置”是指数据处理硬件并且涵盖用于处理数据的所用种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或还包括专用逻辑电路,例如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框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端部件(例如,作为数据服务器),或包括中间件部件(例如,应用服务器),或包括前端部件(例如,具有图形用户接口的客户端计算机、web浏览器或app,用户可以通过该app与本说明书中描述的主题的实现方式进行交互),或者包括一个或多个这种后端、中间件、或前端部件的任何组合。系统的部件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是凭借在相应的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备,例如用于向与充当客户端的设备交互的用户显示数据并接收来自该用户的用户输入。可以在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
虽然本说明书包含许多具体的实现方式细节,但这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是对可能特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的语境中描述的某些特征也可以在单个实施例中以组合形式实现。相反,在单个实施例的语境中描述的各种特征也可以单独地或以任何合适的子组合形式在多个实施例中实现。此外,虽然上面可能将各特征描述为以某些组合形式起作用,并且甚至最初被要求如此保护,但是在一些情况下,可以从组合中去除来自要求保护的组合的一个或多个特征,并且要求保护的组合可以针对子组合或子组合的变化。
相似地,虽然在附图中以特定顺序描绘了操作并在权利要求中进行了叙述,但这不应被理解为要求以示出的特定顺序或先后顺序执行此类操作,或者要求执行所有图示的操作以达成合乎需要的效果。在某些情形中,多任务和并行处理可能是有利的。此外,上述实施例中各种系统模块和部件的分离不应理解为在所有实施例中都需要此种分离,而应当理解的是,所描述的程序部件和系统通常可以一体地形成到单个软件产品中或打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例也在以下权利要求的范围内。例如,可以按不同的顺序执行权利要求中叙述的动作并且仍然达成合乎需要的结果。作为一个示例,附图中描绘的过程不一定要求示出的特定顺序或先后顺序来达成合乎需要的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (13)
1.一种通过卷积神经网络处理网络输入以生成所述网络输入的网络输出的计算机实现的方法,其中,所述卷积神经网络包括多个卷积层,并且其中,所述方法包括:
接收所述图像处理神经网络中所述多个卷积层中的第一卷积层的输入张量,所述第一卷积层具有多个内核,并且所述输入张量是从所述网络输入得出的;
从所述输入张量确定所述多个内核中的每个内核的相应的与输入相关的权重;
通过根据所述相应的与输入相关的权重计算所述多个内核的加权和来生成与输入相关的内核;以及
从所述第一卷积层的所述输入张量生成所述第一卷积层的输出张量,包括在所述与输入相关的内核与所述输入张量之间执行卷积。
2.一种执行计算机视觉任务的计算机实现的方法,包括根据权利要求1所述的方法,其中,所述网络输入包括可视数据,并且其中,生成所述网络输出包括执行所述计算机视觉任务。
3.根据权利要求2所述的计算机实现的方法,其中,所述网络输入包括一个或多个图像,并且所述计算机视觉任务包括以下中的一个:
图像分类,其中,所述网络输出包括多个分值,对应于不同的对象类别的每个分值表示所述一个或多个图像描绘属于所述对象类别的对象的可能性;
对象检测,其中,所述网络输出识别所述一个或多个图像中的一个或多个区域,并且对于每个区域,识别所述区域描绘感兴趣的对象的可能性;
图像分割,其中,所述网络输出针对所述一个或多个图像中的每个像素定义预定分类集合中每个分类的相应的可能性;
深度估计,其中,所述网络输出针对所述一个或多个图像中的每个像素定义相应的深度值,或者
运动估计,其中,所述图像处理输出针对所述输入图像中的一个输入图像的每个像素,定义在所述网络输入中所述图像之间的在所述像素处描绘的场景的运动。
4.根据任何前述权利要求所述的方法,其中,从所述输入张量确定所述多个内核中的每个内核的相应的与输入相关的权重包括:
通过具有多个参数的非线性路由函数来处理所述输入张量,以生成所述多个内核的所述相应的与输入相关的权重。
5.根据权利要求4所述的方法,其中,所述非线性函数包括一个或多个神经网络层。
6.根据权利要求5所述的方法,其中,所述一个或多个神经网络层包括全局平均池化层,所述全局平均池化层跨所述输入张量的空间维度执行全局平均池化。
7.根据权利要求6所述的方法,其中,所述全局平均池化层后面是一个或多个全连接层和非线性度。
8.根据任何前述权利要求所述的方法,其中,生成输出张量还包括:
向所述卷积的输出应用批量归一化和激活函数。
9.根据任何前述权利要求所述的方法,其中,所述卷积是深度卷积。
10.根据任何前述权利要求所述的方法,其中,所述卷积是点卷积。
11.一种训练根据任何前述权利要求所述的卷积神经网络的方法,以确定所述卷积神经网络的所述第一卷积层的所述多个内核的经过训练的值,并且确定根据权利要求4至7中的任一项所述的路由函数的参数的经过训练的值,所述方法包括:
接收多个训练输入;
通过所述卷积神经网络处理每个训练输入,以生成每个训练输入的训练输出,包括针对每个训练输入:
接收所述第一卷积层的层输入;
根据所述内核的当前值在所述层输入与所述多个内核中的每个内核之间执行相应的卷积以生成每个内核的相应的卷积输出;
根据所述非线性路由函数的所述参数的当前值通过所述非线性路由函数处理所述输入张量,以生成所述多个内核中的每个内核的相应的与输入相关的权重;以及
通过根据与输入相关的权重计算所述内核的所述卷积输出的加权和来生成所述第一卷积层的总体卷积输出;
针对每个训练输入,确定相对于所述多个内核和目标函数的所述非线性路由函数的所述参数的梯度,所述目标函数测量所述训练输入的所述训练输出的品质;以及
使用所述梯度更新所述参数的所述当前值和所述内核。
12.一个或多个存储指令的计算机可读存储介质,所述指令当由一个或多个计算机实行时,使所述一个或多个计算机执行根据前述权利要求中的任一项所述的方法中的任何一个方法的相应操作。
13.一种包括一个或多个计算机和一个或多个存储指令的存储设备的系统,所述指令当由一个或多个计算机实行时,使所述一个或多个计算机执行根据前述权利要求中的任一项所述的方法中的任何一个方法的相应操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962796045P | 2019-01-23 | 2019-01-23 | |
US62/796,045 | 2019-01-23 | ||
PCT/US2020/014841 WO2020154537A1 (en) | 2019-01-23 | 2020-01-23 | Convolutional neural networks with soft kernel selection |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113348472A true CN113348472A (zh) | 2021-09-03 |
Family
ID=69740547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080010184.3A Pending CN113348472A (zh) | 2019-01-23 | 2020-01-23 | 具有软内核选择的卷积神经网络 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220129740A1 (zh) |
EP (1) | EP3899806A1 (zh) |
CN (1) | CN113348472A (zh) |
WO (1) | WO2020154537A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210150345A1 (en) * | 2019-11-14 | 2021-05-20 | Qualcomm Incorporated | Conditional Computation For Continual Learning |
KR20210156554A (ko) * | 2020-06-18 | 2021-12-27 | 삼성전자주식회사 | 텐서 처리 방법, 가속기 및 이를 포함한 전자 장치 |
CN112529150A (zh) * | 2020-12-01 | 2021-03-19 | 华为技术有限公司 | 一种模型结构、模型训练方法、图像增强方法及设备 |
US20220198248A1 (en) * | 2020-12-21 | 2022-06-23 | International Business Machines Corporation | Merge operations for darts |
CN112651351B (zh) * | 2020-12-29 | 2022-01-04 | 珠海大横琴科技发展有限公司 | 一种数据处理的方法和装置 |
-
2020
- 2020-01-23 US US17/425,283 patent/US20220129740A1/en active Pending
- 2020-01-23 CN CN202080010184.3A patent/CN113348472A/zh active Pending
- 2020-01-23 WO PCT/US2020/014841 patent/WO2020154537A1/en unknown
- 2020-01-23 EP EP20708746.1A patent/EP3899806A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2020154537A1 (en) | 2020-07-30 |
EP3899806A1 (en) | 2021-10-27 |
US20220129740A1 (en) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220318516A1 (en) | Action selection based on environment observations and textual instructions | |
CN111279362B (zh) | 胶囊神经网络 | |
US11875262B2 (en) | Learning neural network structure | |
CN110114783B (zh) | 利用辅助任务的强化学习 | |
KR102208989B1 (ko) | 강화 학습을 통한 디바이스 배치 최적화 | |
CN110520871B (zh) | 使用学习进度测量训练机器学习模型 | |
EP3711000B1 (en) | Regularized neural network architecture search | |
CN113348472A (zh) | 具有软内核选择的卷积神经网络 | |
JP2020521205A (ja) | タスク固有のポリシーおよび共有ポリシーをもつマルチタスクニューラルネットワークシステム | |
US11922281B2 (en) | Training machine learning models using teacher annealing | |
CN110476173B (zh) | 利用强化学习的分层设备放置 | |
US20200410365A1 (en) | Unsupervised neural network training using learned optimizers | |
EP3535704A1 (en) | Mixture of experts neural networks | |
US11144782B2 (en) | Generating video frames using neural networks | |
CN111133458B (zh) | 增强神经网络 | |
US20220044109A1 (en) | Quantization-aware training of quantized neural networks | |
US20220004849A1 (en) | Image processing neural networks with dynamic filter activation | |
CN111868752B (zh) | 神经网络层权重的连续参数化 | |
WO2023059737A1 (en) | Self-attention based neural networks for processing network inputs from multiple modalities |
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 |