使用学习的隐藏状态规划作用因素控制的制作方法

专利2023-02-03  151


使用学习的隐藏状态规划作用因素控制
1.相关申请的交叉引用
2.本技术根据35u.s.c.
§
119(a)要求于2020年1月28日向希腊专利局提交的希腊专利申请no.20200100037的申请日的优先权。前述申请的公开内容通过引用整体结合于此。


背景技术:

3.本说明书涉及强化学习。
4.在强化学习系统中,作用因素(agent)通过执行由强化学习系统响应于接收到表征环境的当前状态的观察(observation)而选择的动作来与环境交互。
5.一些强化学习系统根据神经网络的输出,响应于接收到给定的观察来选择要由作用因素执行的动作。
6.神经网络是采用一层或多层非线性单元来预测针对接收到的输入的输出的机器学习模型。一些神经网络是除了输出层之外还包括一个或多个隐藏层的深度神经网络。每个隐藏层的输出被用作网络中下一个层(即下一个隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。


技术实现要素:

7.本说明书描述了一种强化学习系统,该强化学习系统通过在多个时间步长(time step)中的每个步长处处理表征环境在该时间步长处的当前状态的数据(即“观察”)从动作集中选择要由作用因素执行的动作,来控制作用因素与环境交互。
8.在每个时间步长处,环境在该时间步长处的状态取决于环境在先前时间步长处的状态和作用因素在先前时间步长处执行的动作。
9.一般地,系统接收当前观察并执行多次规划迭代。然后,系统基于规划迭代的结果、响应于当前观察选择要执行的动作。在每次规划迭代中,系统生成从由当前观察表示的状态开始将环境推进(progress)到新状态的动作序列。与传统系统不同,该系统不使用环境的模拟器来执行规划迭代,即,不使用环境的模拟器来确定作为在给定状态下执行给定动作的结果、环境将转换到哪个状态。相反,该系统使用(i)学习的动力学模型,其被配置为接收a)与输入环境状态相对应的隐藏状态和b)来自动作集的输入动作作为输入,并且至少生成与预测的下一环境状态相对应的隐藏状态作为输出,如果作用因素在环境处于输入环境状态时执行了该输入动作,则环境将转换到该预测的下一环境状态;以及(ii)预测模型,其被配置为接收与预测的下一环境状态相对应的隐藏状态作为输入,并且生成a)定义动作集上的分数分布的预测的策略输出,以及b)表示环境处于用于执行任务的预测的下一环境状态的值的值输出作为输出。每个隐藏状态都是观察的低维表示。因此,系统仅使用这些隐藏状态来执行规划,而从来不需要重构环境的完整状态或者甚至是表征状态的完整观察。
10.一般地,本说明书中描述的主题的一个创新方面可以体现在用于从动作集中选择要由与环境交互的作用因素执行的动作以使作用因素执行任务的方法中,该方法包括:接收表征环境的当前环境状态的当前观察;执行多次规划迭代以生成规划数据,该规划数据
指示执行作用因素的任务的相应值,该作用因素执行环境中的动作集中的多个动作中的每个动作并从当前环境状态开始,其中执行每次规划迭代包括:通过遍历环境的状态树、选择从当前环境状态开始的要由作用因素执行的动作序列,环境的状态树具有表示环境的环境状态的节点和表示可以由作用因素执行的使环境转换状态的动作的边,并且其中遍历状态树包括:使用状态树中的边的统计,从表示当前环境状态的状态树的根节点开始遍历状态树,直到到达状态树中的叶节点为止;使用预测模型来处理与由叶节点表示的环境状态相对应的隐藏状态,该预测模型被配置为接收隐藏状态作为输入,并且至少生成预测的策略输出作为输出,该预测的策略输出定义了动作集上的分数分布;采样动作集的真子集;对于每个采样的动作,通过向状态树添加叶节点的表示采样的动作的相应出边来更新状态树;以及对于每个采样的动作,通过将表示采样的动作的相应出边与从预测的策略输出导出的采样的动作的先验概率相关联来更新统计;以及使用规划数据响应于当前观察选择要由作用因素执行的动作。
11.采样动作集的真子集可以包括:根据分数分布生成定义采样分布的数据;以及根据采样分布采样固定数量的样本。生成采样分布可以包括用温度参数调制分数分布。当叶节点与根节点相同时,生成采样分布可以包括向分数分布添加噪声。该方法还可以包括通过对分数分布中动作的分数应用校正因子来生成采样的动作的相应先验概率。校正因子可以基于(i)在固定数量的样本中采样的动作被采样的次数和(ii)分配给采样分布中的采样的动作的分数。校正因子可以等于(i)采样的动作被采样的次数与固定数量的样本的比率和(ii)分配给采样分布中的采样的动作的分数的比率。规划数据可以包括根节点的每个出边的相应访问计数,该访问计数表示在多次规划迭代期间选择对应的动作的次数,并且其中响应于当前观察选择要由作用因素执行的动作可以包括使用相应访问计数选择动作。
12.该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,每个都被配置为执行方法的动作。一个或多个计算机的系统可以被配置为通过安装在系统上的软件、固件、硬件或其任意组合来执行特定的操作或动作,这些软件、固件、硬件或其任意组合在操作中可以使系统执行动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定的操作或动作,当由数据处理装置执行时,该指令使得装置执行动作。
13.可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
14.本说明书描述了当在完美的或非常高质量的模拟器不可用的环境中控制作用因素时,有效地执行规划以选择要由作用因素执行的动作。特别地,基于树的规划方法在具有挑战性的领域中获得了成功,在这些领域中,模拟环境转换的完美模拟器是可用的。然而,在真实世界问题中,支配环境的动力学通常是复杂且未知的,并且规划方法至今为止未能产生相同的性能增益。所描述的技术使用与mdp规划算法相组合的学习模型,例如,具有经学习模型的基于树的搜索,以在一系列具有挑战性且视觉上复杂的领域中实现高质量的性能,而无需了解它们的基础动力学。所描述的技术学习一种模型,当应用了迭代时,该模型预测与规划最直接相关的量:行动选择策略、值函数,以及相关时的奖励,从而允许在传统规划技术未能显示出显著改进的各种领域上实现优异的结果。
15.所描述的规划技术容易适用于控制作用因素执行多种复杂的任务,例如机器人任
务,其需要从大的离散动作空间、连续动作空间或混合动作空间(即,一些子动作是离散的,并且其他子动作是连续的)中选择动作。当动作空间很大或是连续的时,使用基于树的搜索遍历环境的不同状态可能是不可行的。通过重复地采样动作的子集,并且仅使用采样的动作来扩展在基于树的搜索期间维护的状态树,即,不使用整个动作空间中的每一个可能动作,所描述的规划技术的适用性可以扩展到这些复杂的任务中,而不会显著增加规划过程的计算开销。因此,所描述的技术可以用于控制具有大的离散动作空间连续动作空间或混合动作空间的任务的作用因素,带来减少的等待时间和减少的计算资源消耗,同时仍然保持有效的性能。
16.本说明书还描述了用于训练模型的技术,该模型用于以样本高效的方式选择动作。离线强化学习训练长期以来一直是一种有效的算法,因为用于选择动作的模型可以在不需要控制作用因素与真实环境进行交互的情况下进行训练。然而,在具有复杂动力学的环境中,例如,在由机器人或其他机械作用因素交互的真实世界环境中,由动力学模型或预测模型或两者做出的预测将容易出错并在学习过程中引入偏差。这通常导致使用动力学模型或预测模型或两者的现有方法在离线训练时(即,在无法与环境交互的情况下)无法学习高性能策略。
17.然而,所描述的技术考虑了这些模型中的偏差和不确定性,以允许以更高的样本效率学习有效的策略,即使对于非常复杂的任务。具体地,通过采用重新分析技术,针对系统已经维护的离线训练数据,基于根据系统离线训练期间最近更新的模型参数值生成的模型输出,来迭代地重新计算新的目标策略输出和新的目标值输出,所描述的技术可以考虑动力学模型不确定性、预测模型偏差或两者,同时仍然减少学习有效动作选择策略所需的来自环境的实际轨迹的数量。这在作用因素是与真实世界环境交互的机器人或其他机械作用因素的情况下尤其有利,因为从环境中收集实际样本增加了对作用因素的磨损,增加了作用因素机械故障的几率,并且非常耗时。
18.这样,所公开的技术可以提高在选择要由作用因素执行的动作时使用的模型的训练速度,并减少有效训练这些模型所需的训练数据量。因此,可以减少训练模型所需的计算资源量。例如,可以减少存储训练数据所需的存储量,可以减少训练过程所使用的处理资源量,或者两者兼有。
19.在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得清楚。
附图说明
20.图1示出了示例强化学习系统。
21.图2是用于选择要由与环境交互的作用因素执行的动作的示例过程的流程图。
22.图3a是执行一次规划迭代以生成规划数据的示例图。
23.图3b是基于生成的规划数据选择要由作用因素执行的动作的示例图。
24.图4是用于选择要由与环境交互的作用因素执行的动作的另一个示例过程的流程图。
25.图5是用于训练强化学习系统的示例过程的流程图。
26.图6是训练强化学习系统的示例图。
27.图7是用于重新分析强化学习系统的示例过程的流程图。
28.不同附图中相同的附图标记和名称表示相同的元素。
具体实施方式
29.本说明书描述了一种强化学习系统,该强化学习系统通过在多个时间步长的每个步长处处理表征环境在该时间步长处的当前状态的数据(即“观察”)从动作集中选择要由作用因素执行的动作,来控制作用因素与环境交互。
30.图1示出了示例强化学习系统100。强化学习系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现了下面描述的系统、组件和技术。
31.强化学习系统100在多个时间步长中的每个时间步长处选择要由与环境102交互的作用因素108执行的动作110。在每个时间步长处,环境102在该时间步长处的状态取决于环境在先前时间步长处的状态和作用因素在先前时间步长处执行的动作。为了使作用因素108与环境102交互,系统100接收表征环境102的当前状态的当前观察104,并且使用规划引擎120来执行多次规划迭代以生成规划数据122。规划数据122可以包括指示执行作用因素108的任务(例如,与奖励106相关)的相应值的数据,该作用因素108执行环境102中的可能动作集中的每个动作并且从当前状态开始。具体地,在每次规划迭代中,系统100生成从由当前观察104表示的状态开始将环境102推进到新的、预测的(即,假设的)未来状态的动作序列。以这种方式生成规划数据122允许系统100通过首先(即,在规划期间)遍历环境从由当前观察104表示的状态开始的可能未来状态,来响应于当前观察104有效地选择要由作用因素执行的实际动作。
32.在一些实现方式中,系统100可以通过执行由规划引擎120的输出指导的前瞻搜索(look ahead search)来生成规划数据122。将在下面进一步描述规划引擎120的组件及其输出的细节。例如,前瞻搜索可以是树搜索,例如蒙特卡罗树搜索,其中状态树包括表示环境102的状态的节点和连接树中节点的有向边。从树中的第一节点到第二节点的出边表示响应于表征第一状态的观察而执行并导致环境转换到第二状态的动作。
33.在这样的实现方式中,规划数据122可以包括一些或所有的节点-边(即,状态-动作)对中的每个节点-边对的统计数据,该统计数据已经被编译为重复运行规划引擎120以从表示环境的当前状态的节点开始生成不同输出的结果。例如,对于状态树的根节点的每个出边,规划数据122可以包括(i)由边表示的动作的动作分数q,(ii)由边表示的动作的访问计数n,其表示在多次规划迭代期间选择动作的次数,以及(iii)由边表示的动作的先验概率p。在规划期间,状态树的根节点对应于由当前观察104表征的状态。
34.对于表示环境的给定状态的任何给定节点,动作的动作分数q表示如果响应于表征给定状态的观察而执行了动作,则将被接收到的返回(return)的当前估计。返回是指由作用因素接收到的“奖励”106的累积度量,例如,奖励的时间折扣(time-discounted)总和。作用因素108可以在每个时间步长处接收相应的奖励106,其中奖励106由标量数值指定并且表征例如作用因素108朝向完成分配的任务的进度。动作的访问计数n是作用因素108响应表征给定状态的观察已经执行了动作的当前次数。并且先验概率p表示该动作是响应于表征给定状态的观察而应该执行的动作的可能性,即,相对于可以响应于观察而执行的所
有其他动作,将最大化接收到的返回的动作。
35.系统100可以在系统100可访问的存储器设备中维护规划数据122。尽管在逻辑上被描述为树,但是通过使用规划引擎120生成的规划数据122可以由各种方面的数据结构中的任何一种(例如,如多个三元组或邻接表)来表示。
36.在每次规划迭代中,系统100可以通过重复地(即,在多个规划步长中的每个步长处)根据从对应于根节点开始的对应的节点-边对的经编译统计选择动作a来生成动作序列,例如,通过在置信上限上最大化:
[0037][0038]
其中c1和c2是用于控制先验概率p相对于动作分数q的影响的可调超参数。
[0039]
包括动作选择、状态树扩展和统计更新算法的示例前瞻搜索算法在simonyan等人于2018年5月28日提交并于2020年5月7日公布的题为“training action selection neural networks using look-ahead search”的美国专利公布20200143239中有更详细的描述,该美国专利公布通过引用并入本文,并且在silver等人在自然期刊(nature),550:354

