具有任务特定路径的多任务神经网络的制作方法

文档序号:18516752发布日期:2019-08-24 09:30阅读:244来源:国知局
具有任务特定路径的多任务神经网络的制作方法

本说明书涉及神经网络。

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

一些神经网络是循环神经网络。循环神经网络是接收输入序列并且根据输入序列生成输出序列的神经网络。特别地,循环神经网络可以将来自先前时间步骤的网络的一些或全部内部状态用于在当前时间步骤处计算输出。循环神经网络的示例是包括一个或多个lstm存储器块的长短期(lstm)神经网络。每一个lstm存储器块可以包括一个或多个单元,其中每一个单元包括允许单元存储单元的先前状态的输入门、忘记门和输出门,例如,用于生成当前的激活或被提供到lstm神经网络的其他部件。



技术实现要素:

本说明书描述了在一个或多个位置中的一个或多个计算机上实现为计算机程序的允许相同的神经网络用于执行多个机器学习任务的系统。

因此在一个方面,系统包括一个或多个计算机以及存储指令的一个或多个存储设备,所述指令在由一个或多个计算机执行时使得一个或多个计算机实现超神经网络。超神经网络包括一个接一个地布置在堆栈中的多个层。每一层包括相应的多个模块化神经网络并且每一层中的模块化神经网络均被配置为接收用于该层的层输入并生成相应的模块化输出。超神经网络还包括多个一个或多个输出层的集合,其中每一个输出层的集合对应于来自多个机器学习任务的不同机器学习任务并且其中每个一个或多个输出层的集合(共同地)被配置为接收堆栈输出并且生成特定于相应的机器学习任务的神经网络输出。系统还包括被配置为执行操作的子系统,所述操作包括:接收第一网络输入以及从多个机器学习任务中识别要在第一网络输入上执行的第一机器学习任务的数据;选择特定于第一机器学习任务的通过多个层的路径,路径对每一层指定层中的在执行第一机器学习任务时被指派为活动的模块化神经网络的真子集;并且使超神经网络使用(i)对每一层,层中的被所选择的路径指派为活动的模块化神经网络,以及(ii)对应于所识别的第一机器学习任务的一个或多个输出层的集合来处理第一网络输入。

如稍后更详细地描述的,所描述的系统的示例能够有效地学习和执行多个任务。

在一些实施方式中,超神经网络进一步包括:堆栈中多个层中的每一层之后的相应的组合层。每一个组合层可以被配置为接收由组合层之前的层中的当前活动的模块化神经网络生成的模块化输出;并组合由当前活动的模块化神经网络生成的模块化输出以生成组合输出。在一些实施方式中,除了在堆栈中的最后一层之后的组合层之外的每一个组合层的组合输出是用于该组合层之后的层的层输入。堆栈中的最后一层之后的组合层的组合输出可以是堆栈输出。

每一个模块化神经网络可以包括被传递函数层跟随的一个或多个神经网络层,所述传递函数层将传递函数应用于神经网络层的输出。传递函数可以是逐元素激活函数,例如整流线性单元函数。

模块化神经网络中的至少一个可包括一个或多个循环神经网络层。循环神经网络层中的一些或全部可以是长短期记忆(lstm)层。

模块化神经网络中的至少一个可以包括卷积神经网络层。模块化神经网络中的至少一个可以包括完全连接的神经网络层。

至少两个层可以在真子集中具有不同数量的活动的模块化神经网络。每一层可以在真子集中具有至少一个并且不超过预定数量的活动的模块化神经网络。

子系统执行的操作可以进一步包括:接收第二网络输入以及从多个机器学习任务识别要在第二网络输入上执行的不同的第二机器学习任务的数据;选择特定于第二机器学习任务的通过多个层的不同的第二路径,第二路径对层中的每一个指定层中的在执行第二机器学习任务时被指派为活动的模块化神经网络的第二真子集;并且使超神经网络使用(i)对每一层,层中的被第二路径指派为活动的模块化神经网络,以及(ii)对应于第二机器学习任务的一个或多个输出层的集合来处理第二网络输入。

