背景技术:
本说明书涉及强化学习。
在强化学习系统中,代理通过执行由强化学习系统响应于接收表征环境当前状态的观察而选择的动作来与环境交互。
一些强化学习系统根据神经网络的输出,响应于接收到给定的观察来选择要由代理执行的动作。
神经网络是机器学习模型,它采用一层或多层非线性单元来预测接收到的输入的输出。一些神经网络是深度神经网络,除了输出层之外,还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层(即下一隐藏层或输出层)的输入。网络的每一层根据相应参数集的当前值,根据接收到的输入产生输出。
技术实现要素:
本说明书描述了实施为在一个或多个位置的一个或多个计算机上的计算机程序的系统,该系统选择要由与环境交互的代理执行的动作。
本公开的一个方面概括地提出了一种强化学习系统,其中使用轨迹(即,对于时间序列中的每一个时间,每个轨迹都是先前收集的对应的训练观察、训练动作和训练奖励)来迭代地训练策略网络。策略网络的每次更新基于与序列中的特定时间相对应的轨迹之一的特定训练动作,并且包括基于除了特定训练动作之外的所有可能动作的留一(leave-one-out)更新、以及基于将代理执行特定训练动作而产生的回报的更新回报估计来计算的选定动作更新。
根据第一方面,提供了一种用于训练具有多个策略网络参数的策略神经网络的方法。策略神经网络用于选择要由代理执行的动作,代理通过接收表征环境状态的观察并响应于接收到的观察而执行动作集合中的动作来与环境交互。策略神经网络具有多个策略网络参数,并且被配置为接收输入观察并处理输入观察,以根据策略网络参数生成动作集合中的动作的得分分布。
该方法包括,从回放存储器获得轨迹,该轨迹包括各自表征环境的相应训练状态的多个训练观察,以及对于每个训练观察,该轨迹还包括:来自由代理响应于接收训练观察而执行的动作集合中的训练动作和由代理接收的对于执行训练动作的训练奖励。
使用轨迹确定策略网络参数的当前值的更新。对于轨迹中的每个训练观察,确定更新包括根据策略网络参数的当前值,使用策略神经网络处理训练观察,以确定动作集合中的动作的当前得分分布。为每个动作确定该动作的当前得分相对于策略网络参数的梯度。使用分布式评委(critic)神经网络处理训练观察,来为动作集合中的每个动作生成可能q值的相应的分布。对于集合中除了响应于训练观察而执行的动作之外的每个动作,根据该动作的当前得分相对于策略网络参数的梯度和该动作的可能q值的分布,确定策略网络参数的当前值的留一更新。根据策略网络参数的当前值,确定将策略神经网络用于选择由代理执行的未来动作而产生的回报的更新回报估计。根据更新回报估计和所执行动作的当前得分相对于策略网络参数的梯度,确定策略网络参数的当前值的选定动作更新。根据选定动作更新和留一更新,确定策略网络参数的最终更新。
在一些实施方式中,策略神经网络是递归神经网络。
在一些实施方式中,策略神经网络是前馈神经网络。
在一些实施方式中,策略网络参数的当前值的留一更新是,对于集合中除了响应于训练观察而执行的动作之外的每个动作,该动作的当前得分相对于策略网络参数的梯度和该动作的可能q值的分布的集中趋势的度量的相应乘积的总和。
在一些实施方式中,选定动作更新是更新回报估计和所执行动作的当前得分相对于策略网络参数的梯度的乘积。
在一些实施方式中,确定选定动作更新包括确定更新回报估计和所执行动作的可能q值的分布的集中趋势的度量之间的差值。确定该差值和所执行动作的当前得分相对于策略网络参数的梯度的乘积。通过将β函数的输出应用于该乘积来确定选定动作更新。
在一些实施方式中,确定选定动作更新包括在将β函数的输出应用于该乘积之后,加上所执行动作的可能q值的分布的集中趋势的度量和所执行动作的当前得分相对于策略网络参数的梯度的乘积。
在一些实施方式中,β函数取决于以下中的至少一个:所执行动作的当前得分、由策略神经网络通过根据在接收到训练观察时为当前的、策略网络参数的早期值来处理训练观察而为所执行动作生成的先前得分、或者先前得分的估计。
在一些实施方式中,β函数是1除以所执行动作的先前得分或1除以先前得分的估计。
在一些实施方式中,β函数是(i)大于1的预定常数和(ii)1除以所执行动作的先前得分或1除以先前得分的估计中的最小值。
在一些实施方式中,β函数取决于先前得分的估计,并且该方法还包括使用先前得分估计神经网络处理训练观察。先前得分估计神经网络被配置为处理训练观察以生成包括先前得分的估计的输出。
在一些实施方式中,评委网络具有多个评委网络参数,并且该方法还包括使用轨迹来确定评委网络参数的当前值的更新。对于轨迹中的每个训练观察,确定应该由评委网络通过处理训练观察为所执行动作生成的目标分布。确定评委网络参数的当前值的更新,该更新将评委网络为所执行动作生成的分布移向目标分布。
在一些实施方式中,确定评委网络参数的当前值的更新包括确定损失函数的梯度,其中,损失函数包括目标分布和由评委网络为所执行动作生成的分布之间的散度度量(divergencemeasure)。
在一些实施方式中,确定目标分布包括使用具有多步回报(multi-stepreturn)的偏离策略(off-policy)分布式强化学习算法,根据为轨迹中的训练观察之后的其他训练观察所执行的动作,确定目标分布。
在一些实施方式中,确定更新回报估计包括将更新回报估计确定为目标分布的集中趋势的度量。
在一些实施方式中,评委网络和策略神经网络共享一些参数。
在一些实施方式中,评委网络是递归神经网络。
在一些实施方式中,评委网络是前馈神经网络。
在一些实施方式中,回放存储器中的一个或多个轨迹尚未被分配优先级。从回放存储器获得轨迹包括,对于回放存储器中尚未被分配优先级的每个轨迹,使用分配给回放存储器中其他轨迹的优先级来确定该轨迹的临时优先级。使用分配给回放存储器中每个轨迹的优先级或临时优先级对轨迹进行采样。
在一些实施方式中,确定尚未被分配优先级的轨迹的临时优先级包括确定将回放存储器中的轨迹分区(partition)成多个单元,其中每个单元包括被分配了优先级的一个参考轨迹。识别多个参考单元,其中参考单元之一包括尚未被分配优先级的轨迹。使用包括在参考单元中的参考轨迹的优先级来确定尚未被分配优先级的轨迹的临时优先级。
在一些实施方式中,识别参考单元包括识别预定长度的连续单元序列。
在一些实施方式中,确定尚未被分配优先级的轨迹的临时优先级包括,对于每个参考单元,使用参考单元中包括的轨迹的总数来确定参考单元中的参考轨迹的权重。使用所确定的权重,通过对参考单元中的参考轨迹的优先级的加权平均值来确定尚未被分配优先级的轨迹的临时优先级。
在一些实施方式中,该方法包括使用由评委网络为所执行动作生成的分布和目标分布来确定所获得的轨迹的优先级。
根据第二方面,提供了一种训练具有多个策略网络参数的策略神经网络的方法。策略神经网络用于选择要由代理执行的动作,代理通过接收表征环境状态的观察并响应于接收到的观察而执行动作集合中的动作来与环境交互。策略神经网络具有多个策略网络参数,并且被配置为接收输入观察并处理输入观察,以根据策略网络参数生成动作集合中的动作的得分分布。
该方法包括,从回放存储器获得轨迹,该轨迹包括各自表征环境的相应训练状态的多个训练观察,以及对于每个训练观察,该轨迹还包括:来自由代理响应于接收训练观察而执行的动作集合中的训练动作和由代理接收的对于执行训练动作的训练奖励。
使用轨迹确定策略网络参数的当前值的更新。对于轨迹中的每个训练观察,根据策略网络参数的当前值,使用策略神经网络处理训练观察,以确定动作集合中的动作的当前得分分布。为每个动作确定该动作的当前得分相对于策略网络参数的梯度。使用评委神经网络处理训练观察,来为动作集合中的每个动作生成相应的q值。对于集合中除了响应于训练观察而执行的动作之外的每个动作,根据该动作的当前得分相对于策略网络参数的梯度和该动作的q值,确定策略网络参数的当前值的留一更新。根据策略网络参数的当前值,确定将策略神经网络用于选择由代理执行的未来动作而产生的回报的更新回报估计。根据更新回报估计和所执行动作的当前得分相对于策略网络参数的梯度,确定策略网络参数的当前值的选定动作更新。根据选定动作更新和留一更新,确定策略网络参数的最终更新。
在一些实施方式中,策略神经网络是递归神经网络。
在一些实施方式中,策略神经网络是前馈神经网络。
在一些实施方式中,策略网络参数的当前值的留一更新是,对于集合中除了响应于训练观察而执行的动作之外的每个动作,该动作的当前得分相对于策略网络参数的梯度和该动作的q值的相应乘积的总和。
在一些实施方式中,选定动作更新是更新回报估计和所执行动作的当前得分相对于策略网络参数的梯度的乘积。
在一些实施方式中,确定选定动作更新包括确定更新回报估计和所执行动作的q值之间的差值。确定该差值和所执行动作的当前得分相对于策略网络参数的梯度的乘积。通过将β函数的输出应用于该乘积来确定选定动作更新。
在一些实施方式中,确定选定动作更新还包括在将β函数的输出应用于该乘积之后,加上所执行动作的q值和所执行动作的当前得分相对于策略网络参数的梯度的乘积。
在一些实施方式中,β函数取决于以下中的至少一个:所执行动作的当前得分、由所述策略神经网络通过根据在接收到所述训练观察时为当前的、所述策略网络参数的早期值来处理所述训练观察而为所执行动作生成的先前得分、或者先前得分的估计。
在一些实施方式中,β函数是1除以所执行动作的先前得分或1除以先前得分的估计。
在一些实施方式中,β函数是(i)大于1的预定常数和(ii)1除以所执行动作的先前得分或1除以先前得分的估计中的最小值。
在一些实施方式中,β函数取决于先前得分的估计,并且该方法还包括使用先前得分估计神经网络处理训练观察。先前得分估计神经网络被配置为处理训练观察以生成包括先前得分的估计的输出。
在一些实施方式中,评委网络具有多个评委网络参数,并且该方法还包括使用轨迹确定评委网络参数的当前值的更新。对于轨迹中的每个训练观察,确定应该由评委网络通过处理训练观察为所执行动作生成的目标q值。确定评委网络参数的当前值的更新,该更新将评委网络通过处理训练观察为所执行动作生成的q值移向目标q值。
在一些实施方式中,对于每个训练观察,更新回报估计是应该由评委网络通过处理训练观察为所执行动作生成的目标q值。
在一些实施方式中,确定目标q值包括使用具有多步回报的偏离策略强化学习算法,根据(i)对于训练观察的训练奖励和对于轨迹中该训练观察之后的任何训练观察的训练奖励,以及(ii)为轨迹中该训练观察之后的任何训练观察所执行的动作,来确定目标q值。
在一些实施方式中,偏离策略强化学习算法是回溯算法。
在一些实施方式中,偏离策略强化学习算法是采用目标评委网络来确定目标q值的回溯算法。
在一些实施方式中,评委网络和策略神经网络共享一些参数。
在一些实施方式中,评委网络是递归神经网络。
在一些实施方式中,评委网络是前馈神经网络。
根据第三方面,提供了一种具有一个或多个计算机和一个或多个存储指令的存储设备的系统,当由一个或多个计算机执行时,该指令可操作以使得一个或多个计算机根据前述方法执行操作。
根据第四方面,提供了一种包括存储在其上的指令的计算机可读存储介质,该指令可由处理设备执行,并且在执行时使得处理设备根据前述方法执行操作。
可以实施本说明书中描述的主题的特定实施例,以便实现一个或多个以下优点。
本说明书中描述的系统可以训练策略神经网络,该策略神经网络用于比一些传统系统更有效地(例如,使用更少的计算资源,诸如内存和计算能力)选择要由与环境交互的代理执行的动作。此外,本说明书中描述的系统可以训练策略神经网络来选择使代理比一些传统系统更有效地执行任务的动作。
例如,本说明书中描述的系统可以通过根据自适应确定的临时优先级从回放存储器对轨迹进行采样(即,要用于训练策略神经网络),来更有效地训练策略网络(例如,通过更少的训练迭代)。更具体地,本说明书中描述的系统可以基于先前分配给回放存储器中其他轨迹的优先级,自适应地确定回放存储器中没有分配优先级的轨迹的临时优先级。例如,在回放存储器中的轨迹排列成阵列(例如,一维次序)的情况下,可以基于根据轨迹在存储器中的位置定义的回放存储器中的连续区域,来确定没有分配优先级的轨迹的临时优先级。在一个示例中,轨迹可以在回放存储器中具有一种次序,该次序是它们在策略网络的训练过程期间生成的次序(例如,如果回放存储器被实现为fifo(先进先出)队列,其中轨迹可以从队列中的任何位置选择),并且没有分配优先级的轨迹的临时优先级可以基于根据给定轨迹的位置(例如,包括或接近给定轨迹)选择的轨迹序列来确定。相反,一些传统系统为加上到回放存储器的每个新轨迹分配预定(例如,常数)的优先级。通过根据自适应确定的临时优先级从回放存储器对轨迹进行采样,本说明书中描述的系统更有可能对可用于快速有效地训练策略神经网络的轨迹进行采样(例如,以便通过更少的训练迭代来达到可接受的性能水平)。
作为另一示例,与一些传统系统不同,本说明书中描述的系统可以使用基于多步回报(即,表征代理在多个时间步骤接收的奖励的数据)的分布式强化学习更新来训练策略神经网络。分布式强化学习指的是一种机器学习技术,它涉及训练q神经网络,以生成动作的可能q值的概率分布,而不是单个预期q值(即,如在传统强化学习中那样)。可能q值的概率分布随后被用于确定策略神经网络的参数的更新。在一些情况下,使用分布式强化学习技术来训练策略神经网络可以使代理更有效地与环境交互。
此外,本说明书中描述的系统可以使用偏离策略轨迹来训练策略神经网络(不同于一些传统系统)。偏离策略轨迹表征了代理与环境在多个时间步骤上的交互,其中代理执行的动作不是根据策略网络参数的当前值来选择的。也就是说,在偏离策略轨迹中识别的动作不是使用策略网络参数的当前值来选择的。通过使用偏离策略轨迹训练策略网络,本说明书中描述的系统使得策略网络能够比只能使用遵循策略(on-policy)轨迹训练策略网络的传统系统更快地(即,通过更少的训练迭代)达到可接受的性能水平。
作为另一示例,本说明书中描述的系统使用基于更新回报估计的选定动作更新,在训练期间确定策略网络参数的最终更新。更新回报估计是比例如由系统中包括的评委网络生成的q值更精确的、由代理响应于观察执行动作而产生的回报的估计。通过使用更精确的更新回报估计来确定选定动作更新,系统可以训练策略神经网络以比其他方式更有效地执行给定任务,即,因为策略神经网络学会生成更精确地反映实际回报的输出。
本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。从说明书、附图和权利要求书中,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1a是示例动作选择系统的框图。
图1b是示例回放存储器的框图。
图2是使用训练观察的轨迹来更新策略神经网络的参数的示例过程的流程图。
图3是确定与给定训练观察相对应的策略网络参数的最终更新的示例过程的流程图。
图4是使用训练观察的轨迹来训练评委神经网络的示例过程的流程图。
图5是从回放存储器获得轨迹的示例过程的流程图。
不同附图中相同的附图标记和名称表示相同的元素。
具体实施方式
图1a示出了示例动作选择系统100。动作选择系统100是在一个或多个位置的一个或多个计算机上实施为计算机程序的系统的示例,其中实施了下面描述的系统、组件和技术。
动作选择系统100在多个时间步骤的每一个时间步骤选择要由与环境106交互的代理104执行的动作102。在每个时间步骤,系统100接收表征环境106的当前状态的数据,例如环境106的图像,并响应于接收到的数据选择要由代理104执行的动作102。表征环境106的状态的数据在本说明书中将被称为观察(observation)108。在每个时间步骤,该时间步骤的环境106的状态(由观察108表征)取决于先前时间步骤的环境106的状态和代理104在先前时间步骤执行的动作102。
本文描述的系统100可广泛应用,并且不限于一个特定的实施方式。然而,为了说明的目的,下面描述了少量的示例实施方式。
在一些实施方式中,环境106是现实世界环境,代理104是与现实世界环境交互的机械代理。例如,代理104可以是与环境106交互以完成特定任务的机器人。作为另一示例,代理104可以是通过环境106导航的自主或半自主车辆。在这些实施方式中,动作102可以是控制机器人或自主车辆的控制输入。在这些实施方式中的一些中,观察108可以由代理104的传感器生成或从其导出。例如,观察结果108可以由代理104的相机捕获。作为另一示例,观察108可以根据从代理104的激光传感器捕获的数据而导出。作为另一示例,观察108可以是由代理104的高光谱传感器捕获的高光谱图像。
在一些实施方式中,环境106是工业设施,代理104是该工业设施的控制系统。例如,代理104可以是控制数据中心的温度的温度控制系统。在该示例中,动作102可以是控制数据中心的温度的控制输入,诸如管理冷却数据中心的风扇叶片转速的控制输入,或者打开或关闭某一冷却机械的控制输入。
在一些实施方式中,环境106可以是模拟环境,代理104可以实施为与该模拟环境交互的一个或多个计算机程序。例如,模拟环境106可以是视频游戏,代理104可以是玩视频游戏的模拟用户。作为另一示例,模拟环境106可以是运动模拟环境,例如驾驶模拟或飞行模拟,并且代理104可以是通过运动模拟环境导航的模拟车辆。在这些实施方式中,动作102可以是控制模拟用户或模拟车辆的控制输入。
在每个时间步骤,代理104可以基于在该时间步骤的环境106的当前状态和代理104的动作102来接收奖励110。通常,奖励110是数值。奖励110可以基于环境106的任何事件或方面。例如,奖励110可以指示代理104是否已经完成任务(例如,导航到环境106中的目标位置)或者代理104朝向完成任务的进度。
系统100使用策略神经网络112来选择要由代理104执行的动作102。更具体地,在每个时间步骤,系统100向策略网络112提供包括该时间步骤的观察108的网络输入。策略网络112被配置为根据策略网络参数的当前值来处理网络输入,以生成要由代理104执行的可能动作集合中的动作的得分分布114。系统100基于得分分布114选择要由代理104在该时间步骤执行的动作102。
得分分布114包括由代理104执行的可能动作集合中的每个动作的相应数值得分值。在一些实施方式中,系统100通过soft-max函数处理得分分布114中包括的得分值,以确定每个动作的相应概率值。系统100可以通过根据每个动作的概率值对可能动作集合中的动作进行采样来选择要由代理104执行的动作102。在一些实施方式中,系统100选择将要由代理104执行的动作102为具有最高得分值的动作。
为了有效地使用策略网络112来选择要由代理104执行的动作102,系统100包括训练引擎116,训练引擎116被配置为使用强化学习技术通过多次训练迭代来训练策略网络112。训练引擎116通过迭代地(即,在每次训练迭代)调整策略网络参数的当前值来训练策略网络112。通过训练策略网络112,训练引擎116可以使得策略网络112生成得分分布114,得分分布114导致对增加代理104接收的累积奖励度量(例如,未来奖励的时间折扣总和)的动作102的选择。通过增加代理104接收的累积奖励度量,训练引擎116可以使代理104更有效地执行给定任务。
在一些实施方式中,训练引擎116连续地训练策略网络112(即,使得当代理104与环境106交互时策略网络参数不断更新)。在一些实施方式中,训练引擎116训练策略网络112以确定策略网络参数的训练值,然后保持训练值固定。在上述任一情况下,系统100可以在训练期间存储给定点的策略网络参数值,以供以后在实例化策略网络112时使用,或者可以将策略网络参数值传输到另一系统,以用于实例化策略网络112。
为了便于训练策略网络112,训练引擎116与策略网络112一起联合训练评委神经网络118(也可以称为q神经网络)。也就是说,在每次训练迭代中,训练引擎116调整评委网络参数和策略网络参数的当前值。评委神经网络118被配置为根据评委网络参数的当前值来处理包括表征环境106的状态的观察的输入,为可能动作集合中的每个动作生成相应的q值分布120。动作的q值分布120定义了该动作的可能q值集合的概率分布。动作的q值是对代理104响应于观察执行动作并且此后使用策略网络112根据策略网络参数的当前值选择由代理104执行的未来动作而产生的回报的估计。回报指的是对代理104接收的累积奖励度量的估计,例如,未来奖励的时间折扣总和(time-discountedsum)。参考图4进一步描述训练评委神经网络118。
在每次训练迭代中,训练引擎116获得存储在回放存储器(replaymemory)124中的轨迹122。轨迹122包括多个训练观察132的序列,每个训练观察表征环境106的相应训练状态。对于每个训练观察,轨迹122包括由代理104响应于接收训练观察而执行的训练动作(即,来自可能动作的集合)和由代理接收的用于执行训练动作的训练奖励。在一些实施方式中,训练引擎116通过从回放存储器124中随机对轨迹进行采样来获得轨迹122。在一些实施方式中,训练引擎116通过根据与回放存储器124中的轨迹相关联的优先级值从回放存储器124对轨迹进行采样来获得轨迹122。参考图5描述了根据与回放存储器124中的轨迹相关联的优先级值通过从回放存储器124采样来从回放存储器124获得轨迹122的示例过程。
系统100可能已经通过选择将由代理104在多个先前时间步骤执行的动作102并且然后将所得轨迹存储在回放存储器124中、来生成存储在回放存储器124中的轨迹。通常,回放存储器124可以包括“偏离策略”(off-policy)轨迹。如果没有根据策略网络参数的当前值来选择轨迹中的训练动作,则该轨迹被称为偏离策略。例如,轨迹可能是偏离策略的,因为该轨迹中的训练动作是根据策略网络参数的先前值来选择的,其中,由于训练,先前值不同于策略网络参数的当前值。
对于轨迹122中的每个训练观察132,训练引擎116为策略网络参数确定相应的最终更新126。每个最终更新126可以用任何适当的数字格式(例如,作为向量)来表示,并且包括一个或多个最终更新值,训练引擎116可以使用这些最终更新值来调整策略网络参数的当前值。例如,每个最终更新值可以对应于相应的策略网络参数,并且最终更新可以包括每个策略网络参数的相应最终更新值。训练引擎116可以例如通过将(i)与最终更新126中的策略网络参数相对应的最终更新值和(ii)学习速率参数的乘积加到策略网络参数的当前值,来调整策略网络参数的当前值。
为了确定与训练观察132相对应的最终更新126,训练引擎116使用评委网络118和策略网络112处理训练观察132。评委网络118根据评委网络参数的当前值来处理训练观察132,为可能动作集合中的每个动作生成相应的q值分布120。策略网络112根据策略网络参数的当前值来处理训练观察132,以生成包括可能动作集合中每个动作的相应得分值的得分分布114。
如将参考图3进一步描述的,训练引擎116使用得分分布114和q值分布120来生成留一更新(leave-one-outupdate)128和选定动作更新(selectedactionupdate)130(也可以称为“执行动作更新(performedactionupdate)”)。此后,训练引擎116根据留一更新128和选定动作更新130来确定训练观察的最终更新126。类似于最终更新126,留一更新128和选定动作更新130都可以用任何适当的数字格式(例如,作为向量)来表示,并且包括训练引擎116可以用来调整策略网络参数的当前值的相应更新值。
训练引擎116基于与除了响应于训练观察而执行的训练动作之外的动作相对应的得分值(即,来自得分分布114)和q值分布120的集中趋势的度量来确定留一更新128。分布的集中趋势的度量可以指例如分布的平均值、中位数或众数。通常,系统100在确定留一更新128时“遗留(leaveout)”与该训练动作相对应的得分值和q值分布120的集中趋势的度量。
为了确定选定动作更新130,训练引擎116(基于轨迹122)确定更新回报估计。与例如由评委网络118为训练动作生成的q值分布120的集中趋势的度量相比,更新回报估计是对代理104响应于训练观察132而执行训练动作将产生的回报的更精确的估计。训练引擎116基于训练动作的得分值(即,来自得分分布114)和更新回报估计来确定选定动作更新130。通过使用更精确的更新回报估计来确定选定动作更新130,训练引擎116可以训练策略网络112比其他方式更有效地执行给定任务。
训练引擎116可以使用与训练观察132相对应的最终更新126来调整策略网络参数的当前值。在一些情况下,训练引擎116组合轨迹122中每个训练观察132的最终更新126,并应用所组合的最终更新来调整策略网络参数的当前值。在一些情况下,训练引擎116在应用所有更新以调整策略网络参数的当前值之前,依据多个轨迹来确定并组合最终更新126。
在一些情况下,评委网络118被配置为,为可能动作集合中的每个动作生成相应的预期q值,而不是q值分布120(如前所述)。在这些情况下,训练引擎116基于与除了响应于训练观察而执行的训练动作之外的动作相对应的得分值(即,来自得分分布114)和q值(即,由评委网络生成)来确定留一更新128。用于在评委网络118被配置为生成预期q值的情况下确定最终更新126和训练评委网络118的示例过程将在下面描述(参考图3和图4),并且对在评委网络118被配置为生成q值分布的情况下的这些过程的描述也将在下面描述。
评委网络118和策略网络112可以被实施为任何适当的深度神经网络模型。例如,评委网络118和策略网络112可以被实施为前馈神经网络(例如,多层感知器或卷积神经网络)或递归神经网络(例如,长短期记忆(longshort-termmemory,lstm)网络)。在一些情况下,评委网络118和策略网络112可以共享一个或多个参数值。如果两个神经网络的参数值相同,则称参数值在两个神经网络之间共享。特别地,如果参数值在两个神经网络之间共享,那么将一个网络中的参数值改变为新值(例如,在训练期间)会使得另一网络中的参数值也改变为新值。
图1b是示例回放存储器124的框图。回放存储器124包括轨迹序列。如前所述,每个轨迹包括多个训练观察的序列,每个训练观察表征环境106的相应训练状态。回放存储器124中的轨迹可以具有相关联的优先级值。轨迹的优先级反映了训练引擎116将在训练期间从回放存储器124对轨迹进行采样的可能性。然而,当训练引擎116(例如,基于代理104最近执行的一系列动作102)向回放存储器124添加新轨迹时,训练引擎116不为新轨迹分配优先级。因此,回放存储器124通常包括多个没有分配优先级的轨迹。
为了在训练期间从回放存储器124对轨迹进行采样,训练引擎116使用先前分配给回放存储器124中其他轨迹的优先级,为没有分配优先级的每个轨迹确定临时优先级。一旦训练引擎116已经使用所分配的优先级和所确定的临时优先级从回放存储器124对轨迹进行了采样,临时优先级就被丢弃。在使用所采样的轨迹来训练系统100之后,训练引擎116确定轨迹的优先级,并将优先级分配给轨迹。
如将参考图5更详细描述的,为了确定没有分配优先级的轨迹的临时优先级,训练引擎116将回放存储器中的轨迹分区成多个单元(例如,单元c1134、c2136、c3138和c4140),其中每个单元包括先前已经被分配优先级的一个轨迹(本文称为参考轨迹)。对于未被分配优先级的给定轨迹,训练引擎116识别给定轨迹的局部邻域中的多个参考单元的集合(例如,参考单元rc(referencecell)集合142,由单元c1134、c2136和c3138组成),其中参考单元之一(在该示例中,c2136)包括给定轨迹。例如,训练引擎116可以将参考单元识别为具有预定长度的任何连续单元序列,其中一个单元包括给定轨迹。训练引擎116使用分配给给定轨迹的参考单元中的参考轨迹的优先级来确定给定轨迹的临时优先级。例如,训练引擎116可以通过给定轨迹的参考单元中的参考轨迹的优先级的加权平均值来确定给定轨迹的临时优先级(如稍后将更详细描述的)。
在一些传统系统中,预定的(例如,常数)优先级被分配给添加到回放存储器的每个新轨迹。相反,训练引擎116基于先前分配给局部邻域中的参考轨迹的优先级,自适应地为没有分配优先级的轨迹(例如,新轨迹或先前没有被训练引擎116采样的轨迹)确定相应的临时优先级。由此,训练引擎116可以对使得系统100能够被更有效地训练的轨迹进行采样。
图2是使用训练观察的轨迹来更新策略神经网络的参数的示例过程的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的动作选择系统(例如图1的动作选择系统100)可以执行过程200。
系统获得存储在回放存储器中的轨迹(202)。轨迹包括多个训练观察的序列,每个训练观察表征环境的相应训练状态。对于每个训练观察,轨迹包括由代理响应于接收训练观察而执行的可能动作集合中的训练动作,以及由代理接收的用于执行训练动作的训练奖励。在一些实施方式中,系统通过从回放存储器中随机采样来获得轨迹。在一些实施方式中,系统通过根据与存储在回放存储器中的轨迹相关联的优先级值从回放存储器采样来获得轨迹(如参考图5所描述的)。
对于每个训练观察,系统确定策略网络参数的最终更新(204)。每个最终更新可以用任何适当的数字格式(例如,作为向量)来表示,并且包括一个或多个最终更新值,系统可以使用这些最终更新值来调整策略网络参数的当前值(如将参考206进一步描述的)。如将参考图3进一步描述的,为了确定与训练观察相对应的策略网络参数的最终更新,系统确定并组合:(i)策略网络参数的留一更新和(ii)策略网络参数的选定动作更新。
系统使用与训练观察相对应的策略网络参数的最终更新来更新策略网络参数的当前值(206)。例如,对于给定的最终更新和给定的策略网络参数θ,系统可以通过以下式子(1)来更新策略网络参数的当前值:
θ←θ+r·gθ(1)
其中,←是赋值运算符,r是正学习率超参数(positivelearningratehyper-parameter)(即,管理策略网络参数θ的值在训练迭代中可以改变多少的超参数),并且是与策略网络参数θ相对应的、给定最终更新中的最终更新值gθ。
图3是用于确定与训练观察的轨迹中给定训练观察相对应的策略网络参数的最终更新的示例过程的流程图。通常,系统对训练观察的轨迹中的每个训练观察执行过程300的步骤。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的动作选择系统(例如图1的动作选择系统100)可以执行过程300。
系统根据策略网络参数的当前值使用策略网络来处理训练观察,以生成当前得分分布(302)。当前得分分布包括可以由代理执行的可能动作集合中的每个动作的相应当前得分。策略网络可以被实施为任何适当的深度神经网络模型(例如,前馈神经网络或递归神经网络)。
对于可以由代理执行的可能动作集合中的每个动作,系统确定该动作的当前得分(例如,如在302中所确定的)相对于策略网络参数的梯度(304)。系统可以通过任何适当的方法来确定梯度,诸如反向传播、反向传播通过时间(backpropagation-through-time)或截断反向传播通过时间。对于给定的动作,该动作的当前得分相对于策略网络参数的梯度可以用任何适当的数字格式(例如,作为向量)来表示。
系统根据评委网络参数的当前值使用评委网络来处理训练观察,来为可能动作集合中的每个动作生成相应q值分布(306)。动作的q值分布定义了该动作的可能q值集合的概率分布。动作的q值是对代理响应于训练观察执行动作并随后根据策略网络参数的当前值使用策略网络来选择代理执行的未来动作而产生的回报的估计。在一些情况下,评委网络被配置来为可能动作集合中的每个动作生成相应的预期q值,而不是q值分布。评委网络可以被实施为任何适当的深度神经网络模型(例如,前馈神经网络或递归神经网络)。
系统确定策略网络参数的留一更新(308)。留一更新可以用任何适当的数字格式(例如,作为向量)来表示,并且包括一个或多个留一更新值。对于除了响应于训练观察而执行的训练动作之外的每个动作,系统依据该动作的当前得分相对于策略网络参数的梯度(例如,如在304中所确定的)和该动作的q值分布(例如,如在306中所确定的)来确定留一更新。例如,系统可以将留一更新gloo确定为:
其中总和是基于除了响应于训练观察而执行的动作a之外的每个动作a,q(a)是动作a的q值分布的集中趋势的度量,并且
在评委网络被配置来为可能动作集合中的每个动作生成相应的预期q值(即,而不是q值分布)的情况下,对于除了响应于训练观察而执行的训练动作之外的每个动作,系统依据该动作的当前得分相对于策略网络参数的梯度和该动作的预期q值来确定留一更新。例如,系统可以如等式(2)中那样确定留一更新gloo,除了q(a)是该动作的预期q值(即,不是动作a的q值分布的集中趋势的度量)。
系统在代理响应于训练观察执行训练动作之后,根据策略网络参数的当前值,确定将策略网络用于选择由代理执行的未来动作而产生的回报的更新回报估计(310)。通常,与对评委网络通过处理训练观察而产生的q值分布(或预期q值)的集中趋势的度量相比,更新回报估计是对未来动作的奖励的更精确估计。系统可以将更新回报估计确定为目标q值分布的集中趋势(例如平均值)的度量,该目标q值分布应该由评委网络通过处理训练观察来为训练动作生成。系统可以使用具有多步回报的偏离策略分布式强化学习算法来确定目标q值分布。参考图4描述了使用具有多步回报的偏离策略分布式强化学习算法来确定目标q值分布的示例过程(具体地,步骤402)。
在评委网络被配置来为可能动作集合中的每个动作生成相应的预期q值(即,而不是q值分布)的情况下,系统可以将更新回报估计确定为目标q值,该目标q值应该由评委网络通过处理训练观察来为训练动作生成。系统可以使用具有多步回报的偏离策略强化学习算法来确定目标q值。
系统为策略网络参数确定选定动作更新(312)。选定动作更新可以用任何适当的数字格式(例如,作为向量)来表示,并且包括一个或多个选定动作更新值。系统依据以下各项来确定选定动作更新:(i)更新回报估计(例如,如在310中所确定的),以及(ii)响应于训练观察而执行的训练动作的当前得分相对于策略网络参数的梯度(例如,如在304中所确定的)。
在一些实施方式中,系统将选定动作更新gs确定为:
其中r(a)是更新回报估计,并且
可替代地,系统可以使用β函数来确定选定动作更新。β函数是取决于以下中的至少一个的函数(映射):(i)训练动作的当前得分(例如,如302中所确定的)、(ii)训练动作的先前得分、或者(iii)训练动作的先前得分的估计。训练动作的先前得分是指由策略网络通过根据在接收到训练观察时为当前的、策略网络参数的先前值来处理训练观察而为训练动作生成的得分。训练动作的先前得分可以存储在回放存储器中。训练动作的先前得分的估计可以通过使用先前得分估计神经网络处理训练观察来生成,该先前得分估计神经网络被配置为处理训练观察以生成包括先前得分的估计的输出。系统可以基于存储在回放存储器中的数据,使用监督学习技术来训练先前得分估计网络。在一些情况下,基于先前得分的估计来确定β函数的输出可以使系统能够比使用实际的先前得分更有效地训练策略网络。
在一些实施方式中,系统通过以下步骤使用β函数来确定选定动作更新:(i)确定更新回报估计和由评委网络为训练动作生成的q值分布的集中趋势的度量之间的差值,(ii)确定该差值和训练动作的当前得分相对于策略网络参数的梯度的乘积,(iii)将β函数的输出应用于该乘积,以及(iv)将训练动作的q值分布的集中趋势的度量和所执行动作的当前得分的梯度的乘积加到结果。例如,系统可以将选定动作更新gs确定为:
其中,β是β函数的输出,r(a)是更新回报估计,q(a)是由评委网络为训练动作生成的q值分布的集中趋势的度量,并且
在评委网络被配置为生成预期的预期q值而不是q值分布的情况下,系统可以如前所述(例如,参考等式(4))确定选定动作更新gs,除了使用训练动作的预期q值而不是训练动作的q值分布的集中趋势的度量。
通过适当地选择β函数,系统可以确定选定动作更新,然后确定最终更新,这使得策略网络比其他情况下更有效地被训练。在一些实施方式中,β函数被确定为:
其中μ(a)是训练动作的先前得分或者训练动作的先前得分的估计(如前所述)。在一些实施方式中,β函数被确定为:
其中c是大于1的预定常数,并且如前所述,μ(a)是训练动作的先前得分或训练动作的先前得分的估计。
系统依据策略网络参数的选定动作更新(例如,如在312中确定的)和留一更新(例如,如在308中确定的)来确定策略网络参数的最终更新。例如,系统可以将策略网络参数的最终更新g确定为:
g=gloo+gs(7)
其中gloo是留一更新,gs是选定操作更新。
图4是使用训练观察的轨迹来训练评委神经网络的示例过程的流程图。为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的动作选择系统(例如图1的动作选择系统100)可以执行过程400。为简洁起见,参考训练观察的轨迹中的给定训练观察来描述过程400。通常,系统可以对训练观察的轨迹中的每个训练观察执行过程400的步骤。
系统确定应该由评委网络通过处理训练观察为训练动作生成的目标q值分布(402)。系统可以使用具有多步回报的偏离策略分布式强化学习算法来确定目标q值分布。系统可以依据以下各项来确定目标q值分布:(i)在轨迹中的给定训练观察之后的训练观察、(ii)在轨迹中的给定训练观察之后的训练观察的训练动作、以及(iii)给定训练观察的训练奖励和在轨迹中的给定训练观察之后的训练观察的训练奖励。例如,系统可以确定将目标q值分布t为:
其中t是标记给定训练观察在轨迹中的位置的整数值(即,它是轨迹的时间序列中的特定时间),xt是给定训练观察,at是轨迹的对应动作,目标q值分布t是由可能q值集合
系统可以将目标概率
其中,基于n的总和通过轨迹中的给定训练观察之后的训练观察来索引,基于a的总和通过可能动作集合中的动作来索引,{αn,a}是标量系数,基于j的总和通过可能q值来索引,qj(xt+n,at+n)是使用评委网络在时间t+n为训练动作at+n生成可能q值zj的概率,并且
其中
其中γ是折扣系数(通常在0和1之间),并且rs是时间s处的训练奖励。
系数{αn,a}可以依据基于训练动作的当前得分和训练动作的先前得分(如前所述)的“轨迹”{cs}来确定。例如,系统可以将αn,a确定为:
其中,π(a|xt+n)是通过处理训练观察xt+n使用策略神经网络生成的得分分布中的动作a的得分,
在评委网络被配置来为每个动作生成预期q值(即,而不是q值分布)的情况下,系统可以确定应该由评委网络通过处理训练观察为训练动作生成的目标q值。系统可以使用具有多步回报的偏离策略强化学习算法来确定目标q值,例如,参考如下文献所描述的回溯目标q值:“safeandefficientoff-policyreinforcementlearning”,r.munosetal.,2016,arxiv:1606.02647。系统可以依据以下各项来确定目标q值:(i)给定训练观察的训练奖励和在轨迹中的给定训练观察之后的训练观察的训练奖励、以及(ii)在轨迹中的给定训练观察之后的训练观察的训练动作。
在一些情况下,系统维护评委网络的副本(称为目标评委神经网络),其具有与评委网络相同的架构,但可能具有不同的参数值。系统可以定期更新目标评委网络参数,使其与评委网络参数相同。作为确定目标q值的一部分,系统可以使用目标评委网络而不是如上所述的评委网络来处理轨迹中的一个或多个训练观察。通过结合目标评委网络,系统可以生成比其他情况下更稳定的评委网络参数的更新。
系统确定对评委网络参数的当前值的更新(404)。该更新可以将评委网络通过处理训练观察为训练动作生成的q值分布移向目标q值分布(例如,如在402中确定的)。例如,评委网络参数的当前值的更新可以是相对于损失函数的评委网络参数的梯度,该损失函数包括目标分布和评委网络为训练动作生成的分布之间的散度度量。在特定示例中,散度度量可以是kullback-leibler散度度量。系统可以通过反向传播技术来确定梯度。
在评委网络被配置来为每个动作生成预期q值(即,而不是q值分布)的情况下,更新可以将评委网络通过处理训练观察为训练动作生成的q值移向向目标q值(例如,如在402中所确定的)。例如,评委网络参数的当前值的更新可以是损失函数的相对于评委网络参数的梯度,该梯度度量了(i)目标q值和(ii)评委网络通过处理训练观察为训练动作生成的q值之间的差值(例如,平方误差)。
系统更新评委网络参数的当前值(406)。例如,如果评委网络参数的更新是损失函数的梯度(如404中所述),则系统可以通过以下式子来更新评委网络参数α的值:
其中r是学习率超参数,
图5是从回放存储器对轨迹进行采样的示例过程的流程图。为方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的动作选择系统(例如图1的动作选择系统100)可以执行过程500。
系统将回放存储器中的轨迹的序列分区成多个单元(502)。每个单元包括一个参考轨迹(即,先前已被分配优先级的轨迹)。通常,轨迹的优先级是指示训练引擎在训练期间将从回放存储器中对轨迹进行采样的可能性的数值。
对于没有被分配优先级的每个轨迹,系统识别对应的多个参考单元的集合(504)。对于未被分配优先级的给定轨迹,系统将对应的参考单元识别为给定轨迹的局部邻域中的单元,其中参考单元之一包括给定轨迹。例如,系统可以将参考单元识别为预定长度的任何连续单元序列,其中一个单元包括给定轨迹。
对于没有被分配优先级的每个轨迹,系统确定临时优先级(506)。例如,对于没有被分配优先级的给定轨迹,系统可以通过给定轨迹的对应参考单元中参考轨迹的优先级的加权平均值来确定给定轨迹的临时优先级。例如,对于与给定轨迹相对应的给定参考单元中的给定参考轨迹,系统可以使用给定参考单元中包括的轨迹的总数来确定给定参考轨迹的权重。例如,训练引擎可以通过以下等式来确定参考单元cn中参考轨迹的权重wn:
其中n是与给定轨迹相对应的参考单元的总数,并且|cn|是包括在参考单元cn中的轨迹的总数。训练引擎可以将给定轨迹的临时优先级
其中wn是参考单元cn的权重,pn是分配给参考单元cn中参考轨迹的优先级。通过确定如参考等式(15)所述的参考轨迹的权重,系统补偿采样偏差效应(samplingbiaseffect),其中在轨迹被分配高优先级的区域(即在回放存储器中)中采样更多轨迹,从而潜在地导致高估这些区域中轨迹的临时优先级。
系统使用优先级和临时优先级从回放存储器对轨迹进行采样(508)。例如,系统可以使用soft-max函数来处理优先级和临时优先级,以确定回放存储器中轨迹的概率分布,并根据概率分布对轨迹进行采样。在一些情况下,系统用预定的概率∈从回放存储器随机对轨迹进行采样(即对于回放存储器中所有轨迹用相等的概率),而不是使用优先级和临时优先级对轨迹进行采样。在从回放存储器对轨迹进行采样之后,系统通常使用该轨迹来训练系统参数,如参考图2所述。
系统确定所采样的轨迹的优先级(510)。例如,系统可以将所采样的轨迹的优先级确定为基于以下两者之间的差值的每个可能q值的总和:(i)根据评委网络通过处理轨迹中对应的训练观察为训练动作生成的q值分布的、可能q值的概率、和(ii)根据训练动作的目标q值分布的可能q值的概率。训练动作的目标q值分布是应该由评委网络通过处理训练观察为训练动作生成的q值分布(例如,如参考402所述)。例如,系统可以将所采样的轨迹的优先级p确定为:
其中通过可能q值集合索引的总和qi(xt,at)是评委网络通过处理轨迹中对应的训练观察xt为训练动作at生成的可能q值zi的概率,并且
本说明书结合系统和计算机程序组件来使用术语“配置”。一个或多个计算机的系统被配置为执行特定的操作或动作,这意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,这意味着该一个或多个程序包括指令,当由数据处理装置执行时,该指令使得该装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件(包括本说明书中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即编码在有形的非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行访问存储设备、或者它们中的一个或多个的组合。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码信息,用于传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的各种装置、设备和机器,包括例如可编程处理器、计算机、或者多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序也可以被称为或描述为程序、软件、软件应用、小应用、模块、软件模块、脚本或代码,它可以用任何形式的编程语言编写,包括编译或解释语言、或者声明性或程序性语言;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。程序可以但不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如在标记语言文档中存储的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如存储一个或多个模块、子程序或代码部分的文件中)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过数据通信网络互连的一个或多个计算机上执行。
在本说明书中,术语“引擎”被广泛用于指基于软件的系统、子系统或过程,其被编程为执行一个或多个特定功能。通常,引擎将被实施为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在同一个或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,fpga或asic)或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
适于执行计算机程序的计算机可以基于通用或专用微处理器或两者、或者任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或结合到专用逻辑电路中。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),以从一个或多个大容量存储设备接收数据,或向一个或多个大容量存储设备传送数据,或两者兼有。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器、或便携式存储设备(例如通用串行总线(usb)闪存驱动器),仅举几个示例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如crt(阴极射线管)或lcd(液晶显示)器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如鼠标或轨迹球)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户设备上的网络浏览器发送网页。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)发送文本消息或其他形式的消息并且作为回报从用户接收响应消息来与用户交互。
用于实施机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集型部分,即推理、工作负载。
机器学习模型可以使用机器学习框架来实施和部署,例如tensorflow框架、微软认知工具包框架、apachesinga框架或apachemxnet框架。
本说明书中描述的主题的实施例可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可以通过其与本说明书中描述的主题的实施进行交互的图形用户界面、网络浏览器或应用的客户端计算机),或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信来互连,例如通信网络。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在各自的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据(例如html页面)传输到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。在用户设备处生成的数据(例如用户交互的结果)可以在服务器处从设备接收。
虽然本说明书包含许多具体的实施细节,但这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中以组合来实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,并且甚至最初被要求这样保护,但是在一些情况下,所要求保护的组合中的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中描绘了操作,并且在权利要求中以特定次序叙述了操作,但是这不应该被理解为要求这些操作以所示的特定次序或顺序的次序执行,或者要求执行所有示出的操作,以获得期望的结果。在一些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中各种系统模块和组件的分离不应理解为在所有实施例中都需要这种分离,并且应理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者封装到多个软件产品中。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中列举的动作可以以不同的次序执行,并且仍然获得期望的结果。作为一个示例,附图中描述的过程不一定需要所示的特定次序或顺序次序来获得期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。