译
本文是 OpenAI Spinning Up in Deep RL 教程第二部分 Part 2: Kinds of RL Algorithms 的全文翻译。原仓库采用 MIT 协议。分类图保留官方英文原图,正文保留算法缩写与外链;术语首次出现时附英文原词,后文沿用同一译名。
术语和记号打好基础后,接下来可以看更丰富的内容:现代 RL 算法的整体版图,以及算法设计中各种取舍。
强化学习算法的分类
图 1:现代 RL 算法的一种实用分类,并未穷尽所有方法。算法引用见文末。
先说明一点:现代 RL 算法的模块化特征很难用树形结构表示,因此要画出准确且包罗万象的算法分类图相当困难。为了让分类图能放在一页内,并使这篇导论便于阅读,我们省略了不少进阶主题,例如探索、迁移学习和元学习。本文的目标是:
- 突出深度 RL 算法中最基础的设计选择:要学习什么,以及怎样学习;
- 展示这些选择各自的取舍;
- 将几种重要的现代算法放进这些选择构成的脉络中。
无模型与基于模型的强化学习
强化学习算法面临的一个重要分岔是:智能体能否访问环境模型,或者能否学到一个环境模型。这里的环境模型指预测状态转移和奖励的函数。
使用模型的主要好处,是智能体可以向前规划:设想若干种选择分别会带来什么结果,再明确比较这些选择。随后,智能体还可以把规划所得提炼成一个学到的策略。一个著名例子是 AlphaZero。模型方法若能奏效,相较于不使用模型的方法,样本效率(sample efficiency)可能会大幅提高。
主要困难在于,智能体通常拿不到环境的真实模型。此时若想使用模型,就只能从经验中学习它;这会带来一系列挑战。最突出的一点是,智能体可能利用模型中的偏差,在学到的模型里表现良好,到了真实环境中却表现欠佳,甚至极差。模型学习本身就很难;即使投入大量时间和算力,也可能得不到相应收益。
使用环境模型的算法称为基于模型的方法(model-based methods),不使用环境模型的算法称为无模型方法(model-free methods)。无模型方法放弃了借助模型提高样本效率的潜在收益,但通常更容易实现和调参。截至这篇导论写作时(2018 年 9 月),无模型方法更受欢迎,也经过了更多开发和测试。
要学习什么
另一个关键分岔是算法要学习什么。常见的学习对象包括:
- 策略,可以是随机型策略,也可以是确定型策略;
- 动作价值函数(Q 函数);
- 价值函数;
- 环境模型;
- 或以上对象的组合。
无模型强化学习要学习什么
无模型 RL 中,表征和训练智能体主要有两种方法。
策略优化(policy optimization)。这类方法显式地用策略 表示智能体。它们通过两种方式优化参数 :直接对性能目标 做梯度上升,或者间接地最大化该目标的局部代理(surrogate)。优化过程几乎总是采用同策略(on-policy) 方式:每次更新只使用智能体按照当前最新策略与环境交互时收集的数据。
策略优化通常还会学习一个函数 ,用来近似该策略下的价值函数 ,并据此计算如何更新策略。策略优化方法的例子包括:
Q-learning。这类方法学习一个函数 ,用来近似最优动作价值函数 。它们通常使用基于贝尔曼方程的目标函数。优化过程几乎总是采用异策略(off-policy) 方式:每次更新可以使用训练过程中任意时刻收集的数据,而不受智能体采集这些数据时采用何种探索策略的限制。
最优策略会选择使 最大的动作;Q-learning 则用学得的 近似 ,据此选取动作:
Q-learning 方法的例子包括:
策略优化与 Q-learning 的取舍
策略优化方法的主要优点是目标明确:它直接优化我们真正关心的对象,因此往往稳定、可靠。相比之下,Q-learning 通过训练 满足自洽方程,间接推动智能体表现变好。这类学习存在多种失效模式,因此通常稳定性较差(相关讨论见文末参考资料 1)。不过,在能够奏效时,Q-learning 的样本效率明显更高,因为它比策略优化更充分地复用数据。
介于策略优化与 Q-learning 之间的方法
策略优化与 Q-learning 并不互斥,在某些条件下甚至可以等价。处于两者之间的一系列算法,可以在两端方法的优缺点之间作出折中。例如:
基于模型的强化学习要学习什么
与无模型 RL 不同,基于模型的方法很难归纳成少数几类边界清晰的算法;模型的使用方式有许多彼此独立的维度。下面只举几个例子,远未穷尽。每种方法使用的模型都可能是直接给定的,也可能是从经验中学到的。
背景:纯规划
最基础的做法是不显式表示策略,而是使用 模型预测控制(model-predictive control,MPC) 这样的纯规划方法来选择动作。MPC 中,智能体每次观测环境时,都会根据模型计算一个最优计划;计划规定从当前时刻起,在一个固定时间窗口内要采取哪些动作。
规划算法也可以借助学到的价值函数,考虑规划视界之外的未来奖励。随后,智能体只执行计划中的第一个动作,并立即丢弃计划的其余部分。每次准备与环境交互时,智能体都会重新计算计划,以免继续执行旧计划时规划视界已短于预期。
- MBMF 探索了在深度 RL 的标准基准任务中,使用学到的环境模型进行 MPC 的做法。
专家迭代
在纯规划的基础上,一个直接的扩展是显式表示并学习策略 。智能体在模型中使用规划算法(例如蒙特卡洛树搜索)来规划,并从当前策略中采样候选动作。规划算法给出的动作比策略单独给出的动作更好,因此,规划算法可以充当相对于当前策略的“专家”。
之后,智能体更新策略,使它更倾向于给出与规划算法相似的动作。
用模型生成的经验增强无模型方法
使用无模型 RL 算法训练策略或 Q 函数,同时在更新智能体时采取以下做法之一:
- 用模型生成的虚拟经验补充真实经验;
- 只使用模型生成的虚拟经验来更新智能体。
- MBVE 展示了如何用虚拟经验补充真实经验。
- World Models 展示了如何只用虚拟经验训练智能体,并把这种方式称作“在梦境中训练”(training in the dream)。
在策略中嵌入规划过程
另一种方法是把规划过程直接嵌入策略,作为策略调用的一个子程序;完整计划作为辅助信息提供给策略。再用任意标准的无模型算法训练策略。这里的关键是,策略可以学会选择在什么时候、以什么方式使用规划结果。
这样可以减轻模型偏差的影响:如果模型在某些状态下给出的规划不可靠,策略可以学会忽略它。
- I2A 是让智能体具备这类“想象”能力的一种方法。
参考资料
1 Q-learning 方法为何会失效
- Tsitsiklis 和 Van Roy 的经典论文;
- Szepesvári 的综述,第 4.3.2 节;
- Sutton 与 Barto 的《强化学习:导论》第 11 章,尤其是第 11.3 节关于“致命三元组”(deadly triad)的讨论:函数逼近、自举更新和异策略数据共同导致价值学习算法不稳定。
分类图中的算法引用
- 2 A2C / A3C(Asynchronous Advantage Actor-Critic):Mnih 等,2016。
- 3 PPO(Proximal Policy Optimization):Schulman 等,2017。
- 4 TRPO(Trust Region Policy Optimization):Schulman 等,2015。
- 5 DDPG(Deep Deterministic Policy Gradient):Lillicrap 等,2015。
- 6 TD3(Twin Delayed DDPG):Fujimoto 等,2018。
- 7 SAC(Soft Actor-Critic):Haarnoja 等,2018。
- 8 DQN(Deep Q-Networks):Mnih 等,2013。
- 9 C51(Categorical 51-Atom DQN):Bellemare 等,2017。
- 10 QR-DQN(Quantile Regression DQN):Dabney 等,2017。
- 11 HER(Hindsight Experience Replay):Andrychowicz 等,2017。
- 12 World Models:Ha 和 Schmidhuber,2018。
- 13 I2A(Imagination-Augmented Agents):Weber 等,2017。
- 14 MBMF(Model-Based RL with Model-Free Fine-Tuning):Nagabandi 等,2017。
- 15 MBVE(Model-Based Value Expansion):Feinberg 等,2018。
- 16 AlphaZero:Silver 等,2017。