Vitchyr Pong等作者乾树 王淑婷编译

​NIPS 2018 Spotlight论文:凭借幻想的目标进行视觉强化学习

为了让智能体在测试时自动实现用户指定的广泛目标,它必须能够学习广泛适用的通用技能。此外,为了提供必要的通用性,这些技能必须处理原始的传感输入,如图像。在本文中,作者提出了一种算法,通过结合无监督表征学习和目标条件策略的强化学习来获得这种通用技能。

我们想构建一个能够在复杂的非结构化环境中完成任意目标的智能体,例如可以做家务的机器人。一种有前景的方法是使用深度强化学习,这是一种用于教授智能体最大化奖励函数的强大框架。然而,典型的强化学习范例一般需要手动设计奖励函数来训练智能体解决独立任务。

例如,你可以通过设计奖励函数来训练机器人摆放餐桌,而这个函数则基于每个盘子或器具与其目标位置之间的距离来设定。这种设置需要为每个任务设计奖励函数,还需要诸如目标检测器之类的额外系统,这些系统可能昂贵又易坏。此外,如果想要能够执行大量琐事的机器,我们必须在每个新任务上重复这个强化学习训练步骤。

尽管设计奖励函数和设置传感器(门角测量,目标检测器等)在模拟中可能很容易做到,但在现实世界中它很快变得不切实际(右图)。

我们训练智能体在没有额外仪器的情况下仅凭视觉来解决各种任务。第一行展示了目标图像,底行展示了达到这些目标的策略。

在本文中,我们讨论了可以同时学习多个不同的任务而无需额外人工监督的强化学习算法。如果智能体要在没有人为干预的情况下获取技能,那它必须能够为自己设定目标、与环境交互,并评估其是否实现了改善行为的目标,所有这些都要通过图像等原始观测数据来实现,而不能借助目标探测器等手动设计的额外组件。

我们引入了一个设定抽象目标并自主学习以实现这些目标的系统;然后发现可以使用这些自主学习的技能来执行各种用户指定的目标,例如推动物体,抓取物体以及开门,而无需任何额外的学习。最后,我们证明这种方法在现实世界中能够应用在 Sawyer 机器人上。该机器人仅将图像作为系统的输入, 学会了设置并实现将物体推到特定位置的目标。

目标条件强化学习

我们该如何表示环境和目标的状态?在多任务设置中,枚举出机器人可能需要注意的所有物体可能不切实际:物体的数量和类型可能会发生变化,检测它们需要专用的视觉处理器。

不过,我们可以直接在机器人的传感器上操作,用机器人拍摄的图像来表示状态,而用我们想要实现状态的图像来表示目标。用户只需提供目标图像来指定新任务。我们发现,这项工作可以扩展为指定目标的更复杂方式,例如通过语音或演示,或者通过优化以前博客中的目标。

任务:让环境看起来像图片中这样。

强化学习的本质是训练智能体最大化奖励总和。对于目标条件强化学习来说,获得奖励的一种方法是减少当前状态和目标状态之间的距离,因此,要最大化奖励,就得最小化当前状态到目标状态的距离。

首先,我们可以通过学习目标条件 Q 函数来训练单一策略,以最大化奖励并因此达到目标状态。在给定当前状态 s 和目标 g 的情况下,目标条件 Q 函数 Q(s,a,g)会告诉我们动作 a 有多正确。例如,一个 Q 函数告诉我们,「如果我拿着一个盘子(状态 s)并且想把它放在桌子上(目标 g),那么举手(动作 a)有多正确?」一旦训练好这个 Q 函数,你就可以通过执行以下优化函数来获取目标条件策略:

通俗点说,「根据这个 Q 函数选择最佳动作。」通过使用这个程序,我们获得了一个最大化奖励总和的策略,可以实现各种目标。

Q 学习受欢迎的一个原因是,它能以非策略方式完成,这意味着我们训练 Q 函数所需的仅仅是当前状态、动作、下一状态、目标和奖励(分别为 s,a,s′,g,r)的样本。此数据可以通过任何策略收集,并且可以在多个任务中重复使用。因此,一个简单的目标条件 Q 学习算法如下所示:

该训练过程的主要瓶颈是收集数据。如果我们可以人工生成更多数据,理论上来说,我们甚至可以在不与环境互动的情况下学习解决各种任务。但是,学习一个精确的环境模型很困难,所以我们通常需要依靠抽样来获得状态—动作—下一状态 (s,a,s′) 的数据。

然而,如果能够访问奖励函数 r(s,g),我们就可以重新标记目标并重新计算奖励,从而在给定单个 (s,a,s′) 元组的情况下人工合成更多数据。因此,我们可以像这样修改此训练过程:

目标重采样的好处在于,我们可以同时学习如何一次实现多个目标,而无需从环境中获取更多数据。总的来说,这种简单的修改可以大大加快学习速度。上述方法有两个主要假设:(1)你能够访问奖励函数;(2)你知道目标采样分布 p(g) 的状况。

以前使用此目标重新标记策略的工作(Kaelbling 『93 , Andrychowicz 『17 , Pong 『18)基于真实状态信息(例如,物体的笛卡尔位置)进行操作,很容易手动设计目标分布 p(g) 和奖励函数。然而,当转向基于视觉的任务(其中目标是图像)时,这两个假设都不成立。

首先,我们不清楚应该使用哪种奖励函数,因为与目标图像的像素距离在语义上可能没有意义。其次,因为我们的目标是图像,我们需要一个可以从中进行采样的目标图像分布 p(g)。手动设计目标图像的分布是一项非常重要的任务,图像生成仍然是一个活跃的研究领域。因此,我们希望智能体能够自主设定自己的目标并学习如何实现这些目标。

