使用自举潜在的预测来学习针对代理控制的环境表示的制作方法

文档序号:32005413发布日期:2022-11-02 12:57阅读:42来源:国知局
使用自举潜在的预测来学习针对代理控制的环境表示的制作方法
使用自举潜在的预测来学习针对代理控制的环境表示
1.相关申请的交叉引用
2.本技术要求2020年2月6日提交的美国临时申请第62/971,209号的优先权。该在先申请的公开内容被认为是本技术的公开内容的一部分,并通过引用结合于此。


背景技术:

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


技术实现要素:

7.本说明书总体上描述了一种训练神经网络系统来控制与环境进行交互的代理的强化学习系统。该神经网络系统包括环境表示神经网络,该环境表示神经网络被配置为在每个时间步骤处理包括表征环境的当前状态的当前观察的环境表示网络输入以生成当前观察的内部表示。该神经网络系统还包括动作选择策略神经网络,该动作选择策略神经网络被配置为处理内部表示以生成动作选择输出,该动作选择输出可以用于响应于当前观察而选择要由代理执行的动作。
8.为了改进神经网络系统的训练,在该训练期间,强化学习系统在辅助预测训练任务上训练神经网络系统以及多个辅助神经网络,即,除了神经网络系统的强化学习训练之外。在一些实施方式中,辅助神经网络可以包括(i)部分表示神经网络、(ii)前向预测神经网络、(iii)后向预测神经网络以及(iv)潜在表示神经网络。
9.具体地,强化学习系统可以训练环境表示神经网络,以从包括当前观察的环境表示网络输入生成预测性的内部表示,即,给定观察的内部表示,其预示由环境表示神经网络从在观察序列中的给定观察之后的一个或多个其他观察生成的内部表示。
10.根据一个方面,提供了一种训练具有多个环境表示参数的环境表示神经网络的方法,该环境表示神经网络接收包括表征与代理进行交互的环境的状态的观察的输入并生成环境的状态的内部表示,其中,该内部表示用于响应于观察来控制代理。该训练方法包括接收(i)包括表征环境的当前状态的当前观察的当前观察输入以及(ii)包括表征环境的当前状态之后的未来状态的未来观察的未来观察输入。该方法还包括从未来观察输入生成环境的未来状态的未来潜在表示。该方法还包括使用环境表示神经网络,根据环境表示参数的当前值处理当前观察输入,以生成环境的当前状态的当前内部表示。该方法还包括从当前
内部表示生成预测的未来潜在表示,该预测的未来潜在表示是环境的未来状态的未来潜在表示的预测。该方法还包括评估测量未来潜在表示与预测的未来潜在表示之间的差异的目标函数;以及基于所确定的目标函数的梯度来确定对环境表示参数的当前值的更新。目标函数可以独立于用于训练整个强化学习系统的目标函数。
11.生成未来潜在表示可以包括:使用具有多个潜在嵌入网络参数的潜在嵌入神经网络来处理未来观察,以生成未来潜在表示。
12.当前和未来的观察输入可以是用于训练环境表示神经网络的轨迹的一部分。轨迹可以从存储器中选择,并且轨迹可以包括观察序列,每个观察与由代理(或另一代理)响应于环境(或环境的另一实例)的观察而执行的动作相关联,并且在一些情况下,与由代理接收到的奖励相关联。因此,当前观察输入可以是轨迹中在当前时间步骤处的观察,并且未来观察输入可以是轨迹中在相对于正被处理的当前时间步骤的后续时间步骤处发生的轨迹中的观察。
13.该方法还可以包括使用环境表示神经网络并根据环境表示参数的当前值来处理未来观察输入,以生成环境的未来状态的未来内部表示;从未来潜在表示生成预测的未来内部表示,该预测的未来内部表示是环境的未来状态的未来内部表示的预测;以及基于未来内部表示与预测的未来内部表示之间的差异来确定对潜在嵌入网络参数的当前值的更新。
14.可以使用固定的、均匀随机的动作选择策略来控制代理。
15.该方法还可以包括:使用具有多个策略参数的动作选择策略神经网络来处理当前内部表示,以生成指定代理在当前状态下要执行的动作的当前动作选择输出;基于当前动作选择输出来确定强化学习损失;以及基于强化损失来确定对策略参数的当前值的更新。
16.该方法还可以包括通过将强化学习损失的梯度后向传播到环境表示神经网络中来确定对环境表示参数的当前值的更新。
17.未来状态可以是在当前状态之后的k个步骤,并且其中k是预定的正整数。
18.生成预测的未来潜在表示可以包括使用前向预测神经网络处理从当前内部表示推导出的前向预测网络输入以生成预测的未来潜在表示,该预测的未来潜在表示是环境的未来状态的未来潜在表示的预测。该方法还可以包括基于计算目标函数相对于前向预测网络参数的梯度来确定对前向预测网络参数的当前值的更新。
19.生成预测的未来内部表示可以包括使用具有多个后向预测网络参数的后向预测神经网络处理未来潜在表示以生成预测的未来内部表示。该方法还可以包括确定对后向预测网络参数的当前值的更新。
20.当前观察输入还可以包括由代理在环境的在前状态下执行的在前动作。
21.环境表示神经网络可以包括部分表示神经网络,该部分表示神经网络被配置为处理(i)当前内部表示和(ii)由代理执行的当前动作,以生成环境的未来状态的部分未来内部表示。
22.从当前内部表示推导出的前向预测网络输入可以是由部分表示神经网络生成的部分未来内部表示。
23.该方法还可以包括将计算的梯度后向传播到环境表示神经网络中,以确定对环境表示参数的当前值的更新。
24.根据另一方面,提供了一种包括一个或多个计算机和存储指令的一个或多个存储设备的系统,当由一个或多个计算机执行时,该指令可操作以使一个或多个计算机执行如上所述的相应方法的操作。
25.根据另一方面,提供了一种编码有指令的计算机存储介质,当由一个或多个计算机执行时,该指令使一个或多个计算机执行如上所述的相应方法的操作。
26.可以实施本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
27.本说明书中描述的强化学习系统可以训练环境表示神经网络来学习生成环境的状态的高质量内部表示。在各种情况下,这种内部表示可以结合来自多个观察模态的信息,包括例如奖励、像素图像、语言指令和其他感觉输入(诸如触觉、嗅觉、声音和温度)。
28.所描述的强化学习系统鼓励环境表示神经网络通过结合被配置为执行辅助任务的一个或多个其他辅助神经网络执行强化学习训练来学习生成更多信息性或预测性的内部表示,辅助任务包括例如生成环境的潜在表示、未来状态的前向预测和过去状态的后向预测。
29.相比之下,当训练不涉及辅助任务并且集中于为环境的当前(即,即时)状态生成相应的内部表示时,或者当训练基于常规辅助任务(包括例如针对特定观察的像素或特征控制任务)时,通过常规方法训练环境表示神经网络效率较低。具体地,这是因为在本说明书中描述的强化学习训练系统采用辅助任务,这些辅助任务通常要求内部表示预示潜在空间中的未来状态,同时反过来又要求那些潜在表示预示未来状态的表示。
30.通过利用经训练的环境表示神经网络来生成环境的相应状态的这种有用表示,本说明书中描述的强化学习系统可以在训练期间或训练之后(即在运行时)增强要提供给动作选择策略神经网络的信号,以提高动作选择输出的质量。因此,本说明书中描述的强化学习系统可以,例如通过接收更多的累积外部奖励,在控制代理执行任务时实现优于常规强化学习系统的性能。
31.本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
32.图1示出了示例强化学习系统。
33.图2是用于在前向预测任务上训练的示例过程的流程图。
34.图3是在前向预测任务上训练的示例图示。
35.图4是使用环境表示神经网络生成内部表示和使用部分表示神经网络生成部分内部表示的示例图示。
36.图5是用于在后向预测任务上训练的示例过程的流程图。
37.图6是在后向预测任务上训练的示例图示。
38.不同附图中相同的附图标记和名称指示相同的元素。
具体实施方式
39.本说明书描述了一种强化学习系统,其通过在多个时间步骤中的每个时间步骤处
理表征该时间步骤处的环境的当前状态的数据(即“观察”)来选择要由与环境进行交互的代理执行的动作,以控制该代理。
40.在每个时间步骤处,环境在该时间步骤处的状态取决于环境在先前时间步骤处的状态以及由代理在先前时间步骤处执行的动作。
41.在一些实施方式中,环境是真实世界环境,并且代理是与真实世界环境进行交互的机械代理,例如,机器人或在环境中导航的自主或半自主陆地、空中或海上载具。
42.在这些实施方式中,观察可以包括例如以下中的一个或多个:图像、对象位置数据和传感器数据,以当代理在其与环境进行交互时捕获观察,例如来自图像、距离或位置传感器或来自致动器的传感器数据。
43.例如,在机器人的情况下,观察可以包括表征机器人的当前状态的数据,例如以下中的一个或多个:关节位置、关节速度、关节力、扭矩或加速度(例如,重力补偿扭矩反馈)以及机器人所持物品的全局或相对姿态。
44.在机器人或其他机械代理或载具的情况下,观察可以类似地包括以下中的一个或多个:代理的一个或多个部分的位置、线速度或角速度、力、扭矩或加速度以及全局或相对姿态。观察可以在1维、2维或3维中定义,并且可以是绝对和/或相对观察。
45.观察还可以包括例如感测到的电子信号,诸如电机电流或温度信号;和/或例如来自相机或lidar传感器的图像或视频数据,例如,来自代理的传感器的数据或来自在环境中与代理分开放置的传感器的数据。
46.在电子代理的情况下,观察可以包括来自监控工厂或服务设施的一部分的一个或多个传感器的数据,诸如电流、电压、功率、温度以及代表装备的电子和/或机械物品的功能的其他传感器和/或电子信号。
47.在这些实施方式中,动作可以是用于控制机器人(例如,机器人关节的扭矩或更高级别的控制命令)的控制输入,或者用于控制自主或半自主陆地、空中、海上载具(例如,载具的控制表面或其他控制元件的扭矩或更高级别的控制命令)的控制输入。
48.换句话说,动作可以包括例如机器人的一个或多个关节或者另一机械代理的部分的位置、速度或力/扭矩/加速度数据。动作数据可以附加地或替代地包括电子控制数据,诸如电机控制数据,或者更一般地,用于控制环境内的一个或多个电子设备的数据,其中对这些电子设备的控制对观察到的环境的状态有影响。例如,在自主或半自主陆地或空中或海上载具的情况下,动作可以包括用于控制载具的导航(例如,转向)和移动(例如,制动和/或加速)的动作。
49.在一些实施方式中,环境是模拟环境,并且代理被实施为与模拟环境进行交互的一个或多个计算机。在模拟环境中训练代理可以使代理能够从大量模拟训练数据中学习,同时避免与在真实世界环境中训练代理相关联的风险,例如,由于执行选择不当的动作而对代理造成的损害。在模拟环境中训练的代理此后可以被部署在真实世界环境中。
50.模拟环境可以是运动模拟环境,例如驾驶模拟或飞行模拟,并且代理可以是在运动模拟中导航的模拟载具。在这些实施方式中,动作可以是用于控制模拟用户或模拟载具的控制输入。
51.在另一示例中,模拟环境可以是视频游戏,并且代理可以是玩视频游戏的模拟用户。通常,在模拟环境的情况下,观察可以包括先前描述的观察或观察类型中的一个或多个
的模拟版本,并且动作可以包括先前描述的动作或动作类型中的一个或多个的模拟版本。
52.在另一示例中,环境可以是化学合成或蛋白质折叠环境,使得每个状态是蛋白质链或者一个或多个中间体或前体化学物质的相应状态,并且代理是用于确定如何折叠蛋白质链或合成化学物质的计算机系统。在该示例中,动作是用于折叠蛋白质链的可能的折叠动作或用于组装前体化学物质/中间体的动作,并且要实现的结果可以包括,例如,折叠蛋白质以使得蛋白质是稳定的并且使得它实现特定的生物功能,或者为该化学物质提供有效的合成路线。作为另一示例,代理可以是执行或控制由系统自动(而无需人类交互)选择的蛋白质折叠动作的机械代理。观察可以包括蛋白质的状态的直接或间接观察,和/或可以从模拟中推导出。
53.以类似的方式,环境可以是药物设计环境,使得每个状态是潜在的医药化学药物的相应状态,并且代理是用于确定医药化学药物的元素和/或医药化学药物的合成路径的计算机系统。例如在模拟中,可以基于从药物的目标推导出的奖励来设计药物/合成。作为另一示例,代理可以是执行或控制药物的合成的机械代理。
54.在一些应用中,代理可以是静态或移动的软件代理,即被配置为自主操作和/或与其他软件代理或人一起操作以执行任务的计算机程序。例如,环境可以是集成电路布线环境,并且系统可以被配置为学习执行用于对诸如asic之类的集成电路的互连线路进行布线的布线任务。奖励(或成本)然后可以取决于一个或多个布线度量,诸如互连电阻、电容、阻抗、损耗、速度或传播延迟、物理线路参数(诸如宽度、厚度或几何形状)以及设计规则。观察可以是组件位置和互连的观察;动作可以包括组件放置动作(例如,以定义组件位置或方位)和/或互连布线动作(例如,互连选择和/或放置动作)。因此,布线任务可以包括放置组件,即确定集成电路的组件的位置和/或方位,和/或确定组件之间的互连的布线。一旦完成了布线任务,就可以根据所确定的放置和/或布线来制造集成电路,例如asic。或者,环境可以是数据分组通信网络环境,并且代理可以是用于基于网络的观察在通信网络上路由数据分组的路由器。
55.通常,在模拟环境的情况下,观察可以包括先前描述的观察或观察类型中的一个或多个的模拟版本,并且动作可以包括先前描述的动作或动作类型中的一个或多个的模拟版本。
56.在一些其他应用中,代理可以控制真实世界环境中的动作,真实世界环境包括例如数据中心、电力/水力分配系统、制造工厂或服务设施中的设备物品。观察然后可以与工厂或设施的操作相关。例如,观察可以包括装备的用电量或用水量的观察、或者电力生成或分配控制的观察、或者资源使用或废物产生的观察。动作可以包括对工厂/设施的设备物品控制或施加操作条件的动作,和/或导致工厂/设施的操作中的设置变化的动作,例如,用于调整或打开/关闭工厂/设施的组件。
57.在一些其他应用中,环境是真实世界环境,并且代理管理例如在移动设备上和/或在数据中心中的计算资源上进行的任务分配。在这些实施方式中,动作可以包括将任务指派给特定的计算资源。
58.通常,在如上所述的应用中,其中环境是真实世界环境的模拟版本,一旦系统/方法已经在模拟中被训练,它随后就可以被应用于真实世界环境。也就是说,由系统/方法生成的控制信号可以用于控制代理响应于来自真实世界环境的观察来执行真实世界环境中
的任务。可选地,系统/方法可以基于来自真实世界环境的一个或多个奖励继续在真实世界环境中进行训练。
59.在上面的一些实施方式中,在每个时间步骤处,系统基于环境的当前状态和代理在该时间步骤处的动作来接收奖励。例如,系统可以基于代理完成一个或多个目标的进度来接收针对给定时间步骤的奖励。例如,代理的目标可以是导航到环境中的目标位置,并且奖励可以由表征代理接近目标位置的进度的标量数值来指定。
60.图1示出了示例强化学习系统100。强化学习系统100是被实施为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实施了下面描述的系统、组件和技术。
61.强化学习系统100通过选择要由代理102执行的动作106并且然后使代理102执行选定动作106来控制与环境104进行交互的代理102。
62.代理102对选定动作106的执行通常使环境104转换到新状态。通过重复地使代理102在环境104中进行动作,系统100可以控制代理102完成指定的任务。
63.强化学习系统100包括代理控制子系统160,代理控制子系统160反过来包括环境表示神经网络110、动作选择策略神经网络130,并且在一些实施方式中还包括值预测神经网络。强化学习系统100还包括训练引擎116和一个或多个存储器,其存储代理控制子系统160中包括的神经网络的一组网络参数118,以及如下面将进一步描述的,在训练期间由训练引擎116维护的辅助神经网络150a-d,以改进代理控制子系统160中包括的神经网络的训练。
64.在多个时间步骤中的每个时间步骤处,环境表示神经网络110被配置为根据网络参数118处理环境表示网络输入以生成当前观察的内部表示,环境表示网络输入包括(i)表征环境的当前状态的当前观察以及(ii)由代理响应于在前观察而执行的在前动作。然而,当前观察可以被认为可选地包括在前动作。动作选择策略神经网络130然后被配置为根据动作选择策略神经网络130的参数118(“策略参数”)来处理内部表示,以生成动作选择输出122。
65.系统100使用动作选择输出122来控制代理,即,根据动作选择策略选择要由代理在当前时间步骤处执行的动作106,并且然后使代理执行动作106,例如,通过直接向代理发送控制信号或通过向代理的控制系统发送识别动作106的数据。
66.接下来描述使用动作选择输出122来选择要由代理执行的动作106的几个示例。
67.在一个示例中,动作选择输出122定义了在要由代理执行的可能动作上的概率分布。例如,动作选择输出可以包括可以由代理执行以与环境进行交互的一组可能动作中的每个动作的相应动作概率。在另一示例中,动作选择输出122可以包括在一组可能动作上的分布参数。系统100可以使用各种动作选择策略中的任何基于动作选择输出122来选择要由代理执行的动作,例如,通过根据动作的概率值对动作进行采样,或者通过选择具有最高概率值的动作。
68.在另一示例中,动作选择输出122响应于观察从要由代理执行的一组可能动作中识别出最佳动作。例如,在控制机械代理的情况下,动作选择输出可以识别要施加到机械代理的一个或多个关节的扭矩。系统100可以使用各种动作选择策略中的任何基于动作选择输出122来选择要由代理执行的动作,例如,通过选择识别出的最佳动作,或者通过向最佳
动作添加噪声以鼓励探索并选择添加噪声的动作。
69.在另一示例中,动作选择输出122可以包括可以由代理执行的一组可能动作中的每个动作的相应q值。
70.动作的q值是对“回报(return)”的估计,其是由代理响应于当前观察120执行动作并且此后根据控制神经网络参数的当前值选择由代理102执行的未来动作而产生的。
71.回报是指由代理接收的“奖励”124的累积度量,例如,奖励的时间折扣总和。
72.代理可以在每个时间步骤处接收相应的奖励124,其中奖励124由标量数值指定,并且表征例如代理完成指定任务的进度。
73.在该示例中,系统100可以使用各种动作选择策略中的任何基于动作选择输出122来选择要由代理执行的动作,例如,通过选择具有最高q值的动作,或者通过将q值映射到概率并根据概率对动作进行采样。在一些情况下,系统100可以根据探索策略选择要由代理执行的动作。例如,探索策略可以是∈-greedy(∈-贪心)探索策略,其中系统100根据具有概率1-∈的动作选择输出122来选择要由代理执行的动作,并且随机选择具有概率∈的动作。在该示例中,∈是介于0和1之间的标量值。
74.在一些实施方式中,除了上述任何内容之外,代理控制子系统160还包括值预测神经网络,该值预测神经网络被配置为在多个时间步骤中的每个步骤处理由环境表示神经网络110生成的内部表示,并且生成表示处于当前状态的环境成功执行指定任务的值的值预测。换句话说,值预测是对由于环境处于由观察表征的当前状态而导致的针对指定任务的回报的估计,例如,如果使用代理控制子系统160来控制代理,则将在任务时期(episode)的剩余部分上或在某个固定数量的未来时间步骤上从当前状态开始接收的奖励124的时间折扣总和的估计。该总和被称为时间折扣,因为在计算回报时,未来的奖励按照固定的时间折扣因子γ打折。
75.在一些实施方式中,环境表示神经网络110是递归神经网络,其已经被配置为在多个时间步骤的每个时间处接收环境表示网络输入,从而通过处理接收到的环境表示网络输入来更新环境表示神经网络110的当前隐藏状态,即,通过处理当前接收到的输入来修改已经通过处理先前的输入而生成的网络110的当前隐藏状态,环境表示网络输入包括(i)表征环境的当前状态的当前观察120和(ii)由代理响应于在前观察而执行的在前动作106。环境表示神经网络110的更新的隐藏状态对应于环境104的当前状态的内部表示。例如,环境表示神经网络110的架构可以包括一个或多个层(例如,卷积层、全连接层或嵌入层)的序列,之后是一个或多个递归层(例如,长短期记忆(lstm)层),并且在一些情况下还包括输出层,该输出层将变换应用于由递归层生成的隐藏状态以生成环境表示网络输出。
76.如在本说明书中所使用的,隐藏状态、内部表示或潜在表示通常是指由神经网络从输入观察生成的中间数据、从输入观察推导出的数据或两者兼有,并且可以各自被表示为数值的有序集合,例如数值的向量或矩阵。每个这样的中间数据可以具有比观察本身更低的维度。
77.在这些实施方式中,动作选择策略神经网络130和值预测神经网络(当被包括在内时)被布置在环境表示神经网络110的顶部,使得它们可以各自接收由环境表示神经网络110生成的内部表示,并且分别生成动作选择输出和值预测输出。例如,由环境表示神经网络110的递归层(例如,长短期记忆(lstm)层)生成的隐藏状态可以(例如,作为环境表示神
经网络110的中间输出)被直接提供给动作选择策略神经网络130和值预测神经网络的相应输入层。作为另一示例,由环境表示神经网络110的输出层从隐藏状态生成的环境表示网络输出可以被提供给动作选择策略神经网络130和值预测神经网络的相应输入层。
78.动作选择策略神经网络130和值预测神经网络可以各自被实施为具有使其能够执行其所描述的功能的任何适当的神经网络架构(例如,多层感知器神经网络架构)的相应神经网络。
79.强化学习系统100中的训练引擎116通过使用强化学习技术迭代地调整网络参数118的值来训练代理控制子系统160中包括的网络,以生成使系统100所接收的预期的长期时间折扣奖励最大化的动作选择输出。
80.对于一个或多个时间步骤,系统100在轨迹缓冲器114中存储针对该时间步骤的代理102(或另一代理)与环境104(或环境的另一实例)之间的交互。轨迹缓冲器114因此维护指定多个观察序列的数据,每个观察序列与由代理响应于环境观察而执行的动作相关联,并且在一些情况下与由代理接收的奖励相关联。在一些实施方式中,在轨迹数据收集期间,可以使用固定的、均匀随机的动作选择策略来控制与环境进行交互的代理。在其他实施方式中,可以根据代理控制子系统160中包括的神经网络的参数集118的当前值,使用代理控制子系统160来控制代理。
81.在一些实施方式中,训练引擎116使用基于策略(on-policy)的强化学习技术并在生成轨迹时基于该轨迹来训练环境表示神经网络110、动作选择策略神经网络130或两者。在以下文献中描述了一种用于基于策略的强化学习的示例方法:volodymyr mnih et.al.,“asynchronous methods for deep reinforcement learning,”proceedings of the 33rd international conference on machine learning,2016。用于基于策略的强化学习的另一示例方法是策略梯度方法。在一些其他实施方式中,训练引擎116在生成轨迹数据时或采样引擎从轨迹缓冲器114采样轨迹数据时基于该轨迹数据,使用非策略(off-policy)的强化学习技术(例如,一步或n步q学习)来训练环境表示神经网络110、动作选择策略神经网络130或两者。
82.除了训练代理控制子系统160中包括的环境表示神经网络110和动作选择策略神经网络130以使预期的长期时间折扣奖励最大化之外,系统100还可以通过在辅助预测训练任务上附加地训练多个辅助训练神经网络150a-d(即,除了神经网络的强化学习训练之外)来训练神经网络110或130或两者。
83.具体地,辅助训练神经网络可以包括(i)部分表示神经网络、(ii)前向预测神经网络、(iii)后向预测神经网络以及(iv)潜在表示神经网络。并且辅助预测训练任务可以包括:(i)前向的动作条件预测任务,用于从环境的当前状态的当前观察生成环境的未来状态的预测的未来潜在表示,以及(ii)反向预测任务,用于从环境的未来状态的未来观察生成预测的未来内部表示。
84.训练引擎116可以通过优化一组辅助任务目标函数来做到这一点,以迭代地更新辅助神经网络150a-d的参数集118的当前值,并进一步更新环境表示神经网络110和动作选择策略神经网络130的参数集118的当前值。
85.每个辅助神经网络可以具有使其能够执行其所描述的功能的适当的神经网络结构。每个辅助控制神经网络具有相应的参数集。例如,部分表示神经网络可以被配置为递归
神经网络,例如lstm神经网络。作为另一示例,前向预测神经网络和后向预测神经网络可以各自被配置为相应的前馈神经网络,并且潜在嵌入神经网络可以被配置为卷积神经网络,即具有一个或多个卷积网络层的神经网络。
86.通过训练环境表示神经网络110以及可选地训练动作选择策略神经网络130以及辅助神经网络150a-d以(在前向预测训练中)从当前观察生成预测的未来潜在表示并且(在后向预测训练中)从未来观察生成预测的未来内部表示,强化学习系统100可以确定针对参数集118的训练值,其确保环境表示神经网络110生成有意义的且预测性的内部表示,即,给定观察的内部表示,其预示由环境表示神经网络从观察序列中的给定观察之后的一个或多个其他观察生成的内部表示。这种预测性内部表示进而有助于动作选择策略神经网络130生成更有效的策略输出,并因此与代理102的长期目标更紧密地匹配以使预期的长期时间折扣奖励最大化。
87.下面将更详细地描述在辅助预测训练任务上除了自监督表示学习技术之外还使用强化学习训练技术来训练神经网络。
88.图2是用于在前向预测任务上进行训练的示例过程200的流程图。为了方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,适当编程的强化学习系统(例如,图1的强化学习系统100)可以执行过程200。
89.通常,系统可以通过使用从重放存储器中选择的轨迹来执行过程200。例如,轨迹可以是从重放存储器采样的一批轨迹中的一个。轨迹可以包括观察序列,每个观察与由代理(或另一代理)响应于环境(或环境的另一实例)的观察而执行的动作相关联,并且在一些情况下与由代理接收的奖励相关联。具体地,系统可以针对不同未来观察重复地执行过程200,这些不同未来观察在选定轨迹中的给定观察(以下称为“当前”观察)之前有不同时间步骤。例如,系统可以对在选定轨迹中观察序列中的当前观察之后的每个观察执行过程200的一次迭代。
90.系统接收当前观察输入和未来观察输入(202)。
91.当前观察输入可以包括(i)表征环境的当前状态的当前观察以及(ii)由代理在环境的当前状态之前紧接的在前状态下执行的在前动作。未来观察输入可以包括(i)表征在环境的当前状态之后一个或多个步骤的未来状态的未来观察以及(ii)由代理在环境的未来状态之前紧接的在前状态下执行的在前动作。在一些情况下,观察可以包括视觉数据,例如图像或视频帧。在其他情况下,观察可以是附加地结合了关于文本的信息(例如,自然语言指令、奖励或其他感官输入(包括触摸、气味、声音或温度))的多模态观察。
92.图3是在前向预测任务上进行训练的示例图示。在给定时间步骤t处,系统获得当前观察o
t
和表征在环境的当前状态之后k个步骤的未来状态的未来观察o
t+k
,其中k是预定的正整数,并且其中每个“步骤”对应于作为由环境中的代理执行的动作的结果的环境状态转变。
93.系统从未来观察输入生成环境的未来状态的未来潜在表示(204)。为此,系统可以使用潜在嵌入神经网络f并根据潜在嵌入神经网络的参数(“潜在嵌入参数”)的当前值来处理未来观察o
t+k
,以生成未来潜在表示z
t+k
=f(o
t+k
)。
94.系统使用环境表示神经网络hf并根据环境表示神经网络的参数(“环境表示参数”)的当前值来处理当前观察输入以生成环境的当前状态的当前内部表示b
t
(206),该当
前观察输入包括(i)当前观察o
t
和(ii)由代理紧接地在在前环境状态下执行的在前动作a
t-1

