首页> 中国专利> 通过使用时间值传递在长时间尺度上控制代理

通过使用时间值传递在长时间尺度上控制代理

摘要

本发明涉及用于训练神经网络系统的方法、系统和装置,包括在计算机存储介质上编码的计算机程序,该神经网络系统用于控制与环境交互的代理执行指定任务。所述方法之一包括:使代理执行任务情节,其中代理尝试执行指定任务;针对序列中的一个或多个特定时间步中的每个时间步:根据(i)在该时间步处的实际奖励,和(ii)在序列中在特定时间步之后多于时间步阈值数目的一个或多个时间步处的值预测,生成针对特定时间步的修改奖励;以及通过强化学习,通过使用至少针对特定时间步的修改奖励来训练所述神经网络系统。

著录项

说明书

技术领域

本说明书涉及强化学习。

背景技术

在强化学习系统中,代理通过执行由强化学习系统响应于接收到用于表征环境的当前状态的观察而选择的动作来与所述环境的交互。

一些强化学习系统响应于接收到给定观察,根据神经网络的输出来选择待由代理执行的动作。

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

发明内容

本说明书总体上描述一种强化学习系统,其训练神经网络系统以控制代理与环境的交互。

因此,在一方面,一种训练用于控制与环境交互的代理执行指定任务的神经网络系统的方法包括:使代理执行任务情节,在其中代理尝试执行指定任务。在任务情节期间的时间步序列中的每个时间步处,该方法可以包括:获得用于表征环境的当前状态的观察;根据观察并通过使用神经网络系统,选择待由代理响应于观察而执行的动作;通过使用神经网络系统,生成值预测,该值预测表示环境处于当前状态以成功执行指定任务的值;使代理执行所选择的动作;以及作为响应,接收实际奖励,该实际奖励表征由于代理执行所选择的动作而在环境中取得的进展。针对序列中的一个或多个特定时间步中的每个时间步,该方法还可以包括:根据(i)该时间步处的实际奖励、和(ii)在序列中在特定时间步之后多于时间步阈值数目的一个或多个时间步处的值预测,生成针对该特定时间步的修改奖励。该方法还可以包括:通过强化学习,至少使用针对特定时间步的修改奖励来训练神经网络系统。

该方法的实施方式解决了长期信用分配的问题,并且通过这样做可以显著扩展通过计算能够解决的决策问题的范围,例如,基于过去事件来决策在特定时间执行什么动作。修改奖励允许基于过去事件对未来奖励的贡献来重新评估过去事件的重要性。阈值步数可以使得在时间步与稍后的值预测之间所接收的奖励与任务无关,例如,在这两者之间可能存在“干扰任务”;和/或,阈值步数可能大于奖励半衰期(以时间步为单位),即,在未来奖励(在时间步之后)以系数γ来进行折扣的情况下,阈值步数可以是1/(1-γ)。因此,总的来说,该方法的实施方式可以考虑仅在自特定时间步起已经经过长时间段之后才接收到的奖励。

该方法可以应用于任何强化学习技术。通常,强化学习技术可以是这样一种技术,即基于所接收的奖励,例如通过使用梯度下降技术来适应用于控制代理的神经网络系统的参数,使得随着时间推移,代理学习执行指定任务。梯度下降技术可以涉及损失函数梯度的反向传播,这取决于所接收的奖励。该方法的实施方式修改通过强化学习技术所看到的奖励,否则该奖励可以其通常方式进行操作。因此,该方法不限于与特殊的强化学习技术或神经网络系统架构一起使用。然而,在一些实施方式中,神经网络系统被配置为通过策略梯度损失函数的梯度的反向传播来学习执行指定任务。

一种生成修改奖励的方式涉及在外部存储器中存储相关的信息,例如感知和事件信息。然后可以标识并访问该信息,以评估哪些过去事件对未来奖励有贡献。获知哪些过去事件对未来奖励有贡献,有助于根据与未来奖励相关联的值预测来生成针对过去事件的修改奖励。

因此,在一些实施方式中,神经网络系统增设有外部存储器以及一个或多个用于从外部存储器读取数据的读取头。在每个时间步处,可以通过一个或多个读取头中的每一个从外部存储器读取数据,并使用该数据来确定该时间步的(压缩)状态表示,然后将该状态表示写入外部存储器。因此,状态表示可以具有与从外部存储器读取的数据相同的维数。存储器可以按时间索引,例如,它可以具有用于每个时间步的时隙。状态表示可以包括对环境的观察的表示,其可以包括先前动作和奖励的表示;在递归神经网络系统中,它可以包括所述系统在先前时间步处的隐藏状态;它也可以包括在先前时间步处从存储器读取的数据的表示。

