背景技术:
许多机器人被手动编程来执行某些任务。例如,装配线上的机器人可以通过手动编程来识别某些对象,并对该某些对象执行特定操作。
此外,一些机器人可以利用一个或多个经训练的机器学习模型来执行某些任务。例如,深度强化学习(reinforcementlearning,rl)已经被提出并用于一些连续的机器人控制任务,诸如移动(locomotion)和对象操纵。然而,这样的机器人控制任务是原子的(atomic),因为它们需要要么偶发要么循环地执行一些技能。这种机器人控制任务不涉及复杂的多级推理,诸如利用各种移动行为来实现需要运动、与对象交互、和制定离散决策的复杂目标。
技术实现要素:
本文公开的实施方式涉及训练和/或利用多级分层强化学习(multi-levelhierarchicalreinforcementlearning,hrl)模型以用于机器人控制。hrl模型至少可以包括更高级别策略模型和更低级别策略模型。更高级别策略模型和更低级别策略模型可以各自是相应的机器学习模型,诸如神经网络模型。更高级别策略模型用于在相应的控制步骤(例如,每c个控制步骤,其中c>1)处理当前状态,以生成更高级别动作(本文也称为更高级别目标)。当前状态可以包括,例如,正被控制的机器人智能体(agent)的机器人状态观察(例如,机器人智能体及其肢体的位置和朝向),以及可选地,机器人智能体被部署在其中的环境的环境状态观察。更高级别动作可以是例如机器人状态差别(roboticstatedifferential),即,当前机器人状态和目标机器人状态之间的差异(例如,对于当前机器人状态观察的期望相对变化)。换句话说,在给定时间步骤(timestep)的更高级别动作本身可以是一种机器人状态,该机器人状态如果被应用于当前机器人状态,将导致接近目标机器人状态的结果机器人状态(resultingroboticstate)。
更低级别策略模型用于在每个时间步骤处理当前状态观察和当前更高级别动作,以生成相应的更低级别动作,来用于直接控制机器人。在各种实施方式中,更高级别策略模型仅用于每c个控制步骤(其中c>1)生成相应的更高级别动作,而更低级别策略模型用于在每个控制步骤生成相应的更低级别动作。这使得能够使用更高级别策略模型实现临时扩展的规划,而在每个控制步骤中使用更低级别策略模型来生成更低级别命令,以根据来自临时扩展的规划的目标状态来控制机器人。因此,在给定控制步骤中处理的当前更高级别动作可以是直接使用更高级别策略模型生成的一个动作(如果它在给定控制步骤中生成了一个动作的话),或者可以使用固定目标转换函数来确定,该固定目标转换函数用于在每个中间控制步骤中将更高级别动作转换成新的更高级别动作。使用更低级别策略生成的更低级别动作可以采取各种形式,诸如,例如,要施加到机器人的致动器的扭矩。更低级别动作用于通过例如生成和/或向机器人的(多个)致动器提供相应的控制命令来直接控制机器人。
经验数据用于训练hrl模型。可以通过在确定目标状态时使用相应的更高级别动作、并且针对执行产生接近匹配期望目标的机器人观察状态的动作而奖赏更低级别策略模型,来训练hrl模型的更低级别策略模型。例如,在给定步骤的更高级别动作是指示目标状态的机器人状态差别的情况下,当更低级别策略执行使得机器人转换到匹配或接近目标状态的状态的动作时,更低级别策略可以被奖赏(可选地,基于其匹配的接近程度来奖赏)。因此,在生成奖赏时,可以将基于应用更低级别动作而生成的状态观察与由更高级别动作指示的目标状态进行比较。因此,目标状态和状态观察可以直接用于确定奖赏,这比需要训练目标表示的替代技术更高效。这允许使用奖赏信号立即、甚至在更低级别策略模型已经被训练以能够有效地达到目标状态之前、以及在更高级别的奖赏(基于hrl模型正在被训练的任务)提供任何有意义的监督之前,来有效地训练更低级别策略模型。这可以导致更低级别策略模型以更少的迭代和更少的经验数据进行训练,从而节省训练和生成经验数据中使用的资源。此外,这使得能够对更低级别策略模型进行离线策略(off-policy)训练,因为在训练更低级别策略模型中使用的奖赏是独立于基于任务的环境奖赏来确定的,其中更高级别策略模型是在该基于任务的环境奖赏上训练的。离线策略训练能够以更少的迭代和更少的经验数据进行训练,同样也节约了资源。
hrl模型的更高级别策略模型可以与更低级别策略模型一起训练,并且也可以利用离线策略训练。然而,离线策略训练在hrl中会带来各种挑战。例如,由于更低级别策略模型在更高级别策略模型之下变化,所以在过去针对某个更高级别动作观察到的经验在将来可能不会产生相同的更低级别行为,因此对于更高级别策略模型的训练来说不是有效的经验(因为更低级别行为影响环境奖赏)。本文公开的实施方式通过利用离线策略校正来补救这一点,该离线策略校正用经修改的更高级别动作来重新标记过去利用更高级别策略模型的先前训练的版本生成的经验数据的更高级别动作。可以选择经修改的更高级别动作来寻找将导致经验数据的相同/相似环境奖赏的更高级别动作。在一些实施方式中,可以选择经修改的更高级别动作来最大化经验数据的过去更低级别动作的概率(从而增加经验数据的相应环境奖赏的概率)。本文更详细地公开了用于生成经修改的更高级别动作的各种特定技术。
在一些实施方式中,提供了一种用于机器人控制的分层强化学习模型的更高级别策略模型的离线策略训练的方法。在这些实施方式中的一些中,该方法包括从先前存储的基于在先前经验事件(episode)期间使用在先前训练的状态下的分层强化学习模型控制机器人而生成的用于所述机器人的经验数据中检索给定的过去的经验数据。检索到的给定的过去经验数据可以包括:基于机器人在先前的经验事件中的观察状态的所存储的状态;用于从所存储的状态转换到目标状态的所存储的更高级别动作;以及基于在先前事件期间的更低级别动作的应用而确定的至少一个所存储的环境奖赏。所存储的更高级别动作是先前在先前的经验事件期间使用更高级别策略模型生成的动作。此外,所存储的更高级别动作是在生成在所述先前经验事件期间应用于所述机器人的更低级别动作时在所述先前经验事件期间使用所述分层强化学习模型的更低级别策略模型被先前处理的动作。该方法还包括确定经修改的更高级别动作,以代替所存储的更高级别动作用于分层强化学习模型的进一步训练。基于更低级别策略模型的当前训练的状态来确定经修改的更高级别动作。更低级别策略模型的当前训练的状态不同于先前训练的状态(在先前经验事件中使用)。该方法还包括使用所存储的状态、使用至少一个所存储的环境奖赏、以及使用经修改的更高级别动作代替所存储的更高级别动作来进一步对更高级别策略模型进行离线策略训练。
该技术的这些和其他实施方式可以包括以下特征中的一个或多个。
在一些实施方式中,该方法还包括,在进一步离线策略训练之后,使用分层强化学习模型来控制附加机器人的一个或多个致动器。
在一些实施方式中,基于所存储的更高级别动作和基于更低级别策略模型的当前训练的状态来确定经修改的更高级别动作包括:识别包括所述经修改的更高级别动作的多个候选的经修改的更高级别动作;和基于确定如果在所述更低级别策略模型的当前训练的状态下将所述经修改的更高级别动作与所存储的状态观察一起应用于所述更低级别策略模型,则所述经修改的更高级别动作比候选的经修改的更高级别动作中的其他经修改的更高级别动作有更大的可能性来引发所述更低级别动作,来选择所述经修改的更高级别动作。在那些实施方式的一些版本中,所述方法还包括:基于确定如果在所述更低级别策略模型的当前训练的状态下将所述经修改的更高级别动作与所存储的状态一起应用于所述更低级别策略模型,则所述经修改的更高级别动作比所存储的更高级别动作有更大的可能性来引发所述更低级别动作,来选择所述经修改的更高级别动作而不是所存储的更高级别动作。在这些实施方式的一些附加或替代版本中,识别多个候选的经修改的更高级别动作包括选择固定数量的候选的经修改的更高级别动作。例如,选择固定数量的候选的经修改的更高级别动作可以基于从基于所存储的状态观察为中心的高斯分布进行随机采样。
在一些实施方式中,所存储的状态包括机器人的多个组件的位置。在这些实施方式中的一些中,所存储的状态缺少对于机器人的任何组件的任何速度、加速度和/或急动度。
在一些实施方式中,该方法还包括:基于参数化的奖赏对更低级别策略模型进行离线策略训练。在这些实施方式的一些版本中,参数化的奖赏是基于以下确定的:更高级别动作,以及在先前经验事件期间机器人的给定状态,该给定状态是由更低级别动作的应用产生的。在这些版本中的一些版本中,该方法还包括:基于目标状态和给定状态之间的距离来确定参数化的奖赏。
在一些实施方式中,先前经验事件在模拟中执行,并且机器人是模拟机器人。
在一些实施方式中,基于在先前事件期间应用更低级别动作之后的状态观察来确定环境奖赏。在这些实施方式中的一些中,环境奖赏是基于正在为其训练更高级别策略模型的任务来确定的。
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,该方法包括识别机器人的当前状态观察。该方法还包括使用分层强化学习模型的更高级别策略模型来确定用于从当前状态观察转换到目标状态观察的更高级别动作。该方法还包括:基于使用分层强化学习模型的更低级别策略模型处理当前状态观察和更高级别动作来生成原子动作(atomicaction)。该方法还包括将原子动作应用于机器人,以使得机器人转换到更新的状态。该方法还包括为原子动作生成内在奖赏。内在奖赏是基于更新的状态和目标状态观察生成的。该方法还包括:基于原子动作的内在奖赏来训练更低级别策略模型。
该技术的这些和其他实施方式可以包括以下特征中的一个或多个。
在一些实施方式中,该方法还包括:在训练之后,使用分层强化学习模型来控制附加机器人的一个或多个致动器。
在一些实施方式中,该机器人是模拟机器人。
在一些实施方式中,基于更新的状态和目标状态观察生成内在奖赏包括:基于更新的状态和目标状态观察之间的l2差生成内在奖赏。
在一些实施方式中,该方法还包括:生成环境奖赏,并基于环境奖赏来训练更高级别策略模型。
在一些实施方式中,提供了一种由机器人的一个或多个处理器实施的方法,该方法包括:识别机器人的当前状态。该方法还包括:在第一控制步骤中,使用分层强化学习模型的更高级别策略模型,确定用于从当前状态转换到目标状态的更高级别动作。该方法还包括:基于使用分层强化学习模型的更低级别策略模型处理当前状态和更高级别动作来针对第一控制步骤生成第一更低级别动作。该方法还包括:对机器人应用第一更低级别动作,以使得机器人转换到更新的状态。该方法还包括:在第一控制步骤之后的第二控制步骤中,通过将至少当前状态、更新的状态和更高级别动作应用于转换函数来生成更新的更高级别动作。该方法还包括:基于使用更低级别策略模型处理更新的状态和更新的更高级别动作,针对第二控制步骤生成第二更低级别动作。该方法还包括:对机器人应用第二更低级别动作,以使得机器人转换到进一步更新的状态。
其他实施方式可以包括存储可由一个或多个处理器(例如,一个或多个中央处理单元(cpu)、一个或多个图形处理单元(gpu)、和/或一个或多个张量处理单元(tpu))执行的指令的非暂时性计算机可读存储介质,以执行诸如上述和/或本文其他地方描述的方法中的一个或多个方法的方法。又一实施方式可以包括一个或多个计算机和/或一个或多个机器人的系统,该系统包括一个或多个处理器,该一个或多个处理器可操作来执行存储的指令以执行诸如上文和/或本文其他地方描述的方法中的一个或多个的方法。
应当理解,本文更详细描述的前述概念和附加概念的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开结尾的所要求保护的主题的所有组合都被认为是本文公开的主题的一部分。
附图说明
图1示出了可以实现本文公开的实施方式的示例环境。
图2示出了流程图,该流程图示出了图1的组件以及使用分层强化学习模型收集经验数据并在分层强化学习模型的离线策略训练中利用所收集的经验数据的各种实施方式。
图3是示出使用分层强化学习模型收集经验数据的示例方法的流程图。
图4是示出使用先前根据图3的方法收集的经验数据的分层强化学习模型的离线策略训练的示例方法的流程图。
图5示意性地描绘了机器人的示例架构。
图6示意性地描绘了计算机系统的示例架构。
具体实施方式
在参考附图之前,提供了本文公开的技术的特定实施方式的概述。应当理解,本文的公开不限于这样的实施方式,并且本文公开了另外的实施方式(例如,在发明内容、具体实施方式的剩余部分和权利要求中)。
深度强化学习(reinforcementlearning,rl)已经被提出用于一系列连续的机器人控制任务,诸如移动技能、学习灵巧的操纵行为等。然而,大多数这些连续的机器人控制任务本质上是原子的,因为它们需要要么偶发地要么循环地执行一些简单的技能。它们很少涉及复杂的多级别推理,诸如利用各种移动行为来实现复杂的目标,这些目标需要运动、与对象的交互、和离散的决策制定。
分层强化学习(hrl)长期以来一直被认为能够学习如此复杂的多级别推理任务,在分层强化学习中,多层策略模型被训练成执行决策制定以及在连续更高级别的时间和行为抽象上进行控制。通过具有策略模型的层次结构,其中只有最低级别策略模型用于生成应用于环境的操作,(多个)更高级别策略模型可以被训练为在更长的时间范围内进行规划。此外,如果使用更高级别策略模型生成的更高级别动作对应于语义上不同的更低级别行为,则探索技术可以被应用于更适当地探索复杂的环境。然而,hrl的基本定义和它对成功解决复杂环境的承诺之间有很大的差距。
在本文公开的实施方式利用了在探索事件期间由环境提供的状态观察。例如,在移动任务中,状态观察可以包括机器人智能体及其肢体的位置和朝向。这些实施方式将智能体的将环境观察与期望的目标状态相匹配的能力解释为一套引发不同行为组的任务。也就是说,由更高级别策略模型生成的更高级别动作被用于生成目标状态,并且更低级别策略模型因执行产生接近匹配期望的目标状态的观察的动作而被奖赏。这样,根据本文公开的实施方式的hrl设置不需要多任务设计,并且是完全通用的。
实施方式进一步提出了在hrl模型训练中有效利用离线策略训练的技术。离线策略训练比在线策略训练更具数据效率。例如,在训练和/或为训练生成经验数据时,它需要更少的计算机资源(例如,处理器和/或存储器资源)。然而,离线策略训练在hrl中存在问题,因为更低级别策略模型正在更高级别策略模型之下发生变化。因此,在过去关于某个更高级别的动作观察到的经验在将来可能不会产生相同的更低级行为,因此对于训练来说不是有效的经验。本文公开的技术通过引入离线策略校正来补救这个问题,该离线策略校正用经修改的更高级别动作(诸如被选择来最大化过去的更低级别动作的概率的动作)来重新标记过去的经验(包括在经验数据中)的更高级别动作。以这些和其他方式,可以利用过去的经验来使用更高效的离线策略rl方法来有效地训练更高级别策略模型。
因此,本文公开的各种实施方式以普遍适用和/或数据高效的方式训练多级别hrl模型。普遍性通过训练hrl模型的更低级别策略模型以达到使用(多个)更高级别策略模型学习和指示的目标状态来实现。数据高效性通过使用具有离线策略校正的离线策略训练以用于训练hrl模型的(多个)更高级策略模型来实现。本文公开的技术使得能够训练hrl模型,该模型能够成功地执行与环境中的对象的复杂交互序列。
本文公开的实施方式采用标准连续控制rl设置,其中智能体(例如,真实的或模拟的机器人)根据行为策略μ与环境在长时间段上进行交互。通过该标准连续控制rl设置,在每个时间步骤t,环境产生状态观察
本文公开的实施方式利用时间差异学习(temporaldifferencelearning),这是rl中的强大范例,其中可以根据从与环境的交互中收集的状态-动作-奖赏转换元组(stat,rt,st+1)高效地学习策略。交互可以包括模拟机器人与模拟环境的模拟交互和/或真实机器人与真实环境的真实交互。本文公开的一些实施方式利用双延迟(twindelayed,td3)深度确定性策略梯度(deepdeterministicpolicygradient,ddpg)学习算法,该算法是用于连续控制的ddpg算法的变体。
在ddpg中,确定性神经网络策略μφ连同其相应的状态动作q函数qθ一起被学习。q函数代表采取从状态st开始的特定动作at的未来值。因此,它被训练为最小化所有采样转换的平均贝尔曼误差,该误差由下式给出:
ε(st,at,st+1)=(q0(st,at)-rt-γqθ(st+1,μφ(st+1)))2(1)
然后对策略进行训练,以产生在每个状态下最大化q值的动作。也就是说,μφ被训练为在从与环境的交互中收集的所有st上最大化qθ(st,μφ(st))。
虽然ddpg训练了确定性策略
本文公开的实施方式使用参数化的奖赏函数来指定更低级别策略模型的潜在的无限集合,其中的每一个都被训练成将其观察到的状态st与使用更高级别策略模型指定的期望目标相匹配。更高级别策略模型针对暂时延长的时间段指定这些目标,并使用离线策略校正来使其能够使用从更低级别策略模型的先前不同实例(例如,更低级别策略模型的不同的训练的状态)收集的过去经验。
本文公开的实施方式将与环境交互的单个策略μ的传统rl设置扩展到分层的两层结构,其具有更低级别策略μlo和更高级别策略μhi。在每个时间步骤t,环境提供观察状态st。更高级别策略模型用于处理观察状态st,并且当t=0时产生更高级别动作(或目标)gt~μhi(即,通过使用更高级别策略模型处理状态st),或者使用固定目标转换函数h(下面更详细地描述)产生更高级别动作gt=h(st-1,gt-1,st)。然后,更低级别策略观察状态st和目标gt,并产生被应用于环境的更低级别原子动作at~μlo(st,gt)(即,通过使用更低级别策略模型处理状态st和目标gt)。然后,该环境产生从未知奖赏函数r(st,at)采样的奖赏rt,并转换到从未知转换函数f(st,at)采样的新状态st+1。更高级别控制器使用固定的内在奖赏函数r向更低级别控制器提供内在奖赏rt=r(st,gt,at,st+1)。更低级别策略存储经验(st,gt,at.rt,st+1,h(st,gt,st+1))用于离线策略训练。更高级别策略收集环境奖赏rt,并且每c个时间步骤存储经验(st:t+c-1,gt:t+c-1,at:t+c-1,rt:t+c,st+c)用于其训练。虽然本文描述的各种实施方式每c个时间步骤针对固定的c生成新的更高级别动作,但是也可以使用其他协议。例如,在使用学习的或固定的更低级别终止函数来确定何时使用更高级别策略模型对更高级别动作重新采样更合适的情况下,可以使用其他协议。
更高级别策略模型被用来产生gt,指示状态观察中期望的相对变化。也就是说,在步骤t,更高级别策略模型被用来产生目标gt,指示它希望更低级别智能体来采取行动,从而产生接近st+gt的观察st+c。因此,固定的目标转换模型h被定义为:
h(st,gt,st+1)=st+gt-st+1(2)
内在奖赏被定义为参数化的奖赏函数。例如,参数化的奖赏函数可以基于当前观察和目标观察之间的l2距离:
r(st,gt,at,st+1)=-||st+gt-st+1||2(3)
参数化的奖赏函数奖赏更低级别策略采取的行动,这些行动产生的观察接近期望的st+gt。在各种实施方式中,gt可以用于指定和仅测量观察的某些维度上的距离,诸如包含位置观察的完整集合的维度,而忽略如速度和视觉输入的维度。
可以通过将gt作为价值和策略模型的附加输入来训练更低级别策略模型。例如,在ddpg,就更低级别q值函数
策略
要使hrl方法在现实环境中可用,它们必须是采样高效的(sample-efficient),因此可能需要离线策略训练。因此,本文公开的实施方式呈现了用于离线策略校正的技术,该技术使得能够对更高级别策略模型进行有原则的离线策略训练。采取由更高级别策略收集的经验(st:t+c-1,gt:t+c-1,at:t+c-1,rt:t+c,st+c)并将其转变为状态-动作-奖赏转换(st,gt,∑rt:t+c,st+c,)是很有吸引力的,这些转换可以被推入离线策略rl算法的重放(replay)缓冲区。然而,在先前训练的状态中使用更低级别策略模型获得的转换不会准确地反映如果相同的目标与更低级别策略模型的当前实例一起使用时将会发生的动作(以及由此产生的状态st+1:t+c)。
因此,本文公开的实施方式引入了一种将旧的转换转化(translate)成与更低级别策略模型的当前实例化一致的经修改的转换的校正。在那些实施方式中,更高级别动作gt(其在过去引发了更低级别行为at:t+c-1~μlo(st:t+c-1,gt:t+c-1))被重新标记为目标
为了在实践中近似地最大化这个量,可以计算多个目标
虽然在前面的段落中描述了特定的重新标记技术,但是可以佳用附加的或替代的技术。例如,经验重放存储从遵循更低级别策略
基于估计的目标,可以利用各种技术来确定经修改的高级别动作。作为一个示例,可以寻找新的目标
这导致动作重新标记目标是
其中
或者
根据本文公开的实施方式,各种环境、任务和/或机器人可用于生成经验数据以训练hrl模型。然后经训练的hrl模型可以用于类似的环境、任务和/或机器人。作为一个非限制性示例,可以利用模仿蚂蚁的机器人,并且利用收集任务,其中机器人寻求收集特定目标对象,同时避免其他负对象(negativeobject)。目标对象和/或负对象可以在每个事件开始时随机放置在环境中。除了观察其自身的位置和速度之外,机器人还观察其传感器范围内的深度读数,并且这种深度读数可以用作本文描述的状态的一部分。对于遇到的每一个目标对象可以施加1的环境奖赏,对于遇到的每一个负对象可以施加-1的环境奖赏。作为另一个非限制性示例,可以在环境中包括可移动块,并且机器人可以与可移动块交互以试图到达环境中的目标位置(例如,块必须被移动以到达目标位置)。每一步骤的环境奖赏可以是到目标位置的当前负l2距离。
现在转到附图,图1示出了可以实现本文公开的实施方式的示例环境。图1包括更低级别(也称为低级别)策略模型156和更高级别(也称为高级别)策略模型154,它们共同形成分层强化学习模型。高级别策略模型154可以由高级别离线策略训练器124来训练。如本文所述,在训练高级别策略模型154时,高级别离线策略训练器124可以利用从过去的经验事件收集的经验数据158。此外,也如本文所述,高级别动作修改引擎139可以与高级别离线策略训练器124接口(或结合为高级别离线策略训练器124的一部分),并且可以生成经修改的高级别动作,以在高级别策略模型154的离线策略训练期间使用。例如,考虑到更低级别策略模型156的当前训练的版本,高级别动作修改引擎139可以用经修改的更高级别动作来替换来自经验数据158的高级别动作,其中经修改的高级别动作被选择来最大化相应经验数据的过去的更低级别动作的概率。低级别策略模型156可以由低级别离线策略训练器126使用经验数据158来训练,如本文所述。
在图1中,示出了高级别引擎134,其在处理状态观察101时与高级别策略模型154交互(有效地形成高级别智能体),以生成高级别动作103,该高级别动作103被传递给低级别引擎136。如本文所述,高级别引擎134可以每c个时间步骤/控制步骤处理相应的当前状态观察,其中c大于1。对于中间时间步骤,可以生成转换高级别动作104(例如,由高级别引擎134生成)并将其传递给低级别引擎136。每个转换高级别动作104可以基于固定的转换函数、依赖于在前的高级别动作(103,或104的先前迭代)以及依赖于通过应用由低级别引擎136生成的在前的低级别动作105而生成的更新的状态观察来生成。
低级别引擎136在处理状态观察101和高级别动作103(或转换高级别动作104)时与低级别策略模型156交互(有效地形成低级别智能体),以生成低级别动作105。依赖于当前状态观察101和当前高级别动作103或当前转换高级别动作104,低级别引擎136可以在每个时间步骤/控制步骤生成相应的低级别动作105。
高级别动作105可以由控制引擎142处理,并且相应的控制命令106被提供给机器人(真实的或模拟的)的(多个)致动器144,以使得机器人执行低级别动作105,从而产生新的状态观察101,然后新的状态观察101可以由低级别引擎136和可选的高级别策略引擎134处理(例如,依赖于时间步骤)。注意,在各种实施方式中,低级别动作105包括可以直接作为控制命令106应用、而无需控制引擎142的任何解释的(多个)扭矩或(多个)其他命令。
机器人110也在图1中示出,并且是物理(即,现实世界)移动机器人的一个示例,该移动机器人可以在执行一个或多个机器人任务时利用根据本文公开的实施方式训练的高级别策略模型和低级别策略模型。可以提供附加的和/或替代的机器人,诸如在一个或多个方面与图1所示的机器人110不同的附加机器人。例如,可以使用移动叉车机器人、无人驾驶飞行器(unmannedaerialvehicle,“uav”)、多足机器人(例如,类似蚂蚁的机器人)和/或人形机器人来代替机器人110或作为机器人110的补充。机器人110和/或其他机器人还可以由机器人模拟器模拟,来生成模拟的经验数据。
机器人110包括基座113,基座113的相对侧设置有轮子117a、117b,用于机器人110的移动。基座113可以包括例如一个或多个用于驱动机器人110的轮子117a、117b的马达,以实现机器人110的移动的期望的方向、速度和/或加速度。
机器人110还包括视觉组件111,其可以生成与视觉组件111的视线内的(多个)对象的形状、颜色、深度和/或其他特征相关的观察数据。视觉组件111可以是例如单目照相机、立体照相机和/或3d激光雷达组件。机器人还包括附加的视觉组件112,其可以生成与视觉组件112的视线内的(多个)对象的形状、颜色、深度和/或其他特征相关的观察数据。视觉组件112可以是例如接近传感器、一维(one-dimensional,id)lidar组件或二维(2d)lidar组件。在各种实施方式中,视觉组件111生成更高保真度的观察(相对于视觉组件112)。
机器人110还包括一个或多个处理器,所述一个或多个处理器例如:实现高级别引擎134和低级别引擎136(如下所述),并基于利用低级别策略模型生成的低级别动作(以及基于利用高级别策略模型154生成的输出)向其的致动器和/或其他操作组件提供控制命令。机器人110还包括机器人臂114a和114b,机器人臂114a和114b具有相应的末端执行器115a和115b,末端执行器115a和115b各自采取具有两个相对的“手指”或“爪”的夹具的形式。尽管示出了特定的抓握末端执行器115a、115b,但是可以使用附加的和/或替代的末端执行器,诸如替代的冲击抓握末端执行器(例如,具有抓握“板”、具有更多或更少“手指”/“爪”的末端执行器)、“进入(ingressive)”抓握末端执行器、“约束(astrictive)”抓握末端执行器、或“连续(contigutive)”抓握末端执行器、或非抓握末端执行器。此外,尽管视觉组件111和112的特定布置在图1中示出,但是可以利用附加和/或替代布置。
如上所述,机器人110的(多个)处理器可以实现高级别引擎134和低级别引擎136,所述高级别引擎134和低级别引擎136一旦已经被训练,它们就分别利用高级别策略模型154和低级别策略模型156进行操作。控制引擎142也可以由机器人110的(多个)处理器实现,并且(多个)致动器144是机器人110的(多个)致动器。机器人110还可以在本地存储器(例如,ram和/或rom)中包括高级别策略模型154和低级别策略模型156。
图2示出了流程图,该流程图示出了图1的组件以及使用分层强化学习模型收集经验数据并在分层强化学习模型的离线策略训练中利用所收集的经验数据的各种实施方式。在图2中从左向右移动,在初始时间步骤,使用高级别策略模型156处理当前状态s0(例如,通过图1的高级别引擎134),以生成高级别动作g0。使用低级别策略模型156一起处理高级别动作g0以及当前状态s0(例如,通过图1的低级别引擎136),以生成低级别动作a0。低级别动作a0被应用于环境201(例如,应用于真实的或模拟的机器人),以使得生成新的当前状态s1。此外,还基于新的当前状态s1生成环境奖赏r0。例如,环境奖赏r0可以使用未知的奖赏函数和/或基于正在为其训练高级别策略模型156的任务来生成。例如,环境奖赏r0可以基于到最终目标位置的距离、是否遇到目标位置或对象、是否遇到负对象(即,要避免的对象)和/或可从环境状态获得的(多个)其他因素。如本文所述,还可以基于新的当前状态s1与由高级别动作g0指示的目标状态的比较来生成内在奖赏。
在下一个时间步骤,使用转换函数来一起处理新的当前状态s1以及高级别动作g0,以生成新的高级别动作g1。换句话说,在下一个时间步骤,高级别策略模型不被用来生成新的高级别动作g1。相反,新的高级别动作g1是基于新的当前状态s1从高级别动作g0推断出的。然后,使用低级别策略模型156来一起处理新的高级别动作g1以及新的当前状态s1,以生成另一低级别动作a1。低级别动作a1被应用于环境201(例如,应用于真实的或模拟的机器人),以使得生成新的当前状态s2。此外,还基于新的当前状态s2生成环境奖赏r1。例如,可以使用未知的奖赏函数和/或基于正在为其训练高级别策略模型156的任务来生成环境奖赏r1。还可以基于新的当前状态s2与由高级别动作g1指示的目标状态的比较来生成内在奖赏。
该一般过程可以重复一个或多个附加时间步骤(如省略号所示),包括时间步骤c-1。在时间步骤c-1,使用转换函数来一起处理新的当前状态sc-1(响应于时间步骤c-2的动作而生成)以及先前时间步骤的高级别动作gc-2,以生成新的高级别动作gc-1。然后,使用低级别策略模型156一起处理新的高级别操作gc-1以及新的当前状态sc-1,来生成另一个低级别动作ac-1。低级别动作ac-1被应用于环境201,以使得生成新的当前状态sc。此外,基于新的当前状态sc-1,还生成了环境奖赏rc-1。还可以基于新的当前状态sc与由高级别动作gc-1指示的目标状态的比较来生成内在奖赏。
在时间步骤c,高级别策略模型154被再次利用于处理当前状态(状态sc)以生成新的高级别动作gc。然后,使用低级别策略模型156一起处理新的高级别动作gc以及新的当前状态sc,以生成另一个低级别动作ac。低级别动作ac被应用于环境201以导致生成新的当前状态sc+1。此外,还基于新的当前状态sc+1生成环境奖赏rc。还可以基于新的当前状态sc与由高级别动作gc指示的目标状态的比较来生成内在奖赏。图2中总体指示的流程将再次继续,为接下来的c个时间步骤推断新的高级别动作。该流程将继续,直到满足事件终止条件(例如,达到目标位置或其他任务目标),或者直到出现阈值数量的时间步骤。
经验转换(st,gt,at,rt,st+1,gt+1)被存储并随后被低级别离线策略训练器126用来训练低级别策略模型156。在训练低级别策略模型时,低级别离线策略训练器126使用基于rt=r(st,gt,at,st+1)确定的内在奖赏。环境奖赏和临时扩展的经验(包括环境奖赏rt)被存储为(st:t+c-1,gt:t+c-1,at:t+c-1,∑rt:t+c-1,st+c)并随后被高级别离线策略训练器124用于训练高级别策略模型154。如本文所述,在训练期间,存储的扩展的经验的高级别动作g可以被重新标记为
图3是示出使用分层强化学习模型收集经验数据的示例方法300的流程图。为了方便起见,流程图的操作参照执行这些操作的系统来描述。该系统可以包括一个或多个计算机系统的一个或多个组件。此外,虽然方法300的操作以特定顺序示出,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。
在框302,系统开始经验数据收集。
在框304,系统使用高级别策略模型来处理当前状态,以生成更高级别动作。
在框306,系统使用低级别策略模型处理当前状态和当前高级别动作,以生成更低级别动作。
在框308,系统实现更低级别动作,并获得由更低级别动作的实现导致的新的当前状态。
在框310,系统确定更低级别策略模型的内在奖赏。例如,在更高级别动作是指示目标状态的机器人状态差别的情况下,当框308的新的当前状态匹配或接近目标状态时,内在奖赏可以是正的。可选地,奖赏的幅度可以基于框308的新的当前状态与目标状态有多接近。因此,在生成奖赏时,可以将基于应用更低级别动作而生成的状态观察与由更高级别动作指示的目标状态进行比较。
在框312,系统存储更低级别经验数据和内在奖赏,用于更低级别策略模型的离线策略训练。
在框314,系统确定是否继续当前经验数据事件。例如,在框314,只要任务目标没有实现和/或阈值数量的步骤还没有发生,系统就可以确定继续。
如果在框314的迭代中,系统确定不继续,则系统返回到框302以进行更多的经验数据收集。例如,可以重置环境(可选地重置为新的初始状态),并执行另一个经验事件。
如果在框314的迭代中,系统确定继续,则系统前进到框316。
在框316,系统确定自从框304的最后一次迭代以来是否发生了<c个控制步骤。如果是,系统前进到框318,如果不是,系统前进到框320。
在框318,系统使用目标转换函数生成新的更高级别动作,并返回到框306,以使用低级别策略模型处理当前状态和新的更高级别动作,以生成新的更低级别动作。
在框320,系统存储更高级别转换和环境奖赏,用于离线策略训练。例如,系统存储最后c个控制步骤的更高级别转换,以及最后c个控制步骤的环境奖赏。环境奖赏可以基于在最后c个控制步骤中的框308的迭代之后的环境观察来确定,并且可选地考虑到正在为其训练更高级策略模型的任务来确定。
系统然后前进到框322,并重置计数器(用于计数是否发生了c个控制步骤),并返回到框304,以使用高级别策略模型来处理当前状态,以生成新的更高级别动作。
方法300可以被执行以生成大量的经验数据,用于训练更低级别和更高级别策略模型。此外,在一些实施方式中,方法300的多个实例可以并行执行。此外,在各种实施方式中,可以在方法300的一些或所有事件之间(即,当框314确定为“否”时)对更低级别和更高级别策略模型进行更新,其中更新基于模型的离线策略训练,该离线策略训练可以经由方法400并行发生,如下所述。
图4是示出使用根据图3的方法先前收集的经验数据对分层强化学习模型进行离线策略训练的示例方法400的流程图。为了方便起见,流程图的操作参照执行这些操作的系统来描述。该系统可以包括一个或多个计算机系统的一个或多个组件,诸如机器人的一个或多个处理器。此外,虽然方法400的操作以特定顺序示出,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。
在框402,系统开始分层强化学习模型离线策略训练。
在框404,系统使用从更低级别策略模型经验数据的转换,包括内在奖赏,来离线策略地训练更低级别策略模型。例如,系统可以使用先前存储在方法300的框312中的经验数据的实例来训练更低级别策略模型。然后,系统继续执行框404的进一步迭代,使用经验数据的附加实例进一步训练更低级别策略模型。如本文所述,更低级别策略模型的更新版本可以被周期性地推送(push)以用于在方法300中生成经验数据,并且在框404的迭代中使用的经验数据可以基于与在框404的那些迭代中被训练的版本不同的更低级别策略模型的版本来生成。然而,考虑到基于如本文所述的结果状态和目标状态来确定奖赏,可以有效地利用离线策略学习。在一些实施方式中,可以并行执行框404的多个迭代。
系统与框404的迭代并行地执行框406和408的迭代。在框406,系统基于更低级别策略模型的当前版本(例如,在框404的迭代中最近训练的),修改更高级别策略模型经验数据的高级别动作。例如,在框406,考虑到更低级别策略模型的当前版本,可以选择经修改的更高级别动作来最大化经验数据的过去的更低级别动作的概率。
在框408,系统使用具有经修改的更高级别动作的更高级别转换和来自经验数据的环境奖赏来离线策略地训练更高级别策略模型。例如,系统可以使用先前存储在方法300的框320中的经验数据的实例来训练更高级别策略模型。然后,系统继续执行框406和408的进一步迭代,使用经验数据的附加实例进一步训练更高级别策略模型。如本文所述,可以周期性地推送更高级别策略模型的更新版本以用于在方法300中生成经验数据,并且可以基于与在框406和408的那些迭代中训练的版本不同的更高级别和更低级别策略模型的版本来生成在框406和408的迭代中使用的经验数据。然而,考虑到框406的修改,可以有效地利用离线策略学习。在一些实施方式中,可以并行执行框406和408的多个迭代。
在框410,系统确定离线策略训练(例如,在框404和408的离线策略训练)是否完成。这可以基于各种考虑,诸如训练迭代的阈值数量是否已经完成、是否还剩下任何经验数据、是否已经实现了某些性能特征和/或其他(多个)考虑。
如果在框410的迭代中,系统确定离线策略训练没有完成,则系统继续执行框410的迭代,直到它确定离线策略训练完成。
如果在框410的迭代中,系统确定离线策略训练完成,则系统前进到框412,并且训练结束。然后,可以在一个或多个真实世界的机器人上部署和使用经训练的分层强化学习模型。
根据本文公开的技术控制的机器人可以采取各种形式,包括但不限于远程呈现机器人、人形机器人、动物机器人、昆虫机器人、水生机器人、轮式机器人、潜水机器人、无人驾驶飞行器(“无人机”)机器人等。在各种实施方式中,机器人可以包括一个或多个处理器,该一个或多个处理器可以实施本文公开的各种方法的所有和/或一些方面。机器人的(多个)处理器可以采取各种形式,诸如一个或多个cpu、一个或多个gpu、一个或多个现场可编程门阵列(“fpga”)和/或一个或多个专用集成电路(“asic”)。在一些实施方式中,(多个)处理器可以可操作地与存储器耦合。存储器可以采取各种形式,诸如随机存取存储器(“ram”)、动态ram(“dram”)、只读存储器(“rom”)、磁阻ram(“mram”)、电阻ram(“rram”)、nand闪存等等。
图5示意性地描绘了机器人525的示例架构。机器人525包括机器人控制系统560、一个或多个操作组件540a-540n以及一个或多个传感器542a-542m。传感器542a-542m可以包括例如视觉传感器、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等等。尽管传感器542a-542m被描绘为与机器人525成一体,但这并不意味着是限制性的。在一些实施方式中,传感器542a-542m可以位于机器人525的外部,例如作为独立单元。
操作组件540a-540n可以包括例如一个或多个末端执行器和/或一个或多个伺服电机或其他致动器,以实行机器人的一个或多个组件的运动。例如,机器人525可以具有多个自由度,并且每个致动器可以响应于控制命令在一个或多个自由度内控制机器人525的致动。如本文所使用的,术语致动器包括创建运动的机械或电气设备(例如,马达),以及可以与致动器相关联并且将接收到的控制命令转化成用于驱动致动器的一个或多个信号的任何(多个)驱动器。因此,向致动器提供控制命令可以包括向驱动器提供控制命令,该驱动器将控制命令转化成用于驱动电气或机械设备以创建期望运动的适当信号。
机器人控制系统560可以在一个或多个处理器中实现,诸如cpu、gpu和/或机器人525的(多个)其他控制器。在一些实施方式中,机器人525可以包括“大脑盒”,其可以包括控制系统560的所有或一些方面。例如,大脑盒可以向操作组件540a-540n提供实时数据突发,其中每个实时突发包括一个或多个控制命令的集合,这些控制命令尤其规定了一个或多个操作组件540a-540n中的每个的运动的参数(如果有的话)。在一些实施方式中,机器人控制系统560可以执行本文描述的方法的一个或多个方面。
如本文所述,在一些实施方式中,由控制系统560在执行机器人任务时生成的控制命令的所有或一些方面可以基于如本文所述的训练的分层强化学习模型的利用。尽管控制系统560在图5中被示为机器人525的组成部分,但是在一些实施方式中,控制系统560的所有或一些方面可以在与机器人525分离但与之通信的组件中实现。例如,控制系统560的全部或一些方面可以在与机器人525有线和/或无线通信的一个或多个计算设备(诸如计算设备610)上实现。
虽然本文描述的各种方法可以由机器人实现,但是其他方法可以由一个或多个计算设备实现。例如,生成经验数据可以由操作机器人模拟器的(多个)计算设备来执行。此外,例如,可以使用(多个)计算设备的分布式集合来执行离线策略训练。图6是示例计算设备610的框图,该示例计算设备610可以可选地用于执行本文描述的技术的一个或多个方面。计算设备610通常包括至少一个处理器614,其经由总线子系统612与多个外围设备通信。这些外围设备可以包括:存储子系统624,包括例如存储器子系统625和文件存储子系统626;用户接口输出设备620;用户接口输入设备622和网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616向外部网络提供接口,并耦合到其他计算设备中的相应接口设备。
用户接口输入设备622可以包括:键盘;诸如鼠标、轨迹球、触摸板或图形输入板的定点设备;扫描仪;结合到显示器中的触摸屏;诸如语音识别系统的音频输入设备;麦克风和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入计算设备610或通信网络的所有可能类型的设备和方式。
用户接口输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备或用于创建可视图像的一些其他机制。显示子系统还可以诸如经由音频输出设备提供非视觉显示。一般而言,术语“输出设备”的使用旨在包括从计算设备610向用户或另一机器或计算设备输出信息的所有可能类型的设备和方式。
存储子系统624存储提供本文描述的一些或所有模块的功能的编程和数据结构。例如,存储子系统624可以包括执行本文描述的一个或多个方法的选定方面的逻辑。
这些软件模块通常由处理器614单独执行或与其他处理器结合执行。存储子系统624中使用的存储器625可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)630和存储固定指令的只读存储器(rom)632。文件存储子系统626可以为程序和数据文件提供永久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、cd-rom驱动器、光盘驱动器或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统626存储在存储子系统624中,或者存储在(多个)处理器614可访问的其他机器中。
总线子系统612提供了一种机制,用于让计算设备610的各种组件和子系统按照预期相互通信。尽管总线子系统612被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算设备610可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图6中描绘的计算设备610的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备610的许多其他配置可能具有比图6所示的计算设备更多或更少的组件。