95.系统然后从当前内部表示b
t
生成与环境的未来状态相对应的部分未来内部表示b
t,k
。系统可以通过使用当前内部表示b
t
初始化部分表示神经网络h
p
的隐藏状态来做到这一点,例如,通过使部分表示神经网络能够具有与环境表示神经网络相同的隐藏状态,并且此后使用部分表示神经网络h
p
迭代地处理指定在环境的当前状态之后且在环境的未来状态之前的每个环境状态下要由代理执行的相对应的动作的数据,如下面进一步描述的。
96.部分表示神经网络可以被配置为递归神经网络,用于在每个时间步骤处接收包括由代理根据部分表示神经网络的参数(“部分表示参数”)的当前值执行的当前动作的部分表示网络输入,并且更新针对该时间步骤的隐藏状态,即,用于通过处理当前接收到的部分表示网络输入来修改部分表示神经网络的当前隐藏状态。因为部分表示神经网络可以用于模拟环境的状态转变而无需迭代地处理关于环境的附加信息(例如,表征环境状态的观察),所以部分表示神经网络的隐藏状态可以被称为环境状态的部分内部表示,即,与由环境表示神经网络110从观察和动作数据两者生成的(完全)内部表示相反。
97.图4是使用环境表示神经网络生成内部表示和使用部分表示神经网络生成部分内部表示的示例图示。图2中的虚线连接在时间上对齐的内部表示和部分内部表示。
98.在每个时间步骤处,例如,在时间步骤t+1(以下称为“当前”时间步骤)处,系统100可以使用环境表示神经网络(hf)来处理包括(i)当前观察o
t+1
和(ii)在前动作a
t
的环境表示网络输入,并且更新针对该时间步骤的隐藏状态b
t
。更新的隐藏状态b
t+1
对应于环境的当前状态的内部表示,并且可以在数学上被计算为
99.更新的隐藏状态b
t+1
(或者由环境表示神经网络的输出层从更新的隐藏状态生成的输出)可以作为输入被提供给动作选择策略神经网络以用于生成动作选择输出,或者被提供给部分环境表示神经网络,即用于部分环境表示神经网络的隐藏状态的初始化,使得部分环境表示神经网络此后可以从更新的隐藏状态b
t+1
生成环境的未来状态的部分内部表示。例如,未来状态可以是当前状态之后k个步骤的状态,其中k是预定的正整数,并且其中每个“步骤”对应于作为由环境中的代理执行的动作的结果的环境状态转变。
100.在图4的示例中,在时间步骤t+1处,系统可以使用部分环境表示神经网络(h
p
)来处理先前的动作a
t
,并且确定针对该时间步骤的部分环境表示神经网络的更新的隐藏状态b
t,1
。更新的隐藏状态b
t,1
对应于环境的当前状态的部分当前内部表示。
101.根据部分当前内部表示,系统可以迭代地使用部分环境表示神经网络(h
p
)来生成环境的未来状态的多个部分未来内部表示。在每次迭代中,部分环境表示神经网络(h
p
)接收指定由代理紧接地在在前环境状态下执行的在前动作的数据作为输入。例如,在时间步骤t+2(当k=1时)处,系统可以使用部分环境表示神经网络(h
p
)来处理由代理在时间步骤t+1处执行的先前动作a
t+1
,并且确定针对该时间步骤的部分环境表示神经网络的更新的隐藏状态b
t,2
。更新的隐藏状态b
t,2
对应于在环境的当前状态之后一个步骤的未来状态的部分未来内部表示。
102.在数学术语中,与部分当前内部表示和部分未来内部表示相对应的部分表示神经网络的更新的隐藏状态可以被分别计算为:
[0103][0104][0105]
系统从部分未来内部表示b
t,k
生成预测的未来潜在表示,该预测的未来潜在表示是环境的未来状态的未来潜在表示的预测(208)。为了生成预测的未来潜在表示,系统可以将部分未来内部表示b
t,k
作为输入提供给前向预测神经网络g。前向预测神经网络被配置为根据前向预测神经网络的参数(“前向预测参数”)的当前值来处理部分未来内部表示b
t,k
以生成预测的未来潜在表示g(b
t,k
)。
[0106]
系统评估测量未来潜在表示与预测的未来潜在表示之间的差异的第一辅助任务目标函数(210)。第一辅助任务目标函数可以训练环境表示神经网络以从表征环境的当前状态的当前观察生成环境的当前状态的内部表示,该内部表示可以有效地用于预测在环境的当前状态之后的环境的一个或多个未来状态的潜在表示。
[0107]
例如,第一辅助任务目标函数可以被评估为
[0108]
系统确定对环境表示参数的当前值的更新(212)。为了确定更新,系统可以计算第一辅助任务目标函数相对于前向预测参数的梯度,并且将梯度后向传播到部分表示参数,并且然后到环境表示参数。停止梯度算子(如图3中交叉箭头所示)可以由系统实施,以便防止系统的某些组件的参数值(例如,潜在嵌入参数的值)在前向预测任务上进行训练期间被更新。
[0109]
图5是用于在后向预测任务上进行训练的示例过程500的流程图。为了方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,适当编程的强化学习系统(例如,图1的强化学习系统100)可以执行过程500。
[0110]
类似地如上所述,系统可以通过使用从重放存储器中选择的轨迹(例如,在过程200中选择的轨迹)迭代地执行过程500。
[0111]
图6是在后向预测任务上进行训练的示例图示。
[0112]
系统使用环境表示神经网络hf来生成环境的未来状态的未来内部表示(502)。为此,如图6所示,系统可以在多个时间步骤中的每个时间步骤处使用环境表示神经网络hf并根据环境表示参数的当前值来处理观察输入以更新其隐藏状态,例如,修改当前隐藏状态b
t+k-1
以生成更新的隐藏状态b
t+k
,观察输入包括(i)表征环境的当前状态的当前观察o
t
,或者在当前观察之后k个步骤的未来观察o
t+k
,并且直到表征环境的未来状态的未来观察,以及(ii)由代理响应于当前观察o
t
而执行的在前动作a
t-1
,或者由代理响应于未来观察o
t+k
的紧接的在前观察而执行的在前动作a
t+k-1
。环境表示神经网络的最终更新的隐藏状态b
t+k
对应于环境的未来状态的未来内部表示。
[0113]
系统从未来潜在表示生成预测的未来内部表示,该预测的未来内部表示是环境的未来状态的未来内部表示的预测(504)。如上所述,未来潜在表示z
t+k
=f(o
t+k
)可以由潜在嵌入神经网络f从未来观测o
t+k
生成。
[0114]
为了生成预测的未来内部表示,系统可以将未来潜在表示z
t+k
作为输入提供给后向预测神经网络g’。后向预测神经网络被配置为根据后向预测神经网络的参数(“后向预测参数”)的当前值来处理未来潜在表示z
t+k
,以生成预测的未来内部表示g

