为什么说强化学习在近年不会被广泛应用?
来源:知乎
作者:朱哲清Bill(Facebook应用强化学习负责人,工程经理)
这正好是我的团队的方向,所以在不涉及公司内部信息的情况下大概说一下我的展望。我大概读了一下这个问题之下的大部分回答,我觉得可能有些过于悲观。我还是可以负责任的说,目前RL已经成熟的算法已经有部分可以直接上应用了(是真的应用,不是模拟器的那种)。我希望我的这个回答可以为大家增加一些信心吧。
强化学习我将它分为两个大部分来讲吧,一个是online RL,另一部分是offline RL。我分别一个一个的说,他们的应用场景很不一样。
Online Reinforcement Learning
先来说一下online RL。Online RL顾名思义就是说有一个environment是RL Agent一直可以交互并且获得experience的。这些experience可以为Agent后续的policy提供数据基础。也就是说,当Agent能够学到一个新的policy之后,它可以立刻将新的policy直接放到真实环境中来实验,来看自己的新policy是否有提升。在这个setting下,我将整个RL需要解决的问题分成两个大块,探索(Exploration)和多步决策(Sequential Decision Making)。
探索(Exploration): 说句实话,在Online RL里面不加探索,然后直接用过往数据做一个warmup然后直接greedy或者epsilon greedy来和environment交互又一点耍流氓哈哈。我先讲一下没有planning情况下,单步决策的bandit问题下的探索。探索的主要目的是要降低不确定性(uncertainty),这样可以为未来的决策提供更好的confidence。一般情况下,常规的LinUCB已经可以起到很好的效果了,但是目前来说有一个比较大的gap是如何在深度神经网络的情况下解决uncertainty estimation的问题。
目前有一条research agenda是要完成在深度神经网络下的不确定性估计。值得提的一句是,这里的uncertainty指的更多是epistemic uncertainty,即Agent对于environment的估计本身的不确定性,而不是environment本身的随机性带来的不确定性。这条research agenda也是我自己的一个研究方向,所以之后我在自己的主页也会给大家带来更多的研究进展。在实际应用中,单步决策的探索其实已经带来了很多的应用成果了,比如:
Li, Lihong, et al. "A contextual-bandit approach to personalized news article recommendation."Proceedings of the 19th international conference on World wide web. 2010
(其他的很多结果目前和这个都大差不差,就不列举了)
我其实刚接触exploration的时候,对于在推荐系统中exploration的使用之少十分吃惊,因为在这个方向是可以被当作一个online exploration的environment的。我觉得在这个方向之后会有很多的机会。对于多步探索,我觉得目前还有点早,我之前也写了一篇论文写了在推荐系统中多步探索的重要性,但我觉得在大环境还没有接受单步探索的情况下,接受多步探索的可能性不太大。多步决策(Sequential Decision Making):这个其实是RL里面最容易理解的方向了,所有人都知道,但是我看到太多人忽视上面说的第一步而直接上这一步。如果是这样做的RL,我基本肯定会fail。原因不是RL不能用,而是使用者拿错了说明书lol。在多步决策的过程中,如果说一直是采取的单纯的exploitation,或者仅仅是epsilon-greedy,那所有的RL算法都是exponential to time step的sample complexity,甚至于是无限的sample complexity。这样的情况下,online RL根本就不可能会work。更别说在大多数的真实环境中,reward还比较sparse,这样就更不可能能成了。目前来说,多步决策最有用的方向还是在于Black Box Optimization,也就是在硬件和一个既有环境下做优化。在很多NP-hard的问题下,RL能够比非常冗长的优化算法能够更快的得到更好的解。这个方向我的团队过往得到过很多成果,市面上可以看到的有Nvidia的GPU架构设计,Deepmind为Youtube做的视频压缩。这边给一个链接:MuZero’s first step from research into the real world。这是最近才出来的。
我认为多步决策在更加复杂的,特别是在跟人交互的环境下要成功,还需要一些努力,特别是和探索的结合。我的研究方向和这个也很相关,之后也会更多跟大家分享。我对于这个方向最后会成功还是有很大信心的。
在online RL的最后我再说一下,其实目前的成功很有限的另一个原因在于环境本身的随机性以及对于value function的设计的单一。多数系统和人机交互的环境下,目的大多不是单一的,随机性也很高。这一部分理论方面还有待提升,可以多关注General Value Function (GVF)和Option的研究进展。
Offline Reinforcement Learning
和online RL的最大区别是,online一直有一个environment可以交互,而offline只有一个有限的数据集,得从里面学到一个policy,然后直接deploy,看结果。我觉得在Offline的领域,我能够看到通常被踩的两个大坑。
没有管新的policy和现有的policy的差距,2. 数据本身的收集方式。
决策距离(Policy Distance):我用一个相对比较抽象的方式来解释这个问题,因为这个问题本身可以挖的数学方向实在太多了。总的来说,这个方向和off-policy policy evaluation(OPE)有关。简单来说,如果说你在数据上学到的决策方案和你收集数据本身使用的决策方案差距很大的话,你麻烦就大了。如果你把这样一个policy在没有做OPE的情况下就自信的放进系统中,那不给你搞崩就不错了。这个现象的背景是importance sampling,因为如果你收集数据的policy和新的policy的support概率很不一样,甚至于support本身不同,那你新算法结果的variance会爆炸,甚至于会达到无穷大(如果support本身不同的话)。在做offline RL的时候,我们一般会推荐pessimism principle,这个跟online很不一样。这边给一篇paper参考:Kumar, Aviral, et al. "Conservative q-learning for offline reinforcement learning."Advances in Neural Information Processing Systems33 (2020): 1179-1191. 这篇文章也有一些后续可以去关注Sergey的组的后续研究。
数据收集:因为offline RL是基于已有policy收集的数据的,那用哪种已有policy变得尤其的重要。基于importance sampling的理论,最小variance的做法是用uniformly random的policy。在这种情况下才能保证数据收集policy的support能够包含任何新的policy的support,并且使得variance在未知新的policy的情况下最小化(可以想象成在没有conditioned on新的policy的情况下的expected variance)。如果说现在的数据集是用了一个不是随机的policy,并且有些policy还是deterministic的,那太可惜了,大概率新的policy是没法用的,因为根本不知道这个新的policy的好坏。这也是为什么好多人抱怨说RL从线下数据集里面训练出来没有用的原因了。(其实你可以发现这个问题和上一个决策距离的问题是有本质联系的。)
在offline RL的最后我想说一个我的观察。其实offline RL和online RL的boundary很模糊。你可以想象只要不是每个step都train,那online RL其实就是一个mini batch的offline RL。所以要想清楚你的问题是不是真正的offline RL,也就是说你train完了之后放出去之后没法再调整了。比如说在机器人公司和自动驾驶公司,这些情况非常常见。我知道某扫地机器人公司他们就面临这种问题,但是大多数公司其实是没有这些问题的。
回答别的回答中的一些问题
在其他回答中对于online RL有一个诟病是在于in sample testing。我觉得这个诟病没有太大的问题,但是如果说真实系统就是这样一个in sample的environment,我觉得目前的设计也无可厚非。从generalization的角度来说,Meta-learning也会是一个解决adaptation的方向。
还有一个对于RL的诟病是它的loss function有时候跳来跳去,不好理解。我觉得这个是研究者自己对于问题本身以及算法的理解不够导致的。如果是tabular setting,那TD loss应该一直下降直至收敛。然而如果是unknown environment,那有时候TD loss跳是好事,说明算法发现了一个新的它从没见过的领域,需要重新学习。你需要去分析现在Agent经历了哪些区域,是不是有新的information。它目前的value function是不是和你估计的差不多。能看的东西其实非常多。
Last remark:RL不同于大家熟识的机器学习,所需要的常规机器学习之外的统计,运筹,信息理论(Information Theory)等等领域所需要的知识都很多。如果说不能真正理解这些算法背后的原理,真的很难能够在复杂的真实环境中做对。我自己这些坑全都踩过。RL要走的路还很长,市面上的论文质量也大多参差不齐,希望我的这个回答能给大家帮助吧。
有些想法可能跟很多人想法不太一样,大家轻踩 :)
文章转载自知乎,著作权归属原作者
往期精彩: