深度强化学习有哪些坑?
1.样本利用率非常低;
2.最终表现不够好,经常比不过基于模型的方法;
3.好的奖励函数难以设计;
4.难以平衡“探索”和“利用”,以致算法陷入局部极小;
5.对环境的过拟合;
6.灾难性的不稳定性…
7.好的奖励函数难以设计和难以平衡“探索”和“利用”以致算法陷入局部极小是RL的固有缺陷。
有人点名指出,某些DRL代表性算法之所以在模拟器中取得了优秀却难以复现的表现,是因为作者们涉嫌在实验中修改模拟器的物理模型,却在论文中对此避而不谈。
另一位DRL研究者Matthew Rahtz则通过讲述自己试图复现一个DRL算法的坎坷历程来回应Alexirpan,让大家深刻体会了复现DRL算法有多么难[15]
“它更像是你在解决一个谜题,没有规律可循,唯一的方法是不断尝试,直到灵感出现彻底搞明白。……很多看上去无关紧要的小细节成了唯一的线索……做好每次卡住好几周的准备。”Rahtz在复现的过程中积累了很多宝贵的工程经验,但整个过程的难度还是让他花费了大量的金钱以及时间。他充分调动不同的计算资源,包括学校的机房资源、Google云计算引擎和FloydHub,总共花费高达850美元。可就算这样,原定于3个月完成的项目,最终用了8个月,其中大量时间用在调试上。
不基于模型强化学习的本质缺陷:
1 免模型方法无法从不带反馈信号的样本中学习,而反馈本身就是稀疏的,因此免模型方向样本利用率很低,而数据驱动的方法则需要大量采样。
2 免模型方法不对具体问题进行建模,而是尝试用一个通用的算法解决所有问题。而基于模型的方法则通过针对特定问题建立模型,充分利用了问题固有的信息。免模型方法在追求通用性的同时放弃这些富有价值的信息。
3.基于模型的方法针对问题建立动力学模型,这个模型具有解释性。而免模型方法因为没有模型,解释性不强,调试困难。
4 相比基于模型的方法,尤其是基于简单线性模型的方法,免模型方法不够稳定,在训练中极易发散。
基于模型:
基于模型的DRL方法相对而言不那么简单直观,RL与DL的结合方式相对更复杂,设计难度更高。
针对无法建模的问题束手无策。有些领域,比如NLP,存在大量难以归纳成模型的任务。在这种场景下,只能通过诸如R-max算法这样的方法先与环境交互,计算出一个模型为后续使用。但是这种方法的复杂度一般很高。近期有一些工作结合预测学习建立模型,部分地解决了建模难的问题,这一思路逐渐成为了研究热点。
建模会带来误差,而且误差往往随着算法与环境的迭代交互越来越大,使得算法难以保证收敛到最优解。
模型缺乏通用性,每次换一个问题,就要重新建模。
RL领域的实验平台还非常不成熟,在这样的测试环境中的实验实验结果没有足够的说服力。很多研究结论都未必可信,因为好性能的取得或许仅仅是因为利用了模拟器的bugs。此外,一些学者指出当前RL算法的性能评判准则也不科学。Ben Recht和Sham Kakade都对RL的发展提出了多项具体建议,包括测试环境、基准算法、衡量标准等[18,29]。可见RL领域还有太多需要改进和规范化。
当前RL的发展还处于初级阶段,不能包打天下。目前还没有一个通用的RL解决方案像DL一样成熟到成为一种即插即用的算法。不同RL算法在各自领域各领风骚。在找到一个普适的方法之前,我们更应该针对特定问题设计专门的算法,比如在机器人领域,基于贝叶斯RL和演化算法的方法(如CMAES[61])比DRL更合适。当然,不同的领域间应当互相借鉴与促进。RL算法的输出存在随机性,这是其“探索”哲学带来的本质问题,因此我们不能盲目 All in RL, 也不应该RL in All, 而是要找准RL适合解决的问题。