(z
t+k
)。
[0115]
系统评估测量未来内部表示与预测的未来内部表示之间的差异的第二辅助任务目标函数(506)。第二辅助任务目标可以训练潜在嵌入神经网络和后向预测神经网络,以从表征环境的当前状态之后的环境的未来状态的未来观察生成预测的未来内部表示,该预测的未来内部表示倾向于匹配通过使用环境表示神经网络从相对应的未来观察输入生成的未来内部表示,未来观察输入包括(i)表征环境的未来状态的未来观察和(ii)由代理在环境的未来状态的紧接的在前状态下执行的在前动作。例如,第二辅助任务目标函数可以被评估为
[0116]
类似地如上所述,系统基于计算第二辅助任务目标函数相对于网络参数的梯度,例如通过反向传播,确定对潜在嵌入参数和后向预测参数的当前值的更新。停止梯度算子可以由系统实施,以便防止环境表示参数的值在后向预测任务上进行训练期间被更新。
[0117]
在一些实施方式中,系统将前向预测训练和后向预测训练与系统的强化学习训练进行交错。简而言之,系统的强化学习训练训练动作选择策略神经网络,以通过使用强化学习技术迭代地调整策略参数的值来生成使系统所接收的预期的长期时间折扣奖励最大化的动作选择输出。
[0118]
系统根据策略参数的当前值使用动作选择策略神经网络来处理给定的内部表示,以生成指定在给定的环境状态下要由代理执行的动作的动作选择输出。给定的内部表示可以是由环境表示神经网络根据处理给定的观察输入而生成的隐藏状态,给定的观察输入包括(i)表征给定环境状态的当前观察和(ii)由代理响应于给定观察的紧接的在前观察而执行的在前动作。
[0119]
系统基于当前动作选择输出并根据适当的强化学习训练技术来确定强化学习损失,如上文参考图1所述
[0120]
系统通过计算强化损失相对于策略参数的梯度来确定对策略参数的当前值的更新。在一些实施方式中,系统附加地通过将强化学习损失的梯度后向传播到环境表示参数中来确定对环境表示参数的当前值的更新。
[0121]
然后,系统继续将从强化学习训练以及前向预测训练和后向预测训练确定的更新应用于神经网络的参数值。这涉及通过使用适当的梯度下降优化方法(例如,随机梯度下降、rmsprop或adam)来更新以下中的一些或全部:环境表示参数、部分表示参数、策略参数、前向预测参数和后向预测参数、以及潜在嵌入参数。替代地,一旦已经对整个小批量的选定轨迹执行了过程200或500,系统仅继续更新网络参数的当前值。小批量通常包括固定数量的轨迹,例如,8个、16个或32个。换句话说,系统例如通过计算在过程200或500的固定次数的迭代期间确定的相应梯度的加权或未加权平均值来进行组合,并基于组合的梯度继续更新当前网络参数值。
[0122]
通常,系统可以重复地执行过程200和500,直到达到终止标准,例如,在过程200或500已经执行预定次数之后,或者在梯度已经收敛到指定值之后。
[0123]
本说明书结合系统和计算机程序组件来使用术语“配置”。对于一个或多个计算机的系统被配置为执行特定操作或动作,意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使该系统执行操作或动作。对于
一个或多个计算机程序被配置为执行特定操作或动作,意味着一个或多个程序包括指令,当由数据处理装置执行时,这些指令使该装置执行这些操作或动作。
[0124]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中实施,在有形体现的计算机软件或固件中实施,在计算机硬件(包括本说明书中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或者它们中的一个或多个的组合。替代地或附加地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,这种传播信号被生成以对信息进行编码,以传输到合适的接收器装置供数据处理装置执行。
[0125]
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,举例来说包括可编程处理器、计算机或者多个处理器或计算机。该装置也可以是或还包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
[0126]
计算机程序(其也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或者声明性或过程性语言;并且它可以用任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。程序可以但不需要对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分(例如,标记语言文档中存储的一个或多个脚本)中,被存储在专用于所讨论的程序的单个文件中,或者被存储在多个协作文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上执行,或者在位于一个地点或分布在多个地点并通过数据通信网络互连的多个计算机上执行。
[0127]
在本说明书中,术语“数据库”被广泛地用于指代任何数据集合:数据不需要以任何特定的方式被结构化,或者根本不需要被结构化,并且它可以被存储在一个或多个位置的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。
[0128]
类似地,在本说明书中,术语“引擎”被广泛地用来指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实施为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,多个引擎可以在相同的一个或多个计算机上安装并运行。
[0129]
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,fpga或asic),或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
[0130]
适于执行计算机程序的计算机可以基于通用微处理器或专用微处理器或两者,或
者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理器以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路来补充或并入其中。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),以从其接收数据,或向其传送数据,或两者兼有。然而,计算机不需要具有这样的设备。此外,计算机可以被嵌入在另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。
[0131]
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性的存储器、介质和存储器设备,举例来说包括:半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。
[0132]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从网络浏览器接收的请求而向用户设备上的网络浏览器发送网页。此外,计算机可以通过向个人设备(例如,运行消息传送应用的智能电话)发送文本消息或其他形式的消息并反过来接收来自用户的响应消息来与用户进行交互。
[0133]
用于实施机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,以用于处理机器学习训练或生产的公共和计算密集型部分,即推理、工作负荷。
[0134]
可以使用机器学习框架(例如,tensorflow框架、微软认知工具包框架、apache singa框架或apache mxnet框架)来实施和部署机器学习模型。
[0135]
本说明书中描述的主题的实施例可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面、网络浏览器或应用的客户端计算机,用户可以通过该图形用户界面、网络浏览器或应用与本说明书中描述的主题的实施方式进行交互),或者一个或多个这样的后端组件、中间件组件或前端组件的任何组合。该系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(lan)和广域网(wan)(例如,互联网)。
[0136]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各自的计算机上运行并且具有与彼此的客户端-服务器关系的计算机程序而产生的。在一些实施例中,例如,出于向与充当客户端的设备进行交互的用户显示数据并从该用户接收用户输入的目的,服务器向用户设备发送数据(例如,html页面)。可以在服务器处从设备接收在用户设备处生成的数据(例如,用户交互的结果)。
[0137]
虽然本说明书包含许多具体的实施细节,但是这些不应被解释为对任何发明的范
围或可能要求保护的范围的限制,而是对特定发明的特定实施例所特有的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或者以任何合适的子组合来实施。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
[0138]
类似地,尽管在附图中以特定次序描绘了操作,并且在权利要求中以特定次序记载了操作,但是这不应被理解为要求这些操作以所示的特定次序或顺序次序来执行,或者要求所有示出的操作都被执行,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,如上所述的实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都要求这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装在多个软件产品中。
[0139]
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的次序来执行,并且仍然获得期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序来获得期望的结果。在一些情况下,多任务和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1