首页> 中国专利> 使用潜在计划控制代理

使用潜在计划控制代理

摘要

用于控制代理的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。方法中的一种方法包括使用策略神经网络来控制代理,所述策略神经网络处理策略输入以生成当前动作输出,策略输入包括(i)当前观察、(ii)目标观察和(iii)所选的潜在计划,当前动作输出定义响应于所述当前观察所执行的动作。

著录项

说明书

本申请要求于2019年2月19日提交的美国专利申请No.62/807,740的优先权,该申请的全部内容通过引用并入本文。

背景技术

本说明书涉及控制代理,例如,机器人,以执行特定任务。

通常,代理响应于接收到表征环境的当前状态的观察通过执行控制系统为代理选择的动作与环境交互。

一些系统根据神经网络的输出响应于接收到给定观察选择代理要执行的动作。

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

发明内容

本说明书描述了一种系统,该系统被实施为处于一个或多个位置的一个或多个计算机上的一个或多个计算机程序,该系统控制与环境交互的代理,使代理使用从潜在计划空间中选择的潜在计划执行任务。具体地,系统使用目标观察生成潜在计划,该目标观察表征为了成功完成任务环境应达到的状态。

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

本说明书描述了一种从自监督数据学习的目标条件模型,该目标条件模型可以有效地用于控制代理,例如,机器人,执行任意任务,包括在代理的训练数据中没有执行的任务。具体地,用户提供指定目标状态的数据,并且单一策略基于其在环境中作用的经验输出达到该状态的动作。这意味着该单一策略可以以零次(zero shot)方式重用来解决新的任务。具体地,通过利用潜在状态空间并且从该空间中选择潜在计划,所描述的系统可以控制代理实现高性能,即使在训练数据中没有执行的任务上。另外,策略可以用于解决环境中的任意目标,这提供了灵活性和健壮性,这在任务的变化比他们可以设计的快的设置中至关重要。所描述的模型对扰动的鲁棒性远远超过仅在正向演示上训练的模型,并且表现出自然的故障恢复,尽管没有进行明确这样的训练。因为模型是从自监督数据学习的,所以系统不需要任何标记数据(获取该数据可能比较困难或计算量大)以便有效地学习模型。

本说明书中所描述的主题的一个或多个实施例的细节在附图和以下描述中进行说明。主题的其他特征、方面和优点通过说明书、附图和权利要求书将变得显而易见。

附图说明

图1示出了示例控制系统。

图2是用于控制代理的示例过程的流程图。

图3示出了示例训练系统。

图4是用于训练神经网络的示例过程的流程图。

图5是潜在计划空间的图形表示,该潜在计划空间可以由于训练神经网络而生成。

各个图中相同的参考数字和标记指示相同的元件。

具体实施方式

广义上,本说明书描述了一种控制系统,该控制系统通过选择代理要执行的动作,并然后使代理执行所选择的动作,来控制与环境交互的代理,例如,机器人。为了代理与环境交互,系统接收表征环境的当前状态的数据并且响应于接收到的数据选择代理要执行的动作。在本说明书中,表征环境的状态的数据被称为观察。

在一些实施方式中,环境是现实世界环境,并且代理是与现实世界环境交互的机械代理。例如,代理可以是机器人,该机器人与环境交互以完成特定任务,例如,定位环境中感兴趣的对象或将感兴趣的对象移动到环境中的特定目的地或导航到环境中的特定目的地;或者代理可以是通过环境导航的自主或半自主的陆地或空中或海上车辆。

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

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

在机器人或其他机械代理或车辆的情况下,观察类似地可以包括以下一个或多个:位置、线性或角速度、力、扭矩或加速度和代理的一个或多个部分的全局或相对姿态。观察可以在1个、2个或3个维度中定义,并且可以是绝对和/或相对观察。

例如,观察还可以包括感测到的电子信号,诸如电机电流或温度信号;和/或例如来自摄像头或LIDAR传感器的图像或视频数据,例如来自代理的传感器的数据或来自在环境中与代理分开定位的传感器的数据。

在电子代理的情况下,观察可以包括来自监控工厂或服务设施的部分的一个或多个传感器的数据,诸如电流、电压、功率、温度和表示设备的电子和/或机械产品的功能的其他传感器和/或电子信号。

