使用异策略行动者-评价者强化学习进行分布式训练的制作方法

文档序号:21484670发布日期:2020-07-14 17:10阅读:369来源:国知局
使用异策略行动者-评价者强化学习进行分布式训练的制作方法

本说明书涉及强化学习。



背景技术:

智能体(agent)可以通过执行响应于接收到表征环境的当前状态的观察而选择的动作来与环境交互。可以根据神经网络的输出来确定响应于接收到给定观察而要由智能体执行的动作。

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



技术实现要素:

本说明书描述了一种分布式训练系统,该分布式训练系统被实现为在一个或多个位置的一个或多个计算机上的计算机程序,该系统可以使用异策略(off-policy)行动者-评价者强化学习技术来训练动作选择网络。

根据第一方面,提供了一种用于训练动作选择神经网络的方法,所述动作选择神经网络用于选择要由与环境交互的智能体执行的动作。所述动作选择神经网络被配置为根据所述动作选择神经网络的当前参数值处理包括所述环境的观察的输入以生成输出,所述输出包括对于所述智能体能够执行的预定的一组动作中的每个动作的相应的学习者策略得分。

该方法可以包括获得一个或多个经验元组的序列,其中,每个经验元组包括:(i)表征在相应的时间步骤处所述环境的实例的状态的观察、(ii)使用行为策略被选择为在所述相应的时间步骤处要由所述智能体执行的动作、(iii)当所述动作被选择时通过所述行为策略分派给所选动作的行为策略得分、(iv)表征在所述智能体执行所选动作之后环境实例的后续状态的后续观察、以及(iv)在所述智能体执行所选动作之后接收到的反馈值。行为策略可以是当获得经验元组时动作选择神经网络使用的策略。

该方法还可以包括调整状态值神经网络的当前参数值,其中,所述状态值神经网络被配置为根据所述状态值神经网络的当前参数值来处理包括所述环境的观察的输入,以生成输出,所述输出包括对于所述观察的状态值。

所述调整可以包括:使用所述状态值神经网络,根据所述状态值神经网络的当前参数值,并基于所述序列中的第一经验元组中包括的所述观察,确定对于所述序列中的所述第一经验元组中包括的观察的状态值。

对于经验元组的序列中的每个经验元组,所述调整还可以包括:使用所述动作选择神经网络,根据所述动作选择神经网络的当前参数值并基于所述经验元组中包括的所述观察,确定对于来自所述经验元组的所选动作的学习者策略得分;基于(取决于)对于所选动作的所述学习者策略得分与对于所选动作的所述行为策略得分的比来确定跟踪系数;基于(取决于):(i)对于所述经验元组的所述跟踪系数、以及(ii)对于所述序列中的所述经验元组之前的任何经验元组的跟踪系数,来确定对于所述经验元组的校正因子;以及确定对于经验元组的状态值时间差异;这可以表示经验元组中的观察和后续观察的状态值之间的差异,并且可以至少基于:(i)所述经验元组中包括的所述反馈值、(ii)通过根据所述状态值神经网络的当前参数值处理所述经验元组中包括的所述观察而生成的对于所述经验元组中包括的观察的状态值、以及(iii)通过根据所述状态值神经网络的当前参数值处理所述经验元组中包括的所述后续观察而生成的对于所述经验元组中包括的所述后续观察的状态值。

所述调整还可以包括至少基于:(i)所述校正因子、(ii)所述状态值时间差异和(iii)对于所述序列中的所述第一经验元组中包括的所述观察的所述状态值,确定对于所述序列中的所述第一经验元组中包括的所述观察的状态值目标;确定状态值损失函数相对于所述状态值神经网络的参数的梯度,其中,所述状态值损失函数至少基于所述状态值目标;并基于所述梯度调整所述状态值神经网络的当前参数值。

该方法还可以包括至少基于(取决于):(i)对于来自所述序列的所述第一经验元组的所选动作的所述学习者策略得分与所述行为策略得分的比、以及(ii)所述状态值神经网络通过根据所述状态值神经网络的当前参数值处理一个或多个经验元组中包括的观察而生成的状态值,来调整所述动作选择神经网络的当前参数值。

该方法的实施方式适于在具有多个行动者(行动者计算单元,潜在地数千个行动者)以及实现该方法的一个或多个学习者(学习者计算单元)的分布式计算系统上实现。例如,在实施方式中,行动者将经验元组的序列(经验的轨迹)传送给中央化学习者,而不是传送相对于中央策略服务器的参数的梯度。但是,由于用于生成轨迹的策略可能在梯度计算时落后学习者上的策略几次更新,因此学习将成为异策略的。上述方法结合了改善这种有害差异的跟踪系数。在实施方式中,因此可以将由行为策略生成的经验的轨迹用于学习对于学习者策略的值函数(状态值),其不同于行为策略。因此,该方法的实现方式特别适合于在高度分布式的计算系统上的实现,而不牺牲训练稳定性或数据效率。

该方法的实施方式还适于并行化。例如,学习者参数可以跨一组分布式学习者分布,并且行动者可以并行地从所有学习者获取参数,同时仅将观察发送给一个学习者。这可以避免单个专用处理器的瓶颈,否则该瓶颈可能是训练期间的限制因素。

另外,由于在实施方式中,学习者在整个批或轨迹的序列上执行更新,因此学习者能够将这些轨迹上的操作并行化。例如,在学习者包括卷积神经网络之后是lstm(长期短期记忆)的情况下,学习者可以通过将时间维度折叠为批维度来并行地将卷积网络应用于所有输入。类似地,一旦计算出所有lstm状态,学习者就可以将lstm之后的完全连接输出层并行地应用于所有时间步骤。这可以将有效批大小增加到数千个。