还描述了一种在来自多个机器学习任务的特定机器学习任务上训练如上所述的超神经网络的方法。方法可以包括:选择通过多个层的多个候选路径,候选路径中的每一个对层中的每一个指定层中的在执行特定机器学习任务时被指派为活动的模块化神经网络的相应的真子集;在多个候选路径中的每一个上训练超神经网络,其中在多个候选路径中的每一个上训练超神经网络包括:对候选路径中的每一个训练超神经网络,同时仅使用被候选路径指派为活动的模块化神经网络以及对应于特定机器学习任务的输出层来处理训练输入;基于候选路径上的超神经网络的训练的结果来确定多个候选路径中的每一个的适应性;并且选择具有最佳适应性的候选路径作为用于特定机器学习任务的最佳适应路径。

在方法的一些实施方式中,演进和学习可以同时发生。方法可以将通过超神经网络的路径的总体向超神经网络参数的有限子集演进,并且然后可以在学习后固定这些参数以保留相应的功能。

选择多个候选路径可以包括:选择第一候选路径和第二候选路径;根据在第一候选路径以及第二候选路径上训练超神经网络来确定第一候选路径具有比第二候选路径更好的适应性;并且基于确定第一候选路径具有比第二候选路径更好的适应性:通过改变第一候选路径中的活动的模块化神经网络中的一个或多个来变化第一候选路径;并用变化的第一候选路径替换第二候选路径。

变化第一候选路径可以包括,对于被第一候选路径指派为活动的每一个模块化神经网络:确定是否替换模块化神经网络;并且响应于确定替换模块化神经网络而将模块化神经网络指派为不活动并且将相同的层中的另一模块化神经网络指派为活动。确定是否替换模块化神经网络可以包括确定用与1除以第一候选路径中的模块化神经网络的总数相等或成比例的概率来替换模块化神经网络。

在多个候选路径中的每一个上训练超神经网络可以包括并行地在初始多个候选路径上训练超神经网络。选择多个候选路径可以包括,对于初始多个中的每一个候选路径:确定初始多个中的其他候选路径的子集中的任何一个是否具有比候选路径更好的适应性;并且如果子集中的任何一个具有更好的适应性:识别具有子集中的其他候选路径的最佳适应性的子集中的候选路径;通过改变所识别的候选路径中的活动的模块化神经网络中的一个或多个来变化所识别的候选路径;并用变化的所识别的候选路径替换候选路径。选择多个候选路径可以进一步包括:如果子集中的候选路径中没有一个具有更好的适应性,则保持候选路径以用于进一步训练。对于初始多个中的每一个候选路径,可以随机选择其他候选路径的子集。

在多个候选路径中的每一个上训练超神经网络可以包括:在训练期间,保持用于已经对其确定了最佳适应路径的多个机器学习任务中的任何机器学习任务的最佳适应路径中的任何模块化神经网络的参数的固定值。

方法可以进一步包括固定被用于特定机器学习任务的最佳适应路径指派为活动的模块化神经网络的参数的值以在多个机器学习任务中的其他任务上的超神经网络的训练期间不被调整。

进一步描述了一种在序列的多个机器学习任务上从序列中第一机器学习任务到序列中的最后一个机器学习任务来训练如上所述的超神经网络的方法。方法可以包括获取用于第一机器学习任务的第一训练数据;并且在第一训练数据上训练超神经网络以确定用于第一机器学习任务的通过多个层的最佳适应路径,同时(i)保持用于在序列中比第一机器学习任务更早的机器学习任务中的任何一个的最佳适应路径中的任何模块化神经网络的固定的参数值,以及(ii)调整不在在用于序列中比第一机器学习任务更早的机器学习任务中的任何一个的最佳适应路径中的其他模块化神经网络的参数值。

在一些实施方式中,沿着针对第一任务学习的第一路径固定参数便于可以重用第一路径的部分的第二任务的更快的学习。

方法可以进一步包括重新初始化不在第一机器学习任务的最佳适应路径中或者在序列中比第一机器学习任务更早的机器学习任务中的任何一个的最佳适应路径的任何一个中的模块化神经网络的参数值;获取用于在序列中跟随第一机器学习任务的第二机器学习任务的第二训练数据;并且在第二训练数据上训练超神经网络以确定用于第二机器学习任务的通过多个层的最佳适应路径,同时(i)保持在用于第一机器学习任务的最佳适应路径中或者在序列中比第一机器学习任务更早的机器学习任务中的任何一个的最佳适应路径中的任何一个中的任何模块化神经网络的参数的固定值,以及(ii)调整不在在用于第一机器学习任务的最佳适应路径中或者在序列中比第一机器学习任务更早的机器学习任务中的任何一个的最佳适应路径中的任何一个的其他模块化神经网络的参数的值。

