强化学习——强化学习的算法分类

上一篇文章回顾了强化学习的核心概念,这里继续经过Open AI 的Spinning Up 项目总结强化学习(RL)的算法,经过分类和对比的方法系统介绍强化学习的算法。html

1. 算法分类

10816620-6c5514d63a7bed00.png
现代强化学习算法分类

--- 图片来自Open AI Spinning up 项目---

因为强化学习是一个更新速度很是快的领域,因此准确地全面地分类是至关困难的,Spinning up 项目组给出的这个分类虽然并不全面,可是对初学者来讲是很是有用了。git

能够看出强化学习能够分为Model-Free(无模型的) 和 Model-based(有模型的) 两大类。Model-Free 又分红基于Policy Optimization(策略优化)和Q-learning。Model-based 又分为模型学习(Learn the Model)和给定模型(Given the Model)两大类。github

部分算法的全名和论文连接见文末附录算法

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的,也就是每次更新策略采用最新策略产生的数据。google

Policy Optimization的经典例子包含A2C / A3C,和PPOhtm

(2) Q-Learning

  • Q-Learning 就是经过学习参数化Q函数Qθ(s,a)从而得* 到最优Q*(s,a)的。
  • 典型地方法是优化基于Bellman方程的目标函数。
  • Q-Learning 一般是Off-Policy的,这就意味着训练的数据能够是训练期间任意时刻的数据。

Q-Learning 的经典例子包含DQNC51

3.2. Policy Optimization和Q-Learning 的权衡与融合

Policy Optimization直接了当地优化你想要的对象(策略),所以Policy Optimization稳定性和可信度都较好,而Q-learning是采用训练Qθ的方式间接优化策略,会遇到不稳定的状况。可是Q-learning的优势是利用数据的效率较高(Off-policy的缘由?)

Policy Optimization和Q-Learning并不是势不两立,有些算法就融合和平衡了二者的优缺点:

  • DDPG, 同时学出一个肯定性策略和Q函数,并用他们互相优化。
  • SAC 是一种变体,它使用随机策略、熵正则化和一些其它技巧来稳定学习,同时在 benchmarks 上得到比 DDPG 更高的分数。

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执行规划的第一个行动,而后当即舍去规划剩余部分。
第三步:重复第1、二步。

例如,MBMF 在一些深度强化学习的标准基准任务上,基于学习到的环境模型进行模型预测控制

4.2 Expert Iteration(专家迭代)

这个算法是Pure Planing 的升级版,它将策略显示地表达出来,并经过学习获得这个最优策略π*θ(a|s)

Agent用规划算法(相似于MT树搜索)在模型中经过采样生成候选行动。经过采样生成的行动比单纯经过策略自己生成的行动要好,因此它是"专家"。经过"专家"指导,迭代更新并优化策略。

  • ExIt 算法用这种算法训练深层神经网络来玩 Hex
  • AlphaZero 这种方法的另外一个例子
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