因此,该方法的实施方式适于解耦的分布式架构和并行化操作,并且可以实现非常高的吞吐量,例如,相对于其他技术改进超过一个数量级。该方法的实施方式也非常有数据效率,也就是说,它们可以使用更少的数据进行学习,但是仍然可以实现更好的最终性能。例如,与某些其他技术相比,该方法的实施方式以及对应的系统可以在数据效率上高出一个数量级,并因此降低了处理功率。一些实施方式对于选择超参数值和网络架构还是稳健的。

该方法的实施方式和对应系统的另一个优点是,它们能够并行地学习多个不同的任务。例如,不是将相同的任务分配给所有行动者,而是不同的行动者可以被分配以不同的任务,例如,将固定数量的行动者分配到每个任务。该方法/系统本身不需要知道正在对其进行训练或评估的任务。

因此,在一些实施方式中,该方法可以在包括多个行动者计算单元的系统中实施,每个行动者计算单元被配置为维护相应的行动者动作选择神经网络并执行行动者操作,所述行动者操作包括生成一个或多个经验元组的轨迹。生成经验元组可以包括接收表征所述环境的实例的当前状态的观察。生成经验元组还可以包括使用所述行动者动作选择神经网络根据所述行动者动作选择神经网络的当前参数值并基于所述观察,确定要由所述智能体执行的所选动作以及对于所选动作的策略得分。生成经验元组还可以包括获得转变数据,所述转变数据包括:(i)表征在所述智能体执行所选动作之后环境实例的后续状态的后续观察以及(ii)在所述智能体执行所选动作之后接收到的反馈值。生成经验元组还可以包括根据所述观察、所选动作、对于所选动作的所述策略得分、所述后续观察以及所述反馈值来生成经验元组。行动者操作还可以包括将所述经验元组的轨迹存储在队列中,其中,每个行动者计算单元均能够访问所述队列,并且所述队列包括不同经验元组轨迹的有序序列。该系统还可以包括一个或多个学习者计算单元。一个或多个学习者计算单元中的每一个可被配置为执行由上述方法限定的学习者操作。

在该方法的一些实施方式中,确定对于所述经验元组的所述校正因子可以包括:在第一截断值处截断(限制)对于所述经验元组的所述跟踪系数;和在第二截断值处截断对于所述序列中的所述经验元组之前的任何经验元组的跟踪系数。在一些实施方式中,第一截断值可以控制值函数(限定状态值)当第一截断值小时收敛到例如其是否更接近于行为策略的值函数,还是学习者策略;并且第二截断值可以控制收敛速度。在实施方式中,第一截断值大于或等于第二截断值。确定经验元组的校正因子可以附加地或可替代地包括通过预定缩放因子来缩放跟踪系数。

在该方法的一些实施方式中,确定对于所述经验元组的所述校正因子可以包括:确定:(i)对于所述经验元组的所述跟踪系数和(ii)对于所述序列中的所述经验元组之前的任何经验元组的所述跟踪系数的乘积。确定对于所述经验元组的状态值时间差异可以包括将以下各项相加:(i)所述经验元组中包括的所述反馈值;(ii)折损因子与对于所述经验元组中包括的所述后续观察的所述状态值的乘积;以及(iii)对于所述经验元组中包括的所述观察的所述状态值的负值。确定状态值目标可以包括:在在经验元组的所述序列上确定:(i)对于所述经验元组的所述校正因子和(ii)对于所述经验元组的所述状态值时间差异的乘积的折损总和,以及将对于所述第一经验元组中包括的所述观察的所述状态值加到所述折损总和。状态值损失函数可以包括例如所述状态值目标与对于所述序列中的所述第一经验元组中包括的所述观察的所述状态值之间的平方损失。

在一些实施方式中,基于对于所选动作的所述学习者策略得分与所述行为策略得分的比来调整所述动作选择神经网络的所述当前参数值,并且可以包括在预定值处截断所述比。通常,行为策略不同于由动作选择神经网络限定的学习者策略。从广义上讲,学习者策略得分与行为策略得分越不相似,则所述方法越是异策略的。

在该方法的一些实施方式中,调整所述动作选择神经网络的所述当前参数值还可以基于至少:对于所述序列中的所述第一经验元组中包括的所选动作的所述学习者策略得分的梯度;和对于在所述序列中的所述第一经验元组之后的随后(later)经验元组中包括的观察的状态值目标,其中,对于所述随后经验元组中包括的所述观察的所述状态值目标至少基于:(i)对于所述随后经验元组和后续经验元组的校正因子、(ii)对于所述随后经验元组和后续经验元组的状态值时间差异、以及(iii)对于所述序列中的所述随后经验元组中包括的所述观察的状态值;以及所述序列中的一个或多个经验元组中包括的反馈值。

该方法可以包括:确定熵奖励和进一步至少基于熵奖励相对于动作选择神经网络的参数的梯度来并且调整动作选择神经网络的当前参数值。这可以抑制过早收敛。确定熵奖励可以包括:在所述预定的一组动作中的每个动作上确定:(i)基于所述第一经验元组中包括的所述观察的对于来自所述动作选择神经网络的动作的学习者策略得分、以及(ii)基于所述第一经验元组中包括的所述观察的对于来自所述动作选择神经网络的动作的所述学习者策略得分的对数的乘积的总和。

上面描述的用于训练例如用于选择要由与环境交互的智能体执行的动作的学习者动作选择神经网络的系统可以结合或独立于上述方法来实现。

在系统的实施方式中,每个学习者计算单元可以被配置为更新学习者动作选择神经网络参数的相应的适当子组(适当子组与包含它的组不重叠)。

每个行动者计算单元可以执行行动者操作,该行动者操作还包括更新行动者动作选择神经网络的当前参数值。这些操作可以包括:获得学习者动作选择神经网络的当前参数值;以及基于当前学习者动作选择神经网络参数值来更新行动者动作选择神经网络的当前参数值。在生成经验元组轨迹之后,每个行动者计算单元可以在更新行动者动作选择神经网络的当前参数值之前抑制生成附加的经验元组轨迹。