在这些实施方式中,动作可以是控制输入,以控制机器人,例如,针对机器人的关节的扭矩或更高级的控制命令,或者自主或半自主的陆地或空中或海上车辆,例如,针对车辆的控制表面或其他控制元件的扭矩或更高级的控制命令。

换言之,例如,动作可以包括针对机器人的一个或多个关节或另一机械代理的部分的位置、速度或力/扭矩/加速度数据。动作数据可以另外或可替代地包括电子控制数据,诸如电机控制数据,或更一般地是用于控制环境中的一个或多个电子装置的数据,对这些电子装置的控制对环境的观察状态具有影响。例如,在自主或半自主的陆地或空中或海上车辆的情况下,动作可以包括用于控制导航—例如转向和移动—例如车辆的制动和/或加速的动作。

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

例如,模拟环境可以是机器人或车辆的模拟,并且控制系统所使用的一个或多个神经网络可以根据模拟进行训练。例如,模拟环境可以是运动模拟环境,例如,驾驶模拟或飞行模拟,并且代理是通过运动模拟导航的模拟车辆。在这些实施方式中,动作可以是用于控制模拟用户或模拟车辆的控制输入。一旦神经网络已经在模拟中进行了训练,它们便可以用于控制现实世界代理,如上所述。

在另一示例中,模拟环境可以是视频游戏,并且代理可以是正在玩视频游戏的模拟用户。

在进一步的示例中,环境可以是蛋白质折叠环境,使得每种状态都是蛋白质链的对应状态,并且代理是用于确定如何折叠蛋白质链的计算机系统。在该示例中,动作是用于折叠蛋白质链的可能折叠动作,并且例如,要实现的结果可以包括折叠蛋白质,使得蛋白质稳定,从而使它实现特定的生物功能。作为另一示例,代理可以是机械代理,该机械代理执行或控制在没有人机互动的情况下由系统自动选择的蛋白质折叠动作。观察可以包括蛋白质的状态的直接或间接观察和/或可以通过模拟获得。

以相似的方式,环境可以是药物设计环境,使得每种状态都是潜在的医药化学药物的对应状态,并且代理是用于确定医药化学药物的元素的控制系统和/或针对医药化学药物的合成途径。药物/合成可以基于从药物的目标获得的奖励来设计,例如在模拟中。作为另一示例,代理可以是执行或控制药物的合成的机械代理。

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

在一些其他应用中,代理可以在包括设备项目的现实世界环境中,例如在数据中心或电网电源功率或水分配系统中或在制造工厂或服务设施中,控制动作。观察然后可以与工厂或设施的操作相关。例如,观察可以包括对设备所使用的功率或水的观察或对发电或配电控制的观察或对资源的使用或废物的观察。代理可以控制环境中的动作以提高效率,例如通过减少资源使用,和/或减少环境中操作的环境影响,例如通过减少浪费。动作可以包括控制或强加在工厂/设施的设备项目上的操作条件的动作和/或导致工厂/设施的操作中的设置改变的动作,例如以调整或开启/关闭工厂/设施的组件。

可选地,在任何上述实施方式中,任何给定时间步骤中的观察可以包括来自前一个时间步骤的数据,该数据可能有助于表征环境,例如,在前一个时间步骤中执行的动作、在前一个时间步骤中接收到的奖励,等等。

图1示出了示例控制系统100。控制系统100是被实施为处于一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中实施下面描述的系统、组件和技术。

控制系统100控制与环境交互的代理,即,如上所述,使用神经网络系统以便使代理执行要求代理达到环境中的目标状态的特定任务。例如,当代理是机器人或其他机械代理时,任务可以是工业机器人任务,该工业机器人任务包括在环境中导航,例如,达到表示环境中的特定位置的状态、移动环境中的物体,即,达到物体处于特定位置的状态,或者两者兼有。当代理正在控制工业设施时,任务可以控制设施以实现一定的性能要求,例如,达到具有一定的能源效率或功率消耗的设施的状态。

具体地,为了控制代理,系统100使用计划建议神经网络110(其参数被称为“计划建议参数(plan proposal parameters)”)和策略神经网络120(其参数被称为“策略参数(policy parameters)”)。