神经网络系统可以被配置为学习从存储器中检索与在时间步处预测值函数有关的数据。更特别地,神经网络系统可以学习检索与选择待执行动作有关的过去记忆。在一些实施方式中,可以基于在学习的读取键与由时间步索引的一个/多个记忆之间的相似性度量,从存储器读取数据。读取头中的每个可以基于在时间步的相应读取键与一行记忆之间的相似性的相似性度量,在多个记忆位置上执行软读取。所检索的数据可以包括先前存储的状态表示的加权组合。在递归神经网络(RNN)系统中,时间步的状态表示和所检索的数据(针对先前时间步)可以与先前时间步的RNN系统的隐藏状态一起用作递归输入。学习可以由所使用的强化学习技术来驱动,更具体地,可以由强化学习损失函数(诸如策略梯度损失)来驱动。

在一些实施方式中,该方法可以包括基于在时间步处针对读取头从外部存储器读取数据的强度,例如以在时间步处针对读取头从外部存储器读取数据的权重,将时间步序列中的一个或多个时间步标识为拼接时间步。强度可以由读取强度参数来确定,该读取强度参数定义以怎样的强度在时间步处从外部存储器读取,例如由神经网络系统来确定或学习。这可以是相似性度量的附加参数。

拼接时间步可以包括从中获得用于生成修改奖励的值预测的时间步(在特定的当前时间步之后)。因此,生成修改奖励可以包括:标识在拼接时间步之前多于时间步阈值数目的一个或多个特定时间步;根据在拼接时间步处通过使用从外部存储器读取的数据所生成的值预测,针对每个所标识的时间步生成奖励的修改;以及将修改应用于相应时间步的实际奖励。拼接时间步可以是其中读取强度参数超过阈值的时间步;它可以是在其中所有读取强度参数都超过阈值的时间窗口内具有最高读取强度参数的时间步。

在一些实施方式中,确定压缩状态表示可以包括:通过使用解码器神经网络来重建环境观察的表示,可选地包括先前动作和奖励的表示;以及通过使用重建损失来训练包括解码器的神经网络系统。

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

许多复杂的任务(例如,机器人任务)需要在一个或多个较早时间步处正确执行某些动作或观察某些信息,然后在一个或多个更晚的时间步处使用观察到的信息或所述动作的结果。是否成功执行了所述动作、或是否成功观察到所需的信息是不清楚的,直到更晚得多的时间步为止。因此,这些任务涉及到在代理的动作与这些动作导致成功完成指定任务之间的长时间延迟。

常规的强化学习系统无法成功训练可用于成功使代理执行此类任务的神经网络或其他控制策略。特别地,在训练期间,常规系统只能在相对较短的时间内为给定时间步处的动作分配“信用”,因为奖励仅基于由代理所执行的动作的短期影响。另一方面,所述系统能够通过使用来自久远的未来时间步的值预测修改在某些时间步处的奖励而成功地为久远的过去动作分配信用。这种方法允许所述系统能够成功地控制代理以执行现有系统难以处理的任务。

附加地,由于所述方法仅通过使用将在稍后的时间步处已生成的信息来修改奖励,因此能够将其与任何现有的强化学习技术一起使用,而不会大量增加由学习过程所消耗的计算资源。实际上,由于所述方法允许所述系统学习用于常规系统难以处理的任务的有效策略,因此所述方法能够减少由强化学习系统所消耗的计算资源量,因为在训练过程分散时,或在其它情况下在确定成功控制策略方面无法取得进展时,不会浪费资源。

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

附图说明

图1示出示例强化学习系统。

图2示出系统如何通过使用在任务情节中在较晚时间步处的值预测来修改在任务情节中在较早时间步处的奖励的示例。

图3是用于修改在任务情节中在时间步处的奖励的示例过程的流程图。

图4示出由神经网络系统执行的在时间步处选择动作的处理的示例。

图5是用于通过使用阅读强度来修改在任务情节中在时间步处的奖励的示例过程的流程图。

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

具体实施方式

本说明书描述一种强化学习系统,该系统通过在多个时间步中的每个时间步处,处理用于表征在该时间步处的环境的当前状态的数据(即“观察”),以选择待由代理执行的动作,来控制代理与环境交互。

在每个时间步处,该时间步处的环境状态取决于先前时间步处的环境状态以及由所述代理在先前时间步处执行的动作。

在一些实施方式中,所述环境是现实世界环境,并且代理是与现实世界环境交互的机械代理,例如,机器人或者在环境中导航的自主或半自主的陆地、空中或海上交通工具。