在第一训练数据上训练超神经网络以确定用于第一机器学习任务的通过多个层的最佳适应路径可以包括,选择多个候选路径;并且对于多个候选路径中的每一个:通过在模块化神经网络在候选路径中被指派为活动的时在第一机器学习任务上训练超神经网络来评估候选路径的适应性;并且选择具有最佳适应性的候选路径作为当前最佳路径。方法进一步可以包括变化当前最佳路径以生成变化的当前最佳路径;并且将变化的当前最佳路径包括在新的多个候选路径中以用于评估。

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

通过允许相同的超神经网络用于多个任务,系统比传统系统即对于每一个任务使用不同神经网络的系统,消耗更少的计算资源,即存储器和处理功率,而同时仍然具有等于或优于传统方法的性能。特别地,因为系统不必为多个不同的机器学习任务存储多个不同的神经网络,所以系统可以使用较少的存储容量。

另外,在新的任务上训练超神经网络时,系统有效地利用在先前任务上训练超神经网络时确定的参数值。因此,使用所描述的技术,可以比传统方法更快地并且使用更少的计算资源来训练超神经网络。特别地,通过固定已经包括在用于现有任务的路径中的模块化神经网络的参数值并且允许将那些模块化神经网络包括在用于新任务的候选路径中,系统可以利用任务之间的相似性来减少新任务的训练时间和训练复杂度。与传统方法相比,这允许超神经网络在新任务上实现改进的性能,而同时减少新任务的训练时间。

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

附图说明

图1a示出了示例神经网络系统。

图1b示出了通过超神经网络的示例的示例路径。

图1c示出了训练神经网络以执行多个任务的多种方法的图。

图2是用于使用超神经网络处理网络输入的示例过程的流程图。

图3是用于在新的机器学习任务上训练超神经网络的示例过程的流程图。

图4是用于在新的机器学习任务上训练超神经网络的另一示例过程的流程图。

各图中相似的附图标记和指定指示相似的元素。

具体实施方式

本说明书描述了在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统,所述系统允许使用相同的神经网络执行多个不同的机器学习任务。尽管描述的技术通常适用于许多不同的神经网络任务,任务中的一些或全部可以是强化学习任务,还包括监督和无监督学习以及数据分类。

例如多个机器学习任务可以包括多个不同的图像处理任务,例如一个或多个不同的图像识别任务,其中每一个图像识别任务需要识别图像中的不同对象或图案。更一般地,任务可以包括针对数字数据输入生成任何类型的分类或回归输出的得分的任务。

作为另一示例,多个机器学习任务可以包括多个不同的语音识别任务,例如其中每一个任务需要识别不同的热词或热词序列的多个热词检测任务、需要识别不同语言的语音的语音识别任务等。

任务还可以包括处理诸如文本序列或口语表达的数据序列并且输出可以被翻译为不同语言或表示的序列。

作为另一示例,多个机器学习任务可以包括不同的机器人学习任务,即涉及选择要由与环境交互的机器人执行的动作的任务。也就是说,多个机器学习任务中的一些或全部可以包括选择要由尝试执行不同任务的相同机器人、尝试执行相同任务的不同机器人或尝试执行不同任务的不同机器人执行的动作。例如第一机器学习任务可以包括感觉运动学习任务,诸如运动(locomotion)。第二机器学习任务可以包括第二感觉运动学习任务,诸如抓握。后续的机器学习任务可以包括诸如活动对象分类的其他感觉运动学习任务,或诸如对象与人类同伴的联合操纵或语言学习任务的交互式学习任务。

更一般地,任务可以包括任何机器控制任务。对系统的输入可以包括来自机器操作的环境的真实世界数据并且来自系统的输出可以包括用于控制机器以执行任务的机器控制输出。或者,环境可以是模拟环境,系统的输入可以来自模拟环境并且来自系统的输出可以控制模拟环境中的实体。

作为另一示例,多个机器学习任务可以包括多个不同的内容推荐任务,例如每个任务可以用于有效地向不同用户或用户群推荐内容。任务还可以包括处理来自互联网的诸如文档、网页和其他资源的输入数据以例如确定表示资源与特定主题相关的可能性的得分。

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