计划建议神经网络110被配置为接收以下作为输入:(i)表征环境的当前状态的当前观察102和(ii)表征环境的目标状态的目标观察104,该目标状态导致代理成功执行任务,并且处理输入以生成数据,该数据定义潜在计划空间114上的概率分布112。

在一些情况下,当前观察102比目标观察104包括更多的信息。例如,在一些实施方式中,当前观察102既包括环境的状态的图像,也包括表征拍摄图像时的代理或其他数据的本体感受数据或其他测量数据。在这些实施方式中,目标观察104可能只包括环境的目标状态的图像。

每个潜在计划都是预定维度的空间(“潜在计划空间(space of latent plans)”)中数值(例如,向量)的有序合集。

在一些实施方式中,定义潜在计划空间上的概率分布的数据是多变量分布—即,当从潜在计划空间114中的向量采样时,产生潜在计划空间114中的向量的分布—的平均值和方差。

计划建议神经网络110可以具有任何适当的架构,该架构允许神经网络将两个观察映射到定义概率分布的数据。

作为一个示例,计划建议神经网络110可以包括编码器子网络,该编码器子网络将每个观察都映射到对应的编码表示。当观察包括多个信道—例如多种不同类型的数据—时,编码器子网络可以将每个数据信道都映射到对应的编码表示,然后将结果编码表示连接起来以生成观察的最终编码表示。

作为特定示例,当其中一个信道是图像信道时,编码器子网络可以使用传统的神经网络将图像数据映射到编码向量。作为另一示例,当其中一个信道是低维本体感受数据—例如,代理或代理的各个组件的位置和定向—时,编码器子网络既可以直接使用本体感受数据的向量作为信道的编码表示,也可以通过一个或多个完全连接的层处理本体感受数据以生成表示。

计划建议神经网络110然后可以将观察的表示级联起来以生成组合表示,并且通过多层感知器(MLP)处理组合表示以生成潜在计划空间114上的概率分布的参数。换言之,在该示例中,计划建议神经网络110是前馈神经网络,其首先对观察进行编码,然后从编码观察生成定义概率分布的数据。

虽然本说明书通常描述了潜在计划空间114是连续的并且计划建议神经网络110的输出定义概率分布的实施方式,但是在其他实施方式中,潜在空间114是离散的,即,包括一定数量的向量,并且计划建议神经网络110的输出是维度与潜在计划空间114中的向量相同的向量。在这些实施方式中,当从空间中选择潜在计划时,系统100可以选择最接近计划建议神经网络110的输出的潜在计划。

如下面将更详细地描述的,由于网络的配置和训练方式,每个潜在计划都表示通过环境的不同路径或要施加在策略神经网络120上的不同动作选择约束。

策略神经网络120(也称为“动作解码器(action decoder)”神经网络)被配置为接收策略输入,该策略输入包括(i)当前观察102、(ii)目标观察104和(iii)从潜在计划空间114中选择的潜在计划122,并且处理策略输入以生成动作输出,该动作输出定义响应于当前观察102所执行的动作124。

例如,动作输出可以定义可以由代理执行的可能动作集合上的概率分布,即,动作输出可以是针对可能动作集合中的每个的对应概率或可以是可能动作集合上的概率分布的参数。在该示例中,由动作输出定义的动作是根据概率分布具有最高概率的动作或通过从概率分布中采样而生成的动作。

作为另一示例,动作输出可以直接识别要执行的动作,即,动作输出可以是多维动作空间中的点。

策略神经网络120可以具有适合将观察和潜在计划映射到动作选择输出的任何架构。作为一个示例,策略神经网络120可以是递归神经网络,该递归神经网络将当前动作选择输出作为对以前的观察执行的处理的条件。

在该示例中,策略神经网络120可以与计划建议神经网络110共享编码器子网络,即,也可以将观察编码成对应的编码观察。策略神经网络120然后可以将编码观察和潜在计划级联以生成组合输入,然后通过一个或多个递归神经网络层,例如,香草递归神经网络(RNN)或长短期记忆(LSTM)层,处理组合输入,以更新递归层的隐藏状态。策略神经网络120然后可以使用更新的隐藏状态来生成动作选择输出,例如,通过将更新的隐藏状态穿过一个或多个完全连接的层,这些层生成可能动作上的概率分布的参数。在一个示例中,动作选择输出可以是可能动作上的混合离散物流(MODL)的参数。

