原文:Part 2: Kinds of RL Algorithms — Spinning Up documentation
本节首先声明:在现代强化学习领域,要构建一个准确、全面的算法分类体系非常困难,因为算法的模块化特性很难用树状结构来很好地表示。此外,为了使内容精简到一页纸,便于读者在入门文章中理解,我们不得不省略一些更高级的内容(例如探索学习、迁移学习、元学习等)。尽管如此,我们的目标是:
- 为了突出深度强化学习算法中最基础的设计选择,即学习什么以及如何学习,
- 揭示这些选择中的权衡取舍,
- 并将一些著名的现代算法置于这些选择的背景中进行分析。
目录:
- Model-Free vs Model-Based RL
- what to learn
- what to Learn in Model-Based RL
一 Model-Free vs Model-Based RL
强化学习算法中最重要的分支点之一是智能体是否能够访问(或学习)环境模型。环境模型指的是预测状态转移和奖励的函数。
拥有模型的主要优势在于,它允许智能体通过预先思考进行规划,预见一系列可能的选择会带来哪些后果,并明确地在各种选项之间做出决策。智能体随后可以将预先规划的结果提炼成一个学习到的策略。AlphaZero 就是这种方法的一个著名例子。当这种方法奏效时,与不使用模型的方法相比,它可以显著提高样本效率。
主要的缺点在于,智能体通常无法获得环境的真实模型。如果智能体想要在这种情况下使用模型,它就必须完全依靠经验来学习模型,这会带来诸多挑战。最大的挑战在于,模型中的偏差可能会被智能体利用,导致智能体在学习到的模型下表现良好,但在真实环境中却表现欠佳(甚至极其糟糕)。模型学习本身就非常困难,因此即使投入大量时间和计算资源,也可能无法取得理想的结果。
使用模型的算法称为基于模型的方法,不使用模型的算法称为无模型的方法。虽然无模型的方法放弃了使用模型可能带来的样本效率提升,但它们通常更容易实现和调优。
二学习内容
强化学习算法中的另一个关键分支点是学习什么的问题。常见的学习内容包括:
- 策略,无论是随机策略还是确定性策略,
- 行动值函数(Q函数),
- 值函数,
- 环境模型
1 无模型强化学习中需要学习什么
使用无模型强化学习来表示和训练智能体主要有两种方法:
策略优化。此类方法将策略显式地表示为
。它们通过对性能目标进行梯度上升来直接
优化参数,或者通过最大化的局部近似值来间接优化参数。这种优化几乎总是基于策略进行,这意味着每次更新仅使用根据最新版本策略运行期间收集的数据。策略优化通常还涉及学习策略内值函数的近似值,该近似值用于确定如何更新策略。
策略优化方法的一些例子包括:
- A2C / A3C,通过梯度上升直接最大化性能,
- PPO算法通过最大化一个替代目标函数来间接最大化性能,从而保守地估计更新后会发生多大的变化。
2 Q学习
这类方法学习最优动作值函数的近似值
它们通常使用基于贝尔曼方程的目标函数。这种优化几乎总是离策略执行的,这意味着每次更新都可以使用训练过程中任何时间点收集的数据,而无需考虑智能体在获取数据时如何探索环境。相应的策略通过与之间的联系获得
Q学习智能体采取的动作由
给出。
Q学习方法的例子包括
- DQN是一个经典模型,它极大地推动了深度强化学习领域的发展。
- 以及C51,一种学习收益分布的变体,其期望值为
3 策略优化与Q学习的权衡
策略优化方法的主要优势在于其原则性,即直接针对目标进行优化。这使得它们通常具有稳定性和可靠性。相比之下,Q学习方法仅通过训练来满足自洽方程,从而间接地优化智能体的性能
这种学习方式存在许多失效模式,因此稳定性较差。[1]但是,Q学习方法的优势在于,当其有效时,样本效率要高得多,因为它们比策略优化技术更能有效地重用数据。
策略优化与Q学习之间的过渡。出乎意料的是,策略优化和Q学习并非互不兼容(在某些情况下,它们甚至是等价的),并且存在一系列介于两者之间的算法。这些算法能够巧妙地权衡策略优化和Q学习各自的优势和劣势。例如:
- DDPG是一种算法,它通过相互改进,同时学习确定性策略和 Q 函数。
- SAC是一种变体,它使用随机策略、熵正则化和其他一些技巧来稳定学习,并在标准基准测试中得分高于 DDPG。
三 What to Learn in Model-Based RL
与无模型强化学习不同,基于模型的强化学习方法并非只有少数易于定义的类别:模型的使用方式多种多样,彼此独立。我们将举几个例子,但这远非全部。在每种情况下,模型都可以是预先设定的,也可以是学习得到的。
背景:
1 纯规划
最基本的方法从不显式地表示策略,而是使用模型预测控制(MPC)等纯规划技术来选择动作。在MPC中,每次智能体观察环境时,它都会计算一个相对于模型最优的规划,该规划描述了在当前时间点之后的一段固定时间窗口内要采取的所有动作。(规划算法可以通过学习到的价值函数来考虑时间窗口之外的未来奖励。)然后,智能体执行规划中的第一个动作,并立即丢弃其余动作。每次准备与环境交互时,它都会计算一个新的规划,以避免使用规划时间窗口过短的规划中的动作。
1 MBMF的工作探索了使用学习环境模型的 MPC 在深度强化学习的一些标准基准任务上的应用。
2 专家迭代
纯粹的策略规划之后,一个直接的后续步骤是使用并学习策略的显式表示
智能体在模型中使用规划算法(例如蒙特卡洛树搜索),通过对其当前策略进行采样来生成候选动作。规划算法生成的动作优于策略本身所能生成的动作,因此相对于该策略而言,它就是“专家”。之后,策略会被更新,以生成更接近规划算法输出的动作。
- ExIt算法采用这种方法来训练深度神经网络玩六角棋。
- AlphaZero是这种方法的另一个例子。
3 无模型方法的数据增强。
使用无模型强化学习算法训练策略或Q函数,但可以采用以下两种方式之一:
1)在更新智能体时,用虚构经验增强真实经验;或者
2)仅使用虚构经验来更新智能体。
- 有关如何利用虚构体验增强真实体验的示例,请参阅MBVE 。
- 请参阅World Models,了解如何使用纯粹虚构的经验来训练智能体,他们称之为“梦中训练”。
4 将规划循环嵌入策略。
另一种方法是将规划过程直接作为子程序嵌入到策略中——这样,完整的规划就成为策略的辅助信息——同时使用任何标准的无模型算法来训练策略的输出。关键在于,在这个框架下,策略可以学习如何以及何时使用这些规划。这使得模型偏差不再那么重要,因为如果模型在某些状态下不适用于规划,策略可以简单地学习忽略它。
Links to Algorithms in Taxonomy
| [2] | A2C / A3C (Asynchronous Advantage Actor-Critic): Mnih et al, 2016 |
| [3] | PPO (Proximal Policy Optimization): Schulman et al, 2017 |
| [4] | TRPO (Trust Region Policy Optimization): Schulman et al, 2015 |
| [5] | DDPG (Deep Deterministic Policy Gradient): Lillicrap et al, 2015 |
| [6] | TD3 (Twin Delayed DDPG): Fujimoto et al, 2018 |
| [7] | SAC (Soft Actor-Critic): Haarnoja et al, 2018 |
| [8] | DQN (Deep Q-Networks): Mnih et al, 2013 |
| [9] | C51 (Categorical 51-Atom DQN): Bellemare et al, 2017 |
| [10] | QR-DQN (Quantile Regression DQN): Dabney et al, 2017 |
| [11] | HER (Hindsight Experience Replay): Andrychowicz et al, 2017 |
| [12] | World Models: Ha and Schmidhuber, 2018 |
| [13] | I2A (Imagination-Augmented Agents): Weber et al, 2017 |
| [14] | MBMF (Model-Based RL with Model-Free Fine-Tuning): Nagabandi et al, 2017 |
| [15] | MBVE (Model-Based Value Expansion): Feinberg et al, 2018 |
| [16] | AlphaZero: Silver et al, 2017 |