当今RL的问题很多,诸如收敛看运气效果看天命之类的,之前有很多大佬也有吐槽过,本渣也在某个回答 [1] 里吐槽过。
根据个人经验来讲,目前大部分 RL paper 使用的主要 benchmark,比如 MuJoCo 或者 Atari,实际上都是偏弱的(更不用说前两年 MARL 用的 multiagent-particle-envs[2]),在偏弱的实验环境里,模型训练出来在那边跑一跑,看起来结果尚可,实际很多模型的本质问题暴露的不明显,暴露得不明显就不会引起 community 的广泛关注,相关的研究也就会比较少,难成体系。
很不幸,本文要讨论的 RL 泛化能力问题,就是这样的一个问题。
注:本文讨论的 generalization,有些文章里叫做 robustness,有些文章里叫 generalization,一般来说 robustness 设定中环境的 transition 还是固定的,只不过测试时模型会遇到训练时没见过的场景;而 generalization 一般是指训练环境与测试环境的 transition 有微小差异的时候,希望模型仍可以 cover 测试场景,以下统一使用 generalization 来讨论这两个概念,可能有点混淆。
为啥RL需要泛化?
绝大多数 RL 的基础都是 MDP,MDP 和 supervised learning 最本质的区别,就是前者解决的是一个满足 Markov 性质的环境上的 reward 最大化问题,所以一开始问题的前提假设中就只有一个固定的环境,听起来,泛化能力问题似乎应该是一个独属于 supervised learning 的问题,至少在 RL 的理论层面,是不存在测试环境与训练环境不同的问题的。
但实际上,只要你尝试在真正的应用场景中尝试过 RL,就会发现这是一个无法回避的问题,我去年在公司实习期间,很多实际做过 RL 应用的同事都会讲到的一个重要经验就是:RL 真的很容易过拟合。由于学术界相对研究比较少,应用中就会出现五花八门的问题,随之而来五花八门的解决方案:
案例一,众所周知 DeepMind 和 OpenAI 都做游戏 AI,一个做星际一个做 Dota,为了训练出一个超过人类水平的 AI,两家共同的思路就是 self-play,但是实际上 self-play 会遇到训练时过拟合于对手策略的问题,因为实际部署时会遇到各种各样奇葩的对手策略,训练时从来没有见过奇葩对手的模型会严重翻车。
DeepMind 早早地就预见到了这个问题,在 17 年 A Unified Game-Theoretic Approach to Multiagent Reinforcement Learning [3] 这篇文章里面就指出,即使是在非常简单的环境,self-play 训练出的模型也会严重过拟合于对手策略。
所以做星际的时候他们压根就没想过要用一个模型解决所有问题,而是要引入 game theory 去做一个 zero-sum Markov game 中找 Nash equilibrium 的优化,后续这个思路在另一篇 ICML 的文章 Open-ended Learning in Symmetric Zero-sum Games [4] 又进一步得到了补全。
所以后来 AlphaStar 的训练中,他们用了数量惊人的算力资源,搞了一个 AlphaLeague,用类似 population-based training [5] 的方式分阶段训练——考虑目前绝大多数公司的算力情况,暂时,这套方法对其他公司的实践不具有太大的指导意义。
在这篇 OpenAI Five 的博客 [6] 中,OpenAI 表示 2017 年,他们在模型训练的过程中加入了环境参数的随机化后,模型开始在 1v1 场景下超越人类水平,后续这种随机化技巧广泛使用在他们的 5v5 模型,甚至是机器人模型的训练中。
案例二,robotics 训练,因为机器人机械臂有使用寿命的限制,目前常用的一种方式是在物理仿真模拟环境中训练,模型收敛后部署到现实世界中,然而模拟器不大可能建模出现实世界中所有的变量,实际上模拟器中表现良好的模型,在现实世界的表现会有所下降。
目前主要考虑两种解决方案:一是在训练期在模拟器中加入随机化,二是认为从模拟器到现实是一个迁移学习的问题,以 sim2real 为关键词搜索,这方面的研究非常多,这里简单列举两篇:
Tzeng E, Devin C, Hoffman J, et al. Towards adapting deep visuomotor representations from simulated to real environments[DB/OL]. arXiv:1511.07111.
Peng X B, Andrychowicz M, Zaremba W, et al. Sim-to-real transfer of robotic control with dynamics randomization[C]. IEEE International Conference on Robotics and Automation, 2018: 1-8.
Gupta A, Devin C, Liu Y X, et al. Learning invariant feature spaces to transfer skills with reinforcement learning[DB/OL]. arXiv:1703.02949.
案例三,环境动态表现出高度 non-stationary 特性的任务,如推荐系统、定价系统、交易系统等(应该是没有哪个公司真的在交易系统里上 RL 的吧),这些任务的一个共同特点是业务敏感,绝对不会真的让模型在训练时与环境交互。
一般的做法是线上开一个子进程去收集样本回来做完全意义上的 off-policy 训练(就此延伸出去的一个研究方向叫 batch reinforcement learning,不过这已经不在本文讨论范围内了)。由于环境动态高度非平稳,三个月前训练的模型可能现在已经不 work 了,据我了解到的一点点情况,目前工业界没啥太好的办法,唯不停地重新训练而已。