具有顺序学习任务的域中的可扩展持续学习的神经网络的制作方法

文档序号:23068065发布日期:2020-11-25 17:55阅读:106来源:国知局
具有顺序学习任务的域中的可扩展持续学习的神经网络的制作方法



背景技术:

本说明书涉及多任务神经网络,即,使用同一神经网络来执行多个机器学习任务。

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



技术实现要素:

本说明书描述了一种系统,该系统被实现为在一个或多个位置的一个或多个计算机上的计算机程序,训练神经网络执行多个机器学习任务。

由于神经网络的架构以及在各种机器学习任务上训练神经网络的方式,因此神经网络能够以可扩展方式进行持续学习。持续学习是指能够学习新的机器学习任务而又不会忘记较早的任务。换句话说,持续学习是指训练神经网络在新的机器学习任务上达到可接受的性能,同时在较早的任务上保持可接受的性能。

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

需要许多系统来执行多个不同的机器学习任务。例如,可能需要一些系统执行多个不同的图像分类任务,例如,需要将输入图像分类为不同类别的多个不同任务。作为另一个示例,可能需要一些系统执行多个不同的语音识别任务,例如,对同一移动设备的不同用户的多个不同的热词检测任务。作为又一示例,可能需要控制机械代理的系统来控制同一代理执行多个不同的任务。

一些用于多任务学习的常规方法要求为每个任务添加新参数。例如,某些方法为每个任务使用单独的神经网络。作为另一个示例,一些方法对每个任务将新的子网添加到现有神经网络。因为为每个任务添加了新参数,所以这些系统很快会变得计算量过大,从而无法有效地将它们用于多个任务。也就是说,因为为每个任务添加了新参数,所以系统消耗了更多的计算资源,例如,存储器、处理能力和处理时间,并且它们需要执行每个新任务。

用于多任务学习的其他常规方法对每个任务使用相同的神经网络,并对系统需要执行的每个新任务调整神经网络的参数值。当需要执行多个任务时,这些系统可能会失败。在一些情况下,当参数值更改以使新任务能够实现高质量性能,较早任务的性能会降低,因为新值不再对较早任务有用。在其他情况下,例如,当参数值被约束为与较早值相差不大时,则无法训练神经网络以在新任务上实现高质量性能。

相反,如本说明书中所述的系统可以以资源有效的方式为多个不同的任务生成高质量输出,即,不会由于系统需要执行的任务数量增加而消耗过多的计算资源。

概括而言,本文件描述了一种神经网络,其包括知识子网和活动子网。例如,每个子网可以是多层系统,其具有生成该子网的输出的输出层。在训练期间,两个子网通常会接收相同的输入(例如,当神经网络正在执行给定任务时,两个子网的输入都是输入数据的示例,神经网络将根据任务将输入数据转换为输出数据),但是活动子网的部分或所有层接收由知识子网生成的附加输入(例如,输出网络的一层的输出,不是知识子网的输出层)。

神经网络被持续训练以学习多个任务。对于每个任务,当任务的相应示例输入到两个网络时,首先对活动子网进行训练(例如,从初始状态开始)以学习任务,然后对知识子网进行训练,以生成与活动子网的输出匹配的输出。对于每个新任务(例如,除第一任务外的每个任务),对新任务的知识子网的训练使用目标函数,该目标函数包括一个或多个术语,与训练新任务的知识子网之前的参数值相比,惩罚修改知识网络的参数。

所描述的系统即使在对新任务进行训练之后,也能在较早的任务上保持有效的性能,即使在神经网络对新任务进行训练时神经网络的参数数量也不会增加。这是因为训练的活动子网用于将从新任务中学习的知识“提取”到知识子网中,同时防止知识子网“忘记”较早的任务。也就是说,知识子网被训练以匹配由训练的活动子网对新任务生成的输出,同时仍保持较早任务的有效性能。

在对新任务进行训练时,由于知识子网和活动子网之间的连接,并且由于在对活动子网进行训练时知识参数是固定的,因此所描述的系统有效地利用了从较早任务中提取的知识来加快对新任务的训练(并减少训练所需的计算资源量),提高新任务的性能或两者兼而有之。

由于知识子网的训练方式,所描述的系统可对大量新任务进行训练,而不会导致较早任务的性能过度下降,并且如上所述,不会增加神经网络所消耗的计算资源量。