在实施方式中,学习者动作选择神经网络包括一个或多个卷积层。使用一批经验元组轨迹来确定对学习者动作选择神经网络参数的更新可以包括使用所述学习者动作选择神经网络来处理来自所述一批经验元组轨迹中的每个经验元组轨迹的每个经验元组的每个观察。对于所述学习者动作选择神经网络的每个卷积层,可以并行地处理对于每个观察的到所述卷积层的输入,以生成对于每个观察的卷积层输出。

在实施方式中,学习者动作选择神经网络包括一个或多个完全连接层。使用所述一批经验元组轨迹来确定对所述学习者动作选择神经网络参数的更新可以包括使用所述学习者动作选择神经网络来处理来自所述一批经验元组轨迹中的每个经验元组轨迹的每个经验元组的每个观察。对于所述学习者动作选择神经网络的每个完全连接层,可以并行地处理对于每个观察的到所述完全连接层的输入,以生成对于每个观察的完全连接层输出。

在实施方式中,学习者动作选择神经网络包括一个或多个长短期记忆层。使用所述一批经验元组轨迹来确定对所述学习者动作选择神经网络参数的更新可以包括使用所述学习者动作选择神经网络来处理来自所述一批经验元组轨迹中的每个经验元组轨迹的每个经验元组的每个观察。对于所述学习者动作选择神经网络的每个长短期记忆层,可以并行地处理对于每个观察的到所述长短期记忆层的输入,以生成对于每个观察的长短期记忆层输出。

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

本说明书描述了用于训练学习者动作选择神经网络的分布式训练系统。分布式训练系统包括多个行动者计算单元,这些行动者计算单元生成经验元组轨迹,每个经验元组轨迹表征智能体与环境的实例的交互。行动者计算单元将生成的经验元组轨迹提供给一个或多个学习者计算单元,所述一个或多个学习者计算单元使用经验元组轨迹来利用强化学习技术训练学习者动作选择网络。通过将“行动”(即,生成经验元组轨迹)与学习(即,训练学习者动作选择网络)分离,本说明书中描述的分布式训练系统可以有效地使用可用的计算资源(例如,存储器和计算能力)来实现很高的数据吞吐率。例如,处理单元(例如,图形处理单元(gpu)和中央处理单元(cpu))从运行一些大的、可并行化的操作而不是许多小操作中极大受益。在本说明书中描述的分布式训练系统中,每个学习者计算单元可以并行地有效处理多批经验元组轨迹。与此相比,某些常规系统并不将行动与学习分离。例如,在一些常规系统中,行动者计算单元可以执行行动和学习操作两者,并且将动作选择网络参数更新传输给学习者计算单元(即,而不是像在本说明书中描述的分布式训练系统那样,传输经验元组轨迹)。不将行动与学习分离的常规系统可能无法像本说明书中所描述的分布式训练系统那样(例如,通过并行地处理多批经验元组轨迹)有效地使用计算资源。

除了有效地使用计算资源之外,在本说明书中描述的分布式训练系统可以被缩放以并入大量的行动者和学习者计算单元。当分布式训练系统被缩放以并入更多数量的行动者和学习者计算单元时,其可以用于训练更复杂(例如,更深)的动作选择网络以解决更大的任务集合。

本说明书描述了强化学习系统,其可以使用行动者-评价者强化学习技术来基于异策略经验元组轨迹共同训练动作选择网络和状态值网络。如果用于选择经验元组轨迹中包括的动作的动作选择策略不同于由正在被训练的动作选择网络的当前参数值限定的动作选择策略,则经验元组轨迹被称为是异策略的。在本说明书中描述的强化学习系统使用校正因子来调制在训练期间对状态值神经网络和动作选择神经网络的参数所做的调整,以考虑经验数据异策略的情况。与此相比,一些常规的行动者-评价者强化学习方法依赖于同策略训练数据。与依赖于同策略经验元组轨迹的常规系统相比,本说明书中描述的强化学习系统可适于在更广范围的应用中使用。例如,本说明书中描述的强化学习系统可以由本说明书中描述的分布式训练系统的学习者计算单元使用,以处理由行动者计算单元生成的潜在的异策略的经验元组轨迹。

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

附图说明

图1示出了用于使用动作选择网络来选择要由与环境交互的智能体执行的动作的示例数据流。

图2示出了示例训练系统。

图3示出了示例强化学习系统。

图4是用于使用异策略行动者-评价者强化学习技术来训练动作选择网络和状态值网络的迭代过程的示例的流程图。

图5是用于确定状态值网络的状态值目标的示例过程的流程图。

各附图中同样的参考数字和标记指示同样的要素。

具体实施方式

本说明书描述了分布式训练系统和强化学习系统。分布式训练系统通过使用多个行动者计算单元生成经验元组轨迹,该经验元组轨迹由一个或多个学习者计算单元处理以训练动作选择网络,来将行动与学习分离。强化学习系统实现了异策略行动者-评价者增强学习技术,即,可用于基于异策略经验元组轨迹来训练动作选择网络的行动者-评价者增强学习技术。

图1示出了示例数据流100,该示例数据流100用于使用动作选择神经网络102来选择在多个时间步骤中的每一个处要由与环境108交互的智能体106执行的动作104。在每个时间步骤处,动作选择网络102处理表征环境108的当前状态的数据(例如,环境108的图像)以生成策略得分110,该策略得分110用于选择响应于接收到的数据而要由智能体106执行的动作104。在本说明书中,表征环境108的状态的数据将被称为观察。在每个时间步骤处,在时间步骤处的环境108的状态(由观察112表征)取决于在先前时间步骤处的环境108的状态以及由智能体106在先前时间步骤处执行的动作104。

在每个时间步骤处,智能体106可以接收基于环境108的当前状态和智能体106在该时间步骤处的动作104的反馈值(reward)114。通常,反馈值114是数值。反馈值114可以基于环境的任何事件或方面。例如,反馈值114可以指示智能体106是否已经完成任务(例如,导航到环境108中的目标位置)或智能体106趋向完成任务的进度。