神经网络系统100是接收网络输入102并且使用超神经网络110处理网络输入102以生成针对网络输入102的网络输出112的系统。具体地,神经网络系统100能够接收网络输入并且针对多个不同的机器学习任务生成网络输出。通常,如果两个机器学习任务对于接收到的用于任务的输入具有不同的期望输出,则它们是不同的。例如如果每一个任务需要将输入图像分类到其中的对象类别是不同的,则两个图像分类任务可以是不同的。作为另一示例,如果两个任务需要生成定义要由机器人执行以达到两个不同目标的动作的输出,则两个机器人学习任务可以是不同的。

因为神经网络系统100能够处理多个不同机器学习任务的输入,所以系统100还接收指定将在网络输入102上执行哪个机器学习任务的任务数据152。

超神经网络110包括一个接一个地布置在堆栈中的多个层130a-130n。继而多个层中的每一个包括多个模块化神经网络。也就是说,尽管不同的层可以包括不同数量的模块化神经网络,但是每一层包括多个模块化神经网络。例如层130a包括模块化神经网络140a-n,而层130n包括模块化神经网络140m-p。

给定层内的模块化神经网络被配置为接收用于该层的层输入并且生成相应的模块化输出。也就是说,给定层中的每一个模块化神经网络接收相同的输入但可以生成不同的输出。例如,不同的模块化神经网络可以具有不同的参数值。

模块化神经网络的配置和架构取决于超神经网络110将用于的任务。然而,通常每个模块化神经网络包括后面跟随传递函数层的一个或多个神经网络层,所述传递函数层将传递函数应用于多个神经网络层的输出。传递函数可以是例如逐元素激活函数,例如整流线性单元函数或sigmoid函数。

特别地,模块化神经网络可以包括卷积神经网络层、完全连接的神经网络、循环神经网络层或上述的组合。不同层中的模块化神经网络可以包括不同种类的神经网络层。一些层中的模块化神经网络还可以包括具有或不具有可训练的参数的不是神经网络层的模块,例如空间变换器模块或者执行可微分操作的其他类型的模块。

在一些情况中,即使在给定层内,模块化神经网络的架构也可能不同。例如给定层中的一些模块化网络可能具有残差连接而其他模块化网络不具有。作为另一示例,给定层中的一些模块化网络可以具有跳过连接而其他模块化网络不具有。作为又一个示例,一些模块化网络可以比相同层中的其他模块化网络包括更多的线性层。

超神经网络110还包括多个输出层150a-150z。

每一个输出层的集合包括一个或多个输出层,并且对应于可以使用超神经网络的多个机器学习任务的不同机器学习任务。

另外,每个一个或多个输出层的集合被共同配置为接收堆栈输出,即由层的堆栈生成的输出,并且生成特定于相对应的机器学习任务的神经网络输出。

在由超神经网络110处理网络输入期间,仅使用与在输入上执行的任务相对应的输出层的集合。

在图1a的示例中,输出层150a是对应于由任务数据152识别的任务的输出层并且因此使用虚线示出,而输出层150z不对应于任务并且因此使用实线示出。

也就是说,对于需要单一类型的网络输出的任务,例如需要包括多个类别中的每一个的相应得分的得分向量的分类任务,超神经网络110将包括单个输出层,例如接收堆栈输出并生成网络输出——例如,并生成得分向量——的softmax输出层。

另一方面,对于需要多个不同类型的网络输出的任务,超神经网络110将包括多个输出层,多个输出层中的每一个对应于不同类型的网络输出并且每一个输出层被配置为接收堆栈输出并处理堆栈输出以生成相对应的类型的网络输出。

例如,对于需要策略读出即定义关于机器人要执行的可能动作的得分分布的输出、以及值函数读出即估计在当前状态下的值的输出的机器人任务,超神经网络110将包括对应于机器人任务的两个输出层,一个输出层接收堆栈输出并生成策略读出,并且另一个输出层接收堆栈输出并生成值函数读出。

为了确定如何处理网络输入102并且允许超神经网络110用于多个任务,神经网络系统100保持识别用于超神经网络110被配置为执行的任务中的每一个的相应路径的数据。

用于给定机器学习任务的路径针对超神经网络110中的每一层的指定层中的在执行第一机器学习任务时被指派为活动的模块化神经网络的真子集。因此,对于每一层,给定路径将包括层中的至少一个但少于全部的模块化神经网络。由于超神经网络110已被训练的方式,不同的机器学习任务将具有通过层的不同路径。也就是说,虽然不同的路径可以共享一个或多个模块化神经网络,但是两个不同的路径通常将由至少一个组成部分而不同。