另外,所描述的系统能够进行正向后移。也就是说,由于在给定任务上训练知识子网的方式,在系统对新任务训练神经网络之后,如果新任务与较早的任务相似或相关,则知识子网在较早任务上的性能可以提高。因此,系统可以提高较早任务的性能,而无需查看该任务的新训练数据,从而允许训练更加节省资源。

这使得所描述的系统适用于计算资源有限的应用。这样的特定示例是在具有有限的计算能力和存储器资源的消费者设备(例如,移动设备(例如,智能电话))上实现的神经网络。例如,可以训练所描述的系统以解决多个用户定义的任务,诸如识别用户说出的特定热词(例如,命令),例如,在用户使用移动设备的不同情况下,不同的热词是相关的。另一个特定示例是嵌入在机器人控制系统中的神经网络,其中该神经网络用于控制机器人执行多个不同的任务。

此外,因为在训练之后,相同的知识子网用于生成所有任务的输出,所以系统不需要将接收的输入标记为它们所对应的任务。这允许即使在测试时系统无法访问指定哪个输入对应于哪个任务的信息也允许使用所描述的系统。

在一些情况下,神经网络学习的至少一个任务,最好是一系列任务中的多于一个,诸如一系列任务的全部,是:

(i)将表征现实世界的输入传感器数据(例如,由相机捕获的图像或视频;或由麦克风捕获的声音信号)转换为将传感器数据分类为多个类别之一的输出的任务;

(ii)将输入数据(例如文本数据)转换为对现实世界起作用的单元(例如致动器、图像生成设备(屏幕或投影仪)或扬声器单元)的控制数据的任务,或

(iii)将表征与代理(例如机器人或自主车辆)交互的环境(例如,现实世界)的输入数据转换为定义代理的动作的输出数据(例如,输出数据是代理的控制数据或用于生成代理的控制数据)的任务。

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

附图说明

图1a和图1b示出示例多任务神经网络系统。

图2是用于对新任务训练神经网络的示例处理的流程图。

图3是用于在已经对一个或多个任务训练了神经网络之后对附加任务训练神经网络的示例处理的流程图。

图4是用于在训练的压缩阶段期间确定知识参数的更新的示例处理的流程图。

各个附图中的附图标记和标号指示相似的元件。

具体实施方式

图1a和图1b示出示例多任务神经网络系统100。多任务神经网络系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中可以实现以下所述的系统、组件和技术。

多任务神经网络系统100训练神经网络以执行多个机器学习任务。由于神经网络的架构以及在各种机器学习任务上训练神经网络的方式,因此神经网络能够以可扩展的方式进行持续学习。持续学习是指能够学习新的机器学习任务而又不会忘记较早的任务。换句话说,持续学习是指训练神经网络在新的机器学习任务上达到可接受的性能,同时在较早的任务上保持可接受的性能。可以将“可接受”定义为在任务上的错误率低于阈值。错误率的定义以及对应阈值对于不同的任务可能会有所不同。可选地,在学习新任务之后,可以存在检查一个或多个较早任务的错误率低于对应阈值的步骤,并且如果确定对于一个或多个较早任务的错误率是并非如此,则那些较早(或多个)任务可以再次被相继学习(例如,直到那些任务的错误率再次可接受为止)。

通常,系统100对来自顺序学习的任务的域(即依次学习任务的域)的多个任务训练神经网络。也就是说,系统100依次、即一个接一个地对多个机器学习任务训练神经网络,而不是对多个任务并行训练神经网络。在一些情况下,系统会在训练期间“重新访问”特定任务,即同一任务可能会出现在序列中的多个位置。

当系统100依次对任务训练神经网络时,一旦已经对给定任务训练了神经网络,则系统100可以接收和处理对神经网络已经对其进行训练的任何任务的输入。

在一些情况下,多个机器学习任务是监督学习任务。

例如,多个任务可以包括多个不同的图像分类任务。每个图像分类任务都需要一个输出,该输出是在对象类别集合上的分数分布。在一些情况下,可以对不同的图像分类任务从不同的分布绘制待分类的图像,例如,一个任务可能需要对现实世界对象的图像进行分类,而另一任务可能需要对绘画或其他人工生成的图像进行分类。可选地或另外,对象类别的集合对于不同的图像分类任务是不同的。例如,一个任务可能需要对描绘来自较大类别集合的一个子集的对象的图像进行分类,而另一任务可能需要对描绘来自较大类别集合的不同子集的对象的图像进行分类。

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

