CN110622178A - 学习神经网络结构 - Google Patents
学习神经网络结构 Download PDFInfo
- Publication number
- CN110622178A CN110622178A CN201880032305.7A CN201880032305A CN110622178A CN 110622178 A CN110622178 A CN 110622178A CN 201880032305 A CN201880032305 A CN 201880032305A CN 110622178 A CN110622178 A CN 110622178A
- Authority
- CN
- China
- Prior art keywords
- neural network
- training
- neurons
- loss function
- engine
- 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
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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Feedback Control In General (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
用于训练神经网络的方法、系统和装置,装置包括在计算机存储介质上编码的计算机程序。在一个方面,系统包括神经网络收缩引擎,该神经网络收缩引擎配置成接收正被训练的神经网络并通过收缩过程生成简化神经网络。收缩过程包括基于收缩引擎损失函数训练神经网络,收缩引擎损失函数包括惩罚神经网络的活动神经元和从神经网络中移除非活动神经元的项。系统包括神经网络扩展引擎,神经网络扩展引擎配置成接收正被训练的神经网络并通过扩展过程来生成扩展神经网络,扩展过程包括向神经网络添加新的神经元并基于扩展引擎损失函数来训练神经网络。系统包括训练子系统,训练子系统生成简化神经网络和扩展神经网络。
Description
背景技术
本说明书涉及使用机器学习模型处理数据。
机器学习模型接收输入,并基于接收的输入生成输出,例如预测输出。一些机器学习模型是参数模型,并基于接收的输入和模型参数的值生成输出。
一些机器学习模型是深度模型,其采用多层模型来为接收的输入生成输出。例如,深度神经网络是一种深度机器学习模型,其包括输出层和一个或多个隐藏层,每个隐藏层将非线性变换应用于接收的输入以生成输出。
发明内容
本说明书描述了一种系统,该系统实现为在执行神经网络训练的一个或多个位置的一个或多个计算机上的计算机程序。
根据第一方面,提供了一种用于训练神经网络的系统,该系统包括神经网络收缩引擎,其配置成:接收正被训练的神经网络;通过收缩过程生成简化神经网络,该收缩过程包括:基于收缩引擎损失函数训练神经网络,该收缩引擎损失函数包括惩罚神经网络的活动神经元的项,其中:如果从神经网络中删除神经元以及其所有的传入和传出连接将影响响应于对神经网络的输入进行处理而生成的神经网络的输出,则神经元是活动的;从神经网络中移除不活动的神经元;神经网络扩展引擎,其配置成:接收正被训练的神经网络;通过扩展过程生成扩展神经网络,该扩展过程包括:向神经网络添加新的神经元;基于扩展引擎损失函数训练神经网络;训练子系统,其配置成在多个时间步长中的每个时间步长处:通过向神经网络收缩引擎提供先前时间步长的扩展神经网络来为该时间步长生成简化神经网络;以及通过向神经网络扩展引擎提供该时间步长的简化神经网络来为该时间步长生成扩展神经网络。
在一些实现中,惩罚神经网络的活动神经元的收缩引擎损失函数的项包括:组套索正则化项,其中每个组包括神经网络的神经元的输入权重。
在一些实现中,惩罚神经网络的活动神经元的收缩引擎损失函数的项包括:批归一化正则化项,其包括神经网络的批归一化层的规模参数的稀疏性诱导范数。
在一些实现中,惩罚神经网络的活动神经元的收缩引擎损失函数的项中的每个项对应于神经网络的不同神经元;以及惩罚活动神经元的收缩引擎损失函数的项中的每个项由相同的因子加权。
在一些实现中,惩罚神经网络的活动神经元的收缩引擎损失函数的项中的每个项对应于神经网络的不同神经元;以及惩罚活动神经元的收缩引擎损失函数的项中的每个项由不同的因子加权,该因子取决于与该项相对应的神经元诱导的操作数量。
在一些实现中,惩罚神经网络的活动神经元的收缩引擎损失函数的项中的每个项对应于神经网络的不同神经元;基于收缩引擎损失函数训练神经网络包括:在训练期间自适应地调整惩罚神经网络的活动神经元的收缩引擎损失函数的一个或多个项的权重。
在一些实现中,在训练期间自适应地调整惩罚神经网络的活动神经元的收缩引擎损失函数的一个或多个项的权重包括:确定在特定训练迭代处不满足约束;基于约束来增加惩罚活动神经元的收缩引擎损失函数的一个或多个项的权重的值。
在一些实现中,约束是关于神经网络中活动神经元的最大数量;基于约束来增加惩罚主动神经元的收缩引擎损失函数的一个或多个项的权重的值包括:均等地增加惩罚主动神经元的收缩引擎损失函数的一个或多个项的权重的值。
在一些实现中,约束是关于神经网络的最大推理延迟;基于约束来增加惩罚主动神经元的收缩引擎损失函数的一个或多个项的权重的值包括:基于与该项相对应的神经元诱导的多个操作的次数,增加惩罚主动神经元的收缩引擎损失函数的一个或多个项的权重的值。
在一些实现中,通过收缩过程产生简化神经网络还包括:根据不包含惩罚神经网络中的活动神经元的项的损失函数,在从神经网络移除非活动神经元之后,附加地对神经网络进行训练。
在一些实现中,在移除不活动的神经元之附加地训练神经网络包括重新初始化神经网络的神经元的权重。
在一些实现中,基于收缩引擎损失函数训练神经网络包括:以固定次数的迭代训练神经网络。
在一些实现中,基于收缩引擎损失函数训练神经网络包括:响应于确定满足一个或多个约束的集合,终止基于收缩引擎损失函数的训练。
在一些实现中,一个或多个约束的集合包括以下一个或多个:关于对神经网络中活动神经元的最大数量的约束;关于对神经网络中最大推理延迟的约束;关于对神经网络的最大功耗的约束;对神经网络的最大内存占用的约束。
在一些实现中,训练子系统还配置成:提供一个或多个神经网络作为输出,其中作为输出提供的神经网络中的每个神经网络是用于特定时间步长的简化神经网络或用于特定时间步长的扩展神经网络。
在一些实现中,作为输出提供的神经网络中的每个神经网络都与一个成本-性能元组相关联,其中:成本-性能元组的成本项至少基于以下的一个或多个:神经网络的活动神经元的数量;神经网络的推理延迟;神经网络的功耗;神经网络的内存占用;成本–性能元组的性能项至少基于神经网络的准确性度量。
在一些实现中,向神经网络添加新的神经元包括:均等地增加神经网络的每一层中的神经元的数量。
在一些实现中,基于扩展引擎损失函数训练神经网络包括:仅训练神经网络的新添加的神经元的参数。
在一些实现中,基于扩展引擎损失函数训练神经网络包括:训练神经网络的每个神经元的参数。
在一些实现中,基于扩展引擎损失函数训练神经网络包括:对于第一数量的训练迭代,仅训练神经网络的新添加的神经元的参数;对于在第一数量的训练迭代之后的第二数量的训练迭代中,训练神经网络的每个神经元的参数。
根据第二方面,提供了一种或多种计算机存储介质,其存储指令,当由一个或多个计算机执行时,这些指令使一个或多个计算机执行用于训练神经网络的系统的操作。
根据第三方面,提供了一种方法,该方法包括由用于训练神经网络的系统执行的操作。
可以实施本说明书中描述的主题的特定实施例,从而实现以下优点中的一个或多个优点。本说明书中描述的训练系统共同学习神经网络的结构和参数(例如权重)。因此,相对于通过学习具有固定结构的神经网络的参数来训练的神经网络,本说明书中描述的训练系统可以训练以更好的方式(例如,更高的预测精度)执行的神经网络,因为联合优化了结构和参数,并且因此很好地匹配以生成例如准确的预测。这导致机器学习领域的技术改进。
如本说明书中所述的训练系统使得神经网络的结构和参数能够根据性能约束(例如准确性)和成本约束(例如存储器约束和/或推理延迟约束)来确定。这允许系统生成比通过学习固定神经网络结构的神经网络的参数而训练的神经网络更有效(例如,消耗更少的计算资源)的神经网络。此外,不同于从头开始训练具有不同结构的多个神经网络(例如从随机初始化的权重值)以选择神经网络结构的训练系统,本说明书中所述的训练系统可以通过自适应地收缩和扩展神经网络来学习神经网络的结构,而无需重新初始化神经网络的所有参数。因此,与同时从头开始训练具有不同结构的多个神经网络的训练系统相比,本说明书中所述的训练系统可以更有效(例如,消耗更少的计算资源并且训练得更快)。这些也是机器学习领域的技术改进。
本说明书中描述的训练系统可以生成神经网络集合,每个神经网络具有不同的参数和结构,并且可以将生成的神经网络中的每个神经网络与成本–性能度量相关联。因此,比起生成单个训练的神经网络作为输出,本说明书中描述的训练系统生成多个不同的训练的神经网络,从而在任何给定时间处使具有最适合当前系统条件(例如,可用的计算能力)的成本-性能度量的神经网络供选择来使用。这是机器学习领域的另一个技术改进。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。从描述、附图和权利要求书中,本主题的其它特征、方面和优点将变得显而易见。
附图说明
图1是示例训练系统的图示。
图2是用于生成训练的神经网络的示例过程的流程图。
图3A是用于生成简化神经网络的示例过程的流程图。
图3B是用于基于收缩引擎损失函数训练神经网络的示例过程的流程图。
图4是用于生成扩展神经网络的示例过程的流程图。
在各个附图中,相同的附图标记和标识表示相同的组成。
具体实施方式
本说明书描述了一种通过联合学习神经网络的结构和参数来训练神经网络的训练系统。神经网络的结构是指神经网络的层数,神经网络的层的类型(卷积或完全连接的),以及在每层的神经元的数量。神经网络的参数是指神经网络的神经元之间的连接权重以及其它神经网络参数(诸如,神经网络的批归一化层的规模和偏差因数)。系统包括收缩引擎和扩展引擎。
训练系统接收待训练的神经网络作为输入,并且对于一系列时间步长中的每个时间步长(time step):使用收缩引擎收缩神经网络以为该时间步长生成简化神经网络,将针对该时间步长的简化神经网络提供至扩展引擎以生成针对该时间步长的扩展神经网络,以及提供该时间步长的扩展神经网络作为在下一个时间步长的收缩引擎的输入。以这种方式,训练系统生成并输出神经网络集合,其对应于各时间步长的简化和扩展神经网络中的一个或多个简化和扩展神经网络。
将在下面更详细地描述这些特征和其它特征。
图1示出了示例训练系统100。训练系统100是实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现以下描述的系统、组件和技术。
系统100接收初始神经网络102作为输入,并通过在一系列时间步长上基于训练数据集合110对初始神经网络102进行训练来生成一系列简化神经网络106和扩展神经网络108。系统100可以生成单个神经网络114作为输出,该单个神经网络基于性能标准(例如,推理延迟或内存占用等)进行了优化。然而,在一些实现中,系统100可以生成多个训练的神经网络114作为输出,其各自具有特定的性能特征,例如,第一神经网络可以具有最小的推理延迟,第二神经网络可以具有非常高的准确性,第三神经网络可以基于准确性和内存占用大小进行评估,等等。通常,由系统100输出的训练的神经网络114中的每个神经网络可以具有不同的结构和不同的参数值。
训练的神经网络114中的每个神经网络由系统100进行训练以执行相同的任务。例如,任务可以是图像分类任务,其中训练的神经网络114中的每个神经网络配置成接收图像作为输入,处理图像以及生成输入图像描绘特定对象的概率作为输出。作为另一个示例,任务可以是对象检测和识别任务,其中训练的神经网络114中的每个神经网络配置成接收图像作为输入,处理图像以及生成在输入图像中定义边界框的参数以及边界框包含特定类型的对象的概率作为输出参数。
训练数据110的内容取决于任务。例如,如果任务是图像分类任务,则训练数据110可以包括图像和相应的标签,其中标签指示图像中描绘的对象。作为另一个示例,如果任务是对象检测和识别任务,则训练数据110可以包括具有相应边界框的图像和边界框标签,其中边界框中的每个边界框在对应的图像中都包含对象,并且相关的边界框标签指示边界框中包含的对象的特定类型。
初始神经网络102具有特定的结构和参数值。在一些实现中,预训练初始神经网络102的参数值以执行训练的神经网络114的任务。例如,可以基于训练数据110对初始神经网络102进行预训练。在一些实现中,根据不依赖于训练数据110的参数值初始化方法(例如,随机初始化)来设置初始神经网络102的参数值。在一些实现中,初始神经网络102的结构是任意设置的(例如,根据直觉随机地设置,或者基于为相同任务先前进行训练的并且发现具有良好性能的其它神经网络的结构设置)。
系统100包括神经网络收缩引擎104,其配置成接收神经网络作为输入并生成简化神经网络106作为输出。收缩引擎104基于训练数据110根据收缩引擎损失函数116来训练接收的神经网络。通常,收缩引擎损失函数116包括任务损失项和惩罚接收的神经网络的活动神经元的项。如果从神经网络中删除神经元及其所有传入和传出连接会影响响应于对神经网络的输入进行处理而生成的神经网络的输出,则将神经网络的神经元称为活动的。类似地,如果神经网络的神经元不活动,即,如果从神经网络中删除神经元及其所有传入和传出连接不会影响响应于对输入进行处理而生成的神经网络的输出,则将神经网络的神经元称为非活动的。例如,如果到神经元的所有输入连接的权重为零,则神经元可能是非活动的。作为另一个示例,如果神经元的输出经过批归一化,则神经元可能是非活动的,其中批归一化的规模参数为零。收缩引擎损失函数116的任务损失项在执行任务时增强了接收的神经网络的预测准确性。基于训练数据110评估接收的神经网络在执行任务时的准确性。
通常,根据收缩引擎损失函数116训练接收的神经网络可以将接收的神经网络的神经元中的一些神经元渲染成非活动。收缩引擎104配置成在根据收缩引擎损失函数116训练接收的神经网络之后移除接收的神经网络的非活动神经元。移除非活动神经元通过减少接收的神经网络的一个或多个层中神经元的数量,以及在某些情况下,使得某些层从接收的神经网络中完全移除(例如,如果该层神经元的所有神经元被移除)来调整接收的神经网络的结构。参考图3A描述了用于生成简化神经网络的示例过程。
系统100包括神经网络扩展引擎112,其配置成接收神经网络作为输入并生成扩展神经网络108作为输出。通常,扩展引擎112通过将新的神经元添加到接收的神经网络并根据扩展引擎损失函数118用新添加的神经元训练接收的神经网络来生成扩展神经网络108。扩展引擎损失函数118包括任务损失项,其在执行任务时增强了接收的神经网络的预测准确性。可以基于训练数据110评估接收的神经网络在执行任务时的准确性。参考图4描述了用于生成扩展神经网络的示例过程。
系统100在一系列时间步长上产生不同的简化神经网络和扩展神经网络。对于第一时间步长,系统可以将初始神经网络102提供给收缩引擎104或扩展引擎112。在多个后续时间步长中的每个时间步长处,系统100可以通过提供先前时间步长的扩展神经网络作为收缩引擎104的输入来生成简化神经网络,并且系统100可以通过提供该时间步长的简化神经网络作为扩展引擎112的输入来生成扩展神经网络。每个时间步长生成的神经网络中的每个神经网络都可以与不同的成本-性能元组相关联,如下面更详细地描述。系统100输出一个或多个训练的神经网络114,其包括为一个或多个时间步长生成的简化神经网络和/或扩展神经网络,在某些情况下还包括它们的相关成本-性能元组。
图2是用于生成训练的神经网络的示例过程的流程图。为了方便起见,将过程200描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,训练系统(例如,图1的训练系统100)可以执行过程200,训练系统根据本说明书适当地编程。
系统接收初始神经网络(202)。初始神经网络具有特定的结构和参数值。在一些实现中,预训练初始神经网络的参数值以执行任务。例如,可以基于训练数据对初始神经网络进行预训练。在一些实现中,根据不依赖于训练数据的参数值初始化方法(例如,随机初始化)来设置初始神经网络的参数值。在一些实现中,初始神经网络的结构是任意设置的(例如,根据直觉随机地设置,或者基于为相同任务先前进行训练的并且发现具有良好性能的其它神经网络的结构设置)。初始神经网络可以是例如前馈神经网络或递归神经网络。
在多个时间步长中的每个时间步长处,系统通过将神经网络提供到神经网络收缩引擎来生成简化神经网络(204),并且系统通过将神经网络提供到神经网络扩展引擎来生成扩展神经网络(206)。参考图3A描述了用于生成简化神经网络的示例过程,并参考图4描述了用于生成扩展神经网络的示例过程。
在一些实现中,对于第一时间步长,系统将初始神经网络提供给收缩引擎以为第一时间步长生成简化神经网络,并将关于第一时间步长的简化神经网络提供给扩展引擎以为第一时间步长生成扩展神经网络。在一些实现中,对于每个后续时间步长,系统将前一个时间步长的扩展神经网络提供给收缩引擎以为该时间步长生成简化神经网络,并将该时间步长的简化神经网络提供给扩展引擎以为该时间步长生成扩展神经网络。
在一些其它实现中,对于第一时间步长,系统将初始神经网络提供给扩展引擎以为第一时间步长生成扩展神经网络,并将关于第一时间步长的扩展神经网络提供给收缩引擎以为第一时间步长生成简化神经网络。在一些实现中,对于每个后续时间步长,系统将前一个时间步长的简化神经网络提供给扩展引擎以为该时间步长生成扩展神经网络,并将该时间步长的扩展神经网络提供给收缩引擎以为该时间步长生成简化神经网络。
在一些实现中,系统确定针对时间步长生成的简化和扩展神经网络的成本-性能元组(208)。可以至少部分基于以下一项或多项来确定神经网络的成本–性能元组的成本项:神经网络的活动神经元数量,神经网络的推理延迟,神经网络的功耗,以及神经网络的内存占用。神经网络的推理延迟是指神经网络处理输入以生成输出所花费的时间量。神经网络的功耗是指神经网络通过处理输入以生成输出而消耗的电能数量。神经网络的内存占用是指存储神经网络所需的存储容量。在一些实现中,系统通过加权线性组合通过组合基于神经网络的活动神经元数量、神经网络的推理延迟、神经网络的功耗、以及神经网络的内存占用中的一项或多项来确定神经网络的成本–性能元组的成本项。可以至少部分基于神经网络在执行任务时的预测精度来确定神经网络的成本–性能元组的性能项。例如,可以通过计算与神经网络的预测相对应的F1分数来确定神经网络的预测精度。
在多个时间步长中的每个时间步长处,系统确定当前时间步长是否是最终时间步长(210)。在一些实现中,如果当前时间步长是预定数量的时间步长的最后时间步长,则系统确定当前时间步长是最终时间步长。在一些实现中,如果为在时间步长处生成的神经网络确定的成本-性能元组满足标准,则系统确定当前时间步长为最后时间步长。例如,标准可能要求成本项优于固定成本阈值,以及性能项优于固定性能阈值。在一些实现中,系统基于用于确定当前时间步长是否是最终时间步长的前述方法的组合来确定当前时间步长是最终时间步长。
响应于确定当前时间步长不是最终时间步长,系统返回到204并重复前面的步骤。响应于确定当前时间步长是最终时间步长,系统输出针对一个或多个时间步长而生成的简化神经网络和/或扩展神经网络中的一个或多个神经网络(212)。在一些实现中,系统输出针对每个时间步长生成的简化神经网络和扩展神经网络。在一些实现中,系统仅输出那些简化神经网络和扩展神经网络,其中神经网络的相应的成本–性能元组不受为其它生成的神经网络中的任何神经网络确定的成本-性能元组的主导。如果第一成本–性能元组的成本项优于第二成本–性能元组的成本项,并且第一成本–性能元组的性能项优于第二成本-性能元组的性能项,则称第一成本–性能元组主导第二成本–性能元组。例如,如果成本性能元组的性能项测量预测错误率,则如果第一性能项小于第二性能项,则第一性能项将优于第二性能项。
通常,系统输出的训练的神经网络中的每个神经网络都具有不同的参数、结构和成本–性能元组。这使得稍后选择最适合于当前条件(例如可用的计算能力)的神经网络以在任何给定时间使用。
图3A是用于生成简化神经网络的示例过程的流程图。为了方便起见,过程300描述为由引擎执行,该引擎包括位于一个或多个位置的一个或多个计算机。例如,神经网络收缩引擎(例如图1的神经网络收缩引擎104,其根据本说明书适当地编程)可以执行过程300。
引擎接收神经网络(302)。接收的神经网络可以是初始神经网络(在第一时间步长),或者是由扩展引擎生成的扩展神经网络。
引擎根据惩罚活动神经元的收缩引擎损失函数训练神经网络(304)。参考图3B描述了用于基于收缩引擎损失函数训练神经网络的示例过程。
引擎从神经网络中删除非活动的神经元,以及它们所有的传入和传出连接(306)。如上所述,例如,当到神经网络的所有输入连接的权重为零时,或者当应用于神经网络的输出的批归一化操作的规模参数为零时,可以将神经元判断为非活动。
在一些实现中,引擎根据损失函数执行对神经网络的附加训练,该损失函数包括任务损失项,但是不包括惩罚接收的神经网络的活动神经元的项(308)。在这些实现的一些实现中,引擎在执行附加训练之前重新初始化神经网络的参数(例如,随机地)。
引擎输出神经网络,称为简化神经网络(310)。
图3B是用于基于收缩引擎损失函数训练神经网络的示例过程的流程图。为了方便起见,过程312描述为由引擎执行,该引擎包括位于一个或多个位置的一个或多个计算机。例如,神经网络收缩引擎(例如图1的神经网络收缩引擎104,其根据本说明书适当地编程)可以执行过程312。
引擎基于收缩引擎损失函数执行神经网络训练技术的迭代(314)。在某些情况下,神经网络训练技术是随机梯度下降。通常,收缩引擎损失函数包括任务损失项和惩罚接收的神经网络的活动神经元的项。收缩引擎损失函数的任务损失项在执行任务时增强了神经网络的预测准确性。例如,根据应用,任务损失可能是交叉熵损失、均方误差损失或指数损失。基于训练数据评估神经网络在执行任务时的准确性。
在一些实现中,惩罚接收的神经网络的活动神经元的收缩引擎损失函数的项可以包括组套索正则化项,其中每个组包括神经网络的神经元的输入权重。基于包括组套索正则项的损失函数训练神经网络(其中组与神经网络的神经元的输入权重相对应)可以导致一个或多个特定神经元变得非活动,因为特定神经元的输入权重的全部集合设置为零。由于神经元的输出是一定常数(例如零),其中所有输入的权重设置为零的神经元是非活动的神经元,并且因此,神经元将不影响响应于处理输入由接收的神经网络产生的输出。在本说明书中,当值(例如,神经网络的权重)被称为是零,在某些情况下值是不完全为零,但值的量级是小到足以忽略不计(例如,接近机器精度)。
在一些实现中,惩罚神经网络的活动神经元的收缩引擎损失函数的项可以包括批归一化规模因子正则化项,其涉及应用于神经元的批归一化操作的规模因子的稀疏性诱导范数(例如,L1范数)。在某些情况下,如果x是神经元生成的输出激活,则批归一化操作转换x以生成输出值y,其中:
其中是x的规一化版本,γ称为批归一化操作的规模因子,以及β称为批归一化操作的偏差因子。通常,通过以下步骤确定确定神经元为神经网络的批输入生成的输出激活x,确定与批输入相对应的输出激活的样本均值和样本标准偏差,以及调整批激活以对它们进行归一化(例如,以具有零均值和单位方差)。规模因子γ和偏差因子β是通常在训练过程中学习的神经网络的参数。
基于包括批归一化规模因子正则化项的损失函数训练接收的神经网络可能导致一个或多个特定神经元变得非活动,因为与神经元相对应的批归一化操作的规模因子被设置为零。其中相应的批归一化规模因子设置为零的神经元是非活动的神经元,因为神经元的输出将通过批归一化操作转换为常数(例如零),并且因此,神经元将不影响响应于处理输入由接收的神经网络产生的输出。
收缩引擎损失(loss)函数的示例如下:
其中N是训练数据中的训练示例的数量,是任务损失函数,是神经网络权重的L2正则化损失,J是指其中对其应用批归一化规模参数正则化的神经元数量,|γj|1是j索引的特定神经元的批归一化规模参数的L1范数,|wk|2是k索引的特定神经元的输入连接权重的组套索正则化项(例如,特定神经元的输入连接权重的L2范数)和λ-因子(即,λ1、和)是加权因子。通常,将批归一化规模参数正则化应用于此神经元,其是经历批归一化而不是组套索正则化,因为将组套索正则化应用于此类神经元可能导致批归一化操作的数值不稳定。
在一些实现中,可以将惩罚神经网络的活动神经元的损失函数的λ-因子中的每个因子的值(即和)设置为相同值。在一些其它实现中,可以基于由相应神经元引起的操作(例如加法和乘法)的数量来设置惩罚神经网络的活动神经元的损失函数的λ-因子的每个因子的值,以使神经网络处理输入并生成相应的输出。
在一些实现中,引擎确定是否满足一个或多个约束的集合中的每个约束(316)。例如,约束集合可以包括对神经网络中活动神经元的最大数量的约束。作为另一个示例,约束集合可以包括对神经网络的最大推理延迟的约束。通常,例如由引擎的用户将约束集合提供给引擎。
在一些实现中,引擎自适应地调整惩罚神经网络的活动神经元的收缩引擎损失函数的一个或多个项的λ-因子(318)。在一些情况下,响应于确定在训练迭代期间神经网络不满足约束集合中的特定约束,引擎可以增加惩罚神经网络的活动神经元的损失函数的特定λ-因子的值。例如,响应于确定未满足对神经网络中的活动神经元的最大数量的约束(例如,因为神经网络中的活动神经元的数量超过由约束所指定的最大数量),引擎可以统一增加(例如乘以固定规模因子)特定λ-因子的值。作为另一个示例,响应于确定未满足对神经网络的最大推理延迟的约束(例如,因为神经网络的推理延迟超过由约束所指定的最大推理延迟),引擎可以增加特定λ-因子的值,使得项的λ-因子的值的增加是基于与该项相对应的神经元引起的操作次数。具体地,与引起较大数量的操作的神经元相对应的项的λ-因子的值的增加可以大于与引起较小数量的操作的神经元相对应的项的λ-因子的增加。由于神经网络的神经元引起的操作数量与神经网络的推理延迟直接相关,因此以这种方式自适应地增加特定λ-因子可能有助于神经网络在未来的训练迭代中满足最大推理延迟约束。
引擎确定基于收缩引擎损失函数的神经网络的训练是否完成(320)。在一些实现中,当训练过程的预定迭代次数完成时,引擎确定训练完成。在一些实现中,当收缩引擎损失函数收敛时(例如,当训练迭代之间的收缩引擎损失函数的值的变化减小到预定阈值以下时),引擎确定训练完成。在一些实现中,当满足一个或多个约束集合时,引擎确定训练完成。约束集合可以包括以下一个或多个:关于对神经网络中活动神经元的最大数量的约束;关于对神经网络中最大推理延迟的约束;关于对神经网络的最大功耗的约束;对神经网络的最大内存占用的约束。通常,引擎可以基于先前描述的标准的组合来确定训练是否完成。
响应于确定基于收缩引擎损失函数训练神经网络的过程完成(322),引擎输出训练的神经网络(324)。响应于确定基于收缩引擎损失函数训练神经网络的过程未完成(322),引擎返回到314并重复前面的步骤。
图4是用于生成扩展神经网络的示例过程的流程图。为了方便起见,过程400描述为由引擎执行,该引擎包括位于一个或多个位置的一个或多个计算机。例如,神经网络扩展引擎(例如图1的神经网络扩展引擎112,其根据本说明书适当地编程)可以执行过程400。
引擎接收神经网络(402)。接收的神经网络可以是初始神经网络(在第一时间步长),或者是由收缩引擎生成的简化神经网络。
引擎将新的神经元添加到神经网络(404)。在一些实现中,将神经元添加到神经网络包括均等地增加神经网络的每一层中的神经元的数量。例如,引擎可以向每个层添加与当前在该层中的神经元数量的固定比例相等的神经元数量。引擎通常根据层的类型(例如卷积或完全连接)将神经元添加到层。例如,引擎可以通过向卷积层添加新的过滤器(即,共享相同输入权重的神经元组)来向卷积层添加新的神经元。作为另一个示例,引擎可以通过添加新的神经元来将神经元添加到完全连接的层,新的神经元的输入连接具有区别于前一层中的每个神经元的非零权重。在一些实现中,引擎可以向神经网络添加新的层。在某些情况下,可以随机初始化新神经元的传入和传出连接的权重。在其它一些情况下,可以通过复制同一层中现有神经元的传入和传出连接的权重(并且可能在其中添加噪声)来初始化新神经元的传入和传出连接的权重。
引擎通过反向传播梯度来训练神经网络,从而基于扩展引擎损失函数来调整神经网络的参数集的值(406)。通常,扩展引擎损失函数包括任务损失,并且不包括惩罚神经网络的活动神经元的项。在一些实现中,引擎仅训练神经网络的新添加的神经元的参数(例如,传入和传出连接的权重),并且冻结(即,保持固定值)神经网络的其它神经元的参数。在一些实现中,引擎训练神经网络的完整参数集合,其包括所有神经元的参数。在一些实现中,引擎仅针对第一数量的训练迭代训练神经网络的新添加的神经元的参数,以及在第一数量的训练迭代之后针对第二数量的训练迭代训练接收的神经网络的完整参数集合。
在一些实现中,在预定数量的训练迭代之后,引擎确定基于扩展引擎损失函数的神经网络的训练完成。在一些实现中,当扩展引擎损失函数收敛时,引擎确定接收的神经网络的训练完成。
引擎输出神经网络,称为扩展神经网络(408)。
本说明书结合系统和计算机程序组件使用术语“配置”。对于待配置成执行特定操作或动作的一个或多个计算机的系统,这意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作时导致系统执行这些操作或动作。对于待配置成执行特定操作或动作的一个或多个计算机程序,这意味着一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行该操作或动作。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中实现,在有形地体现的计算机软件或固件中实现,在计算机硬件中实现,其包括在本说明书中公开的结构及其等同结构,或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即,在有形的非暂态存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是计算机可读存储设备、计算机可读存储衬底、随机或串行存取存储设备、或它们中的一个或多个的组合中。另选地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号上,该信号被生成来编码信息以传输到合适的接收器装置,以由数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或另外包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置可以附加地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也可以称为或描述为程序、软件、软件应用程序、应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,其包括编译或解释语言、或声明性或过程性语言;并且它可以以任何形式部署,其包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。程序可以(但不需要)对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署为在一台计算机上执行,或者在位于一个站点或分布在多个站点之间并通过通信网络互连的多台计算机上执行。
在本说明书中,术语“引擎”广泛地用于指代基于软件的系统、子系统或编程为执行一个或多个特定功能的过程。通常,引擎将实现为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在某些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,可以在相同的计算机上安装并运行多个引擎。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还可以由专用逻辑电路(例如,FPGA或ASIC)执行,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于处理或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,或可操作地耦合以从其接收数据或将数据传送到其或这两者。然而,计算机不需要具有此类设备。此外,计算机可以嵌入到另一个设备中,这里仅举几例,例如,移动电话机、个体数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可拆卸磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)、键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现,其中用户可以通过定点设备向计算机提供输入。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如通过响应于从网络浏览器接收的请求将网页发送到用户客户端设备上的网络浏览器。同样,计算机可以通过将文本消息或其它形式的消息发送到个人设备(例如,运行消息收发应用程序的智能手机)并作为回复从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元以用于处理机器学习训练或生产的通用和计算密集型部分,即推理、工作量。
可以使用机器学习框架(例如Tensor Flow框架、Microsoft Cognitive Tool kit框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件,例如数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面、网络浏览器或应用的客户端计算机,其中用户可以与本说明书中描述的主题的实现方式交互,或者包括一个或多个此类后端组件、中间件组件或前端组件的任意组合。系统的组件可以通过任何数字数据通信形式或介质(例如通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在各自计算机上运行的计算机程序而产生的,且彼此之间具有客户端-服务器关系。在一些实施例中,服务器向用户设备发送数据(例如,HTML页面),以用于向与设备(该设备用作客户端)交互的用户显示数据和从其接收用户输入。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从设备接收。
尽管本说明书包含许多特定的实施细节,但是这些细节不应解释为对任何发明的范围或所要求保护的范围的限制,而应解释为对特定发明的特定实施例而言可能特定的特征的描述。在单独的实施例的上下文中在本申请中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以描述为以某些组合起作用并且甚至最初如此声明,但是在一些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。
类似地,尽管在附图中示出和在权利要求中以特定次序记载各操作,但这不应当理解为要求此类操作以所示的特定顺序或以连续顺序来执行或者执行所有图示的操作来取得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上文描述的实施例中的各种系统模块和组件的分离不应理解为在所有的实施例中都要求此类分离,而应理解的是,通常可以将所描述的程序组件和系统一起集成到单一软件产品中或打包到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中所描绘过程不一定需要所示出的特定顺序或顺次顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。
Claims (22)
1.一种由一个或多个计算机实现的系统,包括:
神经网络收缩引擎,其配置成:
接收正在训练的神经网络;
通过收缩过程生成简化神经网络,所述收缩过程包括:
基于收缩引擎损失函数训练所述神经网络,其中所述收缩引擎损失函数包括惩罚所述神经网络的活动神经元的项,其中:
如果从所述神经网络中删除神经元及其所有传入和传出连接会影响响应于对所述神经网络的输入进行处理而生成的所述神经网络的输出,则所述神经元是活动的;
从所述神经网络中移除非活动的神经元;
神经网络扩展引擎,其配置成:
接收正在训练的所述神经网络;
通过扩展过程生成扩展神经网络,所述扩展过程包括:
向所述神经网络添加新的神经元;
基于扩展引擎损失函数训练所述神经网络;训练子系统,其配置成在多个时间步长中的每个时间步长上:
通过向所述神经网络收缩引擎提供先前时间步长的扩展神经网络来生成所述时间步长的简化神经网络;以及
通过将所述时间步长的简化神经网络提供给所述神经网络扩展引擎来生成所述时间步长的扩展神经网络。
2.根据权利要求1所述的系统,其中惩罚所述神经网络的活动神经元的所述收缩引擎损失函数的项包括:
组套索正则化项,其中每个组包括所述神经网络的神经元的输入权重。
3.根据权利要求1所述的系统,其中惩罚所述神经网络的活动神经元的所述收缩引擎损失函数的项包括:
批归一化正则化项,其包括所述神经网络的批归一化层的规模参数的稀疏性诱导范数。
4.根据权利要求1所述的系统,其中:
惩罚所述神经网络的活动神经元的所述收缩引擎损失函数的项中的每个项对应于所述神经网络的不同神经元;以及
惩罚活动神经元的所述收缩引擎损失函数的项中的每个项以相同的因子加权。
5.根据权利要求1所述的系统,其中:
惩罚所述神经网络的活动神经元的所述收缩引擎损失函数的项中的每个项对应于所述神经网络的不同神经元;以及
惩罚活动神经元的所述收缩引擎损失函数的项中的每个项由不同的因子加权,所述因子取决于与所述项相对应的神经元引起的操作的数量。
6.根据权利要求1所述的系统,其中:
惩罚所述神经网络的活动神经元的所述收缩引擎损失函数的项中的每个项对应于所述神经网络的不同神经元;
基于所述收缩引擎损失函数训练所述神经网络包括:
在训练期间自适应地调整惩罚所述神经网络的活动神经元的所述收缩引擎损失函数的一个或多个项的权重。
7.根据权利要求6所述的系统,其中在训练期间自适应地调整惩罚所述神经网络的活动神经元的所述收缩引擎损失函数的一个或多个项的权重包括:
确定在特定训练迭代中不满足约束;
基于所述约束增加对活动神经元进行惩罚的所述收缩引擎损失函数的一个或多个项的权重的值。
8.根据权利要求7所述的系统,其中:
所述约束是关于所述神经网络中活动神经元的最大数量;
基于所述约束增加对活动神经元进行惩罚的所述收缩引擎损失函数的一个或多个项的权重的值包括:
均等地增加对活动神经元进行惩罚的所述收缩引擎损失函数的一个或多个项的权重的值。
9.根据权利要求7所述的系统,其中:
所述约束是关于所述神经网络的最大推理延迟;
基于所述约束增加对活动神经元进行惩罚的所述收缩引擎损失函数的一个或多个项的权重的值包括:
基于与所述项相对应的神经元引起的多个操作的数量增加对活动神经元进行惩罚的所述收缩引擎损失函数的一个或多个项的权重的值。
10.根据前述权利要求中任一项所述的系统,其中通过收缩过程生成简化神经网络还包括:
根据不包含惩罚所述神经网络中的活动神经元的项的损失函数,在从所述神经网络移除非活动神经元之后,附加地对所述神经网络进行训练。
11.根据权利要求10所述的系统,其中:
在移除非活动神经元之后附加地训练所述神经网络包括重新初始化所述神经网络的神经元的权重。
12.根据前述权利要求中任一项所述的系统,其中基于收缩引擎损失函数训练所述神经网络包括:
以固定次数的迭代训练所述神经网络。
13.根据权利要求1至11中的任一项所述的系统,其中基于收缩引擎损失函数训练所述神经网络包括:
响应于确定满足一个或多个约束的集合,终止基于所述收缩引擎损失函数的训练。
14.根据权利要求13所述的系统,其中所述一个或多个约束的集合包括以下一个或多个:
关于所述神经网络中活动神经元的最大数量的约束;
关于所述神经网络的最大推理延迟的约束;
关于所述神经网络的最大功耗的约束;
关于所述神经网络的最大内存占用的约束。
15.根据前述权利要求中任一项所述的系统,其中所述训练子系统还配置成:
提供一个或多个神经网络作为输出,其中作为输出提供的所述神经网络中的每个神经网络是用于特定时间步长的简化神经网络或用于特定时间步长的扩展神经网络。
16.根据权利要求15所述的系统,其中作为输出提供的所述神经网络中的每个神经网络与成本–性能元组相关联,其中:
所述成本–性能元组的成本项至少基于以下一者或多者:
所述神经网络的活动神经元的数量;
所述神经网络的推理延迟;
所述神经网络的功耗;
所述神经网络的内存占用;
所述成本–性能元组的性能项至少基于所述神经网络的准确性度量。
17.根据前述权利要求中任一项所述的系统,其中将新的神经元添加到所述神经网络包括:
均等地增加所述神经网络的每个层中的神经元的数量。
18.根据前述权利要求中任一项所述的系统,其中基于所述扩展引擎损失函数训练所述神经网络包括:
仅训练所述神经网络的新增加的神经元的参数。
19.根据权利要求1至17中任一项所述的系统,其中基于所述扩展引擎损失函数训练所述神经网络包括:
训练所述神经网络的每个神经元的参数。
20.根据权利要求1至17中任一项所述的系统,其中基于所述扩展引擎损失函数训练所述神经网络包括:
针对第一数量的训练迭代仅训练所述神经网络的新增加的神经元的参数;
在所述第一数量的训练迭代之后针对第二数量的训练迭代训练所述神经网络的每个神经元的参数。
21.一种计算机实现的方法,在多个时间步长中的每个时间步长处包括:
通过向神经网络收缩引擎提供先前时间步长的扩展神经网络来生成所述时间步长的简化神经网络;以及
通过将所述时间步长的所述简化神经网络提供给神经网络扩展引擎来生成所述时间步长的扩展神经网络;
其中所述神经网络收缩引擎配置成:
接收正在训练的神经网络;
通过收缩过程生成简化神经网络,所述收缩过程包括:
基于收缩引擎损失函数训练所述神经网络,其中所述收缩引擎损失函数包括惩罚所述神经网络的活动神经元的项,其中:
如果从所述神经网络中删除神经元及其所有传入和传出连接会影响响应于对所述神经网络的输入进行处理而生成的所述神经网络的输出,则所述神经元是活动的;以及
从所述神经网络中移除非活动的神经元;以及
其中所述神经网络扩展引擎配置成:
接收正在训练的所述神经网络;
通过扩展过程生成扩展神经网络,所述扩展过程包括:
向所述神经网络添加新的神经元;以及
基于扩展引擎损失函数训练所述神经网络。
22.一种或多种计算机存储介质,其存储指令,当由一个或多个计算机执行时,所述指令使所述一个或多个计算机执行权利要求21所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/813,961 | 2017-11-15 | ||
US15/813,961 US11315019B2 (en) | 2017-11-15 | 2017-11-15 | Learning neural network structure |
PCT/US2018/058368 WO2019099193A1 (en) | 2017-11-15 | 2018-10-31 | Learning neural network structure |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110622178A true CN110622178A (zh) | 2019-12-27 |
Family
ID=64902370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880032305.7A Pending CN110622178A (zh) | 2017-11-15 | 2018-10-31 | 学习神经网络结构 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11315019B2 (zh) |
EP (1) | EP3574454B1 (zh) |
CN (1) | CN110622178A (zh) |
WO (1) | WO2019099193A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932690A (zh) * | 2020-09-17 | 2020-11-13 | 北京主线科技有限公司 | 基于3d点云神经网络模型的剪枝方法及装置 |
CN112836819A (zh) * | 2021-01-26 | 2021-05-25 | 北京奇艺世纪科技有限公司 | 一种神经网络模型生成方法及装置 |
WO2021159714A1 (zh) * | 2020-02-12 | 2021-08-19 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6287999B2 (ja) * | 2015-08-07 | 2018-03-07 | トヨタ自動車株式会社 | ニューラルネットワーク学習装置 |
US11436496B2 (en) * | 2018-04-20 | 2022-09-06 | Google Llc | Systems and methods for regularizing neural networks |
JP7166784B2 (ja) * | 2018-04-26 | 2022-11-08 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN110826721A (zh) * | 2018-08-09 | 2020-02-21 | 松下电器(美国)知识产权公司 | 信息处理方法及信息处理系统 |
US11816185B1 (en) * | 2018-09-04 | 2023-11-14 | Nvidia Corporation | Multi-view image analysis using neural networks |
US20200097818A1 (en) * | 2018-09-26 | 2020-03-26 | Xinlin LI | Method and system for training binary quantized weight and activation function for deep neural networks |
US11544551B2 (en) * | 2018-09-28 | 2023-01-03 | Wipro Limited | Method and system for improving performance of an artificial neural network |
US11630990B2 (en) * | 2019-03-19 | 2023-04-18 | Cisco Technology, Inc. | Systems and methods for auto machine learning and neural architecture search |
CN112348162B (zh) * | 2019-08-12 | 2024-03-08 | 北京沃东天骏信息技术有限公司 | 用于生成识别模型的方法和装置 |
US11734569B2 (en) * | 2020-02-14 | 2023-08-22 | Wipro Limited | Method and system for improving performance of an artificial neural network (ANN) model |
US11562745B2 (en) * | 2020-04-06 | 2023-01-24 | Microsoft Technology Licensing, Llc | Sequence-to-sequence speech recognition with latency threshold |
CN111695677A (zh) * | 2020-05-25 | 2020-09-22 | 清华大学深圳国际研究生院 | 一种基于神经元复苏的神经网络训练加速方法 |
US20210150323A1 (en) * | 2020-12-23 | 2021-05-20 | Intel Corporation | Methods and apparatus to implement a neural network |
US11763082B2 (en) * | 2021-07-12 | 2023-09-19 | International Business Machines Corporation | Accelerating inference of transformer-based models |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11651223B2 (en) * | 2017-10-27 | 2023-05-16 | Baidu Usa Llc | Systems and methods for block-sparse recurrent neural networks |
-
2017
- 2017-11-15 US US15/813,961 patent/US11315019B2/en active Active
-
2018
- 2018-10-31 CN CN201880032305.7A patent/CN110622178A/zh active Pending
- 2018-10-31 WO PCT/US2018/058368 patent/WO2019099193A1/en unknown
- 2018-10-31 EP EP18829529.9A patent/EP3574454B1/en active Active
-
2022
- 2022-03-23 US US17/701,778 patent/US11875262B2/en active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021159714A1 (zh) * | 2020-02-12 | 2021-08-19 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
CN111932690A (zh) * | 2020-09-17 | 2020-11-13 | 北京主线科技有限公司 | 基于3d点云神经网络模型的剪枝方法及装置 |
CN111932690B (zh) * | 2020-09-17 | 2022-02-22 | 北京主线科技有限公司 | 基于3d点云神经网络模型的剪枝方法及装置 |
CN112836819A (zh) * | 2021-01-26 | 2021-05-25 | 北京奇艺世纪科技有限公司 | 一种神经网络模型生成方法及装置 |
CN112836819B (zh) * | 2021-01-26 | 2023-07-25 | 北京奇艺世纪科技有限公司 | 一种神经网络模型生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3574454A1 (en) | 2019-12-04 |
WO2019099193A1 (en) | 2019-05-23 |
US20220215263A1 (en) | 2022-07-07 |
EP3574454B1 (en) | 2023-06-07 |
US11315019B2 (en) | 2022-04-26 |
US20190147339A1 (en) | 2019-05-16 |
US11875262B2 (en) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110622178A (zh) | 学习神经网络结构 | |
US11775804B2 (en) | Progressive neural networks | |
US11790214B2 (en) | Mixture of experts neural networks | |
CN111406267B (zh) | 使用性能预测神经网络的神经架构搜索 | |
US11669744B2 (en) | Regularized neural network architecture search | |
US10817805B2 (en) | Learning data augmentation policies | |
CN111279362B (zh) | 胶囊神经网络 | |
US20210004677A1 (en) | Data compression using jointly trained encoder, decoder, and prior neural networks | |
US12020164B2 (en) | Neural networks for scalable continual learning in domains with sequentially learned tasks | |
US20230049747A1 (en) | Training machine learning models using teacher annealing | |
WO2019101836A1 (en) | Population based training of neural networks | |
CN113348472A (zh) | 具有软内核选择的卷积神经网络 | |
CN113408702B (zh) | 音乐神经网络模型预训练方法及电子设备和存储介质 | |
CN111868752B (zh) | 神经网络层权重的连续参数化 | |
CN115335831A (zh) | 用于训练稀疏神经网络同时保持稀疏性的系统和方法 | |
CN118056208A (zh) | 具有变换的激活功能层的神经网络 |
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 |