在一些实施方式中,环境是现实世界环境,并且智能体是与现实世界环境交互的机械智能体。例如,智能体可以是与环境交互以完成特有任务(例如,以将感兴趣的对象定位在环境中或将感兴趣的对象移动到环境中的指定位置或导航到环境中的指定目的地)的机器人;或者智能体可以是导航通过环境的自主或半自主陆地或空中或海洋载具。

在这些实施方式中,观察可包括例如图像、对象位置数据和传感器数据中的一个或多个,以在智能体与环境交互时捕获观察,例如来自图像、距离或位置传感器或来自致动器的传感器数据。

例如,在机器人的情况下,观察可以包括表征机器人的当前状态的数据,例如,以下中的一个或多个:关节位置、关节速度、关节力、扭矩或加速度,例如,重力补偿扭矩反馈以及机器人保持的物品的全局或相对姿态。

在机器人或其他机械智能体或载具的情况下,观察可以类似地包括位置、线速度或角速度、力、扭矩或加速度以及智能体的一个或多个部分的全局或相对姿态中的一个或多个。可以在1、2或3维中限定观察,并且观察可以是绝对和/或相对观察。

观察还可以包括例如感测的电子信号,诸如电动机电流或温度信号;和/或例如来自相机或lidar传感器的图像或视频数据,例如来自智能体的传感器的数据或来自在环境中与智能体分离地定位的传感器的数据。

在电子智能体的情况下,观察可以包括来自监视工厂或服务设施的一部分的一个或多个传感器和其他传感器的数据,诸如电流、电压、功率、温度和/或表示装备的电子和/或机械物件的运行的电子信号。

在这些实施方式中,动作可以是控制机器人的控制输入,例如,用于机器人的关节的扭矩或更高级别的控制命令,或者是控制自主或半自主陆地或空中或海洋载具的控制输入,例如,到载具的控制表面或其他控制元件的扭矩或更高级别的控制命令。

换句话说,动作可以包括例如机器人的一个或多个关节或另一机械智能体的部分的位置、速度或力/扭矩/加速度数据。动作数据可以附加地或替代地包括电子控制数据,诸如电动机控制数据,或更一般地,用于控制环境内的一个或多个电子设备的数据,对该电子设备的控制对观察到的环境的状态有影响。例如,在自主或半自主陆地或空中或海洋载具的情况下,动作可以包括控制载具的导航(例如转向)和移动(例如制动和/或加速)的动作。

在一些实施方式中,环境是模拟环境,并且智能体被实现为与模拟环境交互的一个或多个计算机。

例如,模拟环境可以是机器人或载具的模拟,并且可以在该模拟上训练强化学习系统。例如,模拟环境可以是运动模拟环境,例如驾驶模拟或飞行模拟,并且智能体是导航通过该运动模拟的模拟载具。在这些实施方式中,动作可以是控制模拟用户或模拟载具控制输入。

在另一示例中,模拟环境可以是视频游戏,并且智能体可以是玩视频游戏的模拟用户。

在另外的示例中,环境可以是蛋白质折叠环境,使得每个状态是蛋白质链的相应状态,并且智能体是用于确定如何折叠蛋白质链的计算机系统。在该示例中,动作是用于折叠蛋白质链的可能的折叠动作,并且要实现的结果可以包括例如折叠蛋白质以使蛋白质稳定并从而它实现特定的生物学功能。作为另一示例,智能体可以是机械智能体,其在没有人类交互的情况下自动执行或控制由系统选择的蛋白质折叠动作。观察可以包括蛋白质的状态的直接或间接观察和/或可从模拟得出。

以类似的方式,环境可以是药物设计环境,使得每个状态是潜在的制药化学药物的相应状态,并且智能体是用于确定制药化学药物的元素和/或制药化学药物的合成途径的计算机系统。可以基于从药物的目标导出的反馈值来设计药物/合成,例如在模拟中。作为另一示例,智能体可以是执行或控制药物的合成的机械智能体。

通常,在模拟环境的情况下,观察可以包括观察类型或先前描述的观察中的一个或多个的模拟版本,并且动作可以包括动作类型或先前描述的动作中的一个或多个的模拟版本。

在某些其他应用中,智能体可以在包括装备的物件的现实世界环境中控制动作,例如在数据中心或电网干线电源或水分配系统中,或在制造工厂或服务设施中。然后,观察可以与工厂或设施的操作有关。例如,观察可以包括装备的电力或水使用的观察,或者发电或分配控制的观察,或者资源使用或废物产生的观察。智能体可以在该环境中控制动作,以例如通过减少资源使用来提高效率,和/或例如通过减少废物来减少环境中操作的环境影响。动作可以包括控制工厂/设施的装备的物件或将操作条件强加于工厂/设施的装备的物件的动作,和/或导致对工厂/设施的操作设置改变的动作,例如,以调整或打开/关闭工厂/设施的组件。

在某些其他应用中,环境是现实世界环境,并且智能体管理任务跨例如,在移动设备上和/或在数据中心中的计算资源的分配。在这些实施方式中,动作可以包括将任务分派给特定的计算资源。

作为另外的示例,动作可以包括呈现广告,观察可以包括广告印象或点击计数或比率,并且反馈值可以表征一个或多个用户进行的对项目或内容的先前选择。

可选地,在以上实施方式中的任一个中,在任何给定时间步骤处的观察可包括可以有利于表征环境的来自先前时间步骤的数据,例如,在先前时间步骤处执行的动作、在先前时间步骤处接收到的反馈值等。

由动作选择网络102在每个时间步骤处生成的策略得分110可以包括对于智能体在该时间步骤处可以执行的一组可能的动作中的每个动作的相应数值。可以以多种不同方式中的任一种来使用策略得分110,以确定在时间步骤处要由智能体106执行的动作104。例如,每个策略得分110可以表示对于该组可能的动作中的动作的相应概率值。可以通过根据动作的概率值采样动作来确定在时间步骤处要由智能体106执行的动作104。作为另一示例,具有最高策略得分110的动作可以被选择为在时间步骤处要执行的动作。

