(翻译)深度强化学习目前还不能很好的工作

介绍

有一次,在Facebook,我说了这样一句话:
当有人问我强化学习是否能解决他们的问题,我会告诉他们不能。我认为在70%的时间这是正确的。
(翻译)深度强化学习目前还不能很好的工作
深度强化学习被铺天盖地的宣传包围着。而且有充分的理由!强化学习是一种令人难以置信的通用范式,原则上,一个健壮且性能优异的RL系统应该在所有方面都很出色。将这种范式与深度学习的经验力量相结合,显然是一个合适的选择。Deep RL是与AGI最接近的东西之一,这也是激发数十亿美元资金的那种梦想。

不幸的是,它目前还不能很好的工作。

现在,我相信它能工作。如果我不相信强化学习,我就不会做强化学习了。但是在这个过程中有很多问题,其中很多从根本上来说是困难的。那些成功的、优雅的示例智能体掩盖了创造它们的过程中所有的鲜血、汗水和眼泪。

现在,我已经好几次看到人们被最近的作品所吸引。他们第一次尝试深度强化学习,而且没有失败,他们低估了深度RL的难度。毫无疑问,“玩具问题”并不像看上去那么简单。毫无疑问,这个领域会摧毁他们几次,直到他们学会如何设定现实的研究期望。

这并不是某个人的错。这更像是一个系统性问题。围绕一个积极的结果写一个故事是很容易的。对于消极的人来说,很难做到同样的事情。问题是,消极的情绪是研究人员最常遇到的。在某些方面,消极的情况实际上比积极的情况更重要。

在这篇文章的其余部分,我将解释为什么deep RL不起作用,它在哪些情况下起作用,以及我认为它在未来更可靠地发挥作用的方式。我这么做不是因为我想让人们停止对深度RL的研究。我这样做是因为我相信,如果人们对这些问题达成一致意见,就更容易在问题上取得进展,而且如果人们真正地讨论这些问题,而不是一次又一次地独立地重新发现同样的问题,就更容易达成一致。

我想看到更深入的RL研究。我想让新人加入这个领域。我也想让新人知道他们在做什么。

在进入这篇文章的其他部分之前,先说几句。

● 我在这篇文章中引用了几篇论文。通常,我会引用论文中令人信服的消极例子,而忽略积极的例子。这并不意味着我不喜欢这个论文。我喜欢这些论文——如果你有时间的话,它们值得一读。

● 我交替使用强化学习和深度强化学习,因为在我的日常生活中,RL总是隐含着Deep RL的意思。我批评的是深度强化学习的经验行为,而不是一般意义上的强化学习。我引用的论文通常代表具有深层神经网络的智能体。尽管经验主义的批评可能适用于线性RL或表格式RL,但我不确信它们能推广到更小的问题。围绕深度RL的大肆宣传是由将RL应用于需要良好函数逼近的大型、复杂、高维环境的前景所驱动的。这种炒作尤其需要解决。

● 这篇文章的结构是从悲观到乐观。我知道这篇文章有点长,但是如果你能在评论之前花点时间读完整篇文章,我会很感激的。

闲话少说,下面是一些deep RL的失败案例。

深度强化学习的样本效率可能非常低

最著名的深度强化学习基准是Atari。正如现在著名的Deep Q-Networks论文所示,如果你将Q-Learning与合理大小的神经网络和一些优化技巧相结合,你可以在几个Atari游戏中获得人类或超人的性能。

Atari游戏的运行速度为每秒60帧。在您的脑海中,您能估计一个最新的DQN需要多少帧才能达到人类性能吗?

答案取决于游戏,所以让我们看看Deepmind最近的一篇论文《Rainbow DQN》(Hessel et al, 2017)。本文对原始DQN体系结构的几个增量改进进行了ablation study(不知道怎么翻译,就是去掉某些特征或结构,观察对于结果的影响),证明将所有改进结合在一起可以获得最佳性能。它在57款Atari游戏中超过40款的表现超过了人类水平。结果显示在这个方便的图表中。
(翻译)深度强化学习目前还不能很好的工作
y轴是“人类标准化得分的中位数”。这是通过训练57个DQNs来计算的,每个Atari游戏一个DQNs,将每个agent的得分标准化,使人类的表现为100%,然后绘制出57场比赛的中位数表现。RainbowDQN在1800万帧的时候就超过了100%的门槛。这相当于83小时的游戏体验,再加上训练模型所需要的时间。对于大多数人在几分钟内就能上手的雅达利游戏来说,时间很长。

