AI 科技评论按:本文作者 Frankenstein,首发于作者的知乎主页,AI科技评论获取授权转载。
今天在学校又双叒叕提到了 Deep Reinforcement Learning That Matters 这篇打响 DRL(Deep Reinforcement Learning, 深度强化学习)劝退第一枪的文章后,回来以后久违刷了一下推特,看到了这篇爆文 Deep Reinforcement Learning Doesn't Work Yet(https://www.alexirpan.com/2018/02/14/rl-hard.html),或可直译为深度强化学习还玩不转或意译为深度强化学习远不能即插即玩。
看完以后很多从自己去年七月入坑以来隐隐约约的困惑都得到了解答。读完大有如不见此文,万古如长夜之感。心里激动,一时难以自抑。知乎上深度强化学习的内容比较少,最好的私以为是智能单元(https://zhuanlan.zhihu.com/intelligentunit),此外还有许多零散的论文介绍、课程笔记、问答等等,但好像没人提过这篇文章。这篇文章是我入坑以来看到的深度强化学习方面最好的阶段性总结,强烈建议应该作为深度强化学习的第一课,看完以后大家再慎重考虑到底要不要入坑。
先看一下作者的背景。作者叫 Alex Irpan,现为谷歌大脑机器人团队的软件工程师。他从伯克利拿到的计算机科学本科学位,本科的时候曾经在伯克利人工智能实验室(Berkeley AI Research (BAIR) Lab)进行本科科研,导师是 DRL 大牛 Pieter Abbeel,他还和 John Schulman 工作过。
这篇文章一上来就指出深度强化学习是个大坑。它的成功案例其实很少,但每个都太有名了,例如用 Deep Q Network(DQN)在 Atari games 上用原始像素图片作为状态达到甚至超越人类专家的表现、通过左右互搏(self-play)等方式在围棋上碾压人类、大大降低了谷歌能源中心的能耗等等。造成的结果就是没有从事过深度强化学习的研究人员对它产生了很大的错觉,高估了它的能力,低估了它的难度。
强化学习本身是一个非常通用的人工智能范式,在直觉上让人觉得非常适合用来模拟各种时序决策任务,如语音、文本类任务。当它和深度神经网络这种只要给我足够层和足够多的神经元,可以逼近任何函数的非线性函数近似模型结合在一起感觉要上天啊,无怪乎 DeepMind 经常号称人工智能=深度学习+强化学习。
然而 Alex 告诉我们别急,让我们先来审视一些问题:
特别是上述第六点,几乎是灾难性的。作者提到自己实习的时候一开始实现 Normalized Advantage Function (NAF),为了找出 Theano 本身的 bugs 花了六周,这还是在 NAF 作者就在他旁边可以供他骚扰的情况下的结果。原因就是DRL的算法很多时候在没找好超参数的情况下就是不 work 的,所以你很难判断自己的代码到底有没有 bug 还是运气不好。
作者也回顾了 DRL 成功的案例,他认为 DRL 成功的案例其实非常少,大体包括:
作者认为从这些案例里获得的经验教训是 DRL 可能在有以下条件的情况下更可能有好的表现,条件越多越好:
他也指出了一些未来潜在的发展方向和可能性:
最后 Alex 总体还是非常乐观的。他说尽管现在有很多困难,使得 DRL 或许还不是一个强壮(robust)到所有人都可以轻易加入的研究领域并且很多时候一些问题用DRL远没有监督学习简单和表现好,但或许过几年你再回来 DRL 就 work 了也未知啊。这还是很振奋人心的。田渊栋老师也表达过类似的想法,觉得正因为这个领域还不够成熟所以还有很多机会。他们都是了不起的研究人员。
看到这篇文章我总体是非常激动的。但实话说也有些遗憾,如果去年暑假就有这篇文章的话也许我就会再慎重考虑一下到底要不要在实验室没有积累自己又离毕业和申请不远的情况下开始这样一个主题了。这是一个教训,就是开始一个领域前要对这个领域要有充分的了解,之前零零散散在网上也有了一点相关的声音,比如 Karpathy 就提到他在实现 vanilla policy gradient 的时候也遇到了很多困难。
If it makes you feel any better, I’ve been doing this for a while and it took me last ~6 weeks to get a from-scratch policy gradients implementation to work 50% of the time on a bunch of RL problems. And I also have a GPU cluster available to me, and a number of friends I get lunch with every day who’ve been in the area for the last few years. Also, what we know about good CNN design from supervised learning land doesn’t seem to apply to reinforcement learning land, because you’re mostly bottlenecked by credit assignment / supervision bitrate, not by a lack of a powerful representation. Your ResNets, batchnorms, or very deep networks have no power here. [Supervised learning] wants to work. Even if you screw something up you’ll usually get something non-random back. RL must be forced to work. If you screw something up or don’t tune something well enough you’re exceedingly likely to get a policy that is even worse than random. And even if it’s all well tuned you’ll get a bad policy 30% of the time, just because. Long story short your failure is more due to the difficulty of deep RL, and much less due to the difficulty of “designing neural networks”.
来源:https://news.ycombinator.com/item?id=13519044
但我一开始并没有注意到。其实导师也一直有提到说他觉得我的 project 比较有风险,特别是他觉得现在除了 Berkeley, OpenAI,DeepMind 之外很少有 DRL 做的不错的实验室,这本身就表明这个方向可能有一些无形的门槛。现在我觉得这些可能包括计算资源和设备(机器人),对相关 trick 和坑了然于胸的相对资深的研究人员等等。客观上这些地方的人综合水平和工程能力也是强的让人发指,直接竞争非常困难。虽然我自己比较弱,但这些对于打算进入 DRL 的同学们都需要慎重考虑一下。
最后的最后还是要强推 Alex 的这篇文章,他列的这些点很多 DRL 的研究人员可能已经非常了解了,但之前没有人这样完整、有组织地介绍一遍。对于想要做 DRL 的同学们来说实在是福音。拙作是看完他文章后第一时间的感想和概括,对于我不够了解的有些地方就一笔带过了,或者表述也不够准确。原文很长,我在对大部分内容比较熟悉的情况下看了一个半小时,但也很有意思,还是强烈推荐。
最后本文可能有些标题党,并不是真的要完全劝退大家,Alex 的本意是希望大家更加冷静地看待目前 DRL 研究的进展,避免重复踩坑。评论区里有提到因为困难才有做的价值,还有机器人、控制论背景的朋友提到他觉得 drl can do anything 如果你有正确的超参数,这些意见也很值得大家参考。