为了选择由代理要响应于当前观察102所执行的动作,系统100使用计划建议神经网络110处理当前观察102和目标观察104,以生成定义潜在计划空间114上的概率分布112的数据,并且使用概率分布从潜在计划空间114中选择潜在计划122。例如,系统100可以根据概率分布对潜在计划进行采样。

系统100然后使用策略神经网络120来处理策略输入,该策略输入包括(i)当前观察102、(ii)目标观察104和(iii)所选的潜在计划122,以生成当前动作输出,该当前动作输出定义响应于当前观察所执行的动作124。系统100然后使代理执行由当前动作输出定义的动作124,即,通过指示代理以执行动作或以其他方式将命令传输给代理。

在一些情况下,系统100仅在尝试执行任务的开始时选择新的潜在计划,即,仅针对任务的一段开始时环境的初始状态。在这些情况下,在当前观察不是表征环境的初始状态的观察时,系统在选择由代理要响应于当前观察而执行的动作时不使用计划建议神经网络110,而是重新使用响应于表征环境的初始状态的观察而进行采样的计划122。

在一些其他情况下,系统100响应于在代理正在执行任务时接收到的每个观察选择新的潜在计划。在这些情况下,系统响应于上面接收到的每个接收到的观察对新的潜在计划122进行采样。

在其他情况下,系统100仅响应于在代理正在执行任务时接收到的观察的适当子集选择新的潜在计划。例如,系统可以为每个第n个观察选择新的潜在计划,其中,n是大于1的整数,例如,5、10、20、30或50。作为另一示例,当代理执行任务时,系统可以每隔k毫秒—例如,100毫秒、500毫秒、1000毫秒或10000毫秒—选择新的潜在计划。当接收到观察并且用于选择新的潜在计划的标准还未被满足时,系统100不使用计划神经网络110,而是使用最近选择的潜在计划122来选择要响应于观察而执行的动作。

在图1的特定示例中,动作是在30Hz的频率下选择的,而由于只有对于观察的真子集标准被满足,新的潜在计划只在1Hz的频率下生成。因此,系统100在相同的潜在计划的条件下做出多个动作选择。然而,系统仍然可以通过每秒生成一个新的潜在计划从故障中恢复。也就是说,即使前一秒所使用的先前潜在计划无效,系统100也可以在下一秒生成新计划,尽管如此,也能完成任务。

为了允许神经网络用于有效地控制代理,系统100或另一系统训练计划建议神经网络110和策略神经网络120,以允许这些神经网络用于有效地控制代理执行各种用户指定的任务,即,通过提供定义目标观察的数据而指定的任务,该目标观察表征为了完成任务而需要达到的目标状态。

系统100的用户可以以任何一种方式提供指定目标观察的数据。例如,系统100可以提供用户界面以在用户设备或其他计算机上呈现,该用户界面允许用户提交定义目标状态的输入,例如,当代理是用于选择环境中机器人应到达的位置或选择环境中应被机器人定位或移动的对象或提交另一适当输入—该输入提供足够的信息来生成目标观察—的机器人时。系统100然后可以生成目标观察,例如,通过生成环境的目标状态的图像。

具体地,在不使用潜在计划空间的情况下,系统面临的挑战是有许多可以连接相同的当前观察——目标观察对的有效的高级行为的事实。这呈现了多个抵消动作标签轨迹,即,训练数据可以包括同一任务是使用许多不同的高级行为序列成功完成的轨迹。这可能阻碍学习,并且阻止策略神经网络120用于有效地控制代理。

然而,通过利用潜在计划空间,策略神经网络120可以设置有高级计划,策略神经网络120可以将动作选择作为该高级计划的条件。具体地,通过训练计划建议神经网络110,使得所选的潜在计划对可以导致任务成功执行的多个高级行为中的单一高级行为进行编码,策略神经网络120可以生成动作序列,该动作序列执行由输入潜在计划编码的高级行为,以使代理完成任务。

对神经网络进行训练在下面参照图3和图4进行了更详细的描述。