请注意,1800万帧实际上已经很不错了,考虑到之前的记录(Distributional DQN (Bellemare et al, 2017))需要7000万帧才能达到100%的中值性能,大约多花了4倍的时间。至于Nature DQN (Mnih et al,2015),它从来没有达到100%的中值性能,即使在经历了2亿帧之后。

计划谬论认为完成一件事所花费的时间通常比你想象的要长。强化学习有它自己的计划谬论——学习一个策略通常需要比你想象的更多的样本。

这不是atari特有的问题。第二大最流行的基准是MuJoCo基准,在MuJoCo物理模拟器中设置的一组任务。在这些任务中,输入状态通常是仿真机器人各关节的位置和速度。即使不需要解决视觉问题,根据不同的任务,这些基准测试也需要10510^510710^7的步数来学习。
要控制这样一个简单的环境,需要相当多的经验。

下面是DeepMind的跑酷论文(Heess et al, 2017),通过使用64名worker超过100小时的时间来训练策略。这篇文章没有阐明“worker”是什么意思,但是我假设它是指一个CPU。

(翻译)深度强化学习目前还不能很好的工作
视频链接

这些结果非常酷。当它第一次出现时,我很惊讶deep RL竟然能够学会这些跑步步法。

与此同时,这需要6400个CPU小时的事实有点令人沮丧。这并不是说我期望它需要更少的时间,更多的是,令人失望的是,deep RL仍然需要一个远超实际水平样本效率的巨大的数据量。

这里有一个明显的对立面:如果我们忽略样本效率会怎么样?有一些情况很容易产生经验。游戏就是一个很好的例子。但是,对于任何不符合这种的情况,RL面临着一场艰苦的战斗,不幸的是,大多数现实世界都属于这一类。

如果您只关心最终的性能,那么许多问题可以用其他方法更好地解决

当为任何研究问题寻找解决方案时,通常会在不同的目标之间进行权衡。你可以进行优化为研究问题找到一个很好的解决方案,或者你可以进行优化为做出一个好的研究贡献。最好的问题是那些需要做出好的研究贡献才能得到好的解决方案的问题,但是很难找到符合标准的可接近的问题。

仅仅为了获得良好的性能,deep RL的跟踪记录并不是很好,因为它总是被其他方法打败。这是MuJoCo机器人的视频,由在线轨迹优化控制。正确的行动是在接近实时的在线计算,不需要离线培训。而且它运行在2012年的硬件上。(Tassa et al,IROS 2012)。
(翻译)深度强化学习目前还不能很好的工作
视频地址

我认为这些行为可以和跑酷论文相比。这篇论文和那篇论文有什么不同?

不同之处在于,Tassa等人使用模型预测控制,根据地面真值世界模型(物理模拟器)执行规划。无模型RL不做这个规划,因此实现起来更加困难。另一方面,如果针对模型进行规划有这么大的帮助,那为什么还要为RL策略的培训费心呢?

同样,使用现成的蒙特卡洛树搜索,您可以轻松地在Atari中胜过DQN。以下是来自Guo等人的基线数据,NIPS 2014。他们将训练有素的DQN的分数与UCT智能体的分数进行比较(UCT是目前使用的标准MCTS版本)。
(翻译)深度强化学习目前还不能很好的工作
同样,这也不是一个公平的比较,因为DQN不进行搜索,而MCTS根据真实世界模型(Atari仿真器)执行搜索。然而,有时候你并不关心公平的比较。有时候你只是想让它工作。(如果您对UCT的完整评估感兴趣,请参阅原版Arcade Learning Environment论文的附录(Bellemare et al, JAIR 2013)。)

从理论上讲,强化学习可以在任何情况下工作,包括不知道模型的环境。然而,这种普适性是有代价的:很难利用任何可以帮助学习的特定于问题的信息,这迫使您使用大量的示例来学习可能已经手工编码好的问题。

