使用对规划嵌入的注意操作生成在环境中实现目标的隐式规划的制作方法

文档序号:31550761发布日期:2022-09-17 07:22阅读:70来源:国知局
使用对规划嵌入的注意操作生成在环境中实现目标的隐式规划的制作方法
使用对规划嵌入的注意操作生成在环境中实现目标的隐式规划


背景技术:

1.本说明书涉及使用机器学习模型处理数据。
2.机器学习模型接收输入并基于接收的输入生成输出,例如预测输出。一些机器学习模型是参数模型,并根据接收的输入和模型的参数值生成输出。
3.一些机器学习模型是深度模型,它们采用多层模型来为接收的输入生成输出。例如,深度神经网络是深度机器学习模型,它包括一个输出层和一个或多个隐藏层,每个隐藏层将非线性变换应用于接收的输入以生成输出。


技术实现要素:

4.本说明书描述了一种动作选择系统,被实现为在一个或多个位置的一个或多个计算机上的计算机程序,用于控制与环境交互的代理以实现目标。
5.在整个说明书中,实体的“嵌入”(例如,对环境的观察)可以指作为数值的有序集合的实体的表示,例如,数值的向量或矩阵。可以生成实体的嵌入,例如,作为处理表征实体的数据的神经网络的输出。
6.根据第一方面,提供了一种由一个或多个数据处理装置执行的方法,用于选择要由与环境交互的代理执行以实现目标的动作。
7.方法包括生成与外部存储器中的多个经验元组中的每一个对应——例如包括其表示——的相应规划嵌入,其中每个经验元组表征在相应前一时间步代理与环境的交互。可选地,规划嵌入也可以包括目标的表示,例如嵌入。
8.因此,在实现方式中,规划嵌入表征代理与环境的先前交互,以及可选地,表征目标。在实现方式中,规划嵌入不包括表征当前环境状态的当前观察的表示。
9.方法可以包括使用规划神经网络处理规划嵌入以生成用于实现目标的隐式规划。隐式规划因此可以包括关于代理与环境的先前交互以及可选地目标的嵌入编码信息。如后面所述,它也可能取决于当前观察的表示。它可以隐式地表征能够由代理执行以完成目标的动作。规划神经网络可以是被配置为处理规划嵌入——可选地,目标嵌入,并且在实现方式中,当前观察的表示——的任何神经网络。然而,在实现方式中,规划神经网络可以包括一个或多个自注意层,如后面所述。
10.方法还可以包括使用隐式规划来选择代理要在时间步执行的动作。
11.在实现方式中,方法使用对规划嵌入的注意迭代地更新规划嵌入,例如使用注意子网络。同一注意——例如自注意——函数的多次迭代可以被应用于规划嵌入。可以基于规划嵌入和当前观察来生成隐式规划。生成隐式规划可以包括将当前嵌入的表示附加到每个规划嵌入并使用一个或多个神经网络层(例如自注意层,例如使用注意子网络)来处理组合嵌入。在实现方式中,这些神经网络层不处理当前观察的表示。
12.广义地,使用注意涉及应用注意机制,例如自注意机制,其将规划嵌入相互关联以确定隐式规划。注意机制的细节各不相同,但是通常,注意机制可以将学习的查询向量和学
习的键值向量对集合映射到输出。输出可以被计算为值的加权和,权重取决于查询和键的相似性。在这种类型的自注意机制中,注意机制的输入可以是规划嵌入集合,且输出可以是相同规划嵌入集合的变换版本。仅作为一个示例,arxiv:1706.03762中描述了一种点积注意机制(它也描述了多头注意的示例)。在实现方式中,使用(自)注意有助于确定过去状态之间的关系。
13.在一些实现方式中,使用对规划嵌入的注意涉及使用残差神经网络块(即,包括残差或跳过连接的一个)来处理规划嵌入。残差神经网络块可以被配置为向规划嵌入应用一系列操作,包括层归一化操作(参见例如arxiv:1607:06450)、注意操作和线性投影操作。
14.方法可以涉及使用强化学习技术,例如通过反向传播强化学习目标函数的梯度,联合训练规划神经网络和动作选择。强化学习目标函数可以是任何合适的目标函数,例如时间差异目标函数或策略梯度目标函数,例如使用演员-评论家目标函数,取决于代理响应于动作从环境接收的奖励。
15.可以实现本说明书中描述的主题的特定实施例以达到以下优点中的一个或多个。
16.本说明书中描述的系统可以使代理能够使用有关环境而学习的信息来生成“隐式规划”以解决环境中的任务(即完成目标)。隐式规划是指隐式地表征可以由代理执行以完成任务的动作的数据(例如,被表示为数值的有序集合的数字数据,例如,数值的向量或矩阵)。通过使用隐式规划选择代理要执行的动作,本说明书中描述的系统可以使代理能够更有效地完成任务和探索环境(例如,通过在更少的时间步内完成任务和探索环境)。也就是说,所描述的技术允许混合探索和目标导向的行为,并且同时使代理能够学习在很长的时间尺度上进行规划,使得一旦经过训练,代理就能够在其训练经验之外进行泛化。因此,特别地,本说明书中描述的系统可以使代理能够利用其先前获得的任务和环境的知识来在新环境中有效地执行新的(即,以前未见过的)任务。在一个示例中,代理可以是执行家庭任务(例如,清洁任务)的消费者机器人,并且本说明书中描述的系统可以能够在代理被放置在新环境(例如,不同房子里的房间)时使代理有效执行新任务。
17.本说明书中描述的系统可以通过基于代理与环境的过去交互生成规划嵌入,并使用注意操作迭代地更新规划嵌入,来生成解决任务的隐式规划。使用注意操作迭代地更新规划嵌入允许在规划嵌入之间共享信息,从而促进更有效的规划,这可以使代理能够更有效地完成任务并探索环境,例如经过更少的时间步。
18.本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
19.图1是示例动作选择系统的框图。
20.图2示出包括在动作选择系统中的规划神经网络的示例架构。
21.图3是用于选择要由与环境交互的代理执行以实现目标的动作的示例处理的流程图。
22.图4是图1的系统的示例的示意图。
23.不同附图中相同的附图标记和名称表示相同的元件。
具体实施方式
24.图1是示例动作选择系统100的框图。动作选择系统100是被实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,实现下文描述的系统、组件和技术。
25.系统100选择要由与环境106交互的代理104在多个时间步的每一个处执行以实现目标的动作102。在每个时间步,系统100接收表征环境106的当前状态的数据,例如环境106的图像,并且响应于接收的数据选择要由代理104执行的动作102。表征环境106的状态的数据在本说明书中将被称为观察值110。在每个时间步,环境106在时间步的状态(如观察值110所表征的)取决于环境106在前一时间步的状态和代理104在前一时间步执行的动作102。
26.在每个时间步,系统100可以接收基于环境106的当前状态和代理104在该时间步的动作102的奖励108。通常,奖励108可以被表示为数值。奖励108可以基于环境106中的任何事件或方面。例如,奖励108可以指示代理104是否已经完成目标(例如,导航到环境106中的目标位置)或代理104朝向实现目标的进度。
27.在一些实现方式中,环境是真实世界环境并且代理是与真实世界环境交互的机械代理。例如,代理可以是与环境交互以实现目标的机器人,例如,在环境中定位感兴趣的对象,将感兴趣的物体移动到环境中的指定位置,以指定方式物理操作环境中的感兴趣对象,或导航到环境中指定的目的地;或者,代理可以是在环境中导航到环境中指定目的地的自主或半自主陆地、空中或海上载具。然后,动作可以是机械代理在真实世界环境中为实现目标而采取的动作,并且可以包括控制机械代理的控制信号。
28.在这些实现方式中,观察可以包括例如图像、对象位置数据和传感器数据中的一个或多个,以在代理与环境交互时捕获观察,例如来自图像、距离或位置传感器或来自致动器的传感器数据。
29.例如,在机器人的情况下,观察可以包括表征机器人当前状态的数据,例如以下一个或多个:关节位置、关节速度、关节力、扭矩或加速度,例如重力补偿扭矩反馈,以及机器人持有的物品的全局或相对位姿。
30.在机器人或其他机械代理或载具的情况下,观察可以类似地包括代理的一个或多个部分的位置、线速度或角速度、力、扭矩或加速度以及全局或相对姿势中的一个或多个。观察可以被定义为1、2或3维,并且可以是绝对和/或相对观察。
31.观察也可以包括例如由感测真实世界环境的多个传感器设备中的一个获得的数据;例如,感测的电子信号,诸如马达电流或温度信号;和/或例如来自相机或lidar传感器的图像或视频数据,例如来自代理的传感器的数据或来自与环境中的代理分开定位的传感器的数据。
32.在电子代理的情况下,观察可以包括来自监视工厂或服务设施部分的一个或多个传感器的数据,例如电流、电压、功率、温度和其他传感器和/或表示设备电子和/或机械项目功能的电子信号。
33.动作可以是控制机器人的控制输入,例如机器人关节的扭矩或更高级别的控制命令,或自主或半自主陆地或空中或海上载具的扭矩,例如载具的控制面或其他控制元件的扭矩或高级别的控制命令。
34.换言之,动作可以包括例如机器人的一个或多个关节或另一机械代理的部分的位置、速度或力/扭矩/加速度数据。动作可以附加地或可选地包括电子控制数据,例如电机控制数据,或更一般地,用于控制环境内的一个或多个电子设备的数据,其控制对观察的环境状态有影响。例如,在自主或半自主的陆地、空中或海上载具的情况下,行动可以包括控制导航(例如转向)和移动(例如车辆的制动和/或加速)的行动。
35.在一些实现方式中,环境是模拟环境,例如上述真实世界环境的模拟,并且代理被实施为与模拟环境交互的一个或多个计算机。例如,模拟环境可以是机器人或载具的模拟,并且强化学习系统可以在模拟上进行训练,然后一旦训练,就可以在真实世界中使用。
36.例如,模拟环境可以是运动模拟环境,例如驾驶模拟或飞行模拟,并且代理可以是在运动模拟中导航的模拟载具。在这些实现方式中,动作可以是控制模拟用户或模拟载具的控制输入。
37.在另一个示例中,模拟环境可以是视频游戏并且代理可以是玩视频游戏的模拟用户。
38.在另一个示例中,模拟环境可以是蛋白质折叠环境,使得每个状态是蛋白质链的相应状态并且代理是用于确定如何折叠蛋白质链的计算机系统。在此示例中,动作是用于折叠蛋白质链的可能折叠动作,并且要实现的目标可以包括例如折叠蛋白质以使蛋白质稳定并使其实现特定生物学功能。
39.通常在模拟环境的情况下,观察可以包括一个或多个先前描述的观察或观察类型的模拟版本,并且动作可以包括一个或多个先前描述的动作或动作类型的模拟版本。
40.在一些情况下,动作选择系统100可以被用于控制代理与模拟环境的交互,并且训练引擎可以基于代理与模拟环境的交互来训练动作选择系统的参数(例如,使用强化学习技术)。在基于代理与模拟环境的交互训练动作选择系统之后,可以将代理部署在真实世界环境中,并且训练后的动作选择系统可以被用于控制代理与真实世界环境的交互。基于代理与模拟环境(即,并非真实世界环境)的交互来训练动作选择系统可以避免代理的磨损,并且可以减少通过执行不当的选择动作,代理可能会损坏自身或其环境的各个方面。
41.在一些其他应用中,代理可以控制真实世界环境中的动作,包括设备项目,例如在数据中心或电网干线电力或水分配系统中,或者在制造工厂或服务设施中。观察结果可能与工厂或设施的运行有关。例如,观察可以包括对设备使用的电力或水的观察,或对发电或配电控制的观察,或对资源使用或废物产生的观察。代理可以控制环境中的动作以实现提高效率的目标,例如通过减少资源使用,和/或减少环境中操作的环境影响,例如通过减少废物。动作可以包括对工厂/设施的设备项目进行控制或施加操作条件的动作,和/或导致工厂/设施的操作中的设置改变的动作,例如调整或打开/关闭工厂/设施的组件。
42.在一些进一步的应用中,环境是真实世界的环境,并且代理管理跨计算资源的任务分配,例如在移动设备上和/或在数据中心中。在这些实现方式中,动作可以包括将任务分配给特定计算资源,并且要实现的目标可以包括最小化使用指定计算资源完成任务集合所需的时间。
43.作为另一示例,动作可以包括呈现广告,观察可以包括广告印象或点击计数或率,并且奖励可以表征一个或多个用户所采取的项目或内容的先前选择。在该示例中,要实现的目标可以包括最大化一个或多个用户对项目或内容的选择。
44.可选地,在任何上述实现方式中,在任何给定时间步的观察可以包括来自可能有利于表征环境的前一时间步的数据,例如,在前一时间步执行的动作、在前一时间步接收的奖励等。
45.系统100使用外部存储器114、规划神经网络200和动作选择神经网络120选择在每个时间步要由代理104执行的动作,如下面将更详细描述的。
46.存储器114存储对应于多个前一时间步中的每一个的相应“经验元组”(例如,存储器114可以存储当前时间步之前的每个时间步的相应经验元组)。存储器114可以例如被实现为逻辑数据存储区域或物理数据存储设备。
47.时间步的经验元组是指表征在前一时间步代理104与环境106的交互的数据。例如,前一时间步的经验元组可以包括以下的相应嵌入(表示):(i)前一时间步的观察;(ii)代理在前一时间步执行的动作;以及(iii)由代理在前一时间步执行的操作产生的后续观察。
48.系统100可以通过将观察提供给嵌入神经网络来生成观察的嵌入(例如,包括在经验元组中),该嵌入神经网络被配置为处理观察以生成对应的嵌入。系统100可以通过将动作与唯一地标识来自可能动作集合的动作的独热嵌入(one-hot embedding)相关联来生成动作的嵌入(例如,包括在经验元组中)。
49.在一些实现方式中,系统100在每次满足清除标准时清除存储器114(即,通过删除或覆盖存储器114的内容)。例如,如果代理在环境中完成了目标,如果代理被放置在新环境中,或者如果存储器已满(例如,因为经验元组存储在存储器的每个可用槽中),则可以满足清除标准。
50.为了选择要在时间步执行的动作,系统100生成与存储在存储器114中的多个经验元组中的每一个对应的相应“规划”嵌入116。在一些实现方式中,系统100可以为经验元组生成规划嵌入116,例如,通过将“目标”观察的嵌入级联到经验元组,其中目标观察表示当代理的目标已经完成时的环境状态。例如,如果代理的目标是导航到环境中的指定位置,则目标观察可以是表示当代理位于指定位置时的环境状态的观察。在一些其他实现中,系统100可以将与经验元组相关联的规划嵌入116识别为经验元组的副本(例如,使得规划嵌入116和存储在存储器114中的经验元组相同)。
51.系统100可以生成与存储在存储器114中的每个经验元组对应的相应规划嵌入116。可选地,系统100可以生成仅用于存储在存储器114中的经验元组的适当子集的规划嵌入116,例如,仅用于与预定数量l个最近时间步对应的经验元组。(l可以是任何适当的正整数值,例如l=5)。
52.规划神经网络200被配置为处理:(i)表示代理与环境的先前交互的规划嵌入116;和(ii)表示环境当前状态的当前观察110,以生成“隐式规划”118,用于完成代理的目标。隐式规划118是可以编码关于环境的当前状态的信息(来自当前观察110)、代理与环境交互的历史(来自规划嵌入116)以及可选地由代理完成的目标的嵌入(也来自规划嵌入116)。
53.规划神经网络200可以具有使其能够执行其描述的功能的任何适当的神经网络架构。作为从规划嵌入116生成隐式规划118的一部分,规划神经网络200可以通过使用自注意操作更新规划嵌入来丰富规划嵌入。参考图2更详细地描述规划神经网络200的示例架构。
54.动作选择神经网络120被配置为处理包括由规划神经网络200生成的隐式规划118
的输入以生成动作选择输出122。可选地,动作选择神经网络120可以处理除了隐式规划118之外的其他数据,例如动作选择神经网络120也可以处理以下一个或多个的相应嵌入:当前观察、在前一时间步执行的动作或在前一时间步接收的奖励。动作选择输出122可以包括代理可以执行的可能动作集合中的每个动作的相应分数。
55.系统100使用动作选择神经网络120在该时间步生成的动作选择输出122来选择将由代理104在该时间步执行的动作102。例如,系统100可以根据动作选择输出122而选择具有最高分数的动作作为代理在该时间步执行的动作。在一些实现方式中,系统100根据探索策略选择要由代理执行的动作。例如,系统100可以使用∈-贪婪探索策略。在此示例中,系统100可以(根据动作选择输出122)以概率1-∈选择最高分数的动作,并以概率∈随机选择动作,其中∈是0到1之间的数字。
56.动作选择神经网络120可以具有使其能够执行其描述的功能的任何适当的神经网络架构。例如,动作选择神经网络可以包括以任何适当的配置(例如,作为层的线性序列)连接的任何适当的神经网络层(例如,卷积层、全连接层、注意层等)。在一个示例中,动作选择神经网络120可以包括:被配置为接收隐式规划118的输入层、多个全连接层的线性序列以及包括与代理可以执行的可能动作集合中的每个动作对应的相应神经元的输出层。
57.在系统100选择在该时间步要由代理104执行的动作102之后,代理104通过执行动作102与环境106交互,并且系统100可以基于交互接收奖励108。系统100可以生成表征在该时间步代理与环境的交互的经验元组,并将经验元组存储在存储器114中。
58.训练引擎112可以使用由代理104与环境106的交互产生的观察110和对应的奖励108来使用强化学习技术训练动作选择系统100。训练引擎112通过迭代地调整动作选择神经网络120和规划神经网络200的参数来训练动作选择系统100。训练引擎112可以通过动作选择系统100迭代地反向传播强化学习目标函数的梯度来调整动作选择系统100的参数。通过训练动作选择系统100,训练引擎112可以使动作选择系统100选择增加由动作选择系统100接收的奖励的累积测量(例如,长期时间折扣累积奖励)并使代理更有效地完成其目标(例如,通过更少的时间步)的动作。
59.图2显示出包括在参考图1描述的动作选择系统100中的规划神经网络200的示例架构。
60.规划神经网络200被配置为处理:(i)表示代理与环境的先前交互的规划嵌入116的集合,和(ii)表示环境的当前状态的当前观察110,以生成隐式规划118,用于完成代理的目标。
61.规划神经网络200包括注意子网络202和融合子网络206,接下来将更详细地描述它们。
62.注意子网络202被配置为迭代地(即,在一个或多个迭代中的每一个)更新规划嵌入116以生成更新的规划嵌入204。更具体地,注意子网络202通过使用一个或多个“注意块”的序列处理规划嵌入116来迭代地更新规划嵌入116。每个注意块是一个或多个神经网络层的集合,被配置为接收当前规划嵌入的集合,通过将注意操作应用于当前规划嵌入来更新当前规划嵌入,并输出更新的规划嵌入。第一注意块可以接收初始规划嵌入116,每个后续注意块可以接收由前一个注意块输出的规划嵌入,并且最后一个注意块可以输出更新的规划嵌入204(即,定义注意子网络202的输出)。
63.每个注意块通过对规划嵌入应用注意操作来更新规划嵌入,特别是通过对规划嵌入使用自注意来更新每个规划嵌入。为了对规划嵌入使用自注意来更新给定规划嵌入,注意块可以确定给定规划嵌入与规划嵌入集合中的每个规划嵌入之间的相应“注意权重”。然后,注意块可以使用(i)注意权重和(ii)规划嵌入来更新给定的规划嵌入。
64.例如,如果规划嵌入116由表示,其中n是规划嵌入的数量,则为了更新规划嵌入pi,注意块可以确定注意权重其中a
i,j
表示pi和pj之间的注意权重,如:
[0065][0066][0067]
其中wq和wk是学习的参数矩阵,softmax(
·
)表示soft-max归一化操作,并且c是常数。使用注意权重,注意块可以将规划嵌入pi更新为:
[0068][0069]
其中wv是学习的参数矩阵。(wqpi可以被称为规划嵌入pi的“查询嵌入”,wkpj可以被称为规划嵌入pj的“键嵌入”,并且wvpj可以被称为规划嵌入pj的“值嵌入”)。参数矩阵wq(“查询嵌入矩阵”)、wk(“键嵌入矩阵”)和wv(“值嵌入矩阵”)是注意块的可训练参数。通常,注意子网络202中的每个注意块可以使用具有不同参数值的查询、键和值嵌入矩阵来更新规划嵌入。
[0070]
可选地,每个注意块可以具有多个“头”,每个“头”生成与每个输入规划嵌入对应的相应更新规划嵌入,即,使得每个输入规划嵌入与多个更新规划嵌入相关联。例如,每个头可以根据参考等式(1)-(3)进行描述的参数矩阵wq、wk和wv的不同值生成更新的规划嵌入。具有多个头的注意块可以实现“门控”操作,以将头生成的更新规划嵌入组合起来用于输入规划嵌入,即生成与每个输入规划嵌入相对应的单个更新规划嵌入。例如,注意块可以使用一个或多个神经网络层(例如,全连接神经网络层)处理输入规划嵌入,以为每个头生成相应门控值。然后,注意块可以根据门控值组合与输入规划嵌入相对应的更新规划嵌入。例如,注意块可以为输入规划嵌入pi生成更新的规划嵌入:
[0071][0072]
其中k为头编索引,αk是头k的门控值,是对于输入规划pi、由头k生成的更新的规划嵌入。参考等式(1)-(4)描述的注意操作可以被称为“多头键-查询-值注意操作”。
[0073]
通过使用自注意操作更新规划嵌入116,规划神经网络200使用学习操作在规划嵌入116之间共享信息,从而利用来自其他规划嵌入的信息内容来丰富每个规划嵌入。丰富规划嵌入116的信息内容可以使规划神经网络200能够生成具有更多信息的隐式规划118,这使代理能够更有效地完成环境中的目标,例如,经由更少的时间步。
[0074]
在一些实现方式中,如参考图1所描述的,动作选择系统100生成仅对应于存储在存储器中的经验元组的适当子集的规划嵌入116,例如,仅对应于l个最近时间步的经验元组。为了使规划系统100能够合并来自所有存储的经验元组的信息(即,除了仅l个最近经验元组之外),动作选择系统100可以生成与存储在存储器中的每个经验元组对应的相应“静态”嵌入。动作选择系统100可以生成对应于经验元组的静态嵌入,例如,通过将目标观察的嵌入级联到经验元组。在为存储在存储器中的经验元组生成静态嵌入之后,除了规划嵌入116之外,动作选择系统100然后可以向规划系统100提供静态嵌入。
[0075]
除了对规划嵌入本身使用自注意(如上所述)之外,注意子网络202的每个注意块可以对静态嵌入使用交叉注意来更新规划嵌入。例如,每个注意块可以首先对静态嵌入使用交叉注意来更新规划嵌入,然后对规划嵌入使用自注意来更新规划嵌入。通常,注意子网络202的注意块不更新静态嵌入,即,即使规划嵌入被注意子网络202的每个注意块更新,静态嵌入也保持固定。
[0076]
为了对静态嵌入使用交叉注意来更新给定规划嵌入,注意块可以确定给定规划嵌入和每个静态嵌入之间的相应注意权重。然后,注意块可以使用(i)注意权重和(ii)静态嵌入来更新给定规划嵌入。例如,如果通过表示规划嵌入116,并且通过表示静态嵌入,则更新规划嵌入pi,注意块可以确定注意权重其中a
i,j
表示pi和sj,之间的注意权重,如:
[0077][0078][0079]
其中wq和wk是学习参数矩阵,softmax(
·
)表示soft-max归一化操作,且c是常数。使用注意权重,注意块可以将规划嵌入pi更新为:
[0080][0081]
其中wv是学习参数矩阵。可选地,注意块可以具有多个头,多个头对静态嵌入使用交叉注意生成与每个输入规划嵌入相对应的多个更新规划嵌入。如上所述,注意块可以组合与每个输入规划嵌入对应的多个更新规划嵌入,以生成与每个输入规划嵌入对应的单个更新规划嵌入。
[0082]
通过对外部存储器中的每个经验元组使用静态嵌入上的交叉注意来更新规划嵌入116,规划神经网络200可以有效地从代理与环境的所有先前交互中捕获信息,从而生成信息量更大的隐式规划。动作选择系统可以使用具有更多信息的隐式规划来选择使代理能够更有效地完成环境中的目标的动作,例如,经由更少的时间步。通过避免例如使用注意操作来更新静态嵌入,规划神经网络可以显着减少计算资源(例如存储器和计算能力)的消耗。
[0083]
除了上述注意操作之外,每个注意块还可以实现任何其他适当的神经网络操作,
以更新当前的规划嵌入。例如,每个注意块可以是处理当前规划嵌入bi以生成更新的规划嵌入b
i+1
的残差块,如下:
[0084]bi+1
=f(bi+mha(layernorm(bi)))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0085]
其中,layernorm(
·
)表示层规范化操作,mha(
·
)表示多头注意操作(包括对规划嵌入bi的自注意,以及可选地,对静态嵌入的交叉注意),以及f(
·
)表示线性投影操作。
[0086]
融合子网络206被配置为处理:(i)更新的规划嵌入204,和(ii)当前观察110,以生成用于实现目标的隐式规划118。通常,融合子网络206可以具有使其能够执行其描述的功能的任何适当的神经网络架构,包括以任何适当的配置连接的(例如,如层的线性序列)任何适当的神经网络层(例如,卷积层或全连接层)。
[0087]
例如,为了生成隐式规划118,融合子网络206可以生成当前观察110的嵌入,例如,通过使用嵌入神经网络处理当前观察110。融合子网络206然后可以将当前观察110的嵌入附接(连接)到每个更新的规划嵌入204以生成与每个更新的规划嵌入204对应的相应“组合”嵌入。融合子网络206可以使用一个或多个神经网络层(例如,全连接层)处理每个组合嵌入以生成与每个更新的规划嵌入204对应的相应“变换”嵌入。融合子网络206可以通过将池化操作应用于变换的嵌入而生成隐式规划。池化操作可以是任何适当的操作,当被应用于变换的嵌入时,生成具有与变换的嵌入数量无关的维度的隐式规划。例如,池化操作可以是逐特征的最大池化操作,即隐式规划被定义为与每个变换的嵌入具有相同的维度,并且隐式规划的每个条目被定义为变换的嵌入的对应条目的最大值。
[0088]
规划神经网络200的参数,包括注意子网络202(包括其组成的注意块)和融合子网络206的参数,与动作选择神经网络120的参数一起由使用强化学习技术的训练引擎(如参考图1所述)联合训练。特别是,强化学习目标函数的梯度通过动作选择神经网络被反向传播到规划神经网络的融合子网络和注意子网络中。这些梯度用于调整规划神经网络的参数,使得能够生成隐式规划编码信息,当由动作选择神经网络处理时,会导致选择允许代理有效完成环境中的目标的动作。
[0089]
图3是用于选择要由与环境交互的代理执行以实现目标的动作的示例处理300的流程图。为了方便,处理300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,动作选择系统,例如图1的动作选择系统100,根据本说明书适当地编程,可以执行处理300。
[0090]
系统生成与外部存储器中的多个经验元组中的每一个对应的相应规划嵌入(302)。每个经验元组表征在相应前一时间步代理与环境的交互。
[0091]
系统使用规划神经网络处理规划嵌入,以生成用于实现目标的隐式规划(304)。
[0092]
系统使用隐式规划选择代理要在时间步执行的动作(306)。
[0093]
图4是图1的系统示例的示意图,其中与先前描述的元件类似的元件由类似的附图标记表示。
[0094]
本说明书在系统和计算机程序组件中使用术语“被配置为”。对于一个或多个被配置为执行特定操作或动作的计算机的系统,意味着系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中导致系统执行操作或动作。对于将被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行该操作或动作。
[0095]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中,在有形体现的计算机软件或固件中,在计算机硬件中实现,包括本说明书中公开的结构及其等同结构,或它们中的一个或多个的组合。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或它们中的一个或多个的组合。可选地或附加地,程序指令可以被编码在人工产生的传播信号上,例如机器产生的电,光或电磁信号,其被产生以对信息进行编码用于传输到合适的接收器装置由数据处理装置执行。
[0096]
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其一个或多个的组合的代码。
[0097]
也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言来编写,包括编译或解释语言,声明性或程序性语言;它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元进行部署。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,专用于所讨论程序的单个文件或多个协调文件,例如,存储一个或多个模块、子程序或部分代码的文件。可以将计算机程序部署为在一个计算机上执行,或者在位于一个站点上或分布在多个站点上并通过数据通信网络互连的多个计算机上执行。
[0098]
类似地,在本说明书中,术语“引擎”广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或处理。通常,引擎将被实现为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在相同的一个或多个计算机上安装并运行多个引擎。
[0099]
本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程计算机来执行。处理和逻辑流程还可以通过专用逻辑电路(例如,fpga或asic)或者通过专用逻辑电路与一个或多个编程计算机的组合来执行。
[0100]
适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其他类型的中央处理器。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于进行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁、磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或两者。然而,计算机不必具有此类设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备,例如,通用串行总线(usb)闪存驱动器,仅举几例。
[0101]
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性
存储器、介质和存储设备,包括例如半导体存储设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom磁盘。
[0102]
为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及键盘和指示设备(例如,鼠标或轨迹球,用户可通过其向计算机提供输入)的计算机上实现本说明书中描述的主题的实施例。其他种类的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互,例如,通过响应从网络浏览器收的请求,将网页发送到用户设备上的网络浏览器。此外,计算机可以通过将文本消息或其他形式的消息发送到个人设备(例如,运行消息收发应用的智能手机),并从用户接收响应消息来与用户交互。
[0103]
用于实现机器学习模型的数据处理设备还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产(即推理、工作负载)的公共和计算密集型部分。
[0104]
可以使用机器学习框架(例如,tensorflow框架、microsoft cognitive toolkit框架、apache singa框架或apache mxnet框架)来实现和部署机器学习模型。
[0105]
本说明书中描述的主题的实施例可以实现在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过图形用户界面或web浏览器与本说明书中描述的主题的实现进行交互)或者包括一个或多个这种后端组件,中间件组件或前端组件的任意组合的计算系统中。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(lan)和广域网(wan),例如,互联网。
[0106]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系通过在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序产生。在一些实施例中,服务器例如为了向与作为客户端的设备交互的用户显示数据并从中接收用户输入的目的,向用户设备发送例如html页面的数据。可以在服务器上从设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0107]
尽管本说明书包含许多特定实现细节,但是这些细节不应被解释为对任何发明或所要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在单独的实施例的上下文中在本说明书中描述的特定特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管上面可以将特征描述为以特定组合起作用并且甚至最初如此宣称,但是在一些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合用于子组合或子组合的变型。
[0108]
类似地,尽管在附图中以特定顺序描绘操作并且在权利要求中对其进行叙述,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或打包成多个软件产品。
[0109]
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理不一定需要所示的特定顺序或连续顺序来实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1