凭借幻想的目标进行视觉强化学习

我们可以通过学习图像的表征,并将这种表征而非图像本身用于强化学习,来减轻与目标图像条件 Q 学习相关的挑战。关键问题变成了:我们的表征应满足哪些属性?为了计算语义上有意义的奖励,我们需要一种能够捕捉影响图像变化的潜在因素的表征。

此外,我们需要一种轻松生成新目标的方法。我们首先通过训练生成隐变量模型来实现这些目标,在我们的例子中用的是变分自编码器(VAE)。该生成模型将高维观察数据 x(如图像)转换为低维隐变量 z,反之亦然。

对模型进行训练,以便隐变量捕获图像中潜在的变化因素,类似于人类用于解释环境和目标的抽象表征。给定当前图像 x 和目标图像 x_g,我们将它们分别转换为隐变量 z 和 z_g。

然后我们用这些隐变量来表示强化学习算法的状态和目标。在低维隐空间而不是直接在图像上学习 Q 函数和策略,可以加快学习速度。

智能体将当前图像(x)和目标图像(xg)编码到隐空间中,并使用该隐空间中的距离进行奖励。

使用图像和目标的隐变量表征还解决了另一个问题:如何计算奖励。我们利用隐空间中的距离,而不是像素误差来作为训练智能体达到目标的奖励。在描述该方法的完整研究论文中,我们发现这样做能够最大化取得目标的概率并提供更有效的学习信号。

这种生成模型也很重要,因为它让智能体在隐空间中可以轻松生成目标。特别是,我们的生成模型被设计为忽视采样隐变量:我们之前只是从 VAE 中抽取隐变量。使用这种抽样机制有两个原因:

首先,它为智能体设定自己的目标提供了一种机制。智能体只是从我们的生成模型中对隐变量的值进行采样,并尝试达到该隐目标。其次,如上所述,该重采样机制还用于重新标记目标。因为我们的生成模型经过训练可以将真实图像编码到之前的图像中,所以之前隐变量的样本对应于有意义的隐目标。

即使不提供目标,我们的智能体仍然可以为探索和目标重新标记生成自己的目标。

总之,图像的隐变量表示(1)捕获场景的潜在因素,(2)提供有意义的优化距离,(3)提供一种有效的目标抽样机制,使我们能够有效地训练一个直接对像素进行操作的目标条件强化学习智能体。我们将这整个方法称为凭借幻想目标进行强化学习(RIG)。

实验

我们进行了实验来测试 RIG 是否具有足够的样本效率,能够在合理的时间内训练现实世界的机器人策略。我们测试了机器人到达用户指定位置、将物体推动到所需位置的能力,如目标图像所示。

机器人只能接收 84x84 RGB 图像,无法知道关节角度或物体位置。机器人首先通过在隐空间中设置自己的目标来学习。我们可以使用解码器来可视化机器人想象的目标。在下面的 GIF 中,上面的图片展示了解码的「想象」目标,而下面的图片展示了做出的实际策略。

机器人设定了自己的目标(上图)以及实现目标(下图)。

通过设定自己的目标,机器人可以自主地练习到达不同的位置而无需人为干预。唯一的人为干预发生在人们想要机器人执行特定任务的时候。这种时候,先给机器人输入目标图像。因为机器人已经通过练习达到了很多目标,我们发现它能够在没有额外训练的情况下达到这个目标:

人类给出一个目标图像(顶部),机器人实现它(底部)。

我们还使用 RIG 来训练将物体推动到目标位置的策略:

左:Sawyer 机器人设置。右:人类给出一个目标图像(顶部),机器人完成它(底部)。

直接从图像训练一个策略可以轻松地将任务从到达指定位置改为推送物体。我们只需添加一个物体、一个桌子,然后调整相机。最后,尽管直接从像素级开始工作,这些实验并没有花费很长时间。到达指定位置实际大约需要一个小时的机器人交互时间,而推动物体到目标位置需要大约 4.5 小时。

许多真实世界的机器人强化学习结果使用真实状态信息,如物体的位置。但是,这通常需要额外的机器,比如购买和设置额外的传感器或训练目标检测系统。相比之下,我们的方法只需要 RGB 相机并直接在图像上工作。

更多结果,包括对比实验,请阅读论文原文,地址如下:

https://arxiv.org/abs/1807.04742

未来展望

我们已经证明,直接在图像上训练现实世界机器人的策略是可行的,并且能以高效的方式完成各种任务。这个项目有许多令人兴奋的后续研究。目标图像可能无法表示所有任务,但是可以使用其它模式(例如语音和演示)来表示目标。

此外,尽管我们提供了一种机制来对自主探索的目标进行抽样,但是否存在更科学的方式选择这些目标来进行更好的探索?结合内在动机,我们的政策可以积极地选择目标,以更快地了解它能不能达到目标。

未来的另一个方向是训练我们的生成模型,使其了解动态。编码有关环境动态的信息可以使隐空间更适合强化学习,从而加快学习速度。

最后,实际生活存在各种机器人任务,其状态表征难以用传感器捕获,例如操纵可变形物体或处理具有可变数量物体的场景。放大 RIG 以解决这些任务将是令人兴奋的下一步。

原文链接:https://bair.berkeley.edu/blog/2018/09/06/rig/

理论强化学习计算机视觉SpotlightNIPS 2018
2
相关数据
深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

变分自编码器技术

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~