可以用任何适当的神经网络架构来实现动作选择网络102。在一个示例中,动作选择网络102可以包括一个或多个卷积层,其后是一个或多个完全连接层,其后是循环(recurrent)层(例如,长短期记忆(lstm)循环层)。在该示例中,动作选择网络102可以基于循环层在时间步骤处的内部状态来生成在每个时间步骤处的策略得分110。

智能体106与环境108在一个或多个时间步骤上的交互可以由经验元组的“轨迹”(即序列)表示,其中,每个经验元组与相应的时间步骤对应。与时间步骤对应的经验元组可以包括:(i)表征在该时间步骤处环境的状态的观察、(ii)被选择为在该时间步骤处要由智能体执行的动作、(iii)当动作被选择时分派给所选动作的策略得分、(iv)表征在智能体执行所选动作之后的环境的后续状态的后续观察以及(iv)在智能体执行所选动作之后接收到的反馈值。

如将参考图2更详细地描述的,动作选择神经网络可以被包括在分布式训练系统的“学习者”或“行动者”计算单元中。如将参考图3更详细地描述的,可以使用异策略行动者-评价者强化学习技术,与状态值神经网络同时地训练动作选择神经网络102。

图2示出了示例训练系统200。训练系统200是被实现为一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。

训练系统200是分布式计算系统,其包括一个或多个学习者计算单元(例如202-a、202-b、…、202-y)和多个行动者计算单元(例如204-a、204–b、…、204-x)。学习者计算单元各自维护相应的“学习者”动作选择神经网络,而行动者计算单元各自维护相应的“行动者”动作选择神经网络。通常,学习者动作选择网络和行动者动作选择网络都具有基本相同的神经网络架构。学习者计算单元被配置为基于由行动者计算单元使用行动者动作选择网络生成的经验元组的轨迹,使用强化学习技术来训练一组共享的学习者动作选择网络参数值。

计算单元可以是例如计算机,具有多个核的计算机内的核或其他硬件或软件,例如,能够独立执行操作的计算机内的专用线程。计算单元可以包括处理器核、处理器、微处理器、专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))或任何其他适当的计算单元。在一些示例中,计算单元都是相同类型的计算单元。在其他示例中,计算单元可以是不同类型的计算单元。例如,一个计算单元可以是cpu,而其他计算单元可以是gpu。

每个行动者计算单元被配置为生成表征智能体与环境的实例的交互的经验元组的轨迹,所述智能体通过执行使用由行动者计算单元维护的行动者动作选择网络选择的动作来与环境的实例的交互。行动者计算单元可以通过将经验元组轨迹206存储在行动者计算单元和学习者计算单元中的每一个都可访问的数据存储中,来将生成的经验元组轨迹206提供给学习者计算单元。例如,数据存储可以是队列,该队列以行动者计算单元生成经验元组轨迹206的顺序来维护经验元组轨迹206。

每个学习者计算单元被配置为例如通过访问行动者计算单元存储生成的经验元组轨迹的数据存储(例如,队列)来获得由行动者计算单元生成的“多批”经验元组轨迹(即,多组一个或多个经验元组轨迹)。在获得一批经验元组轨迹之后,学习者计算单元使用强化学习技术以基于该批经验元组轨迹来确定对学习者动作选择网络参数的更新。学习者计算单元可以基于由行动者计算单元生成的多批经验元组轨迹来迭代地训练学习者动作选择网络参数。参考图3来描述实现可以用于训练学习者动作选择网络参数的强化学习技术的强化学习系统的示例。

当生成经验元组轨迹时,行动者计算单元被配置为通过根据由行动者计算单元维护的行动者动作选择网络的一组参数的当前值处理观察来选择要由智能体执行的动作。行动者计算单元可以通过获得当前学习者动作选择网络参数208来更新行动者动作选择网络参数的值。例如,在根据行动者动作选择网络参数的当前值生成经验元组的轨迹之后,行动者计算单元可以抑制生成另一个经验元组,直到它使用当前学习者动作选择网络参数208更新行动者动作选择网络参数为止。

行动者计算单元可以使用学习者动作选择网络参数的当前值以任何适当方式来更新其行动者动作选择网络参数的当前值。例如,行动者计算单元可以用学习者动作选择网络参数的当前值替换其行动者动作选择网络参数的当前值。作为另一示例,行动者计算单元可以通过行动者动作选择网络参数和学习者动作选择网络参数的当前值的线性组合来替换其行动者动作选择网络参数的当前值。线性组合的加权因子可以是训练系统200的超参数。

行动者计算单元可以使用与由学习者动作选择网络参数值限定的动作选择策略不同的动作选择策略(即,由行动者动作选择网络的参数值限定)来生成经验元组轨迹。例如,行动者计算单元可以使用当前学习者动作选择网络参数值来更新行动者选择网络参数的当前值,并且此后使用更新的行动者选择网络参数来生成经验元组轨迹。然而,在学习者计算单元获得经验元组轨迹之前,当前学习者动作选择网络参数值可能已经被学习者计算单元更新。因此,用于训练学习者动作选择网络参数值的强化学习技术可以是“异策略”训练技术,即考虑了行动者计算单元的动作选择策略与由学习者动作选择网络参数值限定的动作选择策略之间的潜在差异的训练技术。下面例如参考图4来更详细地描述可以用于训练学习者动作选择网络参数值的异策略强化学习技术的示例。