图2是用于控制代理的示例过程200的流程图。为了方便,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的控制系统,例如图1的控制系统100可以执行过程200。

系统可以响应于接收到的观察重复执行过程200,以便使代理完成指定任务,即,环境达到由目标观察表征的目标状态时完成的任务。

系统接收当前观察,该当前观察表征与代理交互的环境的当前状态(步骤202)。

在一些实施方式中,当接收到当前观察时,系统然后确定是否满足用于选择新的潜在计划的标准。

具体地,如上所述,在一些实施方式中,系统在每一时间步骤都选择新的潜在计划。在这些实施方式中,系统不需要检查标准是否被满足,即,因为标准在每个时间步骤都被满足。

在其他实施方式中,系统只在观察的真子集选择新的潜在计划。

在这些实施方式中的一些实施方式中,系统只在给定任务段的第一时间步骤选择潜在计划。在这些实施方式中,系统确定只有在观察是尝试执行任务时的第一观察时,标准才被满足。

在这些实施方式中的一些其他实施方式中,系统为每个第n个观察选择新的潜在计划。因此,在这些实施方式中,系统确定只有在每个第n个观察标准才被满足。

在这些实施方式中的其他实施方式中,当代理执行任务时,系统每隔k毫秒选择新的潜在计划。因此,在这些实施方式中,系统确定只有在自最后一次选择新的潜在计划以来至少过去了k毫秒时,标准才被满足。

系统接收表征环境的目标状态的目标观察,该目标状态导致代理成功执行任务(步骤204)。例如,在任务段开始之前,系统可以接收来自系统的指定目标状态的用户的输入,并且生成表征目标状态的观察。例如,系统可以呈现用户界面,该用户界面允许用户从多个不同的目标状态中进行选择。

当标准已经被满足时,系统使用计划建议神经网络来处理当前观察和目标观察,以生成定义潜在计划空间上的概率分布的数据(步骤206),并且使用概率分布从潜在计划空间中选择潜在计划(步骤208)。

系统然后使用策略神经网络来处理策略输入,该策略输入包括(i)当前观察、(ii)目标观察和(iii)所选的潜在计划,以生成当前动作输出,该当前动作输出定义响应于当前观察所执行的动作(步骤210)。

响应于确定标准尚未被满足,系统不使用计划建议神经网络,而是当执行步骤208时,使用策略神经网络来处理策略输入,该策略输入包括(i)观察、(ii)目标观察和(iii)最近选择的潜在计划。也就是说,系统不使用计划建议神经网络来生成新的潜在计划,而是使用最近选择的潜在计划,即,在标准被满足的最近时间选择的潜在计划。

系统然后使代理执行由当前动作输出定义的动作(步骤212)。

图3示出了示例训练系统300。训练系统300可以与控制系统100相同或可以被实施为处于一个或多个位置的一个或多个计算机上的计算机程序的不同系统,在该一个或多个位置中,实施下面描述的系统、组件和技术。

系统300与计划识别器神经网络310一起对计划建议神经网络110和策略神经网络120进行训练。

计划识别器神经网络310是神经网络,该神经网络具有参数(在本说明书中称为“计划识别器参数(plan recognizer parameters)”),并且配置为接收观察动作对序列304作为输入并且至少处理观察动作对序列中的观察,以生成定义潜在计划空间114上的概率分布的数据。换言之,计划识别器神经网络310接收序列304作为输入,该序列304包括从初始观察开始并且以最后观察结束的观察序列。在一些实施方式中,对于除最后观察外的每个观察,序列还包括动作,该动作由代理或导致环境从由观察表征的状态转换为由序列中的下一个观察表征的状态的另一相似的代理执行。在其他实施方式中,计划识别器只处理观察,并且如上所述,观察可以包括在接收到观察之前执行的最近动作。

与计划建议神经网络110的输出一样,定义概率分布的数据也可以是概率分布的参数,例如,潜在计划空间114上的多变量分布的平均值和方差。

