1. 算法分类
现代强化学习算法分类
---图片来自Open AI Spinning up 项目---
由于强化学习是一个更新速度非常快的领域,所以准确地全面地分类是相当困难的,Spinning up 项目组给出的这个分类虽然并不全面,但是对初学者来说是非常有用了。
可以看出强化学习可以分为Model-Free(无模型的) 和 Model-based(有模型的) 两大类。Model-Free 又分成基于Policy Optimization(策略优化)和Q-learning。Model-based 又分为模型学习(Learn the Model)和给定模型(Given the Model)两大类。
部分算法的全名和论文链接见文末附录
2. Model-Free vs Model-Based
在之前的文章也阐述过两者的区别,当时主要是以引入Model-based的算法的角度简略地比较了两者的优劣。Spinning up 项目组也对两者的区别和优劣做了系统的比较。
- 两个算法的区别主要是Agent是否知道或要计算出环境的模型 。
- 拥有模型的好处是:Agent可以根据模型看到会发生什么,并提前规划(Planning)行动路径。
- 拥有模型的坏处是,真实模型和学习到带模型是有误差的,这种误差会导致Agent虽然在模型中表现很好,但是在真实环境中可能打不到预期结果。
- Model-Free的算法往往更易于实现和调整,截止到目前(2018年9月),Model-Free的算法更受欢迎。
3. 要学习什么(学习对象)
RL学习的内容无非是如下几个方面
- 策略,不管是随机的还是确定性的
- 行动价值函数(Q (s,a))
- 值函数(V(s))
- 环境模型
3.1. Model-Free 学习对象
Spinning Up 项目组就是根据学习的对象分成Policy Optimization(对象是策略),和Q-Learning(对象是Q(s,a))的。
(1) Policy Optimization
基于策略的强化学习就是参数化策略本身,获得策略函数πθ(a|s), 我们训练策略函数的目标是什么呢?是获得最大奖励。优化策略函数就是优化目标函数可以定义为J(πθ).
Policy Optimization 通常是on-policy的,也就是每次更新策略采用最新策略产生的数据。
Policy Optimization的经典例子包含A2C / A3C,和PPO。
(2) Q-Learning
- Q-Learning 就是通过学习参数化Q函数Qθ(s,a)从而得* 到最优Q*(s,a)的。
- 典型地方法是优化基于Bellman方程的目标函数。
- Q-Learning 通常是Off-Policy的,这就意味着训练的数据可以是训练期间任意时刻的数据。
3.2. Policy Optimization和Q-Learning 的权衡与融合
Policy Optimization直接了当地优化你想要的对象(策略),因此Policy Optimization稳定性和可信度都较好,而Q-learning是采用训练Qθ的方式间接优化策略,会遇到不稳定的情况。但是Q-learning的优点是利用数据的效率较高(Off-policy的原因?)
Policy Optimization和Q-Learning并非水火不相容,有些算法就融合和平衡了两者的优缺点:
4. Model-Based RL学习对象
Model-Based RL不像Model-Free RL那样容易分类,很多方法都有交叉。Spinning up 项目组给出了几个例子,但他们也声称这些例子是无法全部覆盖Model-Based强化学习的,这些例子中模型要么是已知给定的,要么是通过学习得到的。
4.1 纯动态规划(Pure Planning)
Pure Planning 是一个基础的算法,其策略并不显示的表达出来,而是使用规划技术来选择行动。比如 模型预测控制 (model-predictive control, MPC)。
在MPC中:
第一步:Agent首先观察环境,并通过模型预测出所有可以行动的路径(路径包含多连续个行动)。
第二步:Agent执行规划的第一个行动,然后立即舍去规划剩余部分。
第三步:重复第一、二步。
例如,MBMF 在一些深度强化学习的标准基准任务上,基于学习到的环境模型进行模型预测控制
4.2 Expert Iteration(专家迭代)
这个算法是Pure Planing 的升级版,它将策略显示地表达出来,并通过学习得到这个最优策略π*θ(a|s)
Agent用规划算法(类似于MT树搜索)在模型中通过采样生成候选行动。通过采样生成的行动比单纯通过策略本身生成的行动要好,所以它是"专家"。通过"专家"指导,迭代更新并优化策略。
4.3 免模型方法的数据增强
这个方法是将模型采样中生成的数据用来训练Model-Free的策略或者Q函数。训练的数据可以单纯是模型采样生成的,也可以是真实经历的数据与模型采样数据的结合。
- MBVE 用假数据增加真实经验
- World Models 全部用假数据来训练智能体,所以被称为:“在梦里训练”
4.4 将规划嵌入策略
该算法是将规划(Planning)嵌入策略中作为策略的一个子程序,这样在用任意Model-Free训练的过程中,如何和何时规划也被学习到了。这个算法的优点就是当模型与现实环境存在较大的偏差,策略也可以选择忽略规划。
- 更多例子,参见 I2A
附录:部分算法全名及论文链接
A2C / A3C (Asynchronous Advantage Actor-Critic): Mnih et al, 2016
PPO (Proximal Policy Optimization): Schulman et al, 2017
TRPO (Trust Region Policy Optimization): Schulman et al, 2015
DDPG (Deep Deterministic Policy Gradient): Lillicrap et al, 2015
TD3 (Twin Delayed DDPG): Fujimoto et al, 2018
SAC (Soft Actor-Critic): Haarnoja et al, 2018
DQN (Deep Q-Networks): Mnih et al, 2013
C51 (Categorical 51-Atom DQN): Bellemare et al, 2017
QR-DQN (Quantile Regression DQN): Dabney et al, 2017
HER (Hindsight Experience Replay): Andrychowicz et al, 2017
World Models: Ha and Schmidhuber, 2018
I2A (Imagination-Augmented Agents): Weber et al, 2017
MBMF (Model-Based RL with Model-Free Fine-Tuning): Nagabandi et al, 2017
MBVE (Model-Based Value Expansion): Feinberg et al, 2018
AlphaZero: Silver et al, 2017