在这些实施方式中,所述观察可以例如包括以下一项或多项:图像,对象位置数据,以及用于在代理与环境交互时捕捉观察的传感器数据,例如来自图像、距离或位置传感器或者来自致动器的传感器数据。

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

在机器人或其他机械代理或交通工具的情况下,所述观察可以类似地包括以下一项或多项:位置,线速度或角速度,力,力矩或加速度,以及代理的一个或多个部分的全局或相对姿势。所述观察可以定义为1维、2维或3维,并可以是绝对观察和/或相对观察。

所述观察也可以例如包括:感测电子信号,诸如电机电流或温度信号;和/或例如来自相机或LIDAR传感器的图像或视频数据,例如来自代理的传感器的数据,或来自与环境中的代理位置分开的传感器的数据。

在这些实施方式中,所述动作可以是用于控制机器人的控制输入,例如,用于机器人关节的力矩或更高级的控制命令,或者是用于控制自主或半自主的陆地、空中、海上交通工具的控制输入,例如控制表面或其他控制元件(例如,交通工具的转向控制元件)的力矩,或者更高级的控制命令。

换而言之,所述动作能够例如包括针对机器人的一个或多个关节或另一机械代理的部分的位置、速度或力/力矩/加速度数据。动作数据可以附加地或替代地包括电子控制数据,例如电机控制数据,或更一般地包括用于控制环境中的一个或多个电子设备的数据,控制这样的电子设备会对观察的环境状态存在影响。例如,在自主或半自主的陆地或空中或海上交通工具的情况下,所述动作可以包括控制交通工具的导航(例如转向)以及运动(例如制动和/或加速度)的动作。

在电子代理的情况下,所述观察可以包括来自用于监视工厂或服务设施一部分的一个或多个传感器(例如电流、电压、功率、温度和其他传感器)的数据和/或代表设备的电子和/或机械项目功能的电子信号。例如,现实环境可以是制造工厂或服务设施,所述观察可以有关工厂或设施的操作,例如有关资源使用,诸如功耗,并且代理可以控制工厂/设施中的动作或操作,例如减少资源使用。在一些其他实施方式中,现实环境可以是可再生能源工厂,所述观察可以有关工厂的操作,例如有关使目前或未来计划的发电量最大化,并且代理可以控制工厂中的动作或操作以达成这一目标。

在一些其他应用中,代理可以控制现实世界环境(包括设备项目)中、例如数据中心中、电力/水力分配系统中或者制造工厂或服务设施中的动作。于是,所述观察可以有关工厂或设施的操作。例如,所述观察可以包括对设备使用的电力或水力的观察,或者对发电或配电控制的观察,或者对使用资源或废物产生的观察。所述动作可以包括用于控制或施加操作条件到工厂/设施的设备项目的动作,和/或用于导致工厂/设施的操作中更改设置例如以调节或打开/关闭工厂/设施的组件的动作。

作为另一示例,所述环境可以是化学合成或蛋白质折叠环境,使得每个状态是蛋白质链或一种或多种中间体或前体化学品的各自状态,并且代理是用于确定如何折叠蛋白质链或合成所述化学品的计算机系统。在本示例中,所述动作是用于折叠蛋白质链的可能折叠动作或者用于聚合前体化学品/中间体的动作,并且要实现的结果可以包括例如折叠蛋白质,使得蛋白质稳定并使得达到特定的生物功能或者为化学品提供有效的合成途径。作为另一示例,代理可以是机械代理,其在无人为干预的情况下自动执行或控制由系统选择的蛋白质折叠动作或化学合成步骤。所述观察可以包括直接地或间接地观察蛋白质或化学品/中间体/前体的状态,和/或可以从模拟中推导出。

在一些实施方式中,所述环境可以是模拟环境,并且代理可以被实施为与该模拟环境交互的一个或多个计算机。

模拟环境可以是运动模拟环境,例如驾驶模拟或飞行模拟,并且代理可以是通过运动模拟导航的模拟交通工具。在这些实施方式中,所述动作可以是用于控制模拟用户或模拟交通工具的控制输入。

在一些实施方式中,模拟环境可以是特定现实世界环境的模拟。例如,所述系统可以用于在训练或评估控制神经网络期间选择模拟环境中的动作,并且在完成训练或评估或这两者之后,所述系统可以部署为控制由模拟环境模拟的现实世界环境中的现实世界代理。这样能够避免不必要的磨损以及对现实环境或真实世界代理的损害,并且能够允许所述控制神经网络对真实世界中鲜少发生或难以再现的情况进行训练和评估。

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