经验法则是,除极少数情况外,特定领域的算法比强化学习运行得更快更好。如果你是为了深度强化学习而进行深度强化学习,那么这并不是一个问题,但我个人觉得,当我将深度强化学习的性能与其他任何东西进行比较时,这会令人沮丧。我如此喜欢AlphaGo的一个原因是,对于深度RL来说,它是一场明确的胜利,而这种情况并不经常发生。

这使得我更难向外行人解释为什么我的问题是酷的、困难的和有趣的,因为他们通常没有背景或经验来理解为什么它们是困难的。人们认为深度RL能做的事情和它真正能做的事情之间存在着解释差异。我现在在机器人领域工作。当你提到机器人技术时,大多数人会想到的公司是:波士顿动力公司

(翻译)深度强化学习目前还不能很好的工作
视频地址

这并没有使用强化学习。在我的一些谈话中,人们认为它使用了RL,但它并没有。如果您查阅该小组的研究论文,您会发现涉及时变LQR、QP求解器和凸优化的论文。换句话说,他们大多使用经典的机器人技术。事实证明,如果你运用得当,那些经典的技巧也能很好地发挥作用。

强化学习通常需要奖励函数

强化学习假设存在奖励函数。通常,这要么是给定的,要么是手工离线调优,并在学习过程中保持固定。我之所以说“通常”,是因为也有例外,比如模仿学习或逆RL,但大多数RL方法都将奖励视为神谕。

重要的是,为了让RL做正确的事情,你的奖励功能必须准确地捕捉到你想要的东西。我的意思完全正确。RL有一种令人讨厌的倾向,就是过度适应你的奖励,导致你做一些你意想不到的事情。这就是为什么Atari是一个很好的基准。不仅很容易获得大量的样本,而且每个游戏的目标都是最大化得分,所以你不必担心如何定义你的奖励,而且你知道其他人都有相同的奖励功能。

这也是MuJoCo任务受欢迎的原因。因为它们是在模拟环境中运行的,所以你对所有的对象状态都了如指掌,这使得奖励功能的设计更加容易。

在Reacher任务中,你控制一个连接到一个中心点的两段手臂,目标是移动手臂的末端到目标位置。下面是一个成功学习到的政策的视频。
(翻译)深度强化学习目前还不能很好的工作
视频地址

由于所有位置都是已知的,奖励可以定义为从手臂末端到目标的距离,加上一个小的控制成本。原则上,在现实世界中也可以这样做,如果您有足够多的传感器来为您的环境获得足够精确的位置。但这取决于你希望你的系统做什么,可能很难定义一个合理的奖励。

就其本身而言,需要一个奖励功能并不是什么大问题,除了…

奖励函数的设计是困难的

建立奖励函数并不是那么困难。当你试图设计一个奖励函数来鼓励你想要的行为时,困难就来了。

在HalfCheetah的环境中,你有一个两条腿的机器人,被限制在一个垂直平面上,这意味着它只能向前或向后跑。
(翻译)深度强化学习目前还不能很好的工作
目标是学习跑步步态。奖励是HalfCheetah的速度。

这是一种成形的奖励,意味着它在接近最终目标的状态中给予越来越多的奖励。这与稀疏奖励形成了对比,稀疏奖励只在目标状态下给予奖励,在其他状态下不给予奖励。成形奖励通常更容易学习,因为即使政策没有找到解决问题的完整方案,它们也能提供积极的反馈。

不幸的是,定型的奖励会影响学习。如前所述,这会导致你的行为与你想要的不匹配。一个很好的例子就是来自OpenAI博客的赛艇游戏。预定的目标是完成比赛。你可以想象一个稀疏奖励会给在给定时间内完成任务+1奖励,而给其他0奖励。

所提供的奖励会给你点数,也会给你收集加速完成比赛的道具的奖励。事实证明,拥有升级装备比完成比赛获得更多的分数。
(翻译)深度强化学习目前还不能很好的工作
视频地址

