因为想申请 CSDN 博客认证需要一定的粉丝量,而我写了五年博客才 700 多粉丝,本文开启关注才可阅读全文,很抱歉影响您的阅读体验
- 本文梳理强化学习的若干问题范式
- 参考:
文章目录
1. 从 Online RL 到 Offline/Batch RL
1.1 Online RL
-
传统RL是online的,agent一边和环境交互生成轨迹样本数据,一边使用这些数据优化探索策略 π \pi π。
-
这个过程中,如果交互策略和最终学到的策略是相同的,则称为
on-policy,示意图如下

-
on-policy 方法具循环依赖(价值估计->策略->transition->价值估计)、训练数据相关性强(i.i.d 性质差)、样本利用率低(样本仅使用一次)三大问题。更常见的情况是:用于和环境交互生成轨迹的策略(行动策略) π b \pi_b πb 和最终得到的策略(目标策略) π t \pi_t πt 是不同的,这类方法称为
off-policy方法。off-policy 设定破除了对优化数据来源的限制,过去的 transition 数据可以存下来重复利用,这样可以同时缓解 on-policy 方法的三个问题,于是就出现了 replay buffer 机制和 experience replay 经验重放的概念。示意图如下

注意,off-policy 设定中,策略更新还是 online 地进行,即每步交互都从 replay buffer 中抽取若干 transition 更新价值/策略
1.2 Imitation Learning (IL)
- 强化学习奖励函数设置困难,样本效率低,于是有了模仿学习,其问题设定中取消了奖励函数,增加了专家。专家依照其策略
π
E
\pi_E
πE 和环境交互,给出高质量的示教轨迹数据,然后学习者使用这些数据优化自身策略
π
L
\pi_L
πL,学习者也可以和环境交互采集新的轨迹数据,但是不能获取任何形式的奖励信号。注意,我们通常将专家策略视为此环境下唯一的最优策略,因此专家只有一个。示意图如下

1.3 Offline/Batch RL
-
Off-policy RL 通过增加 replay buffer 提升样本效率,Offline RL 则更加激进,它禁止和环境进行任何交互,直接通过固定的数据集来训练得到一个好的策略,相当于把 “探索” 和 “利用” 完全分开了。在更加 general 的情况下,我们对于给出示范数据的策略不做任何要求,示意图如下

可以从两个角度理解它- 从 online RL 角度看,相当于只能用某时刻的 replay buffer 训练策略,禁止交互补充新数据
- 从 IL 的角度看,相当于禁止 Learner 和环境交互,且获取的示范数据不一定来自专家(可以来自任意策略,包括随机策略和非平稳策略),可以来自多个策略,也不一定是完整轨迹(一堆离散的 transition 即可)
-
Offline/Batch RL 的任务阶段图如下

-
Offline/Batch RL 的优势和劣势
- 优势:最大限度利用交互数据,样本效率较高;适用于不能直接用训练中的策略去收集数据的场景(这个主要是从安全角度考虑,比如自动驾驶任务,只能使用人类收集的固定数据集)
- 劣势:数据集限制了性能上限,准确地讲,数据集中状态分布对性能的影响非常大。这和模仿学习中的分布便宜 & 级联错误问题非常相似,如果数据无法覆盖到状态空间中的一些重要部分(比如目标状态附近的状态),Learner 无法对这些区域的状态转移有大致的了解,就很难学到一个好的策略
1.4 Growing Offline/Batch RL
-
注意到,online RL 相当于任意两次策略更新之间都进行一次交互数据采集,offline RL 相当于任意两次策略更新之间进行无限多次交互数据采集,因此自然地得到另一种介于二者之间的问题设定,即任意两次策略更新之间都进行若干次交互数据采集,这称为 Growing batch RL。和 batch RL 相比,这时允许增加交互数据,而且学习过程会提升收集交互数据的策略。可见,这种问题设定和原先的 online on-policy RL 十分接近,区别在于 “探索” 的粒度变粗了,且策略更新是 offline/batch 的形式。示意图如下

这种 Growing batch RL 也可以看作数据分阶段扩增的 batch RL,也就是说它可以实现为以下两个过程的交替迭代- 根据策略 π \pi π 收集收集一批交互数据,并入交互数据集中
- 在整个交互数据集上使用 batch RL 方法,提升策略 π \pi π
-
Growing offline/batch RL 的任务阶段图如下

可见,通过引入 “探索” 部分,这种方法避免了数据分布导致的问题,因此在研究中比较热门。
2. RL 框架分类
-
根据 Batch reinforcement learning 这篇文章,RL 框架主要可以分成以下几类
分类 允许交互 区分目标策略 重用数据 更新策略使用数据量 更新策略后丢弃数据 Online (On-policy) √ × × single transition √ Online (Off-policy) √ √ √ mini-batch × Semi-batch √ × √ mini-batch √ Growing-batch √ - √ entire-batch × Offline/batch × - √ entire-batch × -
分类图如下

1079

被折叠的 条评论
为什么被折叠?