在图1a的示例中,使用虚线示出了用于由任务数据152识别的任务的路径中的模块化神经网络。因此,模块化神经网络140a、模块化神经网络140n以及模块化神经网络140p在路径中并且使用虚线示出,而模块化神经网络140m不在路径中并且使用实线示出。

然后,系统100使超神经网络100通过使用(i)对于每一层,层中的被所选择的路径指派为活动的模块化神经网络,以及(ii)对应于第一机器学习任务的一个或多个输出层的集合处理神经网络输入102来针对神经网络输入102生成网络输出112。也就是说,未被所选择的路径指派为活动的模块化神经网络不用于处理网络输入。换句话说,只有活动的模块化神经网络接收输入并生成输出。因此,在处理任何给定的网络输入时,未使用超神经网络110中的全部模块化神经网络。

在图1a的示例中,模块化神经网络140n、模块化神经网络140p以及输出层150a用于处理网络输入102,而模块化神经网络140m和输出层150z则不是。

考虑到在处理给定网络输入期间相同层中的多个模块化神经网络是活动的,在超神经网络110的每一层之后超神经网络还包括的相应的组合层132a-132n。

每一个组合层132a-132n被配置为在处理网络输入102期间接收由组合层之前的层中的当前活动的模块化神经网络生成的模块化输出,并且组合、例如求和或平均由当前活动的模块化神经网络生成的模块化输出以生成组合输出。

每一个组合层的组合输出(除了堆栈中最后一层之后的组合层之外)是用于组合层之后的层的层输入。相反,堆栈中最后一层之后的组合层的组合输出是堆栈输出,即提供给与正在执行的机器学习任务相对应的输出层的输出。

为了配置超神经网络110以用于执行多个机器学习任务,神经网络系统100在每一个任务上训练超神经网络110。特别地,在给定任务上训练超神经网络110时,系统确定(i)用于机器学习任务的路径,以及(ii)路径中的模块化神经网络的参数的训练值,以及可选地,用于任务的一个或多个输出层的集合。

一旦系统100已在给定任务上训练超神经网络110,系统将路径中的模块化神经网络的参数固定为训练值,即在超神经元网络110在不同的任务上的后期训练期间不修改这些值。在后续任务上训练超神经网络110时,系统100保持在用于已经确定路径的多个机器学习任务中的任何机器学习任务的路径中的任何模块化神经网络的参数的固定值。

通常,为了在机器学习任务上训练超神经网络110,神经网络系统100执行多个训练回合以更新用于机器学习任务的候选路径的总体。

在一些情况中,对于每一个训练回合,系统在一对候选路径上连续训练并且然后评估该对候选路径以确定如何更新总体。下面参考图3更详细地描述这种训练技术。

在一些其他情况中,对于每一个训练回合,系统并行地在大量候选路径上训练并且然后确定是否修改每一个候选路径。下面参考图4更详细地描述这种训练技术。

图1b示出了通过超神经网络110的示例的示例路径。

在图1b的示例中,超神经网络110被配置为执行两个强化学习任务,第一任务162以及第二任务164。对于每一个任务,超神经网络110接收作为与代理交互的环境的图像的环境图像160作为输入,并且生成用于选择代理要执行的动作的策略读数和值读数作为输出。然而,每一个任务具有通过超神经网络110的不同路径。在图1b的示例中,示出了第二任务164的路径并且路径中的模块化神经网络通过箭头连接,而不在路径中的模块化网络不通过箭头连接。每一层之后的组合层也通过箭头连接。因此如在示例中可见,为生成第二任务164的输出,超神经网络110使用每层中的、组合层中的以及用于第二任务164的输出层中的模块化网络的子集以处理环境图像160。不使用第一任务162的输出层以及不在路径中的模块化网络。

图1c示出了训练神经网络以执行多个任务的多种方法的图170、图180、图190。

在每一个图中,横轴示出在两个不同的任务上训练神经网络达到.998准确度所需的代际的组合数,其表示训练所需的时间。在此上下文中的代际是指对固定数量的训练数据的训练。纵轴表示频率,即在相应的组合代际数中多少次训练尝试达到.998准确度。

图170示出了对独立控制方案的测量,其中训练了两个单独的固定尺寸的网络,每一个网络用于一个任务。图180示出了对微调控制方案的测量,其中在第一任务上训练单个网络并且然后微调单个网络以还执行第二任务(但是无需改变通过神经网络的路径)。图190示出了用于本说明书中描述的方案的测量,其中训练每一个任务以具有通过超神经网络的相对应的路径,并且在训练第二任务时固定用于第一任务的路径。

