首页> 中国专利> 自我监督的机器人对象交互

自我监督的机器人对象交互

摘要

用于训练对象表示神经网络的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。这些方法中的一种方法包括:获得图像的训练集,每个训练集包括:(i)环境的前场景的前图像、(ii)在机器人已移除了特定对象之后的环境的后场景的后图像和(iii)特定对象的对象图像;并且在训练数据的批次上训练对象表示神经网络,包括确定对于对象表示参数的以下更新,该更新鼓励每个训练集中的特定对象的矢量嵌入更接近(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的差异。

著录项

说明书

技术领域

本说明书涉及针对机器人的控制策略。

背景技术

当受机器人控制系统控制时,机器人会通过执行由机器人控制系统响应于接收到表征环境当前状态的状态表示而选择的动作来与环境进行交互。

一些机器人控制系统根据神经网络的输出响应于接收到给定状态表示来选择将由机器人执行的动作。

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

发明内容

本说明书描述了一种作为一个或多个计算机程序实施在一个或多个位置中的一个或多个计算机上的系统,该系统训练对象表示神经网络以生成由机器人在环境中遇到的对象的矢量嵌入。矢量嵌入是数字值的有序合集,例如,浮点值的矢量,其用作对象的数字表示。还描述了一种训练机器人用的对象表示神经网络的方法。

系统能够使用由对象表示神经网络生成的矢量嵌入来控制机器人以使机器人执行任务,该任务包括执行与环境中的特定对象的指定交互。例如,指定交互可以涉及定位特定对象、抓取特定对象、拾取特定对象、将特定对象移动到环境中的具体位置等中的任一个。因为任务的不同的情节(实例)可能需要与不同的对象交互,所以系统使用矢量嵌入来允许系统控制机器人以使机器人基于期望对象的图像与环境中不同的期望对象交互。

特别地,为了控制机器人,系统使用对象交互任务神经网络来选择要由机器人执行的动作。在执行任务的情节的同时,对象交互任务神经网络接收网络输入,该网络输入包括(i)环境的状态表示,例如,由机器人的相机或定位在环境中别处的相机所捕获的环境的图像,以及(ii)环境中的目标对象(即机器人应该与之具有指定交互以成功地完成任务的对象)的矢量嵌入。对象交互任务神经网络处理网络输入以生成网络输出,该网络输出可以用于选择要在环境处于由状态表示所表示的状态的同时执行的动作。

为了有效地控制机器人,即,为了允许机器人针对各种不同的对象一致成功地执行任务,系统训练对象交互任务神经网络。

在一些情况下,系统联合地训练对象交互任务神经网络和对象表示神经网络。在其它情况下,系统训练对象表示神经网络,然后在对象交互任务神经网络的训练中使用经训练的对象表示神经网络。

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

能够完全在由机器人收集的自我监督数据上训练对象表示神经网络,从而允许在没有附加计算开销的情况下学习由机器人在环境中遇到的对象之间的关系。这允许在利用容易收集的未标记的交互数据的同时使用较少的计算资源来执行训练。

由对象表示神经网络生成的对象表示能够用于训练用于控制机器人以执行涉及与环境中的对象交互的任务的对象交互任务神经网络。通过使用对象表示神经网络来生成奖励值,也能够完全在自我监督数据上学习用于机器人的有效控制策略。特别地,通过在对象交互任务神经网络的训练期间使用由对象表示神经网络生成的矢量嵌入,系统能够有效地从与除目标对象以外的对象交互的情节中学习。这可以在对于训练过程无需附加监督的情况下减少训练神经网络所需要的任务情节的数目并且可以产生改进的经训练的神经网络。对象交互任务神经网络的训练可能因此需要较少的计算资源。改进的经训练的对象交互任务神经网络能够促进改进的机器人控制。

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

附图说明

图1示出示例机器人控制系统。

图2A示出了对象表示神经网络的示例架构。

图2B示出了对象交互任务神经网络的示例架构。

图3是用于训练对象表示神经网络的示例过程的流程图。

图4是用于训练对象交互任务神经网络的示例过程的流程图。

在各个附图中,相同的附图标记和名称指示相同的元件。

具体实施方式

本说明书描述了一种机器人控制系统,该机器人控制系统通过在多个时间步中的每个时间步处理用于表征环境在该时间步的当前状态的数据(即,“状态表示”)来控制与所述环境交互的机器人以选择要由该机器人执行的动作。

在每个时间步,环境在该时间步的状态取决于所述环境在前一个时间步的状态和由机器人在所述前一个时间步执行的动作。

在一些实施方式中,环境是真实世界环境并且机器人是与真实世界环境交互的机械机器人。

在这些实施方式中,状态表示可以包括例如以下各项中的一种或多种:图像(例如环境、环境的一部分或环境内的对象)、对象位置数据以及用于在机器人与环境交互时捕获状态表示的传感器数据,例如来自图像、距离或方位传感器或来自致动器的传感器数据。

例如在机器人的情况下,状态表示可以包括表征所述机器人的当前状态的数据,例如,以下各项中的一种或多种:关节位置、关节速度、关节力、扭矩或加速度,例如,重力补偿的扭矩反馈以及由所述机器人握持的物品的全局或相对姿势。

状态表示可以类似地包括机器人的一个或多个零件的位置、线速度或角速度、力、扭矩或加速度和全局或相对姿势中的一个或多个。可以在1维、2维或3维上定义所述状态表示,并且所述状态表示可以是绝对和/或相对状态表示。

状态表示也可以包括例如感测到的电子信号,诸如电机电流或温度信号;和/或例如来自相机或LIDAR传感器的图像或视频数据,例如,来自机器人的传感器的数据或来自在环境中与所述机器人分开定位的传感器的数据。

动作通常是控制机器人的控制输入,例如,用于机器人的关节的扭矩或更高级的控制命令。换句话说,所述动作可以包括例如机器人的一个或多个关节或机器人的其它零件的位置、速度或力/扭矩/加速度数据。动作数据可以附加地或可替代地包括诸如电机控制数据的电子控制数据,或更一般地用于控制在环境内的一个或多个电子设备的数据,对这些电子设备的控制对于所述环境的观察状态有影响。

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

系统100通过选择要由机器人102执行的动作106并且然后使机器人102执行所选择的动作106来控制与环境104交互的机器人102。由机器人对动作的这种重复执行通常使环境的状态反复地转变成新状态并且使机器人执行这样的任务,该任务包括执行与所述环境中的特定对象的指定交互。例如,指定交互可以涉及定位特定对象、抓取特定对象、拾取特定对象、将特定对象移动到环境中的具体位置等中的任一个。

系统100包括对象交互任务神经网络110和对象表示神经网络112。系统100也包括训练引擎116并维护模型参数118的集合,该集合包括对象交互任务神经网络110的参数(被称为“对象交互参数”)和对象表示神经网络112的参数(被称为“对象表示参数”)的当前值。

在多个时间步中的每个时间步,对象交互任务神经网络110被配置成根据对象交互参数的当前值来处理包括表征环境104的当前状态的当前状态表示120的输入以生成网络输出122(“动作选择策略”)。如将在下面更详细地描述的,网络输入也包括环境中的目标对象160(即机器人102应该与之具有指定交互以便完成任务的对象)的嵌入162。

系统100使用网络输出122来选择要由机器人在当前时间步执行的动作106。接下来描述使用网络输出122来选择要由机器人102执行的动作106的几个示例。

在一个示例中,网络输出122可以定义对于在能够由机器人执行的可能的动作的集合中的动作的概率分布。例如,网络输出122可以包括能够由机器人执行的可能的动作的集合中的每个动作的相应的数值概率值。作为另一示例,网络输出122可以包括对于可能的动作的集合的分布的参数,例如,当将动作的集合表示为连续空间时,对于所述动作的集合的多元正态分布的参数。系统100能够例如通过根据动作的概率值来对动作进行采样或者通过选择具有最高概率值的动作来选择要由机器人执行的动作。

在另一示例中,网络输出122可以直接定义要由机器人执行的动作,例如,通过定义应该被施加到机器人的关节的扭矩的值。

在另一示例中,网络输出122可以包括能够由机器人执行的可能的动作的集合中的每个动作的相应的Q值。系统100可以处理Q值(例如,使用soft-max函数)以针对每个可能的动作生成相应的概率值,该概率值可以用于选择要由机器人执行的动作(如早前所描述的那样)。系统100还能选择具有最高Q值的动作作为要由机器人执行的动作。

动作的Q值是对“返回”的估计,该“返回”将由机器人响应于当前状态表示120而执行动作并且此后根据策略神经网络参数的当前值来选择由机器人102执行的将来动作所产生。

返回是指由机器人接收到的“奖励”124的累积量度,例如,奖励的时间折扣总和。机器人可以在每个时间步接收相应的奖励124,其中奖励124由标量数字值指定并且表征例如机器人向完成任务的进度。

在一些情况下,系统100可以根据探索策略来选择要由机器人执行的动作。例如,探索策略可以是∈-贪婪探索策略,其中系统100按概率1-∈根据网络输出122选择要由机器人执行的动作,并且按概率∈随机选择动作。在此示例中,∈是介于0与1之间的标量值。作为另一示例,系统可以将随机采样的噪声添加到网络输出122以生成有噪声的输出,然后使用有噪声的输出而不是输出122来选择动作。

对象表示神经网络112是生成由机器人在环境中遇到的对象的矢量嵌入的神经网络。矢量嵌入是数字值的有序合集,例如,浮点值的矢量,其用作对象的数字表示。如将在下面描述的,训练引擎以无监督方式训练对象表示神经网络112以学习生成矢量嵌入,这些矢量嵌入反映由机器人在环境中遇到的对象之间的关系。

系统100使用对象表示神经网络112来训练对象交互任务神经网络110,使得神经网络110能够有效地控制机器人以执行涉及与环境中不同的对象交互的任务。

特别地,由对象交互任务神经网络110接收到的每个网络输入包括环境中的目标对象160的由对象表示神经网络112生成的矢量嵌入162。换句话说,每个网络输入包括状态表示120和目标对象矢量嵌入162两者,并且对象交互任务网络110生成以机器人应该与之交互的对象的嵌入为条件(以通过例如将机器人应该与之交互的对象的嵌入作为输入或者以其它方式使用机器人应该与之交互的对象的嵌入为条件)的网络输出。

在对象表示神经网络112的训练期间,系统100通过在神经网络110以由对象表示神经网络112生成的嵌入162为条件的同时使用该对象交互任务神经网络110控制机器人102来执行任务的情节。对于不同的任务情节,此目标对象以及相应地嵌入将会通常是不同的。

换句话说,系统100可以访问捕获环境和环境中的对象的图像的一个或多个相机。例如,该一个或多个相机可以是机器人的传感器(例如,用于捕获状态表示的相机)或环境中在机器人外部的固定相机。系统使用这些相机来捕获环境中的对象的图像并且将图像作为输入提供给对象表示神经网络112以生成嵌入。系统100可以通过以下方式来捕获对象的图像:控制机器人以将对象放置在该一个或多个相机的视场中,并且然后在对象处于视场中的同时捕获图像。

对于每个任务情节,系统100确定机器人102是否针对环境中的任何对象(即使与目标对象160不同)成功地完成了任务,并且如果完成了任务的话,则使用对象表示神经网络112来确定任务情节的奖励值124。

特别地,当机器人102针对任何对象成功地完成了任务时,系统100获得针对其完成了任务的结果对象170的图像。在图1的简化示例中,任务是抓取目标对象160(矩形),但是机器人102实际上抓取了与目标对象160不同的结果对象170(三角形)。

系统然后使用对象表示神经网络112来从结果对象170的图像生成情节的奖励值124。通过使用对象表示神经网络112来生成奖励,即便当结果对象170与目标对象160不同时,系统100也能够生成准确地指导任务神经网络110的训练的奖励值124。

训练引擎116然后在奖励值124和状态表示-动作对150的集合上训练神经网络110以更新对象交互参数的当前值。将在下面参考图4更详细地描述生成奖励值并训练对象交互任务神经网络110。

通过使用对象表示神经网络112来生成奖励值,系统能够完全在自我监督数据上学习针对机器人的有效控制策略。特别地,如将从以下描述中变得清楚的,为了有效地训练神经网络,系统不必明确地识别结果对象170和目标对象160是否相同。

图2A示出了对象表示神经网络112的示例架构。图2A也示出了用于与对象表示神经网络112一起联合地训练的场景表示神经网络202的示例架构。

场景表示神经网络202和对象表示神经网络112都是卷积神经网络,它们接收图像(在这种情况下为472x 472x 3图像)并处理该图像以生成矢量嵌入。

场景表示神经网络202被配置成接收场景的图像并处理该场景的图像以生成场景的矢量嵌入。场景表示神经网络202的参数在本说明书中将被称为场景表示参数。

场景表示神经网络202和对象表示神经网络112都是卷积神经网络。在图2的示例中,这两个神经网络都包括后面有整流线性单元(“ReLU”)激活函数的一组卷积神经网络层。卷积层在图中被标记为“resnet-50”,因为在图2的示例中,这些层是具有由在2016年CVPR中第770–778页K.He、X.Zhang、S.Ren和J.Sun.的“Deep residual learning forimage recognition(用于图像识别的深度残差学习)”中所描述的ResNet50架构指定的连接的神经网络的卷积层。每个神经网络然后对ReLU的3D输出应用全局平均池化(“MeanPool”)操作以生成矢量嵌入。

为了训练神经网络,系统使用场景表示神经网络202来处理在一个或多个相机的视场中具有一个或多个对象的环境的前场景的前图像210(s

系统还使用对象表示神经网络112来处理从视场中移除的特定对象的对象图像230(O)以生成特定对象的矢量嵌入Φ

系统然后确定后场景的矢量嵌入Φ

特别地,系统通过优化取决于差异206和特定对象的矢量嵌入Φ

将在下面参考图3更详细地描述训练对象表示神经网络。

图2B示出了对象交互任务神经网络110的示例架构。

如图2B中所示,对象交互任务神经网络110接收状态表示作为输入,该状态表示包括环境250的图像和表征机器人的当前状态的数据252。特别地,在图2B的示例中,数据252是指示机器人的抓取器当前是否打开以及抓取器的当前高度的数据。

对神经网络110的输入还包括用于动作的动作数据254。在图2B的特定示例中,动作数据包括笛卡尔矢量、抓取器旋转值、打开抓取器值、关闭抓取器值和终止情节值。

对象交互任务神经网络110也以如由对象表示神经网络112生成的目标对象160的矢量嵌入162为条件。

因此,在图2B的示例中对象交互任务神经网络110的输出是Q值270,该Q值270表示对于通过在环境处于由状态表示表征的状态并且任务情节的目标对象是目标对象160时执行动作254而将接收到的返回的估计。

在图2B的特定示例中,通过全连接子网络来处理动作数据254和状态数据252,该全连接子网络包括具有256个节点的全连接层(“FC(256)”),后面是求和层(“sum”)、具有64个节点的全连接层(“FC(64)”)以及将FC(64)层的输出重塑成1x 1x 64张量的重塑层(“Reshape(1,1,64)”)。

通过包括多个卷积层的卷积子网络来处理图像250。特别地,卷积子网络包括卷积层(重复六次的“Conv(64,6,2)”层和“Conv(64,5,1)”层)和最大池化层(“maxpool”)。

在通过级联层来级联(“Concatenate”)目标嵌入162之前,卷积子网络和全连接子网络的输出被相加,然后通过附加卷积层(“Conv(64,3,1)”层)来处理。此级联输出然后通过全连接层(“FC(64)”)并最终通过输出层(“Sigmoid”)来处理以生成Q值270。

图3是用于训练对象表示神经网络的示例过程300的流程图。为了方便,将过程300描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当地编程的机器人控制系统(例如图1的机器人控制系统100)能够执行过程300。

系统能够针对包括多个训练集的训练数据的批次中的图像的每个训练集执行过程300以针对每个训练集生成相应的参数值更新。每个训练集包括由一个或多个相机随着机器人与环境交互而捕获的图像的集合。更具体地,图像的每个训练集包括环境的前图像、环境的后图像和来自环境的特定对象的图像。

在给定的训练集内,前图像示出了捕获了前图像的相机的视场中的一个或多个对象,环境的后图像示出了在机器人已从相机的视场中移除了特定对象之后的环境,并且对象图像是机器人从视场中移除的特定对象的图像。

通常,系统在使机器人与环境交互的同时捕获批次中的图像的训练集。

在一些实施方式中,系统与对象交互任务神经网络联合地训练对象表示神经网络并且作为如上所述使用对象表示神经网络来控制机器人以执行任务情节的结果而获得训练集。也就是说,在这些情况下,前图像示出了在机器人开始任务情节之前的环境,环境的后图像了示出在机器人在执行任务情节的同时已从相机的视场中成功地移除了某个对象之后的环境,并且对象图像是机器人从视场中移除的对象的图像。

在其它实施方式中,系统通过使用无差别的抓取策略(该抓取策略是例如使机器人抓取并从视场中移除在任何给定点最靠近机器人的无论哪个对象,而不管该对象是哪一个对象的策略)来控制机器人而获得训练集。换句话说,无差别的抓取策略是关于对象无差别的抓取策略。因此,在这些情况下,前图像示出了在机器人开始无差别地抓取对象之前的环境,环境的后图像示出了在机器人已抓取并从相机的视场中移除了某个对象之后的环境,并且对象图像是机器人从视场中移除的对象的图像。

在仍然其它的实施方式中,系统可以首先使用运用无差别的抓取策略所收集到的训练数据来预先训练对象表示神经网络,然后开始联合地训练对象表示神经网络和对象交互任务神经网络。

系统使用对象表示神经网络并根据对象表示参数的当前值来处理训练集中的对象图像,以生成从视场中移除的特定对象的矢量嵌入(步骤302)。

系统使用场景表示神经网络并根据场景表示参数的当前值来处理环境的前图像,以生成前场景的矢量嵌入(步骤304)。

系统使用场景表示神经网络并根据场景表示参数的当前值来处理环境的后图像,以生成后场景的矢量嵌入(步骤306)。

系统确定出对于对象表示参数和场景表示参数的更新(步骤308)。

特别地,系统确定出目标函数相对于对象表示参数和场景表示参数的梯度,然后根据所述梯度来确定更新,即,通过对梯度应用更新规则。更新规则可以是将梯度映射到参数更新的任何适当的更新规则,例如,rmsProp更新规则、Adam优化器更新规则、学习的更新规则或随机梯度下降学习率。系统然后能够组合(使平均或加和)例如针对批次中的训练集的更新,以确定针对批次的最终更新,然后将最终更新加到场景表示参数和对象表示参数的当前值。

通常,目标函数具有测量以下差异的至少一个项,该差异即每个训练集中的特定对象的矢量嵌入与(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的差异的差异。因此,通过确定梯度,系统确定出对于对象表示参数(和场景表示参数)的以下更新,所述更新鼓励每个训练集中的特定对象的矢量嵌入更接近(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的所述差异,例如,所述更新能够减小每个训练集中的特定对象的矢量嵌入与(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的所述差异之间的距离。

在一些情况下,目标函数还具有测量以下差异的一个或多个附加项,该差异即a)批次中的其它训练集中的其它特定对象的矢量嵌入,与b)(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的所述差异的差异。在这些情况下,对于对象表示参数(和场景表示参数)的更新对于每个训练集鼓励来自其它训练集的其它特定对象的矢量嵌入离(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的差异更远。“鼓励”来自其它训练集的其它特定对象的矢量嵌入离(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的差异“更远”,例如能够导致矢量嵌入中的每一个与相应的差异之间的距离(或差异)增加。换句话说,确定对于对象表示参数的更新包括确定以下更新,该更新增加每个训练集中的特定对象的矢量嵌入与(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的差异之间的距离(或差异)。确定对于场景表示参数的更新包括确定以下更新,该更新对于每个训练集增加来自其它训练集的其它特定对象的矢量嵌入与(i)训练集中的后场景的矢量嵌入与(ii)训练集中的前场景的矢量嵌入之间的差异之间的距离。

作为特定示例,目标函数可以包括两个NPairs损失项。对于每个训练集,一个NPairs损失项将差异(前后场景嵌入之间的差异)用作锚嵌入,而将训练集中的特定对象的矢量嵌入用作正嵌入。对于每个训练集,另一个NPairs损失项将差异(前后场景嵌入之间的差异)用作正嵌入,而将特定对象的矢量嵌入用作锚嵌入。

换句话说,在此特定示例中,目标函数L(在这种情况下为被最小化的损失函数)满足:

L=NPairs((Φ

其中NPairs(a,p)满足:

其中,B是批次大小,i索引到锚嵌入a中,j索引到正嵌入p中,并且λ是超参数。系统能够使用两个NPairs项而不是一个NPairs项,因为如能够从以上等式看到的,NPairs损失项是不对称的。

这种训练对象表示神经网络的方法能够在对于训练过程无需附加监督的情况下产生改进的经训练的神经网络。对象表示神经网络的训练可能因此需要较少的计算资源并且有效利用容易获取的未标记的对象交互数据。改进的经训练的对象表示神经网络可以促进改进的机器人控制,即,通过被用在如下所述训练对象交互任务神经网络中。

图4是用于训练对象交互任务神经网络的示例过程400的流程图。为了方便,将过程400描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当地编程的机器人控制系统(例如图1的机器人控制系统100)能够执行过程400。

系统能够针对不同的任务情节重复地执行过程400以便调整对象交互参数的值并且训练对象交互任务神经网络从而有效地控制机器人以执行指定任务。

系统获得目标对象的目标图像(步骤402)。目标对象是环境中由机器人正与之交互的对象。例如,系统能够从环境中的各种对象的目标图像的集合中随机选择目标图像。

系统根据对象表示参数的当前值使用具有多个对象表示参数的对象表示神经网络来处理目标对象图像以生成目标对象的矢量嵌入(步骤404)。

系统通过在对象交互任务神经网络以目标对象的矢量嵌入为条件的同时使用对象交互任务神经网络来选择要由机器人执行的动作并且根据对象交互参数的当前值来控制机器人以执行任务的情节(步骤406)。换句话说,系统在以目标对象的矢量嵌入为条件的同时使用对象交互任务神经网络来控制机器人。

系统从在所述情节期间执行的动作生成状态表示-动作对的序列(步骤408)。特别地,每个状态表示-动作对中的状态表示表征当状态表示-动作对中的动作由机器人在所述情节期间执行时环境的状态。例如,所述序列可以包括由机器人在情节期间执行的每个动作,以及所对应的状态表示,该状态表示表征了环境在当机器人执行所述动作时所处于的状态。

系统确定机器人是否在情节期间针对环境中的多个对象中的任一个对象成功地执行了任务(步骤410)。也就是说,系统确定机器人是否在情节期间与环境中的对象的任一个对象成功地具有指定交互。作为特定示例,当任务是对象抓取任务时,系统能够确定机器人的抓取器是否不能在情节结束时完全关闭,并且该抓取器不能在情节结束时完全关闭的话,则确定机器人成功地抓取了对象。

系统基于机器人是否针对环境中的对象中的任一个对象成功地执行了任务来确定该情节的奖励值(步骤412)。

特别地,当机器人针对环境中的对象中的任一个对象成功地执行了任务时,系统基于机器人针对环境中的对象中的一个对象成功地执行了任务来确定奖励值。奖励值可以是数字值,例如,奖励值一可以指示任务成功地完成了,例如其中一是最高奖励值而零是指示机器人在执行任务时失败的最低奖励值。可以使用其它奖励值。

为了确定奖励值,系统可以获得针对其成功地执行了任务的对象的图像(被称为“成功对象图像”),例如,通过使机器人将对象放置在相机的视场中并且然后使用相机来捕获图像,然后根据对象表示参数的当前值使用对象表示神经网络来处理该成功对象图像以生成成功对象的矢量嵌入。

系统确定出成功对象的矢量嵌入与目标对象的矢量嵌入之间的相似性量度,例如余弦相似性,并且基于成功对象的矢量嵌入与目标对象的矢量嵌入之间的相似性量度来确定奖励值,即,将相似性量度设定为奖励值。因此,成功对象与目标对象越相似奖励越高,并且即使成功对象是与目标对象不同的对象也能够生成正奖励值。

当机器人针对任何对象未成功地执行任务时,系统确定出指示机器人在执行任务时失败的奖励值,例如,将奖励值零指派给任务情节。

系统使用状态表示-动作对的序列和奖励值来训练对象交互任务网络(步骤414)。

系统能够使用任何适当的强化学习技术,该强化学习技术训练神经网络以使在任务情节期间接收到的奖励最大化,以更新对象交互任务神经网络的参数的当前值。能够被采用的强化学习技术的示例包括深度Q网络训练技术、双重Q学习训练技术、基于行为者批评的技术和基于策略梯度的技术。

当使用on-policy技术时,系统使用状态表示-动作对的序列来直接训练对象交互任务网络。当使用off-policy技术时,系统将状态表示-动作对的序列和奖励值添加到重播缓冲器并且(可能与控制机器人异步地)周期性地从重播缓冲器对状态表示-动作-奖励值元组(tuples)进行采样并且使用经采样的元组来训练神经网络。通常,除最后状态表示-动作对以外的每个状态表示-动作对的奖励将为零(或指示任务未被成功地执行的另一值),而序列中的最后状态表示-动作对(包括导致任务被成功地执行的最后动作的对)的奖励将为上面确定的奖励值。

在一些实施方式中,对于任务被成功地执行的任何任务情节,系统都能够扩增(augment)训练数据以改进训练的有效性。

例如,系统也能够在状态表示-动作对的序列以及被设定为指示任务被成功地完成的值(例如,值一)的奖励值上训练神经网络,并且,在此训练期间,将针对其成功地执行了任务的对象指派为用于训练神经网络的目标对象。换句话说,在序列上训练神经网络期间,系统能够将神经网络以针对其成功地执行了任务的对象的嵌入为条件(即使状态表示-动作对的序列是在神经网络以目标对象的嵌入为条件时生成的)。如上,在此训练期间,系统将除了最后状态表示-动作对以外的每个状态表示-动作对的奖励设定为零(或指示任务未被成功地执行的另一值),而序列中的最后状态表示–动作对(包括导致任务被成功地执行的最后动作的对)的奖励将为一(或指示任务被成功地执行的另一值)。

作为另一示例,系统选择环境中与目标对象不同的替代对象。例如,系统能够从可能的目标对象中随机选择替代对象。

系统然后能够确定成功对象的矢量嵌入与替代对象(如上所述)的矢量嵌入之间的相似性量度并且基于成功对象的矢量嵌入与替代对象的矢量嵌入之间的相似性量度来确定奖励值,并且(i)使用状态表示-动作对的序列和所述奖励值并且(ii)在替代对象被指派为用于训练对象交互任务神经网络的目标对象情况下训练对象交互任务神经网络。

换句话说,对于至少序列中的最后状态表示–动作对,即,针对其完成了任务的对,系统能够将神经网络以替代对象的嵌入为条件并且使该对与基于成功对象的矢量嵌入与替代对象的矢量嵌入之间的相似性量度的奖励值相关联。

作为又一示例,系统能够替代地(i)使用状态表示–动作对的序列和指示机器人在执行任务时失败的奖励值并且(ii)在替代对象被指派为用于训练对象交互任务神经网络的目标对象情况下训练对象交互任务神经网络。

通过采用这些扩增技术中的一种或多种,系统能够在无需执行附加任务情节的情况下扩增训练数据。这能够改进训练过程的数据效率并减小作为训练过程的结果而对机器人造成的磨损量。

尽管已经主要在物理真实世界环境的情境中描述了主题技术,但是应领会的是,也可以与非真实环境一起使用本文描述的技术。例如,在一些实施方式中,环境可以为模拟环境并且代理(agent)可以是与模拟环境交互的模拟机器人。例如,当神经网络在模拟中训练然后之后将该神经网络部署以控制与真实世界环境交互的真实世界机器人时,这可以是有利的。

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

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

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

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

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

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

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

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程还可以由专用逻辑电路(例如,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 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号