通常,基于一批经验元组轨迹来确定对学习者动作选择网络参数值的更新需要使用学习者动作选择网络参数值来处理每个经验元组轨迹中包括的一些或全部观察(即,以生成与观察对应的相应策略得分)。学习者计算单元可以不相继地处理每个经验元组中包括的观察,而可以使用学习者动作选择网络(或状态值网络)来并行地处理观察。更具体地,对于学习者动作选择网络的每个层(例如,卷积层、完全连接层或循环层),可以并行地处理该层对于每个观察的输入以生成对于每个观察的层输出。在一些情况下,与使用学习者动作选择网络来相继地处理多个观察相比,使用学习者动作选择网络并行地处理多个观察可以实质上更有效地实现。与此相比,在一些常规系统中,每个计算单元执行行动和学习两者,即,每个计算单元被配置为迭代地:(i)生成经验元组轨迹,以及(ii)使用同策略(on-policy)强化学习技术确定参数值更新。这些常规系统可能无法并行化与本说明书中描述的学习者计算单元一样多的操作(例如,因为它们一次处理一个经验元组轨迹而不是以批处理),因此可能具有较低的数据吞吐率。

不同的行动者计算单元可以生成表征智能体与不同环境的实例的交互的经验元组轨迹。例如,与不同的行动者计算单元对应的环境可以生成表征智能体趋向完成不同任务的进度的反馈值。在该示例中,学习者计算单元可以使用由行动者计算单元生成的经验元组轨迹来训练学习者动作选择网络参数值,以选择使智能体能够执行多个任务中的每一个的动作。例如,学习者动作选择网络参数值可以由工业制造环境中的机器人智能体使用以选择动作从而执行多个任务,每个任务与不同制造产品的组装对应。

当训练系统200包括多个学习者计算单元时,训练系统200可以使用适当的分布式优化过程(例如,分布式随机梯度下降)来训练学习者动作选择网络参数值。例如,训练系统200可以使用异步或同步优化过程来训练学习者动作选择网络参数值。在异步优化过程中,学习者计算单元在确定对学习者动作选择网络参数值的更新时彼此独立地操作。在同步优化过程中,在多个训练迭代中的每一个迭代中,学习者计算单元基于当前学习者动作选择网络参数值来确定参数更新。在训练迭代结束时,将每个学习者计算单元生成的参数更新共同应用于学习者动作选择网络参数值。参考以下文献来描述示例同步分布式优化过程:j.chen等人“,再访分布式同步sgd(revisitingdistributedsynchronoussgd)”,arxiv:1604.00981v3,2017年。

训练系统200中包括的行动者计算单元和学习者计算单元可以位于任何适当的位置,并且可以通过任何适当的有线或无线通信介质彼此通信(例如,通过共享经验元组轨迹)。学习者动作选择网络参数值可以存储在任何适当的位置(在一些情况下,远离学习者计算单元)。

图3示出了示例强化学习系统300。强化学习系统300是被实现为一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。

强化学习系统300被配置为使用强化学习技术基于经验元组轨迹304来训练动作选择网络302。更具体地,系统300使用异策略行动者-评价者强化学习技术与状态值网络306同时地训练动作选择网络302。如前所述,该行动者-评价者强化学习技术被称为“异策略(off-policy)”,因为它考虑了用于生成经验元组轨迹304的动作选择策略与由动作选择网络302的当前参数值限定的动作选择策略之间的潜在差异。

动作选择网络302被配置为处理包括表征环境状态的观察的输入,以生成包括对于预定的一组动作中的每个动作的相应策略得分(在本文中称为“学习者”策略得分)的输出。状态值网络306被配置为处理包括表征环境状态的观察的输入,以生成包括对于该观察的“状态值”的输出。对于观察的状态值是如果智能体通过执行根据动作选择网络参数308的当前值选择的动作与环境交互而将从环境接收的累积反馈值的估计。例如,累积反馈值可以是如果智能体通过执行根据动作选择网络参数的当前值选择的动作与环境交互而将从环境接收的将来反馈值的长期时间折损总和(long-termtime-discountedsum)的估计。

动作选择网络302和状态值网络306可以通过任何适当的神经网络架构来实现,例如,包括卷积层、完全连接层或循环层中的一个或多个的神经网络架构。在一些情况下,动作选择网络302和状态值网络306可以通过通用神经网络架构来实现,具有生成学习者策略得分的第一输出层和生成状态值的第二输出层。

通常,系统300通过迭代地更新动作选择网络参数308和状态值网络参数310的值,通过多个训练迭代来训练动作选择网络302和状态值网络306。在每个训练迭代中,系统300可以基于相应的一批经验元组轨迹304来确定动作选择网络参数更新312和状态值网络参数更新314。为了方便起见,以下描述涉及系统300在给定训练迭代处理给定经验元组轨迹304。

系统300可以以任何适当的方式获得经验元组轨迹304。例如,系统300可以从数据存储获得经验元组轨迹304,该数据存储包括由行动者计算单元生成的多个经验元组轨迹,如参考图2所述。在一些情况下,系统300可以(例如,根据优先化回放采样技术)从数据存储随机地采样经验元组轨迹304。在一些情况下,如果数据存储是以生成经验元组轨迹的顺序存储经验元组轨迹的队列,则系统300可以从该队列获得最近生成的经验元组轨迹。

经验元组轨迹304中包括的所选动作根据可以不同于由动作选择网络参数308的当前值限定的动作选择策略的动作选择策略来进行选择。用于选择经验元组轨迹304的动作的动作选择策略在本文中被称为“行为”策略。轨迹304中的每个经验元组包括相应的“行为”策略得分,当动作被选择时,该“行为”策略得分被分派给经验元组的所选动作。例如,当经验元组的观察被行动者动作选择网络处理以生成对于一组可能的动作的相应策略得分时,行为策略得分可能已经被分派给经验元组的所选动作。

为了生成状态值网络参数更新314和动作选择网络参数更新312,系统300使用状态值网络306和动作选择网络302来处理轨迹304中包括的观察,以生成状态值316和学习者策略得分318。具体地,系统300生成对于轨迹304中包括的每个观察的相应的状态值316,和对于轨迹304中包括的每个所选动作的相应的学习者策略得分318。此后,训练引擎320根据状态值316和学习者策略得分318生成状态值网络参数更新314和动作选择网络参数更新312。在生成状态值网络参数更新314和动作选择网络参数更新312时,训练引擎320考虑了学习者策略得分318与轨迹304中包括的所选动作的行为策略得分之间的潜在差异。