从图170、图180和图190可以看出,所描述的方案导致训练以在全部任务上达到期望的准确度所需的时间显著地更少。特别地,独立控制方案具有为195代际的平均值、微调方案具有为229代际的平均值而所描述的方案具有仅为167代际的平均值。

图2是用于使用超神经网络处理网络输入的示例过程200的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的神经网络系统、例如图1a的神经网络系统100可以执行过程200。

系统接收用于由超神经网络处理的网络输入以及识别要在网络输入上执行的机器学习任务的任务数据(步骤202)。所识别的机器学习任务是超神经网络已被训练以执行的多个任务中的一个。

系统选择通过超神经网络中的多个层的特定于所识别的机器学习任务的路径(步骤204)。

特别地,路径为超神经网络中的每一层指定了层中的在执行所识别的机器学习任务时被指派为活动的模块化神经网络的真子集,即少于全部。

也就是说,系统针对超级神经网络已在其上被训练的多个任务中的每一个保持指定与任务相对应的相应路径的数据。由于超神经网络已在机器学习任务上被训练的方法,每一个任务将具有与每一个其他任务不同的相对应的路径。也就是说,虽然两个任务的路径可以共享一个或多个模块化神经网络,但是用于一个任务的路径通常包括至少一个不包括在另一个任务的路径中的模块化神经网络。

然后,系统从保持的数据中识别与所识别的机器学习任务相对应的路径。

系统使超神经网络根据用于所识别的机器学习任务的所选择的路径处理网络输入(步骤206)。

特别地,该系统使超神经网络使用(i)对于每一层,层中的被所选择的路径指派为活动的模块化神经网络,以及(ii)对应于所识别的机器学习任务的一个或多个输出层的集合来处理网络输入。在处理输入时,不使用未被所选择的路径指派为活动的模块化神经网络。

该系统可以通过配置超神经网络的连接性并且然后提供网络输入以用于由神经网络处理来根据所选择的路径使超神经网络处理网络输入。特别地,系统配置连接性使得仅活动的模块化神经网络接收输入并生成输出并且使得与所识别的机器学习任务相对应的一个或多个输出层接收由层堆栈生成的堆栈输出,而其他输出层不接收任何输入。

一旦生成网络输出,系统就可以输出网络输出或根据网络输出生成的经处理的输出以例如用于呈现给用户或另一系统以便立即使用或以便存储。

图3是用于在新的机器学习任务上训练超神经网络的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的神经网络系统、例如图1a的神经网络系统100可以执行过程300。

系统初始化候选路径的总体(步骤302)。

候选路径中的每一个针对超神经网络中的每一层指定层中的在执行特定机器学习任务时被指派为活动的模块化神经网络的相应的真子集。

特别地,系统根据某些判据随机地选择固定数量的候选路径。例如,判据可以指定每一个候选路径应该从每一层包括至少预定的最小数量的模块化神经网络,但从任何给定层包括不超过预定最大数量的模块化神经网络。

系统从总体中选择一对候选路径(步骤304)。例如,系统可以从总体中随机地选择对。

系统在选择的候选路径中的每一个上训练超神经网络(步骤306)。

特别地,对于候选路径中的每一个,系统训练超神经网络,同时仅使用被候选路径指派为活动的模块化神经网络以及对应于特定机器学习任务的输出层来处理训练输入,即并且不使用任何未被候选路径指派为活动的模块化神经网络。

因为系统仅使用路径中的模块化神经网络以及对应于任务的输出层训练,所以在训练期间仅调整路径中的模块化神经网络以及对应于任务的输出层的参数值。另外,如果候选路径包括在已确定路径的多个机器学习任务中的任何机器学习任务的路径中的任何模块化神经网络,即,在用于已在其上训练超神经网络的任务的路径中,系统保持那些模块化神经网络的参数值固定并且在训练期间不修改值。

更具体地,对于候选路径中的每一个,系统使用适应于机器学习任务的机器学习训练过程在候选路径上训练超神经网络固定的时间量或者固定的训练迭代数。例如,对于监督机器学习任务,例如图像分类、机器翻译或语音识别,训练过程可以是传统的监督学习训练过程,例如随机梯度下降。作为另一个示例,对于机器人控制任务,训练过程可以是传统的强化学习训练过程,例如演员-评价者(actor-critic)技术、策略梯度技术或深度q学习技术。