图1示出示例强化学习系统100。强化学习系统100是在一个或多个位置中的一个或多个计算机上作为计算机程序实现的系统的示例,其中实施如下所述的系统、组件和技术。

系统100通过选择待由代理102执行的动作106并然后使代理102执行所选择的动作106来控制代理102与环境104的交互。

由代理102执行所选择的动作106大体上使环境104转变为新的状态。通过重复地使代理102在环境104中进行动作,系统100能够控制代理102以完成指定任务。

系统100包括控制神经网络系统110、训练引擎150以及一个或多个存储器,该存储器存储控制神经网络系统110的一组模型参数118。

在多个时间步中的每个时间步处,控制神经网络系统110被配置为根据模型参数118来处理包括用于表征环境104的当前状态的当前观察120的输入,以生成动作选择输出122。

系统100使用动作选择输出122以控制代理,即根据动作选择策略选择待由代理在当前时间步处执行的动作106,然后使代理执动作106,例如通过直接将控制信号传送到代理、或者通过将用于标识动作106的数据传送到代理的控制系统。

接下来描述使用动作选择输出122以选择待由代理执行的动作106的几个示例。

在一个示例中,动作选择输出122定义待由代理执行的可能动作的概率分布。例如,动作选择输出能够包括针对可由代理执行以与环境交互的可能动作集中的每个动作的相应动作概率。在另一个示例中,动作选择输出122能够包括所述可能动作集的分布参数。系统100能够通过使用多种动作选择策略中的任何一个,基于动作选择输出122来选择待由代理执行的动作,所述动作选择策略例如是通过根据动作的概率值对动作进行采样、或者通过选择具有最高概率值的动作。

在另一个示例中,动作选择输出122响应于观察而从待由代理执行的可能动作集中标识最佳动作。例如,在控制机械代理的情况下,动作选择输出能够标识待应用于机械代理的一个或多个关节的力矩。系统100能够使用多种动作选择策略中的任何一个,基于动作选择输出122来选择待由代理执行的动作,所述动作选择策略例如是通过选择所标识的最佳动作、或者通过向最佳动作添加噪声以鼓励探索和选择添加噪声的动作。

在另一个示例中,动作选择输出122可以包括代理可执行的可能动作集中的每个动作的相应Q值。

动作的Q值是对“回报”的估计,其将是从所述代理响应于当前观察120执行所述动作、且此后根据控制神经网络参数的当前值来选择由代理102执行的未来动作而获得的。

回报是指代理所接收的“奖励”124的累积量度,例如奖励的时间折扣总和。

代理能够在每个时间步处接收相应的奖励124,其中奖励124由标量数值指定,并表征例如代理朝向完成指定任务的进度。

在本示例中,系统100能够使用多种动作选择策略中的任何一种,基于动作选择输出122来选择待由代理执行的动作,所述动作选择策略例如是通过选择具有最高Q值的动作、或者通过将Q值映射到概率值并根据概率对动作进行采样。在一些情况下,系统100能够根据探索策略来选择待由代理执行的动作。例如,探索策略可以是∈-贪婪探索策略,其中系统100根据动作选择输出122以概率1-∈选择待由代理执行的动作,并以概率∈随机选择动作。在本示例中,∈是介于0至1之间的标量值。

除了以上任何一项,神经网络系统110还生成值预测126,该值预测126表示环境处于当前状态以成功地执行指定任务的值。换而言之,值预测126是得自于环境处于观察所表征的当前状态的、对指定任务的回报的估计,例如,如果使用控制神经网络系统110的输出来控制代理,则从当前状态开始在任务情节的其余部分上或在一定固定数目的未来时间步上所接收的奖励124的时间折扣总和的估计。该总和称为时间折扣是因为当计算回报时,未来奖励以固定的时间折扣系数γ进行折扣。

在某些情况下,控制神经网络系统110直接生成值预测126,即直接生成作为时间折扣未来回报的预测的值。在其他情况下,控制神经网络系统110间接生成值预测126,即基于由神经网络系统110输出的其他量。例如,当神经网络系统110生成Q值时,值预测126能够是针对动作集中的任何动作的最高Q值输出。

作为生成值预测126和动作选择输出122的一部分,控制神经网络系统110从外部存储器读取数据并将数据写入外部存储器。

换而言之,神经网络系统110增设有外部存储器,并且在每个时间步处,神经网络系统针对一个或多个读取头中的每一个从外部存储器读取数据并将数据写入外部存储器。