为了确定状态值网络参数更新314,训练引擎320确定状态值目标,该状态值目标限定应当由状态值网络306通过处理轨迹304中的第一经验元组中包括的观察而生成的状态值。训练系统200可以确定状态值网络参数更新314,该状态值网络参数更新314促使状态值网络306生成更类似于状态值目标的状态值(即,通过处理轨迹304的第一经验元组中包括的观察)。例如,训练系统200可以基于表征状态值目标与由状态值网络生成的对应状态值之间的差异的损失函数的梯度来确定状态值参数网络更新314。训练引擎320可以部分地基于对于轨迹304中的第一经验元组中包括的所选动作的学习者策略得分318相对于动作选择网络参数的梯度来确定动作选择网络参数更新312。参考图4更详细地描述用于调整动作选择网络302和状态值网络306的当前参数值的示例过程。

图4是用于使用异策略行动者-评价者强化学习技术来训练动作选择网络和状态值网络的迭代过程400的示例的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书被适当地编程的强化学习系统(例如图3的强化学习系统300)可以执行过程400。

系统获得经验元组轨迹(402)。经验元组轨迹表征一个或多个时间步骤的序列上智能体与环境的实例的交互,并包括与每个时间步骤对应的相应经验元组。每个经验元组包括:(i)表征在时间步骤处环境的实例的状态的观察、(ii)使用行为策略被选择为在该时间步骤处要由智能体执行的动作、(iii)当动作被选择时通过行为策略分派给所选动作的行为策略得分、(iv)表征在智能体执行所选动作之后环境实例的后续状态的后续观察以及(iv)在智能体执行所选动作之后接收到的反馈值。

行为策略可以是通过将相应的行为策略得分分派给可以由智能体执行的一组动作中的每个动作来选择要由与环境的实例交互的智能体执行的动作的任何适当的策略。例如,经验元组轨迹可以由行动者计算单元生成(如参考图2所述),并且行为策略可以由行动者动作选择网络的当前参数值限定。

为了方便起见,参考一个经验元组轨迹来描述过程400的每次迭代。在一些情况下,不是获得一个经验元组轨迹,系统获得一批多个经验元组轨迹,并对经验元组轨迹中的每一个执行过程400的步骤。

系统处理经验元组轨迹,以确定状态值目标,该状态值目标限定应当由状态值网络通过处理轨迹中的第一经验元组中包括的观察而生成的状态值(404)。系统使用校正因子确定状态值目标,该校正因子考虑了用于选择经验元组轨迹的动作的行为策略与由动作选择网络参数的当前值限定的动作选择策略之间的潜在差异。参考图5描述用于确定状态值目标的示例过程。

系统基于状态值目标调整状态值网络的当前参数值(406)。系统可以调整状态值网络的当前参数值,以促使状态值网络生成对于轨迹中的第一经验元组中包括的观察的、更类似于状态值目标的状态值。例如,系统可以使用取决于状态值目标的损失函数的梯度来调整状态值网络的当前参数值。系统可以使用任何适当的技术(例如,反向传播)来确定损失函数相对于状态值网络的当前参数值的梯度。损失函数可以是例如状态值目标与由状态值网络对于轨迹中的第一经验元组中包括的观察生成的状态值之间的平方损失。系统可以使用任何适当的梯度下降更新规则来使用损失函数的梯度调整状态值网络的当前参数值,例如,由adam或rmsprop梯度下降算法限定的梯度下降更新规则。

系统调整动作选择网络的当前参数值(408)。系统可以基于对于第一经验元组中包括的所选动作的学习者策略得分相对于动作选择网络的当前参数值的梯度来调整动作选择网络的当前参数值。对于第一经验元组中包括的所选动作的学习者策略得分是指通过由动作选择网络对于第一经验元组中包括的观察而生成的学习者策略得分,分派给所选动作的得分。系统可以使用任何适当的方法(例如,反向传播)来确定学习者策略得分的梯度。系统可以使用一个或多个缩放项来缩放学习者策略得分的梯度,这将在下面更详细地描述,并且此后可以使用任何适当的梯度下降更新规则来基于梯度调整动作选择网络的当前参数值。例如,系统可以使用由adam或rmsprop梯度下降算法限定的梯度下降更新规则来调整动作选择网络的当前参数值。

在一些情况下,系统通过缩放项来缩放学习者策略得分的梯度,该缩放项基于学习者策略得分和对于来自轨迹中的第一经验元组的所选动作的行为策略得分的比。替代地或组合地,系统可以通过缩放项来缩放学习者策略得分的梯度,该缩放项基于由状态值网络对于经验元组轨迹中包括的一个或多个经验元组生成的状态值。替代地或组合地,系统可以通过缩放项来缩放学习者策略得分的梯度,该缩放项基于对于经验元组轨迹中的第一经验元组之后的经验元组中包括的观察的状态值目标。参考图5描述用于确定状态值目标的示例过程。在特定示例中,系统可以通过梯度下降来调整动作选择网络的当前参数值,例如,使用由下式给出的对于第一经验元组中包括的所选动作的学习者策略得分的经缩放梯度:

其中,是预定的截断值(truncationvalue),π(a)是对于来自轨迹中的第一经验元组的所选动作的学习者策略得分,μ(a)是对于来自轨迹中的第一经验元组的所选动作的行为策略得分,是对于来自轨迹中的第一经验元组的所选动作的学习者策略得分相对于动作选择网络的参数的梯度,r是来自轨迹中的第一经验元组的反馈值,γ是常数折损因子,v是对于轨迹中的第二经验元组中包括的观察的状态值目标,并且v(x)是对于来自轨迹中的第一经验元组的观察的状态值。

