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

学号:19011210554   姓名:袁博

转载自:https://www.jianshu.com/p/a04a8c7bee98

【嵌牛导读】:通过Open AI 的Spinning Up 项目总结强化学习(RL)的算法,通过分类和对比的方法系统介绍强化学习的算法。

【嵌牛鼻子】:强化学习的算法分类

【嵌牛提问】:强化学习的算法分类主要有哪些?各自的优缺点是什么?

【嵌牛正文】:

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的,这就意味着训练的数据可以是训练期间任意时刻的数据。

Q-Learning 的经典例子包含DQN和C51。

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执行规划的第一个行动,然后立即舍去规划剩余部分。

第三步:重复第一、二步。

例如,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训练的过程中,如何和何时规划也被学习到了。这个算法的优点就是当模型与现实环境存在较大的偏差,策略也可以选择忽略规划。

你可能感兴趣的:(强化学习——强化学习的算法分类)