作为另一个示例,多个任务可以包括多个不同的自然语言处理任务。例如,任务可以包括多个机器翻译任务,每个任务需要被翻译成不同的语言。

在其他一些情况下,多个机器学习任务是多个不同的强化学习任务。

例如,任务可以包括多个不同的代理控制任务,即,包括控制机械代理以使代理执行特定任务的任务。代理可以是例如机器人或自主或半自主车辆。神经网络的每个输入可以包括表征由代理与之交互的环境的状态的观察,并且神经网络的输出之一可以是策略输出,该策略输出定义响应于观察要由代理执行的动作,例如,定义对代理的可能控制输入的概率分布的输出,预测一个或多个可能控制输入的返回的输出,或响应于观察而直接识别代理的最佳控制输入的输出。神经网络还可以生成值输出,该值输出估计该值以完成处于当前状态的环境的当前任务。多个不同的任务可以包括需要控制同一代理完成两个不同任务的任务、需要控制不同的代理以完成相同任务的任务、或两者。在不同的任务中,环境可以相同或不同。

被训练以执行多个任务的神经网络包括知识子网140和活动子网170。知识子网140和活动子网170二者被配置为生成相同类型的输出,即,对神经网络正对其进行训练的多个任务所需的输出类型。例如,两个子网可以对监督学习任务的每个接收输入在可能分类集合上生成概率分布,或者可以对强化学习任务生成策略输出、值输出或两者。由知识子网140生成的输出在本说明书中将被称为知识输出,并且由活动子网170生成的输出在本说明书中将被称为活动输出。

一旦已经对特定任务训练了神经网络,则知识输出、即知识子网140的输出就可以用作神经网络的输出,以用于与该任务(以及训练序列中已经训练了神经网络的任何较早任务)相对应的输入。

尽管活动子网170和知识子网140生成相同类型的输出,但是两个子网通常具有不同的神经网络架构。

更具体地,活动子网170和知识子网140都包括相应的多个神经网络层(分别称为“活动层”和“知识层”)和具有相应的参数(分别称为“活动参数”和“知识参数”)。

然而,活动子网170中的活动层中的至少一个被配置为在两个子网的输入的处理期间,接收由知识子网140中的知识层之一生成的层输出作为输入。从下面的描述中可以看出,以这种方式配置神经网络允许活动子网170在进行给定任务训练时,将知识子网140学习的信息用于较早的任务。

活动子网170和知识子网140可以具有多种神经网络架构中的任何一种,其中部分或全部主动神经网络层在知识子网中具有相应的对应层,并接收从对应知识层的输出中得出的输入作为输入。

在一种形式中,每个子网包含层序列,其中序列的第一层接收到子网的输入,序列的最后一层是生成子网的输出的输出层,并且每一层(除了最后一层)生成被馈送到序列的下一层的输入的输出。这两个网络中的一个或两个可以是前馈系统,其中,来自一层的输出数据不会被反馈到序列的较早层。根据神经网络的输入,序列中的层可以包括以下中的一个或多个:全连接层、卷积层或递归层。

作为特定示例,知识子网和一部分活动子网可以具有相同的架构(例如,每个可以包含相同数量的层),但是活动子网也可以包括多个分层适配器层。每个分层适配器层对应于相应的知识层和相应的活动层,并且被配置为接收由对应的知识层之一生成的层输出作为输入,处理层输出以生成转换输出,并将转换输出作为输入提供到对应的活动神经网络层之一。因此,对应的活动神经网络层既从分层适配器层又从活动子网170中的另一个活动层接收输入。

在活动子网170和知识子网140分别包括层序列的情况下,相继地,给定的分层适配器层可以将序列中位置i处的知识层的输出连接到序列中位置i+1处的活动层的输入。当知识层是全连接层或循环层时,分层适配器层可以是多层感知器。当知识层是卷积层时,分层适配器层可以是1x1卷积层。

在progressiveneuralnetworks,andreia.rusu,neilc.rabinowitz,guillaumedesjardins,hubertsoyer,jameskirkpatrick,koraykavukcuoglu,razvanpascanu,raiahadsell,availableathttps://arxiv.org/abs/1606.04671中更加详细地描述了可用于各种任务的活动和知识子网的分层适配器层和架构的示例,其内容通过引用结合在此。

为了对给定的新任务训练神经网络,系统首先对任务的训练数据训练活动子网170,同时保持知识子网的活动参数140的值固定。活动子网170的这种训练将被称为训练的“进展”阶段,并且在图1a中描述。