通常,神经网络系统110至少使用以下数据来选择待在每个时间步处执行的动作:(i)在先前时间步处从外部存储器读取的数据,或者(ii)在该时间步处从外部存储器读取的数据;并且至少使用以下数据来生成值预测:(i)在先前时间步处从外部存储器读取的数据,或者(ii)在该时间步处从外部存储器读取的数据。

尽管采用外部存储器的控制神经网络系统110存在许多可能的架构,但下面参照图4描述了从存储器读取和写入存储器的神经网络系统110的架构示例。

训练引擎150被配置为通过基于代理与环境交互通过重复更新控制神经网络系统110的模型参数118来训练控制神经网络系统110。

在训练期间,系统100在受控制神经网络系统110控制的同时,重复地使代理执行任务情节。任务情节是一系列时间步,在此期间,代理尝试执行指定任务。例如,任务情节能够持续预定数目的时间步,或者直到接收到用于指示已成功完成任务的奖励为止。在任务情节期间的每个时间步处,系统获取用于表征环境当前状态的观察120,并通过使用神经网络系统110根据观察120选择待由代理响应于观察而执行的动作。系统100也通过使用神经网络系统110来生成值预测126,该值预测126表示环境处于当前状态以成功执行指定任务的值。然后,系统100使代理执行所选择的动作106,并且作为响应,接收实际奖励124,该奖励124表征环境中由于代理执行所选择的动作106而朝向完成任务取得的进展。

特别地,训练引擎150通过强化学习来训练控制神经网络系统110。

更具体地,常规训练引擎150将通过使用观察120以及在训练期间由于代理与环境交互而生成的奖励124来训练控制神经网络系统110。

另一方面,所述系统包括奖励修改引擎170,该奖励修改引擎170针对任务情节中的某些时间步修改奖励124,以生成修改奖励172。

然后,基于奖励124,或者对于其中生成修改奖励172的时间步,基于修改奖励172,训练引擎150通过强化学习来训练控制神经网络系统110。

更具体地,对于任务情节中的某些特定时间步,奖励修改引擎170通过使用针对情节中明显更晚的时间步(即情节中在特定时间步之后大于时间步阈值数目的时间步)所生成的值预测126来修改奖励124。也就是说,系统使用来自较晚时间步的值预测126来“自举”(bootstrap)较早时间步的奖励124,以生成修改奖励,该修改奖励将在训练期间代替奖励124。在本说明书中,以此方式修改奖励称为“时间值传递”。

下面将参照图2、图3和图5来详细描述修改奖励。

以此方式修改奖励允许训练引擎150训练控制神经网络系统100以在任务情节内的长时间尺度上更有效地分配信用,即,在情节中更早地更准确地采取可能在情节中更晚时取得对完成任务的重大进展的动作。

通常,训练引擎150能够使用任何适当的强化学习技术(例如,基于策略梯度的技术)来训练控制神经网络系统110以增加代理所接收的回报(即,奖励或修改奖励的累积量度)。

一种能够由训练引擎150用来训练控制神经网络系统110的技术的示例为“最大后验策略优化(MPO)”技术,参见A·Abdolmaleki等人所著的《Maximuma Posteriori PolicyOptimisation》(最大后验政策优化),请见arxiv.org/abs/1806.06920。

另一种能够由训练引擎150用来训练控制神经网络系统110的技术的示例为IMPALAV-trace技术,参阅L·Espeholt等人所著的《Impala:Scalable distributed deep-rl with importance weighted actor-learner architectures》(Impala:具有重要加权的动作者-学习者体系结构的可扩展分布式深度强化学习),arXiv预印本为arXiv:1802.01561,2018。

在某些情况下,系统100在训练期间使用分布式框架,其中多个代理与同一环境的不同副本进行交互。

图2示出系统如何通过使用在任务情节中在更晚时间步处的值预测来修改在任务情节中更早时间步的奖励的示例。特别地,图2示出系统如何通过使用在任务情节中的时间步204的值预测来修改在任务情节中的时间步202处的奖励。稍后参照图4给出图2中符号的定义。

从图2可以看出,任务情节包括三个时间段:其中未接收奖励的初始时间步,其中可以接收一些不取决于在初始时间步处已采取哪些动作的小额奖励(“干扰奖励”)的中间时间步,其中可能会可以接收实际上取决于在初始时间步处已采取哪些动作的远期奖励的后期时间步。也就是说,奖励是“远期”奖励,因为即使接收奖励与初始时间步分开很长时间,但是否接收奖励或者接收多少奖励仍取决于在那些初始时间步处发生哪些动作。对于许多常规的强化学习算法而言,这可能是十分困难的情况,因为在这些时间步处的奖励仅取决于在所述时间步处所生成的信息,即仅取决于在所述时间步处所接收的实际奖励,并且在某些情况下,取决于在下一时间步处的值预测。特别是,尽管一些强化学习技术使用“标准自举”来自举在给定时间步处的实际奖励(这是通过首先将从下一时间步处的值预测导出的值添加到实际奖励中,然后使用该自举的奖励进行强化学习),但该标准自举不足以得出图2所示的远期奖励。