359,2017年10月上发表的非专利文献“mastering the game of go without human knowledge”以及kocsis等人在欧洲机器学习会议,282-293页,斯普林格(springer),2006年上发表的“bandit based monte-carlo planning”中有更详细的描述。
[0040]
在规划之后,系统100基于规划迭代的结果(即基于规划数据122),响应于接收到的当前观察104,继续选择要由作用因素108执行的实际动作110。特别地,在这些实现方式中,规划数据122可以包括在为状态树的根节点(即,对应于由当前观察104表征的状态的节点)的每个出边进行规划期间已经被编译的统计数据,并且系统100可以基于与根节点相对应的节点-边对的统计数据来选择实际动作110。
[0041]
例如,系统100可以做出与状态树的根节点的每个出边的访问计数成比例的选择。也就是说,当环境102处于由当前观察104表征的状态时,规划期间所有可能动作的集合中最经常选择的动作(即,与具有规划数据中最高访问计数的根节点的出边相对应的动作)可以被选择为响应于当前观察要由作用因素执行的实际动作110。附加地或可替代地,对于状态树的根节点的每个出边,系统100可以将访问计数映射到概率分布,例如经验概率(或相对频率)分布,然后根据为根节点的出边确定的相应概率分布对动作进行采样。例如,概率分布可以为每个出边分配概率,该概率等于(i)该边的访问计数与(ii)根节点的所有出边的总访问计数之比、或者可以是将噪声添加到出边的比率中的有噪经验分布。采样的动作然后可以用作响应于当前观察要由作用因素执行的实际动作110。
[0042]
作为另一个示例,系统100可以通过从规划数据中的动作序列中确定具有最大关联值的动作序列,然后选择确定的动作序列中的第一个动作作为响应于当前观察104要由作用因素执行的实际动作110,来做出该选择。
[0043]
通常,为了选择实际动作110,系统100将首先通过使用可以由作用因素102执行的可能动作集中的每个动作来遍历环境的可能未来状态。当动作空间是连续的,即单个动作中的所有动作值都选自可能值的连续范围、或者是混合的,即单个动作中的一个或多个动作值选自可能值的连续范围时,这是不可行的。当动作空间是离散的但是包括大量动作时,
这不是计算高效的,并且消耗大量计算资源来选择单个动作,因为这可能需要通过使用规划引擎120进行大量规划迭代。
[0044]
相反,规划引擎120可以使用动作采样引擎160来减少在规划期间需要评估的动作的数量,同时仍然允许对作用因素102的准确控制,即,响应于任何给定的观察104来选择高质量动作110。
[0045]
具体地,规划引擎120使用动作采样引擎160来选择可能动作集中的动作的真子集,并且通过仅使用该真子集中的动作来执行规划,将在下面对此进行进一步描述。真子集中动作的数量一般比可能动作集中动作的总数少得多。例如,即使当动作空间包括5^21数量级的可能动作时,系统仍然可以基于通过仅使用包括在可能动作的真子集内的20个动作而生成的规划数据122来准确地控制作用因素。这可以允许系统100以减少的等待时间来控制作用因素102,同时比传统方法消耗更少的计算资源。
[0046]
更详细地,规划引擎120包括表示模型130、动力学模型140、预测模型150,并且在一些情况下,包括动作采样引擎160。
[0047]
表示模型130是将通常包括高维传感器数据(例如,图像或视频数据)的观察104映射到较低维表示数据的机器学习模型。表示模型130可以被配置为接收至少包括当前观察104的表示模型输入,并且生成与环境102的当前状态相对应的隐藏状态作为输出。
[0048]
如贯穿本文档所使用的,与环境102的当前状态相对应的“隐藏状态”是指作为数值的有序集合(例如,数值的向量或矩阵)的环境102的表征,并且一般具有比观察104本身更低的维度、更简单的模态或两者兼有。在各种实现方式中,与环境102的当前状态相对应的每个隐藏状态可以包括关于当前环境状态的信息,并且可选地,包括关于环境在当前状态之前转换到的一个或多个先前状态的信息。
[0049]
动力学模型140是在给定时间步长处的给定信息下,能够对给定时间步长之后的至少一个未来时间步长做出预测的机器学习模型。
[0050]
动力学模型140可以被配置为接收a)与输入环境状态相对应的隐藏状态和b)从可能动作集中指定输入动作的数据作为输入,并且生成a)与预测的下一环境状态相对应的隐藏状态以及在一些情况下b)指定预测即时奖励值的数据作为输出,其中,如果作用因素在环境处于输入环境状态时执行了输入动作,则环境将转换到该预测的下一状态,并且该预测即时奖励值表示如果作用因素在环境处于输入环境状态时执行了输入动作将接收到的即时奖励。例如,当环境处于输入环境状态时,作为执行输入动作的结果,即时奖励值可以是表示完成任务的进度的数值。
[0051]
预测模型150是被配置为预测与规划最直接相关的量(动作选择策略、值函数,以及相关时的奖励)的机器学习模型。预测模型150可以被配置为接收与给定环境状态相对应的隐藏状态作为输入,并且生成a)可以用于确定要由作用因素在给定环境状态下执行的预测的下一动作的预测的策略输出,以及b)表示环境处于用于执行任务的给定环境状态的值的值输出作为输出。
[0052]
在一个示例中,预测的策略输出可以定义可以由作用因素执行的可能动作集上的分数分布,例如,可以包括该可能动作集中每个动作的相应数字概率值。如果用于控制作用因素,则系统100可以选择要由作用因素执行的动作,例如,通过根据动作的概率值对动作进行采样、或者通过选择具有最高概率值的动作。
[0053]
在另一个示例中,当环境处于给定的环境状态时,值输出可以指定表示作用因素完成一个或多个目标的总体进度的数值。
[0054]
表示模型、动力学模型和预测模型可以各自被实现为具有任何适当的、使其能够执行其所描述功能的神经网络架构的相应神经网络。在一个示例中,当观察是图像时,表示模型和动力学模型可以各自被实现为具有残差连接的相应卷积神经网络,例如由残差块的堆叠构成的神经网络,每个残差块除了一个或多个归一化层或激活层之外还包括一个或多个卷积层。在另一个示例中,预测模型150可以被实现为包括输入层(其接收隐藏状态输入),其后是一个或多个卷积层或者一个或多个全连接层,以及输出层(其输出分数分布)的神经网络。
[0055]
表示模型、动力学模型和预测模型可以具有的神经网络架构的其他示例包括图形神经网络、多层感知器神经网络、循环神经网络和自注意力神经网络。
[0056]
在高层,动作采样引擎160包括被配置为接收预测模型150的预测的策略输出作为输入并处理该输入以生成定义采样分布的输出数据的软件。
[0057]
采样分布可以是可以由作用因素执行的一些或所有的可能动作上的分布,例如,可以包括整个可能动作集中多个动作中的每个动作的相应数字概率值。采样分布可以但不必与在预测模型150的预测的策略输出中定义的分数分布相同。
[0058]
在一些情况下,动作采样引擎160可以通过用温度参数τ来调制由预测的策略输出定义的分数分布来生成采样分布。例如,温度参数τ可以是任何正值(大于一的值支持(encourage)更多不同的样本),并且采样分布可以以p
1/τ
的形式来生成,其中p是从预测的策略输出中导出的先验概率。
[0059]
在一些情况下,例如,在每次规划迭代的开始,即,当叶节点与根节点相同时,动作采样引擎160可以另外将诸如狄利克雷噪声的探索噪声添加到由预测的策略输出定义的分数分布,以促进动作探索。
[0060]
当在规划期间使用时,规划引擎120然后根据采样分布采样固定数量的动作,以生成将在规划中使用的动作的真子集,以将环境推进到不同的未来状态。
[0061]
在一些实现方式中,环境102是真实世界环境,并且作用因素108是与真实世界环境交互的机械作用因素,例如,在环境中导航的机器人或自主或半自主陆地、空中或海上交通工具。
[0062]
在这些实现方式中,观察104可以包括例如图像、对象位置数据和传感器数据中的一个或多个,例如来自图像、距离或位置传感器或来自致动器的传感器数据,以如作用因素在与环境交互时捕获观察。
[0063]
例如,在机器人的情况下,观察104可以包括表征机器人当前状态的数据,例如以下中的一个或多个:关节位置、关节速度、关节力、扭矩或加速度,例如重力补偿的扭矩反馈以及机器人所持物品的全局或相对姿态。
[0064]
在机器人或其他机械作用因素或交通工具的情况下,观察可以类似地包括作用因素的一个或多个部分的位置、线速度或角速度、力、扭矩或加速度以及全局或相对姿态中的一个或多个。观察可以以1、2或3维来定义,并且可以是绝对和/或相对观察。
[0065]
观察104还可以包括例如感测到的电子信号,诸如马达电流或温度信号;和/或例如来自相机或lidar传感器的图像或视频数据,例如来自作用因素的传感器的数据或来自
与环境中的作用因素分离放置的传感器的数据。
[0066]
在电子作用因素的情况下,环境102可以是数据压缩环境、数据解压缩环境或两者。作用因素108可以被配置为接收输入数据(例如,图像数据、音频数据、视频数据、文本数据或任何其他适当种类的数据)作为观察104,并且选择和执行动作序列110(例如,数据编码或压缩动作),以生成输入数据的压缩表示。作用因素108可以类似地被配置为处理经压缩的数据以生成输入数据的(近似或精确)重构。
[0067]
在电子作用因素的情况下,观察104可以包括来自一个或多个传感器的数据,这些传感器监视工厂或服务设施的一部分,诸如电流、电压、功率、温度以及表示仪器的电子项目和/或机械项目的功能的其他传感器和/或电子信号。
[0068]
在这些实现方式中,动作110可以是控制机器人的控制输入,例如机器人的关节的扭矩或更高级别控制命令或者控制自主或半自主陆地、空中、海上交通工具的控制输入,例如对交通工具的控制表面或其他控制元件的扭矩或更高级别控制命令。
[0069]
换句话说,动作110可以包括例如机器人的一个或多个关节或另外的机械作用因素的部分的位置、速度或力/扭矩/加速度数据。动作数据可以附加地或可替代地包括电子控制数据,诸如马达控制数据、或者更一般地,用于控制环境内的一个或多个电子设备的数据,对这些电子设备的控制对观察到的环境状态有影响。例如,在自主或半自主陆地或空中或海上交通工具的情况下,动作可以包括控制导航(例如转向)和移动(例如交通工具的制动和/或加速)的动作。
[0070]
在电子作用因素的情况下,观察104可以包括来自一个或多个传感器的数据,这些传感器监视工厂或服务设施的一部分,诸如电流、电压、功率、温度以及表示仪器的电子项目和/或机械项目的功能的其他传感器和/或电子信号。例如,真实世界环境可以是制造工厂或服务设施,观察可以涉及工厂或设施的操作,例如涉及诸如功耗的资源使用,并且作用因素可以控制工厂/设施中的动作或操作,例如减少资源使用。在一些其他实现方式中,真实世界环境可以是可再生能源工厂,观察可以涉及工厂的操作,例如最大化当前或未来规划的发电,并且作用因素可以控制工厂中的动作或操作以实现这一点。
[0071]
在一些其他应用中,作用因素可以控制真实世界环境(包括例如数据中心、电力/水分配系统或者制造工厂或服务设施中的仪器的项目)中的动作。然后,观察可以与工厂或设施的操作相关。例如,观察可以包括仪器对电力或水使用的观察、或发电控制或配电控制的观察或者资源使用或废物产生的观察。动作可以包括对工厂/设施的仪器的项目控制或施加操作条件的动作和/或导致工厂/设施的操作中的设置改变的动作,例如调整或打开/关闭工厂/设施的组件。
[0072]
作为另一个示例,环境102可以是化学合成或蛋白质折叠环境,使得每个状态是蛋白质链或一个或多个中间体或前体化学物的相应状态,并且作用因素是用于确定如何折叠蛋白质链或合成化学物的计算机系统。在这个示例中,动作是用于折叠蛋白质链的可能折叠动作或用于组装前体化学物/中间体的动作,并且要实现的结果可以包括,例如,折叠蛋白质,使得蛋白质是稳定的并且使得其实现特定的生物功能或者为该化学物提供有效的合成路线。作为另一个示例,作用因素可以是执行或控制由系统自动选择的蛋白质折叠动作或化学合成步骤而无需人类交互的机械作用因素。观察可以包括对蛋白质或化学物/中间体/前体的状态的直接或间接观察和/或是可以从模拟中导出的。
[0073]
作为另一个示例,环境102可以是在线平台,诸如下一代虚拟助理平台、个性化医疗平台或搜救平台,其中观察104可以是来自平台的用户的数字输入的形式(例如搜索查询),并且可能动作集可以包括响应于用户输入而呈现的候选内容项,例如推荐、警报或其他通知。
[0074]
在一些实现方式中,环境102可以是模拟的环境,并且作用因素被实现为与模拟的环境交互的一个或多个计算机。
[0075]
模拟的环境可以是运动模拟环境,例如驾驶模拟或飞行模拟,并且作用因素可以是在运动模拟中导航的模拟的车辆。在这些实现方式中,动作可以是控制模拟的用户或模拟的车辆的控制输入。
[0076]
在一些实现方式中,模拟的环境可以是特定真实世界环境的模拟。例如,系统可以用于在控制神经网络的训练或评估期间选择模拟的环境中的动作,并且在训练或评估或者两者都完成之后,可以被部署用于控制由模拟的环境模拟的真实世界环境中的真实世界作用因素。这可以避免对真实世界环境或真实世界作用因素的不必要的磨损,并且可以允许控制神经网络在真实世界环境中很少发生或难以再现的情况下被训练和评估。
[0077]
一般地,在模拟的环境的情况下,观察可以包括一个或多个先前描述的观察或观察类型的模拟版本,并且动作可以包括一个或多个先前描述的动作或动作类型的模拟版本。
[0078]
在一些其他应用中,作用因素可以控制包括仪器的项目的真实世界环境(例如在工业设施中,例如数据中心、电力/水分配系统、制造工厂或服务设施,或者商业或住宅建筑)中的动作。然后,观察可以与设施或建筑物的操作相关。例如,观察可以包括仪器对电力或水使用的观察、或发电控制或配电控制的观察或者资源使用或废物产生的观察。动作可以包括对设施或建筑物的仪器的项目控制或施加操作条件的动作和/或导致设施或建筑物的操作中的设置改变的动作,例如调整或打开/关闭设施或建筑物的组件。例如,组件可以是控制建筑物或设施的加热和/或冷却的组件。
[0079]
在一些进一步的应用中,环境是真实世界的环境,并且作用因素管理例如在移动设备上和/或在数据中心中的跨计算资源的任务分配。在这些实现方式中,动作可以包括将任务分配给特定的计算资源,例如,在移动设备上或者在一个或多个数据中心中的计算机上调度工作负载。
[0080]
在一些上面的实现方式中,在每个时间步长处,系统100基于环境102的当前状态和作用因素108在该时间步长处的动作110来接收奖励106。例如,系统100可以基于作用因素108完成一个或多个目标的进度来接收对给定时间步长的奖励106。例如,作用因素的目标可以是导航到环境102中的目标位置。
[0081]
一般地,训练引擎116训练包括在规划引擎120中的模型以生成规划数据122,当与环境102交互时,作用因素108可以从该规划数据122中有效地选择最大化由系统100接收到的预计累积奖励的动作110,例如由系统100接收到的奖励的长期时间折扣总和。
[0082]
具体地,训练引擎116训练预测模型150以生成a)预测的策略输出,从该预测的策略输出可以确定与根据给定的前瞻搜索策略选择的动作相似的动作,以及b)表示与使用给定策略确定或导出的目标值相匹配的环境值的值输出。例如,给定的前瞻搜索策略可以是基于树的搜索策略,例如蒙特卡罗树搜索策略,其适于遍历环境的可能未来状态。训练引擎
116另外训练动力学模型140以生成与作用因素响应于执行不同的动作而将接收到的实际奖励相匹配的预测即时奖励值。
[0083]
训练引擎116可以通过使用适当的训练技术(例如,通过随时间反向传播(backpropagation-through-time)的端到端技术)以联合地和迭代地调整表示模型130、动力学模型140和预测模型150的参数集168的值来做到这一点,如下面参考图4-图5更详细描述的。
[0084]
通过根据前述训练目标执行训练,例如通过优化目标函数,表示模型130不被约束或要求,即,通过训练,输出捕获重构原始观察所必需的所有信息的隐藏状态,该目标函数除了一个或多个可选的正则化项之外,仅评估分别与预测的策略输出、值输出和预测即时奖励值相对应的总共三个误差项。表示模型130不被约束或要求为输出与未知的实际环境状态相匹配的隐藏状态。并且表示模型130不被约束或要求为通过隐藏状态来对环境的语义进行建模。相反,可以例如通过目标函数的计算的梯度的反向传播来训练表示模型130,以输出以与生成当前和未来值以及策略输出相关的任何方式表征环境状态的隐藏状态。这不仅极大地减少了系统100需要维护和预测的信息量,从而节省了计算资源(例如,存储器和计算能力),而且这也有助于学习定制的(例如,任务、作用因素或环境特定的)、可以获得最准确的规划的规则或动态。
[0085]
在一些实现方式中,训练引擎116根据存储在重放存储器114中的最近经验(即,包括观察、动作以及可选的对先前时间步长的奖励的轨迹)来训练包括在规划引擎120中的模型。一般地,轨迹可以从经验信息中导出,该经验信息是作为作用因素或另外的作用因素与环境或另外的环境实例的交互的结果而生成的,以用于训练模型。每个轨迹表示关于作用因素与环境的交互的信息。
[0086]
在一些实现方式中,系统100可以控制在重放存储器114处维护的轨迹数据的组成,例如通过维护重放存储器中轨迹数据的一部分(例如80%、70%或60%)作为新的轨迹数据,并且剩余部分(例如其他20%、30%或40%)作为旧的轨迹数据,例如在系统的训练开始之前已经生成的数据或已经在模型的训练中使用的数据。新的轨迹数据是指通过基于使用规划引擎120根据规划引擎120中包括的模型的最近参数值选择动作108来控制作用因素108与环境102交互而生成的经验,该最近参数值已经被确定为正在进行的训练的结果并且还没有被用于训练模型。然后,系统可以在重放存储器114中的新数据和旧数据上训练模型。在旧数据上的训练被称为重新分析旧数据,并且在下面参考图7进行描述。
[0087]
在一些情况下,可以要求系统以数据高效的方式训练模型,即,以最小化需要通过作用因素与环境的交互而生成的训练数据量的方式。这可以减少训练所消耗的计算资源量,并且当作用因素是真实世界作用因素时,可以减少在训练期间由于与环境进行交互而导致的对机械作用因素的磨损。一般地,系统可以通过增加用于训练的旧数据与新数据的比例来实现这种数据效率。
[0088]
在其他实现方式中,代替或除了已经作为作用因素与环境交互的结果而生成的“旧”数据之外,系统可以访问作为与另一个“专家”作用因素与环境交互的结果而生成的演示数据。专家作用因素可以是已经被训练为执行任务的作用因素、或者可以是由人类用户控制的作用因素。系统还可以将该演示数据(代替或除了作为作用因素进行交互而生成的“旧”数据之外)作为“旧”数据添加到重放存储器中。
[0089]
在其他实现方式中,当作用因素(或另外的作用因素)被不同的策略控制时,系统只能访问先前已经生成的轨迹数据,并且必须离线训练机器学习模型,即,不能控制作用因素与环境交互以生成新的训练数据。在这些实现方式中,系统可以对该轨迹数据使用上文和下文参考图7描述的重新分析技术,即,通过将旧数据(轨迹数据)的部分设置为1并将新数据设置为0。在一些情况下,在系统已经训练模型以在先前生成的轨迹数据上获得合理的性能之后,系统可能能够使用该模型来使作用因素与环境交互。在这些情况下,在模型被授予访问权之后,系统可以回复到仅基于新数据或者基于新数据和轨迹数据的混合来训练模型,以便“微调”模型的性能。
[0090]
图2是用于选择要由与环境交互的作用因素执行的动作以使作用因素执行任务的示例过程200的流程图。为了方便,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的强化学习系统(例如图1的强化学习系统100)可以执行过程200。
[0091]
一般地,当控制作用因素实际与环境交互时,系统可以在每一次环境转换到新状态(以下被称为“当前”状态)时执行过程200的迭代,以便响应于新环境状态从要由作用因素执行的可能动作集中选择新动作。
[0092]
系统接收表征环境的当前环境状态的当前观察(例如,图像或视频帧)(202)。
[0093]
系统使用表示模型并根据表示模型参数的训练值来处理包括当前观察的表示模型输入,以生成与环境的当前状态相对应的隐藏状态。隐藏状态是观察的紧凑表示,即具有比观察更低的维度。在一些实现方式中,表示模型输入仅包括当前观察。在一些其他实现方式中,表示模型输入还包括一个或多个先前的观察。
[0094]
然后,系统执行多次规划迭代以生成规划数据,该规划数据指示执行作用因素的任务的相应值,该作用因素执行环境中的动作集中的每个动作并且从当前环境状态开始。每次规划迭代一般涉及执行前瞻搜索,例如蒙特卡罗树搜索,以重复地(即,在每次规划迭代的多个规划步长中的每个步长处)根据状态树中对应的节点-边对的经编译统计来选择相应动作,如上面参考图1描述的。这允许系统从由当前观察表征的当前状态开始遍历环境的可能未来状态。
[0095]
更具体地,在每次规划迭代中,系统从状态树的根节点(其对应于在步骤202生成的隐藏状态)开始前瞻搜索,并且继续前瞻搜索,直到遇到满足终止标准的可能未来状态为止。例如,前瞻搜索可以是蒙特卡罗树搜索,并且标准可以是未来状态由状态树中的叶节点表示。然后,系统通过执行以下步骤204-206来扩展叶节点。简而言之,为了扩展叶节点,系统可以针对作为响应于由叶节点表示的叶环境状态(以下被称为“输入环境状态”)要由作用因素执行的可能(或有效)动作(以下被称为“输入动作”)的动作向状态树添加新边。例如,该动作可以是系统根据对应于状态树中叶节点的父节点的节点-边对的经编译统计而选择的动作。系统还通过将新边的访问计数和动作分数设置为零来初始化新边的统计数据。
[0096]
系统使用动力学模型并根据动力学模型参数的训练值来处理(204)a)与输入环境状态相对应的隐藏状态和b)从可能动作集中指定输入动作的数据,并且生成a)与预测的下一环境状态相对应的隐藏状态以及在一些情况下b)指定预测即时奖励值的数据作为输出,其中,如果作用因素在环境处于输入环境状态时执行了输入动作,则环境将转换到该预测
的下一环境状态,并且该预测即时奖励值表示如果作用因素在环境处于输入环境状态时执行了输入动作将接收到的即时奖励。例如,当环境处于输入环境状态时,作为执行输入动作的结果,即时奖励值可以是表示完成任务的进度的数值。
[0097]
系统使用预测模型并根据预测模型参数的训练值来处理(206)与预测的下一环境状态相对应的隐藏状态,并且生成a)定义可能动作集上的分数分布的预测的策略输出以及b)表示环境处于用于执行任务的预测的下一环境状态的值的值输出作为输出。
[0098]
作为规划迭代的最后一步,系统然后评估叶节点,并且基于模型输出更新搜索期间遍历的边的统计数据。系统可以使用由预测模型输出定义的分数分布中与新边相对应的分数作为新边的先验概率p。系统还可以根据预测模型网络输出的值来确定新边的动作分数q。
[0099]
对于在规划迭代期间遍历的每个边,系统可以将该边的访问计数n增加预定的常数值,例如增加一。系统还可以通过将动作分数q设置为等于涉及遍历边的所有搜索的预测值的新平均,使用叶节点的预测值来更新边的动作分数q。
[0100]
图3a是执行一次规划迭代以生成规划数据的示例图。该示例中的规划迭代包括三个动作的序列,得到在环境的当前状态之后的三个状态的预测展示(rollout)。
[0101]
如所描绘的,规划迭代从遍历状态树302开始,并且继续直到状态树到达叶状态(即,由状态树中的叶节点(例如,节点332)表示的状态)为止,随后使用动力学模型g和预测模型f来扩展叶节点并且评估新添加的边,如上面参考步骤204-206描述的,并且基于叶节点的预测返回更新搜索期间遍历的边的统计数据。当遍历状态树时,系统根据状态树对应的节点-边对的经编译统计来选择要遍历的边(其对应于已经在规划期间选择的动作序列a
1-a3)。
[0102]
值得注意,与传统系统不同,该系统不通过利用环境的模拟器来执行规划迭代,即,不使用环境的模拟器来确定作为在给定状态下执行给定动作的结果,环境将转换到哪个状态。具体地,该系统不尝试确定作为在给定状态下执行给定动作的结果,环境将转换到的状态的模拟的或预测的观察。相反,该系统基于动力学模型g的隐藏状态输出来执行规划迭代。
[0103]
例如,如图3a所示,当节点322是状态树在规划中的叶节点时,并且如果系统要扩展叶节点322,则系统可以通过(i)使用动力学模型g处理隐藏状态s2和指定动作a3的数据,以生成与预测的下一环境状态相对应的隐藏状态s3作为输出,并且在一些情况下,生成指定预测即时奖励值r3的数据,然后(ii)使用预测模型f处理由动力学模型g生成的隐藏状态s3,以生成预测的策略输出p3和值输出υ3作为输出。因此,系统可以仅使用这些隐藏状态(例如,隐藏状态s
1-s3,)来执行规划,而传统系统通常需要通过迭代地重构表征每个状态的完整观察(例如,具有与接收到的表征环境的当前环境状态的当前观察o0相同的格式或模态的观察)来执行规划。
[0104]
图3a的示例示出了从当前环境状态开始的总共三个预测的未来环境状态的展示,其中与相应环境状态相对应的每个隐藏状态与对应的预测的策略输出、预测值、预测即时奖励值以及使用实际动作选择策略选择的动作相关联。然而,与图3a中所示的相比,系统可以生成不同数量(例如,更大数量)的隐藏状态以及不同数量的预测的策略输出、预测值和预测即时奖励值。
[0105]
在如上所述执行多次规划迭代以生成规划数据之后,系统继续基于生成的规划数据,响应于当前观察从动作集中选择要由作用因素执行的动作(208)。具体地,规划数据可以包括已经在规划期间为状态树的根节点(即,对应于由当前观察表征的状态的节点)的一些或所有出边中的每个边编译的统计数据,并且系统可以基于与根节点相对应的节点-边对的统计数据来选择动作。
[0106]
在一些实现方式中,系统可以基于对应于可能动作的边的访问计数来做出这种选择,该可能动作可以响应于与由状态树的根节点表征的环境状态相对应的观察由作用因素来执行。在图3a的示例中,系统可以选择与状态树302的根节点312的每个出边的访问计数成比例的动作。
[0107]
在一些实现方式中,系统可以通过从规划数据中的动作序列中确定具有最大关联值输出的动作序列,然后选择确定的动作序列中的第一个动作作为响应于当前观察要由作用因素执行的动作,来做出这种选择。在图3a的示例中,系统可以选择a1作为要执行的动作,假设动作序列a
1-a3在多次规划迭代中生成的所有不同动作序列中具有最大关联值输出。
[0108]
图3b是基于生成的规划数据选择要由作用因素执行的动作的示例说明。如上所述,对于环境对应的状态的给定观察(例如观察值o
t
),动作(例如动作a
t+1
)是由系统选择的并且基于处理过程200的迭代。作用因素对所选动作的实际执行使环境进展到新状态,从该状态生成新观察(例如观察o
t+1
)以及对应的奖励(例如奖励u
t+1
)。对应地,过程200的另一次迭代可以由系统执行,以便选择响应于由新观察表征的新状态要由作用因素执行的新动作(例如动作a
t+2
)。
[0109]
图3b的示例示出了包括总共三个观察(o
t-o
t+2
)的轨迹,每个观察表征环境的相应状态。但是实际上,轨迹可以包括更多的观察,这些观察共同表征环境状态之间的更长的连续转换,并且因此可以在执行包括长回合(episode)任务的各种任务中的任何一个时捕获作用因素和环境之间的交互信息。以这种方式生成的观察、动作以及在一些情况下的奖励的每个轨迹可以可选地存储在系统的重放存储器中,该重放存储器稍后可以用于辅助系统的训练。
[0110]
以上描述描述了其中在评估任何给定叶节点时评估动作集中的每个有效动作的实现方式。然而,在一些其他实现方式中,动作集非常大或是连续的,使得评估每个动作是不可行的或计算量非常大。
[0111]
在这些实现方式中,除了前述的规划技术之外,系统还可以使用动作采样技术来选择要由作用因素执行的动作,如下面参考图4更详细描述的。
[0112]
图4是用于选择要由与环境交互的作用因素执行的动作的另一个示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的强化学习系统(例如图1的强化学习系统100)可以执行过程400。
[0113]
系统接收表征环境的当前环境状态的当前观察(例如,图像或视频帧)(402),并且通过使用表示模型来生成与环境的当前状态相对应的隐藏状态。
[0114]
然后,系统重复执行以下步骤404-412,以执行多次规划迭代,从而生成规划数据,该规划数据指示执行作用因素的任务的相应值,该作用因素执行环境中的动作集中的多个
动作中的每个动作并且从当前环境状态开始。如上所述类似地,这涉及通过遍历环境的状态树、选择从当前环境状态开始的要由作用因素执行的动作序列,其中环境的状态树具有表示环境的环境状态的节点和表示可以由作用因素执行的使环境转换状态的动作的边。
[0115]
在每次规划迭代中,系统使用状态树中节点-边对的统计,从表示当前环境状态的状态树的根节点开始遍历状态树,直到到达状态树中的叶节点为止(404)。一般地,叶节点是状态树中没有子节点的节点,即,不通过出边连接到任何其他节点。
[0116]
系统使用预测模型并根据预测模型参数的训练值来处理(406)与由叶节点表示的环境状态相对应的隐藏状态,并且生成a)定义动作集上的分数分布的预测的策略输出以及b)表示环境处于由叶节点表示的用于执行任务的状态的值的值输出作为输出。
[0117]
系统采样动作集的真子集(408)。系统可以通过根据分数分布生成采样分布,然后根据采样分布采样出固定数量的样本来做到这一点。在图1中对此进行了更详细的描述,但是简单地,可以涉及使用温度参数来缩放分数分布中的分数。
[0118]
系统基于采样的动作更新状态树(410)。对于每个采样的动作,系统向状态树添加叶节点的表示采样的动作的相应出边。
[0119]
系统还更新与叶节点相对应的节点-边对的统计数据(412)。对于每个采样的动作,系统将表示采样的动作的相应出边与从预测的策略输出中导出的采样的动作的先验概率相关联。
[0120]
为了确定采样的动作的先验概率,系统将校正因子应用于由预测模型的预测的策略输出定义的分数分布中动作的分数。可以基于(i)在固定数量的样本中采样的动作被采样的次数,以及(ii)分配给采样分布中的采样的动作的分数来确定校正因子。例如,校正因子等于(i)在固定数量的样本中采样的动作被采样的次数与固定数量的样本总数的比率与(ii)分配给采样分布中的采样的动作的分数的比率。
[0121]
在如上所述执行多次规划迭代以生成规划数据之后,系统继续使用规划数据响应于当前观察选择要由作用因素执行的动作(414),例如通过使用状态树的根节点的每个出边的访问计数做出选择。
[0122]
因此,更一般地,为了考虑仅采样了动作的子集的事实,系统使用校正因子来生成采样的动作的先验概率,然后继续使用(校正的)先验概率来选择动作,并且当在训练期间执行采样时,如本说明书的剩余部分所描述的。
[0123]
图5是用于训练强化学习系统以确定模型参数的训练值的示例过程500的流程图。为了方便,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的强化学习系统(例如图1的强化学习系统100)可以执行过程500。
[0124]
系统从重放存储器获得轨迹(502)。例如,轨迹可以是从重放存储器采样的一批轨迹之一。轨迹可以包括观察序列,每个观察与响应于对环境(或环境的另外的实例)的观察而由作用因素(或另外的作用因素)执行的实际动作相关联,并且在一些情况下,与作用因素接收到的奖励相关联。
[0125]
图6是训练强化学习系统以确定模型参数的训练值的示例图。如图所示,轨迹602包括总共三个观察o
t-o
t+2
,每个观察表征环境的对应的状态。对于每个观察(例如观察o
t
),轨迹602还包括:响应于观察由作用因素执行的实际动作(例如动作a
t+1
),以及当环境处于
由观察表征的状态时,由作用因素响应于执行实际动作而接收到的实际奖励(例如奖励u
t+1
)。
[0126]
系统使用表示模型并根据表示模型参数的当前值来处理观察(“当前观察”),并且在一些情况下,处理轨迹中当前观察之前的一个或多个先前观察,以生成与环境的当前状态相对应的隐藏状态(504)。
[0127]
如图6的示例中描绘的,系统使用表示模型来处理观察o
t
,以生成与当前状态相对应的隐藏状态s0。
[0128]
系统使用动力学模型和预测模型来执行环境在当前状态之后的预定数量的状态的展示(506),即,生成跟随与环境的当前状态的相对应隐藏状态的预定数量的隐藏状态。
[0129]
为了执行展示,如图6的示例中描绘的,系统重复地(即,在多个训练时间步长中的每个步长处)处理a)隐藏状态(例如隐藏状态s0)以及b)指定轨迹中对应动作(例如动作a
t+1
(即,作用因素响应于当前状态而执行的实际动作))的数据,以生成a)对应于预测的下一环境状态的隐藏状态(例如隐藏状态s1),以及在一些情况下b)指定预测即时奖励值(例如预测即时奖励r1)的数据作为输出。系统还使用预测模型并根据预测模型参数的当前值重复处理与预测的下一环境状态相对应的隐藏状态(例如隐藏状态s1),并且生成a)预测的策略输出(例如预测的策略输出p1)和b)值输出(例如值输出υ1)作为输出。
[0130]
系统评估测量与规划最相关的量的目标函数(508)。
[0131]
具体地,目标函数可以针对轨迹中的多个观察中的每个观察(例如观察o
t
)并且针对轨迹中的观察所表示的状态之后的一个或多个后续隐藏状态中的每个隐藏状态(例如隐藏状态s1)来测量(i)以观察为条件生成的后续隐藏状态的预测的策略输出(例如预测的策略输出p1)与用于响应于观察选择实际动作(例如动作a
t+1
)的实际策略之间的策略误差,(ii)以观察为条件生成的后续隐藏状态的预测值(例如,值输出υ1)与后续隐藏状态的目标值之间的值误差,以及(iii)以观察为条件生成的后续隐藏状态的预测即时奖励(例如,预测即时奖励r1)和与后续隐藏状态相对应的实际即时奖励之间的奖励误差。例如,后续隐藏状态的目标值可以是作用因素从后续隐藏状态开始接收到的自举n步返回。
[0132]
例如,目标函数可以被评估为
[0133][0134]
其中,lr(u,r)=φ(u)
t
logr是评估预测即时奖励值和目标(实际)返回u之间的差的第一误差项,l
υ
(z,q)=φ(z)
t
logq是评估预测值输出和目标值之间的差的第二误差项,z
t
=u
t+1
+γu
t+2
+