如果给定的新任务不是正在训练神经网络的第一个任务,则系统会重新初始化活动子网170的活动参数的值,然后训练活动子网170以从重新初始化的值确定活动参数的训练值。下面参照图3更详细地描述重新初始化活动参数。

然后,系统100在保持活动子网170的活动参数的训练值固定的同时训练知识子网140。特别地,系统训练知识子网140以生成与由训练的活动子网生成的活动输出匹配的知识输出,用于训练新任务的输入。当已经对一个或多个较早任务训练了神经网络时,系统100训练知识子网以在匹配活动输出时达到可接受的性能,同时对较早机器学习任务保持可接受的性能。因此,一旦被训练,知识子网140就能够为新任务和较早任务生成高质量的输出。知识子网140的这种训练将被称为训练的“压缩”阶段,并且在图1b中描述。

特别地,如图1a所示,系统100通过对于新任务对不同的训练输入110集合重复执行阶段a至c来执行训练的进展阶段。

例如,对于监督学习任务,不同的训练输入集合可以是新任务的不同的训练输入微批次(以及对应的目标输出)。作为另一个示例,对于强化学习任务,不同的训练输入集合可以是不同的经验数据集合,即,不同的轨迹或体验元组的微批次,是由于代理与环境交互以执行新任务的结果而生成的。

在训练的进展阶段的阶段a,系统100使用知识子网140和活动子网170来处理每个接收的新任务网络输入110。

因为如上所述,部分或全部活动层接收由知识层生成的输出生成或从知识层生成的输出得出的输入,所以当已经对一个或多个较早任务训练了神经网络时,这允许活动子网170生成的输出利用在对较早任务训练期间知识子网140学习的信息,这些信息也可能与当前任务相关。也就是说,系统100有效地利用了较早任务和新任务之间的相似度,以改善活动子网170对新任务的训练。

在训练的进展阶段的阶段b,训练引擎180使用适合于机器学习任务的机器学习技术来确定关于活动参数的梯度。例如,对于监督学习任务,系统可以确定监督学习目标函数(例如,交叉熵损失或对数似然损失)的梯度,该梯度测量活动输出相对于新输入110的正确标注(groundtruth)或目标输出的质量。作为另一个示例,对于强化学习任务,系统可以使用适合于子网生成的输出类型的强化学习技术来确定梯度,例如策略梯度技术、actor-critic技术或q-学习技术。

在训练的进展阶段的阶段c,系统100根据机器学习技术采用的更新规则来更新活动参数的当前值,同时保持知识参数固定。

因此,在训练的进展阶段,知识子网140和活动子网170二者处理每个接收的训练输入,但是仅活动参数的值被更新,而知识参数的值是固定的。

如图1b所示,系统100通过对新任务的不同训练输入210集合重复执行阶段d至f来执行训练的压缩阶段。

在一些情况下,在压缩阶段使用的训练输入210与在进展阶段使用的训练输入110相同。

在其他一些情况下,在压缩阶段使用的训练输入与在进展阶段使用的训练输入不同。例如,在压缩阶段中使用的训练输入可以是在进展阶段中使用的训练输入的超集合,例如,在监督学习任务中,其中可获得附加的未标记的输入。

在训练的压缩阶段的阶段d,系统100使用知识子网140处理每个接收的新任务网络输入210,以生成每个任务网络输入210的知识输出,并使用活动子网170处理每个接收的新任务网络输入210,以生成每个任务网络输入210的活动输出。

具体地,系统100根据在训练的进展阶段期间确定的活动参数的训练值,使用活动子网170来处理网络输入,即,活动参数的值在进度阶段之后是固定的并且在压缩阶段不会调整,同时在阶段d-f的先前迭代之后,根据知识参数的值使用知识子网140处理网络输入。

在训练的压缩阶段的阶段e,训练引擎180确定关于目标函数的知识参数的梯度,该梯度鼓励用于新训练输入的知识输出与由用于新训练输入的训练活动子网生成的活动输出相匹配。

更具体地,当已经对一个或多个较早任务训练知识子网140时,目标函数鼓励知识子网在匹配活动输出时达到可接受的性能,同时对较早机器学习任务保持可接受的性能。

下面参照图4更详细地描述可以用于训练的压缩阶段的目标函数的示例。