特别地,在时间步202(图2中标为时间步“t1”)处,标准自举将向时间步202处的实际奖励

另一方面,如本说明书中所述,在满足某些条件时,时间值传递(TVT)也将添加基于来自更晚时间步204的值预测

以此方式生成修改奖励允许所述系统,在学习哪些动作最适合响应于观察(例如在时间步202处所接收的观察)而执行时,标识在时间步202处执行的动作导致了在更晚得多的时间步204处的远期奖励。

图3是用于修改在任务情节中在时间步处的奖励的示例过程300的流程图。为方便起见,将过程300描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的强化学习系统、例如图1的强化学习系统100能够执行过程300。

所述系统使代理执行任务情节,其中代理尝试执行指定任务(步骤302)。例如,系统能够使代理在时间步序列中的每个时间步处执行操作,例如,直到接收到用于指示已成功执行任务的奖励,直到已在阈值数目的时间步处执行动作,或者直到已满足某些其他终止准则。

系统针对任务情节期间的一个或多个特定时间步中的每一个,即针对任务情节的时间步序列中的一个或多个特定时间步,生成修改奖励(步骤304)。

通常,系统首先基于系统在时间步处怎样从外部存储器读取数据,标识在任务情节中较晚的一个或多个拼接时间步。然后,系统针对每个拼接时间步标识在所述情节中与该拼接时间步相比多于阈值更早的一个或多个较早时间步,并使用来自拼接时间步的或来自紧随该拼接时间步后的时间步的值预测来修改所标识的较早时间步的实际奖励。

下面参照图5详细描述用于确定哪个特定时间步修改奖励以及在修改奖励时使用哪个较晚时间步的技术的详细示例。

系统通过至少对修改奖励进行强化学习来训练神经网络系统(步骤306)。也就是说,当使用任何适当的强化学习技术来训练神经网络系统时,系统能够使用修改奖励来代替实际奖励。针对系统未修改奖励的时间步,系统在执行强化学习技术时使用实际奖励。如上所述,对于一些强化学习技术,系统将标准奖励自举应用于修改奖励(或来自其中未修改奖励的时间步的实际奖励)。

图4示出可以由神经网络系统在给定时间步t处执行的处理的示例。

尽管图4示出在任务情节期间的不同时间步处读取和写入存储器的特定示例,但所描述的技术原理适用于任何神经网络系统。更具体地,图4描述一种神经网络系统配置,但本说明书中描述的时间值传递技术能够应用于任何神经网络系统配置,包括在其控制代理时从外部存储器读取和写入外部存储器的系统。

在图4的示例中,时间步的图像帧I

RNN包括递归的“控制器”网络h(例如LSTM)和尺寸为N×W的记忆矩阵M。该RNN和记忆系统的来自先前时间步t-1的输出是来自先前时间步的控制器输出h

在时间步t处,RNN执行一个从记忆读取和计算的循环。状态表示z

状态表示z

这个过程可确保z

因此,如图4所示,不同的记忆头在不同的时间步处以不同的读取强度从存储器读取数据。因为这些读取强度决定了任何给定读取的量级,较高读取强度隐含着需要从记忆(即从较早时间步处所生成的数据中)读取更多数据,以便有效地选择在当前时间步处的动作。

为了训练参照图4所述的神经网络系统,系统能够训练神经网络系统以使损失函数最小化,所述损失函数包括例如通过如上所述MPO的策略梯度损失,以及可选地包括用于重建所述观察以匹配由系统所接收的实际观察的重建损失。例如,重建损失能够包括用于动作重建解码器的多项式softmax交叉熵损失、用于奖励和值函数解码器的均方误差(例如,固定方差为1的高斯分布)损失项、以及用于由图像解码器生成的图像的每个像素通道的伯努利交叉熵损失项。

在这类情况的一些中,损失函数也包括读取重建损失,每当读取强度参数高于阈值时,该读取重建损失就会带来正则化成本。从下文关于图5的描述中可以清楚地看出,包含该损失将减少触发值传递机制的次数,即减少具有从较晚时间步所传递的值的较早时间步的数量,并且能够防止值传递机制在学习期间被从外部触发。