n-1ut+n
+γnυ
t+n
和l
p
(π,p)=π
t
logp是评估预测的策略输出和实际动作选择策略π(例如蒙特卡罗树搜索策略)之间的差的第三误差项。例如,差可以被评估为(i)从状态树的根节点的出边的访问计数导出的可能动作集上的经验采样分布和(ii)由预测模型的预测的策略输出定义的可能动作集上的分数分布之间的差。
[0135]
在此示例中,c||θ||2是l2正则化项,γ是在将目标值z计算为自举n步目标时使用的折扣因子,并且φ(x)是指实数x通过其相邻整数的线性组合的表示,这有效地将标量数值x转换成等价的分类表示。
[0136]
系统基于计算目标函数相对于模型参数的梯度并通过使用适当的训练技术(例如
通过随时间反向传播的端到端技术)来更新表示模型、动力学模型和预测模型的参数值(510)。
[0137]
一般地,系统可以重复地执行500的过程,以重复地更新模型参数值,从而确定模型参数的训练值,直到满足训练终止标准为止,例如,在已经完成预定数量的训练迭代之后、或者在系统训练的预定时间量已经过去之后。
[0138]
代替或除了通过执行前述过程400来确定表示模型、动力学模型和预测模型参数的训练值,系统可以通过使用重新分析技术来做到这一点。
[0139]
在一些情况下,系统交错训练与强化学习系统的重新分析。在重新分析期间,系统重新访问先前从重放存储器采样的轨迹,并使用这些轨迹来微调被确定为在这些轨迹上训练系统的结果的表示模型、动力学模型和预测模型的参数值。例如,每当过程400已经重复执行了预定次数的迭代时,系统可以继续执行如下所述的一个或多个重新分析过程,以调整到目前为止已经执行了的训练迭代时确定的模型参数的当前值。
[0140]
在其他情况下,系统可以完全基于重新分析来更新模型参数值。例如,在通过控制作用因素在训练期间与环境进行交互来收集新的轨迹数据是昂贵的或者不可行的情况下、或者在只有作用因素在由不同策略控制时与环境进行交互的早期经验可用的情况下,系统可以采用重新分析技术。在这些情况下,系统从重放存储器采样存储的轨迹,并使用采样的轨迹来调整(即从初始值而不是经调整的值)表示模型、动力学模型和预测模型的参数值。
[0141]
图7是用于重新分析强化学习系统以确定模型参数的训练值的示例过程700的流程图。为了方便,过程700将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的强化学习系统(例如图1的强化学习系统100)可以执行过程700。
[0142]
系统获得观察(“当前观察”)(702),该观察可以是包括在先前在训练期间从重放存储器采样的轨迹中的观察之一。例如,观察可以是由系统在过程500的步骤502获得的轨迹中的观察。
[0143]
系统执行由动力学模型和预测模型生成的输出指导的多次规划迭代(704),包括选择从当前环境状态开始的要由作用因素执行的多个动作序列,如上面参考图2描述的。具体地,为了在重新分析期间生成与观察相对应的隐藏状态并扩展叶节点,系统根据这些模型的最新参数值(即最近作为执行过程500的结果或作为系统重新分析的结果而被更新的参数值)来运行表示模型、动力学模型和预测模型。
[0144]
系统评估重新分析目标函数(706)包括重新计算新的目标策略输出和新的目标值输出,然后将重新计算的新的目标策略输出和新的目标值输出代入在训练期间使用的目标函数,例如等式2的示例目标函数。
[0145]
具体地,对于轨迹中的多个观察中的每个观察,以及对于轨迹中的观察所表示的状态之后的一个或多个后续隐藏状态中的每个隐藏状态:可以使用由表示模型、动力学模型和预测模型根据最近更新的参数值生成的输出指导的实际动作选择策略π(例如,蒙特卡罗树搜索策略)来确定新的目标策略输出。并且目标值输出可以是自举n步目标值,其计算如下
[0146]
其中表示通过使用预测模型f从根据预测模型的最近更新的参数值θ-处理隐藏状态s0而生成的值输出。
[0147]
为了增加样本重用并避免值函数的过拟合,当评估重新分析目标函数时,系统可以另外调整与训练目标函数相关联的一些超参数值,例如降低目标值输出的加权因子并减少在计算自举n步目标值中使用的步长的数量。
[0148]
系统基于计算重新分析目标函数相对于模型参数的梯度,并通过使用适当的训练技术(例如通过随时间反向传播的端到端技术)来更新(例如微调)表示模型、动力学模型和预测模型的参数值(708)。
[0149]
本说明书结合系统和计算机程序组件使用术语“被配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得该系统执行这些操作或动作。一个或多个计算机程序被配置为执行特定的操作或动作意味着一个或多个程序包括指令,当由数据处理装置执行时,这些指令使得该装置执行这些操作或动作。
[0150]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形实施的计算机软件或固件、计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行访问存储器设备,或者它们中的一个或多个的组合。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。
[0151]
术语“数据处理装置”是指数据处理硬件,并且包含用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0152]
计算机程序也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码,可以用任何形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)编写;并且它可以以任何形式(包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元)部署。程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,在专用于所讨论的程序的单个文件中,或者在多个协作文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序可以被部署为在一个计算机或位于一个地点或分布在多个地点并通过数据通信网络互连的多个计算机上执行。
[0153]
在本说明书中,术语“数据库”被广泛地用于指代任何数据集合:数据不需要以任何特定的方式被结构化,或者根本不需要被结构化,并且它可以被存储在一个或多个位置的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。
[0154]
类似地,在本说明书中,术语“引擎”被广泛地用来指经编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。一般地,引擎将被实现为安装在一个或多个位置
的一个或个台计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在同一或多个计算机上安装和运行多个引擎。
[0155]
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并且生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如fpga或asic)来执行,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
[0156]
适于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者任何其他种类的中央处理单元。一般地,中央处理单元将从只读存储器或随机访问存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理器和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路来补充或并入其中。一般地,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,以从该一个或多个大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入在另外的设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动,仅举几个示例。
[0157]
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd-rom盘。
[0158]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,以及用户可以用来向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收到的请求,向用户设备上的网络浏览器发送网页。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)发送文本消息或其他形式的消息,并接收来自用户的响应消息来与用户交互。
[0159]
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的通用和计算密集型部分,即推理、工作负载。
[0160]
可以使用机器学习框架(例如tensorflow框架、微软认知工具包框架、apache singa框架或apache mxnet框架)来实现和部署机器学习模型。
[0161]
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面的客户端计算机、网页浏览器或用户可以通过其与本说明书中描述的主题的实现交互的应用,或者一个或多个这样的后端组件、中间件组件或前端组件的任何组合。该系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)来互连。通信网络的示例包括局域网(lan)和广域网(wan),例如互连网。
[0162]
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序
而生成的,并且彼此具有客户端-服务器关系。在一些实施例中,服务器向用户设备发送数据,例如html页面,例如为了向与充当客户端的设备进行交互的用户显示数据并从该用户接收用户输入。可以在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
[0163]
尽管本说明书包含多个具体的实施细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是被解释为对特定发明的特定实施例所特有的特征的描述。本说明书中在独立实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实现。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初是被如此要求保护的,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
[0164]
类似地,尽管在附图中以特定次序描述了操作,并且在权利要求中以特定次序陈述了操作,但是这不应该被理解为要求这些操作以所示的特定次序或顺序地来执行,或者要求所有示出的操作都被执行以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解,所描述的程序组件和系统一般可以一起集成在单个软件产品中或者封装到多个软件产品中。
[0165]
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中陈述的动作可以以不同的次序来执行,并且仍然可以获得期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或顺序地来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