计划识别器神经网络310可以具有任何适当的架构,该架构允许神经网络将序列映射到定义概率分布的数据。例如,计划识别器神经网络310可以是处理序列中的每个观察的递归神经网络。作为特定示例,计划识别器神经网络310可以使用编码器子网络生成序列中的每个观察的对应的编码表示。计划识别器神经网络310然后可以使用一个或多个递归神经网络层,例如,vanilla RNN或LSTM层,来处理编码表示,以生成更新的隐藏状态,并且使用一个或多个完全连接的层处理更新的隐藏状态,即,序列中的最后一个观察后的隐藏状态,以生成概率分布的参数。在一些实施方式中,计划识别器神经网络310是双向递归神经网络,并且一个或多个递归神经网络层是双向递归层。

具体地,系统300根据包括多个这样的序列304的训练数据302对神经网络110、120和310进行训练。例如,当在不同的控制策略的控制下时,即,当代理没有基于来自策略神经网络120的输出进行控制时,序列304已经从代理或不同的代理的交互生成。例如,不同的控制策略可以是固定的、硬编码的控制策略、不同的机器学习控制策略,或尝试控制代理使得代理在环境中执行各种不同的任务的通过远程操作或由用户的其他控制方式。

有利地,系统300不要求以任何方式标记训练数据302中的序列304,以便系统300使用序列304对神经网络110、120和310进行有效训练。因此,系统300可以完全根据自监督数据学习代理的有效控制策略。

为了根据序列304对神经网络进行训练,系统300使用计划识别器神经网络310并且根据多个计划识别器参数的当前值来处理序列304,以生成第一数据,该第一数据定义潜在计划空间114上的第一概率分布。

系统300然后使用计划建议神经网络110并且根据计划建议参数的当前值来处理序列中的第一个观察和序列中的最后一个观察,以生成潜在计划空间114上的第二概率分布。因此,计划识别器神经网络310被提供完整的观察序列,而计划建议神经网络110只被提供序列中的第一个观察和序列中的最后一个观察,以有效地将序列中的最后一个观察视为目标观察。

系统300然后从基于计划识别器神经网络310的输出而生成—即,基于观察和动作的完整序列304而生成—的第一概率分布中采样潜在计划320。

对于序列304中的每个观察动作对,系统使用策略神经网络120并且根据策略参数的当前值处理输入,该输入包括对中的观察322、序列中的最后一个观察324和潜在计划320,以针对该对生成动作概率分布。因此,系统300针对序列304中的每个观察动作对生成对应的动作概率分布。

系统然后通过确定关于策略参数、计划识别器参数和计划建议参数的损失函数的梯度来更新神经网络的参数的值,该损失函数包括:(i)动作可能性项350,对于每个观察动作对,该动作可能性项350取决于分配给观察动作对的动作概率分布中的观察动作对中的动作的概率;以及(ii)散度最小化项360,该散度最小化项360测量基于计划识别器神经网络310的输出而生成的第一概率分布和基于计划建议神经网络110的输出而生成的第二概率分布之间的差异。

例如,损失函数的形式可以是L1+B*L2,其中,L1是动作可能性项350,L2是散度最小化项360,并且B是常数权重值。在一些情况下,为了防止后验塌陷(posteriorcollapse),系统将B设置为小于1的常数值。

例如,散度最小化项360可以是第一概率分布和第二概率分布之间的Kullback–Leibler(KL)散度。

作为另一示例,动作可能性项350可以是最大可能性损失。虽然在策略神经网络120的输出定义可能动作集合上的概率分布时使用了动作可能性项350,但是当动作选择输出是不同种类的输出时,系统可以使用不同类型的损失,该损失测量动作选择输出与观察动作对中的动作之间的误差。

通过根据这种损失函数对神经网络进行训练,系统300对计划建议神经网络110进行训练以生成输出,该输出是由计划识别器神经网络310通过处理完整的观察序列生成的输出的预测。因此,系统300对计划建议神经网络110进行训练,以仅从第一个观察和最后一个观察预测可以遵循的潜在计划的类型,从而导致由最后一个观察表征的状态达到。在训练后,当输入潜在计划是从使用神经网络110的输出而生成的概率分布中选择的时,所选的潜在计划因此将对这些潜在计划中的一个潜在计划进行准确编码。

同时,系统300对策略神经网络120进行训练,以有效地将所采用的潜在计划作为条件,以生成动作选择输出,该动作选择输出导致由序列中的最后观察表征的最后状态达到,即导致任务通过执行由所采样的潜在计划编码的高级行为而被成功完成。

