作者thefattiger (LawTea)
看板DataScience
标题[心得] 文章翻译:为何DRL还行不通? Part1
时间Sat Sep 15 00:23:24 2018
Github好读版连结
https://github.com/LilTwo/Article/issues/1
本文为
https://www.alexirpan.com/2018/02/14/rl-hard.html
的翻译
这篇文章非常长,我预计分三到四个部分翻译
讲得都满到位的,个人认为很值得花时间一看
有点出了几个在DRL中常会遭运的困难
正文开始(以下的"我"代表的是原作者):
有一次在Facebook上,我说了下面这句话:
不管何时有人问我强化学习能否解决他们的问题,我都会告诉他们"不行"
我认为至少在70%的时候我是对的
因为某些理由,DRL被过分炒作
RL是个非常通用的方法,且原则上一个好的RL系统能在任何领域上都表现良好
而在过去一段时间DL也取得了很大的成功
因此将DL与RL结合起来是个再自然不过的事情
DRL是目前看起来最像强人工智慧(AGI)的方法之一,这吸引了无数的资金
但不幸地,现在它还很不成熟
我相信它具有成功的潜力,如果我不相信RL的话,我也不会研究它了
但现在依然存在非常多的问题,且很多是从根本上难以解决的
那些看起来完美的范例都将背後的血泪隐藏了起来
最近我看到有些人被DRL的一些成功案例蒙骗了
他们一开始成功地用DRL解决了一些简单的玩具问题
这些成功让他们低估了DRL的困难,而後他们会经历无数的失败
直到他们知道如何设立合理的研究目标
这不是任何人的错,更像是个系统性的问题
写一个有关於成功案例的故事是很简单的,但写一个关於失败案例的故事很难
失败的案例是研究者实际上最常遇到的情况,并且它们也比成功的案例重要
在这篇文章剩下的部分,我会解释为什麽DRL还不能很好地发挥作用,和那些成功案例
以及未来我预期DRL会如何地变得更可靠
写这篇文章并不是要阻止人们投入这个领域
而是我相信如果人们能够了解问题是什麽并取得共识,研究会更容易有进展
并且避免人们不断重新发现其他人已经发现过的问题
我想要看到更多DRL的新研究,我想要更多人加入这个领域,我也想要人们了解他们会遇
到什麽
在文章继续前,先讲几件事情
1.在这篇文章中我引用了一些paper,通常我是为了这些paper中具有启发性的失败案例而
引用它们,而略过里面的成功案例
这并不代表我不喜欢这些paper,我喜欢它们,如果你有时间你也应该阅读它们
2.我常常会交换使用RL和DRL这两个词,因为在最近RL通常指的是DRL
但我的批评针对的是DRL,而不是一般的RL
我引用的paper通常有一个具备深度网路的agent
虽然有些批评可能也适用於线性RL或表列式的RL,但我想这些缺点在较小的问题中是不存
在的
而DRL会红起来是由於在大型、复杂及高维度的环境中,一个好的函数近似是需要的
这方面才是特别需要被点出来的
3.这篇文章的结构是从悲观到乐观,我知道文章有点长,但如果你在回应前花点时间把它
看完我会很感激的
在我们更进一步前,先提一些DRL失败的点
DRL的取样率非常差
最知名的DRL成功例子就属Atari了,如同在那篇很有名的DQN paper里,如果你将
Q-Learning与合理大小的神经网路结合起来
配合一些优化技巧,就能在几款Atari游戏里达到人类甚至超越人类水平的表现
Atari游戏的帧数是每秒60张,你能想像现在最先进的DQN算法要花多少祯数才能达到人类
水平吗?
这个答案跟游戏的种类有关,所以来看一下最近Deepmind的paper,Rainbow DQN
(Hessel et al, 2017).
这篇paper将各个增进DQN效能的技巧分开来研究,分析它们的优势与欲解决的问题
并示范如何将这些技巧的优势结合在一起,达到最好的效能
它可以在40/57款Atari游戏中达到人类的水平,结果如下图:
https://www.alexirpan.com/public/rl-hard/rainbow_dqn.png
y轴是"median human-normalized score",此分数计算方法是训练57个DQN,每个DQN对应
一款游戏
将DQN取得的分数以人类的表现为100%进行归一化,然後取出中位数(在57款游戏中)
RainbowDQN需要1800万帧才达到100%,这对应的83小时的游玩时间,还要加上训练所花的
时间
而大多数时候,人类只要花几分钟就能上手一款游戏
还要提醒你,1800万帧已经很好了,前一个纪录是Diributional DQN的7000万祯,足足是
四倍
而原版的DQN即使训练超过2亿帧也达不到人类水平
RL要学好一个策略要花的样本数通常都超乎你的想像
这个问题不是在Atari才存在,另一个有名的成功案例是MuJoCo,一个由MuJoCo模拟器所
定义的任务集
在这些任务中,输入状态通常是机器人各个关节的位置和速度,即使不用解决视觉的问题
(因为环境是模拟的)
这些任务也都要花10万到1000万步去学习,在这麽简单的环境中这是非常惊人的量
DeepMind parkour paper出了以下的示范影片,策略是由64个worker训练超过100个小时
所得到
paper中没有明确说明worker代表什麽,但我假设是代表CPU
https://www.youtube.com/watch?v=hx_bgoTF7bs
这些成果很酷,当它刚出来时我很惊讶DRL可以达到如此成果
但同时,它们需要6400个CPU小时是令人沮丧的,我并不是预期它们应该需要更少的时间
而是DRL的取样效率还是比实用水平高了好几个数量级
这里有一个很明显的反驳论点:如果我们忽略取样效率的?
有很多的环境下样本是非常好取得的,例如游戏
但不幸地是,现实中的环境大多数不是如此
如果你只在乎最後的成果,多数问题都能够用其他方法解决并得到更好的结果
当你在找某个研究问题的解决方案时,通常都要在几个目标间做取舍
你可以找到一个很好的解决方法,抑或是贡献出一些很好的研究成果
最好的研究问题是那些你既可以找到好的解决方案同时也能贡献好的研究成果
但找到这种问题是很难的
当你只关心效能时,DRL通常没那麽好,它常输给其他的方法
下面是一个MuJoCo的机器人,使用online trajectory optimization控制
正确的动作是在近乎即时、线上且没有离线训练的情况下被计算出来的
而且是跑在2012年的硬体上
https://www.youtube.com/watch?v=uRVAX_sFT24
我想这些行为跟parkour paper比起来是很好的,这两个有什麽不一样?
不一样的点在於Tassa等人用的是model predictive control,能对真实的模型做出
planning
Model-free的RL没有做这种planning,所以它难得多
另一方面,如果对模型做planning帮助如此之大,为什麽还要训练一个华而不实的RL策略
呢?
类似於上个例子,你可以轻易地用现成的MCTS超越DQN,底下的数字来自Guo et al,
NIPS 2014
他们比较了DQN与UCT的在Atari游戏中取得的分数(UCT是现在MCTS的标准版本)
再一次强调,这个比较并不公平,因为DQN没有做搜索,MCTS则对真实的模型做了搜索
不过有时候你并不关心公平与否,你只想要演算法能够成功地运作
强化学习理论上可以在任何事情上运作,包含那些无法得知环境模型的情况
但是这种通用性是有代价的:你很难取得到对特定问题的学习有帮助的资讯,这使你必须
取得非常大量的样本
经验法则是:除了那些特定的案例,针对该领域本身的演算法都能够做得比RL更快更好
如果你使用DRL是为了研究DRL本身,那这并不重要,但当我将RL与其它几乎任何演算法比
较时都相当沮丧
我喜欢AlphaGO的其中一个理由是它毫无疑问的是DRL的成功,这种例子非常少见
这让我很难与外行人解释为什麽我的问题是困难且有趣的,因为他们通常没有经验去了解
DRL难在哪
人们想像DRL能做到的事与它们实际能做到的事之间有一道很大的落差
我现在这在研究机器人,想一下当人们提到机器人时会想到的第一间公司:Boston
Dynamics
https://www.youtube.com/watch?v=fRj34o4hN4I
很多人以为这是用RL达成,但并不是
如果你去看他们的paper,你会发现paper提到 time-varying LQR, QP solvers,
optimization
换言之:传统的机器人控制方法,当你正确使用这些方法时它们可以表现的很好
RL通常需要一个奖励函数B
RL假设奖励函数存在,通常是被给定的,或者由人工设计并在训练时固定
我说"通常"是因为有例外,如inverse RL,但大部分的RL方法都需要奖励函数
为了让RL正确地执行,奖励函数需要精准地描述你的任务,请注意,是"精准地"
RL有一个很恼人的倾向是overfit你的奖励,导致那些你没有预期的事情发生
这就是为什麽Atari是一个很好的参考案例,不只是因为它很容易取得很多样本
也是因为在所有游戏里目标都是取得尽可能多的分数,所以你不需要担心怎麽设计奖励函
数
而且你知道所有人都有一样的奖励函数
这也是为什麽MuJoco的任务是在这个领域如此地流行
因为它们是在模拟环境中执行,你对於物体的状态有完整的理解
这让奖励函数的设计简单了很多
在"Reacher"任务中,要控制一个由两部分组成的手臂,手臂连接到中央的点
此任务的目的是要移动手臂的端点到目标的位置,下面的影片是一个成功学习的策略
https://www.youtube.com/watch?v=BkhSKqc8vSA
因为所有的位置都是已知的,奖励可以被定义为手臂端点的目标的距离,加上一些控制成
本的损失
原则上在真实世界中也可以这麽做,只要你有够多的感测器能够精准地测量环境中的位置
但是在某些系统中合理的奖励是很难定义的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 58.114.212.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1536942208.A.83D.html
1F:推 sma1033: 唉唷不错喔 09/15 05:37
2F:→ sma1033: 这篇文章点到很多RL研究会碰到的问题,我觉得很值得看 09/15 05:38
3F:推 st1009: 推推 如果方便的话,把内容贴到PTT上吧,ctrl+e可以编辑文 09/15 12:02
4F:→ st1009: 章 09/15 12:02
※ 编辑: thefattiger (58.114.212.150), 09/17/2018 23:04:27
5F:推 a78998042a: 推推 09/18 21:53
6F:推 uloyoy: 感觉DRL会红是因为它对domain knowledge的要求较低 09/19 11:13
7F:推 sr29: 我一直以为DRL的reward function对domain knowledge还是很有 09/19 23:47
8F:→ sr29: 要求的,直到我看了hindsight experience replay的论文... 09/19 23:48
9F:→ thefattiger: 之前试过HER的效果没想像中的好 09/20 11:24
10F:→ thefattiger: goal不是那麽好设计 09/20 11:25
11F:推 steven95421: 推 11/23 02:18