系统基于训练的结果确定候选路径中的每一个的适应性(步骤308)。通常,候选路径的适应性度量使用候选路径生成的输出的质量。所使用的适应性的度量可以是适合机器学习任务的任何度量。例如对于监督学习任务,适应性可以是在训练期间超神经网络的负分类误差。作为另一示例,对于强化学习任务,例如机器人控制任务,其中系统使用强化学习技术训练超神经网络并且接收作为执行的动作的结果的奖励,适应性可以是在训练候选路径时累积的回报。回报是在训练路径时接收到的奖励的时间折扣组合,例如时间折扣总和。

系统确定所选择的候选路径中的哪一个具有最佳适应性(步骤310)并且用总体中的最佳适应候选路径的副本替换该对中的另一个候选路径,即不具有最佳适应性的路径(步骤312)。在一些实施方式中,对于被替换的路径中的模块化网络,系统保持来自被替换的路径的训练的参数值。在其他实施方式中,系统将参数值恢复为在替换路径的训练开始之前的值。

然后,系统变化具有最佳适应性的候选路径的副本以生成变化的候选路径(步骤314)。因此,在该步骤之后,总体包括(i)最佳适应候选路径以及(ii)最佳适应候选路径的变化的副本,但不包括(iii)该对中的另一候选路径。

系统通过将候选路径中的活动的模块化神经网络中的一个或多个改变为不同的模块化神经网络来变化给定的候选路径。

特别地,系统可以通过针对候选路径中的模块化神经网络中的每一个确定是否替换模块化神经网络并且响应于确定替换模块化神经网络而将模块化神经网络指派为非活动状态并且将相同层中的另一个模块化神经网络指派为活动来变化候选路径。在一些情况中,系统从同一层中的其他模块化网络中随机挑选不同模块化神经网络。在一些其他情况中,系统从层内的模块化神经网络的局部邻域中随机挑选不同的模块化神经网络。在一些其他情况中,系统偏置变化操作符,使得当前更全局有用的模块化网络,即已经在用于一个或多个其他任务的一个或多个路径中的网络,更可能被插入到新任务的路径中。

在一些实施方式中,系统确定是否用与1除以第一候选路径中的模块化神经网络的总数相等或成比例的概率来替换模块化神经网络中的每一个,即使得每一个神经网络具有相同的被替换的可能性。

系统可以对总体中的全部候选路径重复地执行步骤304-314以更新总体并调整超神经网络的参数值。例如系统可以针对每一个候选执行固定数量的步骤的迭代、执行步骤的迭代固定的时间量或者执行步骤的迭代直到总体中的候选中的任何一个达到错误阈值。

在训练完成之后,即在已经执行了步骤304-314的最后一次迭代之后,系统选择具有最佳适应性的候选路径作为新的机器学习任务的路径。系统还固定被所选择的路径指派为活动的模块化神经网络的参数值,即使得在后续任务上训练超神经网络期间这些值不被调整。对于不是所选择的路径的一部分并且不是已在其上训练超网络的任何其他机器学习任务的任何所选择的路径的一部分的每一个超神经网络,系统重新初始化参数的值,即将参数值重新设置为初始值。

图4是在新的机器学习任务上训练超神经网络的另一示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的神经网络系统例如图1的神经网络系统100可以执行过程400。

系统初始化候选路径总体(步骤402)。特别地,系统根据上述判据随机选择固定数量的候选路径。

然后,系统并行地对总体中的候选路径中的每一个执行步骤404-416。

系统在特定候选路径上训练超神经网络(步骤404),即如上参考步骤306所述。在训练期间,如果正在其上训练的两个或更多路径包括相同的模块化神经网络,则在该训练回合期间通过两个路径更新模块化神经网络的参数值。

如上所述,如果候选路径包括位于已经训练超神经网络的任务的路径中的模块化神经网络,则系统在候选路径上训练超神经网络时保持模块化神经网络的参数值固定。

系统基于候选路径上的超神经网络的训练结果来确定特定候选路径的适应性(步骤406),即如上参考步骤308所述。

系统确定总体中的其他候选路径的子集中的任何一个是否具有比特定候选路径更好的适应性(步骤408)。特别地,系统从总体中随机选择固定数量的其他候选路径并将特定候选路径的适应性与其他候选路径的适应性进行比较。