图4是用于根据观察动作对序列对计划建议神经网络、策略神经网络和计划识别器神经网络进行训练的示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的控制系统—例如,图1的控制系统100—可以执行过程400。

系统可以对不同的观察输入序列重复执行过程400,以对神经网络进行训练。在训练后,系统可以只利用计划建议神经网络和策略神经网络来控制代理,即,计划识别器神经网络只用于改进计划建议神经网络和策略神经网络的训练,而不是直接用于在训练后控制代理。

系统获得观察动作对序列,例如,通过从训练数据中采样序列(步骤402)。序列通常包括观察动作对集合和最后观察,它们是由于代理(或另一相似代理)与环境的交互而生成的。

系统使用计划识别器神经网络并且根据多个计划识别器参数的当前值至少处理观察动作对序列中的观察,以生成第一数据,该第一数据定义潜在计划空间上的第一概率分布(步骤404)。

系统使用计划建议神经网络并且根据计划建议参数的当前值处理序列中的第一观察和序列中的最后一个观察(而不是任何动作或序列中的任何中间观察),以生成潜在计划空间上的第二概率分布(步骤406)。

系统从第一概率分布中—即,从使用序列中的所有观察而被生成的概率分布中—采样潜在计划(步骤408)。

对于序列中的每个观察动作对,系统使用策略神经网络并且根据策略参数的当前值处理输入,该输入包括对中的观察、序列中的最后一个观察和潜在计划,以针对该对生成动作概率分布(步骤410)。

系统然后确定关于策略参数、计划识别器参数和计划建议参数的损失函数的梯度,该损失函数包括:(i)第一项,对于每个观察动作对,该第一项取决于分配给观察动作对的动作概率分布中的观察动作对中的动作的概率;以及(ii)第二项,该第二项测量第一概率分布和第二概率分布之间的差异(步骤412)。

系统然后根据更新规则使用梯度来更新参数的当前值。更新规则可以是任何适当的更新规则,该更新规则将梯度映射到参数值更新,例如,rmsProp更新规则、Adam优化器更新规则、学习更新规则和基于随机梯度下降学习率的更新规则。在一些情况下,系统首先对多个不同的序列执行过程400,然后对序列的梯度进行平均,再然后将更新规则应用于平均梯度,以便更新当前值。

通过重复执行过程400,系统确定计划建议参数、策略参数和计划识别器参数的训练值。系统(或另一系统)然后可以使用计划建议参数和策略参数的训练值在训练后控制代理。

图5是潜在计划空间114的图形表示,该潜在计划空间114可以由于如上所述对神经网络进行训练而生成。具体地,在图5的示例中,神经网络已经根据训练数据进行了训练,该训练数据包括多个序列,在这些序列中,机器人被控制以完成各种不同的任务。图5将训练数据中的每个序列表示为潜在计划空间中的点,即,示出了空间中的点,该点是针对每个训练序列进行采样的,例如,基于由计划建议神经网络或计划识别神经网络在已经对那些网络进行训练后生成的概率分布。

从图5中可以看出,空间的不同区域对应于不同类型的任务。例如,一个区域对应于抓取序列(其中,导致代理抓取环境中的一个或多个对象),另一区域对应于按钮按下序列(其中,导致代理按下位于环境中的一个或多个按钮),另一区域对应于抽屉序列(其中,导致代理操纵抽屉),并且又一区域对应于清除序列(其中,导致代理从表面上清除一个或多个对象)。因此,图5示出,即使没有标签用于训练,计划识别器和计划建议神经网络生成潜在计划,该潜在计划有效地嵌入任务信息,例如,如图5中所示的潜在计划空间的功能组织所反映的。这种学习功能组织允许所采样的潜在计划用于有效地将训练后的策略神经网络作为条件。

本说明书使用与系统和计算机程序组件有关的术语“配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统具有安装在其上在运行时使系统执行操作或动作的软件、固件、硬件或它们的组合。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个计算机程序包括指令,该指令在由数据处理装置执行时使该装置执行操作或动作。