技术特征:
1.一种用于从动作集中选择要由与环境交互的作用因素执行的动作以使作用因素执行任务的方法,所述方法包括:接收表征环境的当前环境状态的当前观察;执行多次规划迭代以生成规划数据,所述规划数据指示执行作用因素的任务的相应值,所述作用因素执行环境中的动作集中的多个动作中的每个动作并且从当前环境状态开始,其中,执行每次规划迭代包括:通过遍历环境的状态树选择从当前环境状态开始的要由作用因素执行的动作序列,所述环境的状态树具有表示环境的环境状态的节点和表示可以由作用因素执行的使环境转换状态的动作的边,并且其中,遍历状态树包括:使用状态树中边的统计,从表示当前环境状态的状态树的根节点开始遍历状态树,直到到达状态树中的叶节点为止;使用预测模型来处理与由叶节点表示的环境状态相对应的隐藏状态,所述预测模型被配置为接收所述隐藏状态作为输入并且至少生成预测的策略输出作为输出,所述预测的策略输出定义了动作集上的分数分布;采样动作集的真子集;对于每个采样的动作,通过向状态树添加叶节点的表示采样的动作的相应出边来更新状态树;以及对于每个采样的动作,通过将表示采样的动作的相应出边与从预测的策略输出导出的采样的动作的先验概率相关联来更新统计;以及使用规划数据,响应于当前观察选择要由作用因素执行的动作。2.根据权利要求1所述的方法,其中,采样动作集的真子集包括:根据分数分布生成定义采样分布的数据;以及根据采样分布采样固定数量的样本。3.根据权利要求2所述的方法,其中,生成采样分布包括用温度参数调制分数分布。4.根据权利要求2或3所述的方法,其中,当叶节点与根节点相同时,生成采样分布包括向分数分布添加噪声。5.根据权利要求2-4中任一项所述的方法,还包括通过将校正因子应用于分数分布中动作的分数来生成采样的动作的相应先验概率。6.根据权利要求5所述的方法,其中,所述校正因子基于(i)在固定数量的样本中采样的动作被采样的次数和(ii)分配给采样分布中的采样的动作的分数。7.根据权利要求6所述的方法,其中,所述校正因子等于以下两项的比率(i)采样的动作被采样的次数与固定数量的样本的比率以及(ii)分配给采样分布中的采样的动作的分数。8.根据权利要求1-7中任一项所述的方法,其中,所述规划数据包括根节点的每个出边的相应访问计数,所述访问计数表示在多次规划迭代期间选择对应的动作的次数,并且其中,响应于当前观察选择要由作用因素执行的动作可以包括使用相应访问计数选择动作。9.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令被一个或多个计算机执行时,使得一个或多个计算机执行权利要求1-8中任一项所述的相应方法的操作。
10.存储指令的一个或多个计算机存储介质,当所述指令被一个或多个计算机执行时,使得一个或多个计算机执行权利要求1-8中任一项所述的相应方法的操作。11.一种用于从动作集中选择要由与环境交互的作用因素执行的动作以使作用因素执行任务的方法,所述方法包括:接收表征环境的当前环境状态的当前观察;执行多次规划迭代以生成规划数据,所述规划数据指示执行作用因素的任务的相应值,所述作用因素执行环境中的动作集中的每个动作并且从当前环境状态开始,其中,执行每次规划迭代包括:基于由以下各项生成的输出,选择从当前环境状态开始的要由作用因素执行的动作序列:(i)动力学模型,其被配置为接收a)与输入环境状态相对应的隐藏状态和b)来自动作集的输入动作作为输入,并且至少生成与预测的下一环境状态相对应的隐藏状态作为输出,如果当环境处于输入环境状态时作用因素执行输入动作,则环境将转换到预测的下一环境状态;以及(ii)预测模型,其被配置为接收与预测的下一环境状态相对应的隐藏状态作为输入,并且生成a)定义动作集上的分数分布的预测的策略输出以及b)表示环境处于用于执行任务的预测的下一环境状态的值的值输出作为输出;以及基于生成的规划数据,响应于当前观察从动作集中选择要由作用因素执行的动作。12.根据权利要求11所述的方法,其中,所述动力学模型还生成预测即时奖励值作为输出,所述预测即时奖励值表示如果作用因素在环境处于输入环境状态时执行了输入动作将接收到的即时奖励,其中,所述即时奖励值是表示作为在环境处于输入环境状态时执行输入动作的结果的、完成任务的进度的数值。13.根据权利要求11或权利要求12所述的方法,其中,选择动作序列还包括基于以下各项选择动作序列:由表示模型生成的输出,所述表示模型被配置为接收包括当前观察的表示输入并且生成与环境的当前状态相对应的隐藏状态作为输出。14.根据权利要求13所述的方法,其中,所述表示输入还包括表征环境在当前状态之前转换到的一个或多个先前状态的一个或多个先前观察。15.根据权利要求13或14所述的方法,其中,所述表示模型、所述动力学模型和所述预测模型在来自轨迹数据集的采样的轨迹上被端到端地联合训练。16.根据权利要求15所述的方法,其中所述表示模型、所述动力学模型和所述预测模型在目标上被端对端地联合训练,所述目标针对多个特定观察中的每个观察测量:对于跟随轨迹中特定观察所表示的状态的一个或多个后续状态中的每个状态:(i)以特定观察为条件生成的后续状态的预测的策略输出和用于响应于观察选择动作的实际策略之间的策略误差,以及(ii)以特定观察为条件生成的后续状态的预测值与从后续状态开始接收到的实际返回之间的值误差。17.根据权利要求16所述的方法,当也从属于权利要求12时,其中,所述目标还针对多个特定观察中的每个观察测量:
对于跟随轨迹中特定观察所表示的状态的一个或多个后续状态中的每个状态:以特定观察为条件生成的后续状态的预测即时奖励与对应于后续状态的实际即时奖励之间的奖励误差。18.根据权利要求15-17中任一项所述的方法,其中,所述动力学模型和所述表示模型未被训练为通过隐藏状态来对环境的语义进行建模。19.根据权利要求15-18中任一项所述的方法,其中,从后续状态开始的实际返回是自举n步返回。20.根据权利要求11-18中任一项所述的方法,其中,基于生成的规划数据,响应于当前观察从动作集中选择要由作用因素执行的动作包括使用马尔可夫决策过程(mdp)规划算法来选择动作。21.根据权利要求20所述的方法,其中,针对每次规划迭代选择动作序列和选择要由作用因素执行的动作是使用蒙特卡罗树搜索(mcts)算法来执行的。22.根据权利要求20所述的方法,其中,基于生成的规划数据,响应于当前观察从动作集中选择要由作用因素执行的动作包括:从规划数据中的动作序列中确定具有最大关联值输出的动作序列;以及选择确定的动作序列中的第一个动作作为响应于当前观察要由作用因素执行的动作。23.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令被一个或多个计算机执行时,使得一个或多个计算机执行权利要求11-22中任一项所述的相应方法的操作。24.存储指令的一个或多个计算机存储介质,当所述指令被一个或多个计算机执行时,使得一个或多个计算机执行权利要求11-22中任一项所述的相应方法的操作。

技术总结
方法、系统和装置,包括编码在计算机存储介质上的计算机程序,用于选择由与环境交互的作用因素执行的动作,以使作用因素执行任务。方法之一包括:接收表征环境的当前环境状态的当前观察;执行多次规划迭代以生成规划数据,该规划数据指示执行作用因素的任务的相应值,该作用因素执行环境中的动作集中的每个动作并且从当前环境状态开始,其中执行每次规划迭代包括基于由动力学模型和预测模型生成的输出选择从当前环境状态开始的、要由作用因素执行的动作序列;以及基于规划数据,响应于当前观察从动作集中选择要由作用因素执行的动作。观察从动作集中选择要由作用因素执行的动作。观察从动作集中选择要由作用因素执行的动作。


技术研发人员:J.施里特韦瑟 I.安东诺格鲁 T.K.休伯特
受保护的技术使用者:渊慧科技有限公司
技术研发日:2021.01.28
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-604.html

最新回复(0)