说实话,当这篇博客文章第一次出现时,我有点恼火。这并不是因为我认为这是一个不好的观点!因为我认为它所表达的观点是显而易见的。当然,当奖励被错误指定时,强化学习会做一些奇怪的事情!这让人觉得博客对这个例子做了不必要的大买卖。

然后我开始写这篇博客,并意识到最引人注目的视频错误指定的奖励是赛艇视频。从那以后,这个视频被用在了几个演讲中,引起人们对这个问题的注意。所以,好吧,我不得不承认这是一篇不错的博文。

RL算法是一个连续体,在这个连续体中,它们可以假定或多或少地了解它们所处的环境。最广泛的分类,无模型RL,几乎与黑箱优化相同。这些方法只允许假设它们符合MDP。否则,他们什么也得不到。agent被简单地告知,这个会给+1奖励,而这个不会,它必须自己学习剩下的内容。就像黑箱优化一样,问题是任何给予+1奖励的东西都是好的,即使+1奖励不是出于正确的原因。

一个典型的非rl的例子是有人把遗传算法应用到电路设计,和got a circuit where an unconnected logic gate was necessary to the final design.

(翻译)深度强化学习目前还不能很好的工作
灰色的单元格必须得到正确的行为,包括左上角的那个,即使它没有连接到任何东西。From “An Evolved Circuit, Intrinsic in Silicon, Entwined with Physics”

最近的例子,请看Salesforce 2017年发布的这篇博文。他们的目标是文本摘要。他们的基准模型经过监督学习训练,然后用一种叫做ROUGE的自动度量进行评估。ROUGE是不可微的,但是RL可以处理不可微的奖励,所以他们尝试用RL直接优化ROUGE。这得到了高分的ROUGE(万岁!),但它实际上没有给出好的总结。这是一个例子。

巴顿被剥夺了他为迈凯轮的第100场比赛,因为一辆埃尔斯赛车阻止了他进入起跑线。对英国人来说,这是一个悲惨的周末。按钮出合格。在巴林的比赛中,他领先尼科·罗斯伯格。刘易斯·汉密尔顿。在11场比赛中。比赛。领先2000圈。在。和。

原文:Button was denied his 100th race for McLaren after an ERS prevented him from making it to the start-line. It capped a miserable weekend for the Briton. Button has out-qualified. Finished ahead of Nico Rosberg at Bahrain. Lewis Hamilton has. In 11 races. . The race. To lead 2,000 laps. . In. . . And.
Paulus et al, 2017

所以,尽管RL模型给出了最高的ROUGE评分…
(翻译)深度强化学习目前还不能很好的工作
但是他们最终使用了一种不同的模型。

这是另一个有趣的例子。这是Popov等人,2017年,有时被称为“乐高叠叠论文”。作者使用分布式版本的DDPG来学习掌握策略。目标是抓住红色块,并将其堆叠在蓝色块之上。

他们成功了,但是他们遇到了一个失败的案例。对于最初的举起动作,奖励是基于红块的高度。这是由块底部面的z坐标定义的。失败的模式之一是,该政策学会了把红色方块打翻,而不是把它捡起来。
(翻译)深度强化学习目前还不能很好的工作
视频地址

显然,这不是我们想要的解决方案。但是RL不在乎。从强化学习的角度来看,它会因为翻转砖块而得到奖励,所以它会一直翻转砖块。

解决这个问题的一种方法是使奖励变得稀疏,只在机器人堆叠方块后给予正奖励。有时,这是可行的,因为稀疏奖励是可学习的。通常情况下,它不会这样做,因为缺乏积极的强化让一切都变得太困难。

解决这个问题的另一种方法是仔细调整奖励,添加新的奖励项,并调整现有的奖励项的系数,直到你想要学习的行为从RL算法中消失。在这条战线上对抗RL是可能的,但这是一场非常没有成就感的战斗。有时,这是必要的,但我从来没有觉得我学到了什么。

这里有一张乐高叠叠高的论文的奖励函数,供参考。
(翻译)深度强化学习目前还不能很好的工作
我不知道设计这个奖励花了多少时间,但基于项的数量和不同系数的数量,我猜“很多”。

在与其他RL研究人员的交谈中,我听到了一些轶事,是关于他们从不正确定义的奖励中看到的新行为。