用于生成读取强度作为来自记忆的读数的一部分的神经网络系统的示例架构、以及可用于训练此类神经网络系统的损失函数的示例,被描述在G·Wayne等人所著的《Unsupervised predictive memory in a goal-directed agent》(目标导向代理中的无监督预测记忆)的arXiv预印本arXiv:1803.10760(2018)中,以及被描述在A·Graves等人所著的《Hybrid computing using a neural network with dynamic external memory》(通过使用带有动态外部存储器的神经网络进行混合计算),Nature(自然)538,471(2016)中,它们的全部内容通过引用整体归并本文。

图5是用于通过使用阅读强度来修改在任务情节中针对时间步的奖励的示例过程500的流程图。为方便起见,将过程500描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的强化学习系统、例如图1的强化学习系统100能够执行过程500。

针对一个或多个读取头中的每一个,系统基于在时间步处针对读取头从外部存储器读取数据的强度,标识在任务情节的时间步序列当中的一个或多个拼接时间步(步骤502)。即,针对每个读取头,系统基于在不同情节时间步处针对读取头从外部存储器读取数据的强度,将某些情节时间步的子集标识为拼接时间步。

特别地,如上所述,当使用读取头读取数据时,系统生成读取强度参数,该读取强度参数限定在时间步处以怎样的强度来读取外部存储器。

通常,系统能够将其中针对读取头的读取强度参数超过阈值的一个或多个时间步标识为该读取头的拼接时间步。作为特定示例,系统能够标识其中针对读取头的读取强度参数超过阈值的每个(一个或多个)连续时间步的窗口,然后将该窗口中的其中针对读取头的读取强度参数最高的时间步标识为拼接时间步。即,在该特定示例中,系统仅选择每个连续时间步的窗口中的单个拼接时间步。

在一些实施方式中,为了避免将值传递到太接近任何给定时间步的时间步,在标识时间步的窗口之前,系统针对在其中在(i)和(ii)之间的差小于常数值的时间步将针对读取头的读取强度参数设置为零:(i)所述时间步的时间索引(即时间步的值t),(ii)当在该时间步处针对读取头从外部存储器读取时具有任何时间步中的最大权重的时间步的时间索引。换而言之,系统将在其中系统从在太接近当前时间步的时间步处所写入的数据的读取强度最高的任何时间步设置为零(旨在确定拼接时间步)。这样就能避免将在其中系统从在最近的时间步处写入存储器的数据的读取强度最高的时间步视为拼接时间步。

针对每个读取头和针对该读取头所标识的每个拼接时间步,系统标识在所述序列中在拼接时间步之前多于时间步阈值数目的一个或多个特定的较早时间步(504)。例如,阈值数目能够是时间步的半衰期值,其是常数值,并能够设置为例如1/(1-γ)。也就是说,针对每个拼接时间步,系统能够确定半衰期值,并将在序列中在拼接时间步之前多于半衰期值的每个时间步标识为特定时间步。

针对每个读取头和每个拼接时间步,系统根据在拼接时间步处通过使用从外部存储器读取的数据所生成的值预测,生成针对所标识的特定较早时间步的实际奖励的修改(步骤506)。

特别地,如上所述,当从外部存储器读取时,针对每个读取头和针对每个时间步,系统为在每个先前时间步处写入外部存储器的数据分配各自的权重,并根据相应的权重生成读取向量,该读取向量组合在每个先前时间步处写入外部存储器的数据。然而,通过使用在先前时间步(而非给定时间步)处从存储器读取的数据,来生成在给定时间步处的值预测。通过使用在给定时间步处从外部存储器读取的数据所生成的值预测则将是在给定时间步之后的时间步处的值预测,即不是在给定时间步处的值预测。

然而,在其他系统配置中,当计算在给定时间步处的值预测时,系统可以使用在给定时间步处从存储器读取的数据。在这些配置中,通过使用在给定时间步处从外部存储器中读取的数据所生成的值预测则将是在给定时间步处的值预测。

然后,系统根据(i)固定未来值折扣系数,(ii)针对读取头在拼接时间步处从外部存储器读取时分配给所标识的给定时间步的权重,以及(iii)通过使用在拼接时间步处从外部存储器读取的数据,来生成针对所识别的给定时间步的修改。例如,修改能够是(i)、(ii)和(iii)的乘积。