在训练的压缩阶段的阶段f,训练引擎180使用确定的梯度来更新知识参数的当前值,即,通过使用更新规则(例如,使用rmsprop或adam优化器更新规则)从梯度确定知识参数的当前值的更新,然后将更新添加到参数的当前值。

通过以这种方式重复执行阶段d-f,系统100训练知识子网140以在新任务上实现可接受的性能,同时在已经对知识子网进行训练的任何较早任务上保持可接受的性能

在对新任务训练知识子网140和活动子网170之后,系统100可以将由知识子网140生成的知识输出用于新输入,作为用于新任务的神经网络的输出。

因此,系统100训练知识子网140以可扩展的方式在多个任务上表现良好,即,在训练任何给定任务之后不增加知识子网140的参数数量。特别地,通过在进展阶段期间增加神经网络的“知识”,然后在压缩阶段期间将知识“提炼”或“压缩”回到知识子网140,系统100有效地使知识子网140执行在不增加知识子网规模的情况下,可以很好地处理新任务和任何较早任务。

图2是用于对新任务训练神经网络的示例处理200的流程图。为了方便,将处理200描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的多任务神经网络系统,例如图1的多任务神经网络系统100,可以执行处理200。

系统接收用于新的机器学习任务的新的训练数据(步骤202)。新的训练数据包括新的训练输入。当新任务是监督学习任务时,新训练数据还包括新训练输入的目标输出。当新任务是强化学习任务并且训练输入是或每个包括观察值时,新训练数据还包括对部分或全部观察值指定代理响应于观察值而执行的操作的数据以及代理在执行操作之后接收的奖励值。

该系统对新的训练数据训练活动子网以从活动网络参数的初始值确定活动网络参数的训练值,同时保持知识参数的当前值固定(步骤204)。如上所述,如果已经对任何较早任务训练了神经网络,则知识参数的当前值是在对较早任务训练之后的知识参数的值。另外,如上所述,由于知识层和活动层之间的连接,所以即使在较早训练之后重新设置了活动参数的值,活动子网也利用了在较早训练期间由知识子网学习的信息。

该系统对新训练数据训练知识子网,以通过训练知识子网生成用于新训练输入的知识输出,从而从知识参数的当前值确定知识参数的更新值,用于新训练输入的知识输出与用于新训练输入的由训练的活动子网生成的活动输出匹配(步骤206)。

如上所述,由于系统使用活动输出作为知识子网的训练目标,因此,即使附加的训练数据未标记,系统也可以在训练知识子网时使用新任务的附加训练数据(如果可用)。

另外,如上所述,当已经对一个或多个较早机器学习任务训练知识子网以确定知识参数的当前值时,系统训练知识子网在匹配活动输出时达到可接受的性能,同时在保持较早机器学习任务的可接受的性能。下面将参照图4更详细地描述在训练期间更新知识参数。

图3是用于在已经对一个或多个较早任务训练了神经网络之后对附加任务训练神经网络的示例处理300的流程图。为了方便,将处理300描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的多任务神经网络系统,例如图1的多任务神经网络系统100,可以执行处理300。

系统接收用于附加任务的训练数据(步骤302)。

系统重置活动参数的值(步骤304)。例如,系统可以将这些值重置为预定的初始值,例如零或固定的小正数。作为另一示例,系统可以根据常规的机器学习参数初始化技术通过生成用于活动参数的初始值来重新设置值,例如,通过从预定分布中采样用于每个活动参数的值。重要地,系统不会重新设置知识参数的值,并且保持来自较早训练的那些参数的值。

然后,如上所述,系统对附加任务训练神经网络。

特别地,系统首先对附加训练数据训练活动子网以从重置值确定活动参数的训练值(步骤306),同时保持知识参数的已经训练值固定。在此训练期间,即使重新设置参数的值,由于活动层和知识层之间的连接,活动子网也可以使用在较早训练中学习的信息,该信息可能与附加任务相关。

然后,系统对附加训练数据训练知识子网,以确定知识参数的进一步训练值,同时保持活动参数的训练值固定(步骤308)。

图4是用于在训练的压缩阶段期间确定知识参数的更新的示例处理400的流程图。为了方便,将处理400描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的多任务神经网络系统,例如图1的多任务神经网络系统100,可以执行处理400。

系统可以对网络输入集合中的每个新网络输入重复处理400,以确定每个网络输入的相应更新,然后组合(例如平均)每个网络输入的更新以确定网络输入集合的知识参数的最终更新。