如果子集中的其他候选路径中的任何一个具有更好的适应性,则系统识别具有子集中的其他候选路径的最佳适应性的子集中的候选路径(步骤410),并用所识别的具有最佳适应性的候选路径替换特定候选路径(步骤412)。

然后,系统通过改变所识别的候选路径中的活动的模块化神经网络中的一个或多个来变化被添加到总体中的具有最佳适应性的所识别的候选路径的副本(步骤414)。特别地,系统如上面参考图3所述来变化所识别的候选路径。

因此,在该步骤之后,总体包括(i)具有最佳适应性的所识别的候选路径以及(ii)所识别的候选路径的变化的副本两者,但不包括(iii)(已由变化的副本替代的)特定候选路径。

如果子集中没有候选路径具有更好的适应性,则系统保持候选路径以用于进一步训练,即不从总体中移除特定候选路径(步骤416)。

系统可以对总体中的全部候选路径重复地执行步骤404-416以更新总体并且调整超神经网络的参数值。例如系统可以针对每一个候选执行固定数量的步骤的迭代、执行步骤的迭代固定的时间量或者执行步骤的迭代直到总体中的候选中的任何一个达到错误阈值。

在一些情况中,系统相对于总体中的各种候选异步地执行步骤404-416。也就是说,一旦系统对于给定候选结束了步骤404-416的迭代,系统就可以开始另一次迭代而无需等待完成对总体中的其他候选者的步骤的迭代。在这些情况中,系统可以在评估给定候选路径的同时将路径的适应性设置为大的负数以确保在候选路径仍在被评估时不选择该候选路径用于变化。

在训练完成之后,即在已经执行步骤404-416的最后一次迭代之后,系统选择总体中的具有最佳适应性的候选路径作为用于新的机器学习任务的路径。该系统还固定被所选择的路径指派为活动的模块化神经网络的参数值,即使得在后续任务上训练超神经网络期间这些值不被调整。对于不是所选择的路径的一部分并且不是已在其上训练超网络的任何其他机器学习任务的任何所选择的路径的一部分的每一个超神经网络,系统重新初始化参数值,即将参数值重新设置为初始值。

在一些情况中,系统按序列对多个任务执行过程300或过程400,即一个接一个地在任务上训练超神经网络并且每次仅训练一个任务。在这些情况中,在给定任务上进行训练时,保持用于序列中给定任务之前的任何任务的路径中的模块化神经网络的参数值固定。

在一些其他情况中,系统并发地对多个任务执行过程300或过程400,即一个任务上的训练与另一个任务上的训练交错。在这些情况中,在同时训练多个任务时,仅固定用于在多个任务上训练之前的在其上训练超神经网络的任务的路径中的模块化神经网络的参数值。也就是说,如果对于又一项任务的训练已经完成了,则这些任务的路径是固定的,但允许在多个并发任务中的一个上的训练影响多个并发任务中的其他任务的训练。

本说明书描述了通过重复评估以及改变路径来为给定的任务选择路径的技术。然而用于选择路径的其他技术也是可能的。例如,可以使用强化学习方法例如策略梯度方法以学习随着由路径获取的长期回报而变并且随着对于新任务的任务描述输入而变的路径的分布。

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

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

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

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

在本说明书中,术语“数据库”广泛地用于指代任何数据集合:数据不需要以任何特定方式构造或根本不需要构造,并且数据可以存储在一个或多个位置中的存储设备上。因此,例如索引数据库可以包括多个数据集合,每一个数据集合可以不同地组织以及访问。

类似地,在本说明书中术语“引擎”广泛地用于指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或部件。在某些情况中,一个或多个计算机将专用于特定的引擎;在其他情况中,可以在同一个计算机或计算机上安装并运行多个引擎。

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

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

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

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

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

可以使用例如tensorflow框架、微软认知工具包(microsoftcognitivetoolkit)框架、apachesinga框架或apachemxnet框架的机器学习框架来实现和部署机器学习模型。

本说明书中描述的主题的实施例可以在计算机系统中实现,所述计算机系统包括后端部件,例如作为数据服务器,或包括中间件部件,例如应用服务器,或包括前端部件,例如具有用户可以通过其与本说明书中描述的主题的实现交互的图形用户界面、web浏览器或应用的客户端计算机,或者一个或多个这类后端、中间件或前端部件的任何组合。系统的部件可以通过任何形式或介质的数字数据通信例如通信网络互连。通信网络的示例包括局域网(lan)以及广域网(wan),例如互联网。

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

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

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1