系统应用针对所述读取头的所述修改,以针对所标识的特定较早时间步生成所述修改奖励(508)。当仅通过单个修改(即,针对单个读取头)来修改给定的较早时间步时,系统能够通过将所述修改添加到在较早时间步处的实际奖励来应用所述修改。当通过多个修改来修改给定的较早时间步(即,针对多个不同的读取头)时,系统能够在给定的较早时间步处将所述修改作为独立的累加更改应用于所述实际奖励。

本说明书就系统和计算机程序组件使用了术语“被配置”。对于一个或多个计算机的系统而言,被配置为执行特定操作或动作意为:系统具有其上所安装的软件、固件、硬件或它们的组合,其在运行时使所述系统执行所述操作或动作。对于一个或多个计算机程序而言,被配置为执行特定操作或动作意为:一个或多个程序包括指令,所述指令当由数据处理设备执行时,使该设备执行所述操作或动作。在本说明书中所述的主题和功能操作的实施例能够在数字电子电路、有形体现的计算机软件或固件、包括本说明书所公开的结构及其结构等价物的计算机硬件或者其中一个或多个的组合中实施。本说明书中所描述的主题的实施例能够被实施为一个或多个计算机程序,即计算机程序指令的一个或多个模块,所述计算机程序指令被编码在用于由数字处理设备执行或控制其操作的有形非暂时性存储介质上。计算机存储介质能够是机器可读的存储装置、机器可读的存储基质、随机或串行存取存储器装置、或者它们中的一个或多个的组合。替选地或另外地,程序指令能够被编码在人工生成的传播信号上,例如编码在机器生成的电、光、或电磁信号上,所述传播信号被生成以编码信息,所述信息用于传输到合适的接收器设备以供数据处理设备执行。

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

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

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

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

本说明书所述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行运算并且生成输出来执行功能。所述过程和逻辑流还能够通过例如FPGA或ASIC的专用逻辑电路来执行,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。

适于执行计算机程序的计算机能够基于通用微处理器或专用微处理器或两者,或者任何其他种类的中央处理单元。通常,中央处理单元将接收来自只读存储器或随机存取存储器或者两者的指令和数据。计算机的元件是用于实行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器装置。中央处理单元和存储器能够由专用逻辑电路补充,或者被并入专用逻辑电路。一般地,计算机也会包括用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘,或者可操作地与之耦合以从其接收数据、向其传送数据或者两者兼具。然而,计算机不必具有这样的设备。而且,计算机能够被嵌入另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,仅举几例。

适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括:半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内置硬盘或可移动盘;磁光盘;以及CDROM盘和DVD-ROM盘。

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

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

能够使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架)来实施和部署机器学习模型。

本说明书所述主题的实施例能够在计算系统中实施,该计算系统包括后端组件,例如,作为数据服务器,或者该计算系统包括中间件组件,例如,应用服务器,或者该计算系统包括前端组件,例如,具有用户能够借以与本说明书所述主题的实施方式相交互的图形用户界面、web浏览器或App的客户端计算机,或者该计算系统包括这样的后端组件、中间件组件或前端组件的任意组合。系统的组件能够通过数字数据通信的任何形式或者媒介来互联,例如,通信网络。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,因特网。

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

虽然本说明书包含许多具体实施细节,但这些不应被解释为对任何发明范围或可能要求保护的内容的范围加以限制,而应被理解为可能针对特定发明的特定实施例的特征的描述。还能够将在本说明书中在分开的实施例的场境中描述的某些特征组合在单个实施例中实施。相反地,也能够将在单个实施例的场境中描述的各种特征分开地在多个实施例中实施或在任何合适的子组合中实施。此外,尽管可能在上面将特征描述为在某些组合中进行动作,甚至最初如此要求保护,但是能够在一些情况下将来自所要求保护的组合的一个或多个特征从所述组合中删去,并且可以将所要求保护的组合指向子组合或者子组合的变型。

类似地,虽然在附图和权利要求中以特定顺序描绘和说明了操作,但是不应当将这理解为需要以所示的特定顺序或者以顺序的次序来执行这样的操作、或者需要执行所有示出的操作,以达到期望的结果。在某些情况下,多任务以及并行处理可以是有利的。此外,不应当将在上述实施例中的各种系统组件的分开理解为在所有实施例中均需要这样的分开,而应当理解的是,通常能够将所描述的程序组件和系统一起集成在单个软件产品中或封装为多个软件产品。

本文描述了所述主题的特定实施例。其他实施例落入所附权利要求的范围内。例如,能够以不同的次序来执行权利要求中记载的动作并且仍达成期望的结果。作为一个示例,附图中描绘的过程并非必然要求所示的特定次序或顺序次序来达成期望的结果。在一些情况下,多任务和并行处理可以是有利的。

权利要求如下:

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号