可选地,系统可以使用熵奖励(entropybonus)相对于动作选择网络参数的值的梯度来调整动作选择网络参数的当前值。熵奖励可以表征由动作选择网络对于经验元组轨迹中的第一经验元组中包括的观察而生成的学习者策略得分多么均匀地分布在一组可能的动作上。例如,熵奖励可以由下式给出:

其中,a表示该组可能的动作,而π(a)表示对于动作a的学习者策略得分。使用熵奖励的梯度来调整动作选择网络参数的当前值可以防止训练期间动作选择网络参数的过早收敛。

当系统在每个训练迭代处理一批多个经验元组轨迹(即,而不是一个经验元组轨迹)时,系统可以对于每个经验元组轨迹确定对动作选择网络和状态值网络的参数值的相应更新。此后,系统可以使用例如对于每个经验元组轨迹所确定的参数值更新的平均值,来调整动作选择网络参数和状态值网络参数的值。

在调整了动作选择网络和状态值网络的当前参数值之后,系统可以确定是否满足训练终止标准。例如,如果系统已经执行了预定数量的训练迭代,则系统可以确定满足训练终止标准。作为另一示例,如果智能体使用动作选择网络参数的当前值完成一个或多个任务的性能满足阈值,则系统可以确定满足训练终止标准。响应于确定未满足训练终止标准,系统返回步骤402并重复前面的步骤。响应于确定满足训练终止标准,系统可以输出动作选择网络参数的经训练值(以及可选地,状态值网络参数)。

图5是用于基于经验元组轨迹确定对于状态值网络的状态值目标的示例过程500的流程图。为了方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地被编程的强化学习系统(例如图3的强化学习系统300)可以执行过程500。

系统确定对于轨迹中的第一经验元组中包括的观察的状态值(502)。例如,系统可以通过使用状态值网络并根据状态网络参数的当前值来处理轨迹中的第一经验元组中包括的观察来确定状态值。

系统对于轨迹中的每个经验元组执行步骤504-510(如下所述)。为了方便起见,参考轨迹中的给定经验元组来描述步骤504-510。

系统确定对于给定经验元组中包括的所选动作的学习者策略得分(504)。例如,系统可以根据动作选择网络参数的当前值,使用动作选择网络处理给定经验中包括的观察以生成输出,该输出限定对于给定经验元组中包括的所选动作的学习者策略得分。

系统基于对于给定经验元组中包括的所选动作的学习者策略得分和行为策略得分的比来确定对于给定经验元组的跟踪系数(tracecoefficient)(506)。例如,系统可以将对于给定经验元组的跟踪系数确定为:

其中,π(a)是对于所选动作的学习者策略得分,并且μ(a)是对于所选动作的行为策略得分。在一些实施方式中,系统可以通过预定缩放因子来缩放跟踪系数。

系统基于:(i)对于给定经验元组的跟踪系数,和(ii)对于轨迹中的给定经验元组之前的任何经验元组的跟踪系数来确定校正因子。例如,系统可以将校正因子确定为对于给定经验元组的跟踪系数和对于轨迹中的给定经验元组之前的任何经验元组的跟踪系数的乘积。在一些情况下,在确定对于给定经验元组的校正因子时,系统在第一截断值处截断对于给定经验元组的跟踪系数,并在第二截断值处截断对于给定经验元组之前的任何经验元组的跟踪系数。第一截断值可以大于或等于第二截断值。例如,系统可以将经验元组的校正因子确定为:

其中,t给出给定经验元组在经验元组序列中的索引,是第一截断值,是第二截断值,π(ai)是对于第i个经验元组的所选动作的学习者策略得分,并且μ(ai)是对于第i个经验元组的所选动作的行为策略得分。

系统确定对于经验元组的状态值时间差异(temporaldifference);这可以表示经验元组中的观察和后续观察的状态值之间的差异。更具体地,状态值时间差异可以至少基于:(i)给定经验元组中包括的反馈值,以及(ii)对于给定经验元组中的观察和后续观察的相应的状态值(510)。系统可以通过根据状态值网络参数的当前值,使用状态值网络处理给定经验元组中包括的观察和后续观察来确定相应的状态值。例如,系统可以将对于给定经验元组的状态值时间差异确定为:

δtv=rt+γ·v(xt+1)-v(xt)(5)

其中,rt是给定经验元组中包括的反馈值,γ是折损因子,v(xt+1)是对于给定经验元组中包括的后续观察的状态值,并且v(xt)是对于给定经验元组中包括的观察的状态值。

系统至少基于以下各项来确定对于经验元组轨迹的状态值目标:(i)校正因子、(ii)状态值时间差异和(iii)对于轨迹中的第一经验元组中包括的观察的状态值(512)。例如,系统可以将对于经验元组轨迹的状态值目标确定为:

其中,v(x0)是对于轨迹中的第一经验元组中包括的观察的状态值,n是轨迹中的经验元组的总数,t给出经验元组在轨迹中的索引,γ是折损因子,ct是对于第t个经验元组的校正因子,并且δtv是对于第t个经验元组的状态值时间差异。

本说明书与系统和计算机程序组件有关地使用术语“被配置”。一个或多个计算机的系统被配置为执行特定操作或动作的意思是系统在其上安装有软件、固件、硬件或其组合,在操作时,软件、固件、硬件或其组合使系统执行操作或动作。一个或多个计算机程序被配置为执行特定操作或动作的意思是一个或多个程序包括指令,当在由数据处理装置运行该指令时使装置执行操作或动作。

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

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

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

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

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

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

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

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

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

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

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

计算系统可以包括客户端和服务器。一般来说,客户端和服务器彼此远离,并且通常通过通信网络交互。通过运行在相应计算机并且彼此具有客户端-服务器关系的计算机程序而形成客户端和服务器的关系。在一些实施例中,服务器向充当客户端的用户设备传输数据(例如,html页面)(例如,用于向与设备交互的用户显示数据和从其接收用户输入的目的)。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从该设备接收。

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

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

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

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