这种对对象交互任务神经网络进行训练的方法可以减少对神经网络进行训练所需的任务段的数量,并且在不需要额外监督训练过程的情况下,可以导致改进的训练神经网络。因此,对象交互任务神经网络的训练可能需要较少的计算资源。改进的训练对象交互任务神经网络可能促进改进的机器人控制。

本说明书中所描述的主题和功能操作的实施例可以被实施在数字电子电路系统中、在有形地体现的计算机软件或固件中、在包括本说明书中所公开的结构及其结构等同物的计算机硬件中或在它们中的一个或多个的组合中。本说明书中所描述的主题的实施例可以被实施为一个或多个计算机程序。一个或多个计算机程序可以包括计算机程序指令的一个或多个模块,该计算机程序指令在有形的非暂时性存储介质上进行编码,以供数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。可替代地或另外,程序指令可以在人工生成的传播信号上进行编码,例如,机器生成的电气、光或电磁信号,生成这种信号是为了对传输到合适的接收器装置以供数据处理装置执行的信息进行编码。

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

计算机程序—其也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码—可以用包括编译或解译语言或陈述性或程序语言的任何形式的编程语言进行编写,并且它可以用包括作为独立程序或作为模块、组件、子例程或适合用于计算环境的其他单元的任何形式进行部署。程序可以,但不需要,对应于文件系统中的文件。程序可以被存储在文件保存其他程序或数据的部分—例如,存储在标记语言文档中的一个或多个脚本、专用于讨论中的程序的单个文件或多个协调文件—例如,存储一个或多个模块、子程序或代码的部分的文件中。计算机程序可以被部署为在一个计算机或位于一个站上或跨多个站分布并且由数据通信网络互连的多个计算机上执行。

在本说明书中,术语“数据库”被广泛用于指任何数据集合;数据不需要以任何特定方式或完全结构化,并且它可以存储在一个或多个位置的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合都可以被不同地组织和访问。

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

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

适合执行计算机程序的计算机可以是基于通用或专用微处理器或两者或任何其他种类的中央处理单元。通常,中央处理单元将接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的基本元件是用于进行或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或被合并到专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个海量存储设备—例如,磁盘、磁光盘或光盘,或可操作地耦合以接收来自该海量存储设备的数据或将数据传输给该海量存储设备或进行这两种操作。然而,计算机不需要有这样的设备。此外,计算机可以嵌入另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备—例如,通用串行总线(USB)闪存驱动,仅举几个例子。

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

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

例如,用于实施机器学习模型的数据处理装置还可以包括专用硬件加速器单元,用于处理机器学习训练或生产的通用和计算密集型部分,即,推论、工作负载。

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

本说明书中所描述的主题的实施例可以实施在计算系统中,该计算系统包括后台组件—例如,作为数据服务器,或者包括中间件组件—例如,应用服务器,或者包括前台组件,例如,客户端计算机,该客户端计算机具有图形用户界面、网络浏览器或应用,用户可以通过该图形用户界面、该网络浏览器或该应用与本说明书中所描述的主题的实施方式进行交互,或者一个或多个这样的后台组件、中间件组件或前台组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信—例如,通信网络—互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,互联网。

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

虽然本说明书包含许多具体实施细节,但是不应将这些细节视为对任何发明的范围或可能被要求的内容的范围的限制,而是作为可以特定于特定发明的特定实施例的特征的描述。本说明书中在单独的实施例的背景下所描述的某些特征还可以组合实施在单个实施例中。相反,在单个实施例的背景下所描述的各种特征也可以单独地或按照任何合适的子组合实施在多个实施例中。此外,虽然特征在上面可以被描述为在某些实施例中起作用,甚至最初就被这样要求,但是来自所要求的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求的组合可以涉及子组合或子组合的变型。

相似地,虽然操作以特定顺序在附图中进行描绘并在权利要求中进行说明,但是这不应被理解为要求以所示的特定顺序或以相继顺序执行这样的操作,或者所有所示的操作都被执行来获得期望结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。

主题的特定实施例已经进行了描述。其他实施例在以下权利要求书的范围内。例如,权利要求书中所引用的动作可以按照不同的顺序执行并且仍然实现期望结果。作为一个示例,附图中所描绘的过程不一定需要以所示的特定顺序或相继顺序来完成期望结果。在一些情况下,多任务处理和并行处理可以是有利的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号