该系统根据来自进展阶段的活动参数的训练值,使用活动子网处理新的网络输入,以生成新网络输入的活动输出(步骤402)。

该系统根据知识参数的当前值,使用知识子网处理新的网络输入,以生成新网络输入的知识输出(步骤404)。

在一些实现方式中,子网的输出是或包括概率分布,并且子网的输出层包括softmax层。softmax层是执行由温度定义的softmax函数的层。例如,用zk示softmax层的输入(其中整数k表示输入),softmax层的输出可以为σk,其中其中温度是β的倒数。在知识子网的训练期间,相对于训练后由知识子网生成的输出,可以以升高的温度来生成活动输出和知识输出。也就是说,系统将softmax输出层的温度设置为高于训练后将使用的值的值,例如,大于1的值,以使softmax输出层生成的概率分布比训练的神经网络生成的分布更均匀。

系统确定对知识参数的当前值的更新(步骤406)。

特别地,系统确定关于目标函数的知识参数的梯度,该梯度鼓励新训练输入的知识输出与新训练输入的由训练的活动子网生成的活动输出相匹配。如果已经对一个或多个较早任务训练了知识子网,则目标函数还鼓励知识子网在匹配活动输出时达到可接受的性能,同时在较早的机器学习任务上保持可接受的性能。

更具体地,该系统可以使损失函数最小化,该损失函数包括:(i)第一项,测量给定新训练输入的知识输出与活动输出之间的相似度;以及(ii)一个或多个第二项,对知识子网进行惩罚的,其知识参数的值与上一轮训练后的知识参数的值存在偏差。

例如,第一项可以基于活动输出和知识输出之间的kl散度,即,可以是kl散度或可以是通过权重调整的kl散度。

在一些情况下,第二项是来自弹性加权固化(elasticweightconsolidation,ewc)损失函数的惩罚项。ewc损失的惩罚项会减慢学习速度,即鼓励特定参数的更新幅度较小,这取决于那些参数对较早任务的重要性如何。特别是,ewc损失造成的惩罚项是每个较早任务的惩罚总和。对于给定的新任务i,惩罚项(即损失函数中的第二项)满足:

其中,θ是评估损失时的知识参数的值,是学习任务j时的最大后验(map)参数,fj是对于任务j在map参数评估的任务j的知识子网的fisher信息矩阵,且范数是mahalonobis范数。

map参数是学习给定任务i时知识参数的后验分布的模式,即p(θ|t1:i),其中θ是知识参数,t表示任务。可以使用应用于以下损失的标准随机优化器来计算map参数:

可选地,第二项可以是修改的在线ewc惩罚项,其为所有较早任务保持单个整体fisher信息矩阵,而不是为每个较早任务保持单独的fisher。特别地,第二项可以满足:

其中,θ是截至评估损失时知识网络参数的值,是对较早任务训练知识子网之后的map参数,即是任务i-1的map参数,是对在map参数评估的所有较早任务训练知识子网之后的整体fisher矩阵,γ是小于1的超参数,范数是mahalonobis范数。

在这些情况下,一旦系统已经对任务i训练了神经网络,则系统会更新map参数,即,在使用上述随机优化器对任务i训练知识子网进行之后确定新的map参数,并更新整体fisher矩阵。例如,在对任务i训练知识子网之后,整体fisher矩阵可以满足:

其中,fi是对任务i训练之后在map参数下评估的任务i的fisher矩阵。在一些情况下,系统会先使用fisher矩阵fi对其进行归一化,在使用它来计算整体fisher矩阵。例如,这可能导致损失函数在更新fisher时平等地对待每个任务,而不是对具有较大范数的fisher矩阵的任务给予更多权重。

一旦已经对给定任务训练了神经网络,系统便可以将指定训练的知识子网的数据(例如,知识参数的训练值)和定义知识子网架构的数据提供给另一个系统,以用于执行新任务以及已在其上训练知识子网的任何较早任务。可选地或另外,系统可以开始使用训练的知识子网对新接收的输入执行新任务。

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

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

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

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

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

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

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

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

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

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

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

可以使用机器学习框架(例如,tensorflow框架、microsoftcognitivetoolkit框架、apachesinga框架或apachemxnet框架)来实现和部署机器学习模型。

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

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

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

类似地,尽管在附图中以特定顺序描绘了操作并在权利要求中对其进行了叙述,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或打包成多个软件产品。

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

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