强化学习手册-基础问题指南

强化学习手册:基础问题指南

原文:towardsdatascience.com/the-handbook-of-reinforcement-learning-guide-to-the-foundational-questions/

本文将解释你需要了解的基本概念,以便理解强化学习!

我们将从“强化学习究竟是什么”的绝对基础开始,逐步过渡到更高级的主题,包括代理探索、价值和策略,以及区分流行的训练方法。在这个过程中,我们还将了解强化学习中的各种挑战以及研究人员是如何应对这些挑战的。

在文章的结尾,我还会分享一个我制作的 YouTube 视频,用视觉吸引人的方式解释了本文中的所有概念。如果你不是很喜欢阅读,可以查看这个配套视频!

注意:除非另有说明,所有图片均由作者制作

强化学习基础

假设你想要训练一个 AI 模型来学习如何通过障碍赛道。强化学习(RL)是机器学习的一个分支,我们的模型通过收集经验来学习——采取行动并观察结果。更正式地说,强化学习由两个组件组成——代理(agent)和环境(environment)。

代理

学习过程涉及两个关键活动,这些活动会反复发生:探索训练。在探索期间,代理通过采取行动并找出结果来在环境中收集经验。然后,在训练活动中,代理使用这些收集到的经验来提升自己。

图片

代理在环境中收集经验,并使用这些经验来训练策略。

环境

一旦代理选择了一个行动,环境就会更新。它还会根据代理的表现返回一个奖励。环境设计者编程了奖励的结构。

例如,假设你正在开发一个环境,教 AI 避开障碍并达到目标。你可以编程你的环境,当代理接近目标时返回正奖励。但如果代理撞到障碍物,你可以编程它接收一个大的负奖励。

换句话说,当代理做了好事时,环境会提供正面的强化(例如,高正奖励),而当代理做了坏事时,会给予惩罚(例如,负奖励)。

尽管代理对环境如何实际运作一无所知,但它仍然可以从奖励模式中确定如何选择最优的行动以获得最大奖励。

图片

环境和代理是强化学习的核心。

策略

在每个步骤中,智能体 AI 观察环境的当前状态并选择一个动作。强化学习的目标是学习从观察到动作的映射,即“给定我观察到的状态,我应该选择什么动作”?

在强化学习的术语中,这种从状态到动作的映射也称为策略

这个策略定义了智能体在不同状态下的行为方式,在深度强化学习中,我们通过训练某种类型的深度神经网络来学习这个函数。

强化学习

环境示意图

智能体观察状态 S,查询网络生成动作 A。环境执行动作并返回奖励 r 和下一个状态 s'。这会一直持续到剧集结束。智能体每一步所采取的行动后来都会用于训练智能体的策略网络。

理解智能体、策略和环境之间的区别和相互作用对于理解强化学习至关重要。

  1. 智能体是探索和采取环境内行动的学习者

  2. 策略是智能体用来确定在给定状态下采取哪个动作的策略(通常是神经网络)。在强化学习中,我们的最终目标是训练这个策略。

  3. 环境是智能体与之交互的外部系统,它以奖励和新状态的形式提供反馈。

这里有一个你应该记住的简单定义:

在强化学习中,智能体遵循策略环境中选择动作。

观察与行动

智能体通过采取一系列“步骤”来探索环境。每一步是一个决策。智能体观察环境的状态。决定动作。接收奖励。观察下一个状态。在本节中,让我们了解观察和行动是什么。

观察

观察是智能体从环境中看到的内容——它接收关于环境当前状态的信息。在一个障碍物导航环境中,观察可能是激光雷达投影以检测障碍物。对于 Atari 游戏,它可能是最后几个像素帧的历史。对于文本生成,它可能是迄今为止生成的标记的上下文。在棋类游戏中,它是所有棋子的位置,轮到谁走等。

观察理想情况下应包含智能体采取行动所需的所有信息。

行动空间是智能体可以采取的所有可用决策。动作可以是离散的或连续的。当智能体必须在特定的类别决策集中选择时,就有一个离散的动作空间。例如,在 Atari 游戏中,动作可能是 Atari 控制器的按钮。对于文本生成,它是在模型词汇表中的所有标记之间进行选择。在棋类游戏中,它可能是一系列可用的走法。

动作空间示意图

一个 RL 智能体学习导航障碍课程的观察和动作示例

环境设计师还可以选择一个连续的动作空间——其中智能体生成连续的值来在环境中“移动”一步。例如,在我们的障碍物导航示例中,智能体可以选择 x 和 y 速度以获得对运动的精细控制。在人类角色控制任务中,动作通常是输出角色的骨骼中每个关节的扭矩或目标角度。

最重要的一课

但这里有一个非常重要的理解:对于智能体和政策来说——环境和它的具体细节可以是一个完全的黑盒。智能体将接收向量状态信息作为观察,生成一个动作,接收一个奖励,然后从中学习。

所以在你的脑海中,你可以将智能体和环境视为两个独立的实体。环境定义了状态空间、动作空间、奖励策略和规则。

这些规则与智能体的探索方式和策略在收集的经验上的训练是解耦的。

在研究一篇研究论文时,重要的是在我们心中明确我们正在阅读 RL 的哪个方面。是关于一个新的环境吗?是关于一个新的策略训练方法吗?是关于一个探索策略吗?根据答案,你可以将其他事物视为黑盒。

探索

智能体如何探索并收集经验?

每个 RL 算法都必须解决训练 RL 智能体时最大的困境之一——探索与利用。

探索意味着尝试新的动作以收集有关环境的信息。想象你正在学习在一个困难的视频游戏中与 Boss 战斗。一开始,你将尝试不同的方法、不同的武器、法术、随机的事情,只是为了看看什么有效,什么无效。

然而,一旦你开始看到一些奖励,比如持续对 Boss 造成伤害,你就会停止探索并开始利用你已经获得的策略。利用意味着贪婪地选择你认为能获得最佳奖励的动作

一个好的 RL 探索策略必须平衡探索和利用。

一种流行的探索策略是Epsilon-Greedy,其中智能体在一段时间内(由参数 epsilon 定义)以随机动作进行探索,其余时间利用其已知的最优动作。这个 epsilon 值通常在开始时很高,随着智能体的学习逐渐降低,以利于利用。

图片

Epsilon Greedy 是一种探索方法,其中 RL 智能体偶尔会随机选择一个动作

ε贪婪法只适用于离散动作空间。在连续空间中,探索通常以两种流行的方式处理。一种方法是在智能体决定采取的行动中添加一点随机噪声。另一种流行技术是在损失函数中添加熵奖励,这鼓励策略对其选择的不确定性降低,自然导致更多样化的行动和探索。

鼓励探索的其他一些方法包括:

  • 设计环境,在剧集开始时使用状态的随机初始化。

  • 内在探索方法,其中智能体出于自己的“好奇心”而行动。像好奇心和 RND 这样的算法通过奖励智能体访问新颖的状态或采取难以预测结果的行动。

我在我的“智能体好奇心”视频中介绍了这些迷人的方法,所以请务必查看!

训练算法

大多数关于强化学习的研究论文和学术主题都是关于优化智能体的策略来选择行动。优化算法的目标是学习最大化长期预期奖励的行动。

让我们逐一看看不同的算法选择。

基于模型与无模型

好的,所以我们的智能体已经探索了环境并收集了大量经验。现在怎么办?

智能体是否直接从这些经验中学习行动?或者它首先尝试模拟环境的动态和物理?

一种方法是基于模型的学习。在这里,智能体首先利用其经验来构建自己的内部模拟,或称为世界模型。这个模型学会预测其行动的后果,即给定一个状态和行动,结果的下个状态和奖励是什么?一旦它有了这个模型,它就可以在自己的想象中练习和计划,运行数千次模拟来找到最佳策略,而无需在现实世界中冒险一步。

基于模型的强化学习学习一个单独的模型来学习环境的工作方式

这在收集真实世界经验可能很昂贵的环境中特别有用——例如机器人或自动驾驶汽车。基于模型的强化学习示例包括:Dyna-Q世界模型Dreamer等。我将来会写一篇文章来更详细地介绍这些模型。

第二种被称为无模型学习。这正是本文接下来要介绍的内容。在这里,智能体将环境视为黑盒,并直接从收集到的经验中学习策略。让我们在下一节中更多关于无模型强化学习进行讨论。

基于值的学习

无模型强化学习算法主要有两种方法。

基于值的方法学会评估每个状态的好坏。基于策略的方法直接学习在每个状态下如何行动。

基于值的方法与基于策略的方法

在基于值的方法中,强化学习代理学习处于特定状态的 “值”。状态的值实际上意味着该状态有多好。直观地说,如果代理知道哪些状态是好的,它就可以更频繁地选择导致这些状态的动作。

很感谢有数学方法来做这件事——贝尔曼方程

V(s) = r + γ * max V(s’).

这个递归方程基本上表示 状态 s V(s) 等于处于该状态的即时 奖励 r,加上代理可以从 s 达到的最佳 下一个状态 s‘ 的 。伽玛(γ)是一个折现因子(介于 0 和 1 之间),它削弱了下一个状态的好处。它本质上决定了代理对遥远未来的奖励与即时奖励的关心程度。γ 接近 1 使得代理“有远见”,而 γ 接近 0 使得代理“短视”,几乎只关心下一个奖励。

Q-Learning

我们学习了状态值的直觉,但我们如何使用这些信息来学习动作?Q-Learning 方程回答了这个问题。

Q(s, a) = r + γ * max_a Q(s’, a’)

Q 值 Q(s,a) 是状态 s 中动作 a 的 **质量值。上述方程基本上表示:状态 s 中动作 a 的质量是处于状态 s 的即时奖励 r,加上下一个最佳动作的折现质量值。

因此,总结一下:

  • Q 值 是每个状态下每个动作的质量值。

  • V 值 是特定状态的值;它等于该状态下所有动作的最大 Q 值。

  • 策略 π 在特定状态下的动作是该状态下具有最高 Q 值的动作。

Q 值、状态值和政策紧密相连

要了解更多关于 Q-Learning 的信息,你可以研究 深度 Q 网络,以及它们的后代,如 双深度 Q 网络对抗深度 Q 网络

基于值的学习通过学习处于特定状态的值来训练强化学习代理。然而,有没有一种直接学习最优动作而不需要学习状态值的方法?是的。

策略学习方法直接学习最优动作策略,而不需要显式地学习状态值。在我们学习如何做之前,我们必须先学习另一个重要概念。时间差分学习与蒙特卡洛抽样。

TD 学习与 MC 抽样

代理如何整合未来的经验来学习?

在时间差分(TD)学习中,代理在每一步之后使用贝尔曼方程更新其值估计。它是通过查看其在下一个状态的 Q 值估计来做到这一点的。这种策略被称为 1 步 TD 学习,或单步时间差分学习。你迈出一步,并根据过去的估计更新你的学习。

在 TD 学习中,我们迈出一步并使用下一个状态的价值估计

第二种选择被称为蒙特卡洛抽样。在这里,智能体等待整个回合完成后再更新任何东西。然后它使用整个回合的完整回报:

Q(s,a) = r₁ + γr₂ + γ²r₃ + … + γⁿrₙ

在 MC 抽样中,我们完成整个回合来计算来自实际奖励的估计

TD 学习与 MC 抽样的权衡

TD 学习非常酷,因为智能体可以从每一步学到东西,甚至在完成一个回合之前。这意味着你可以长时间保存收集到的经验,并继续在旧经验上进行训练,但使用新的 Q 值。然而,TD 学习受到智能体对当前状态估计的严重偏差。所以如果智能体的估计是错误的,它会不断强化那些错误的估计。这被称为“自举问题”。

另一方面,蒙特卡洛学习总是准确的,因为它使用实际回合的真实回报。但在大多数强化学习环境中,奖励和状态转换可能是随机的。此外,随着智能体探索环境,它自己的行动也可能是随机的,因此它在回放期间访问的状态也是随机的。这导致纯 TD-Learning 方法遭受高方差问题,因为回报在回合之间可能有很大的变化。

政策梯度

好的,现在我们已经理解了 TD-Learning 与 MC 抽样的概念,是时候回到基于策略的学习方法了。

回想一下,基于价值的方法,如 DQN,首先必须显式地计算每个可能行动的价值或 Q 值,然后从中选择最佳行动。但可以跳过这一步,政策梯度方法如 REINFORCE 就是这样做的。

政策梯度方法输入状态并输出采取行动的概率

在 REINFORCE 中,策略网络为每个行动输出概率,我们训练它增加导致良好结果行动的概率。对于离散空间,PG 方法以分类分布的形式输出每个行动的概率。对于连续空间,PG 方法以高斯分布的形式输出,预测行动向量中每个元素的平均值和标准差。

因此,问题是,你究竟如何训练这样一个模型,它可以直接从状态中预测行动的概率?

这里就是 策略梯度定理 发挥作用的地方。在这篇文章中,我将直观地解释其核心思想。

  • 我们的策略梯度模型在文献中通常表示为 pi_theta(a|s)。在这里,theta 表示神经网络的权重。pi_theta(a|s) 是神经网络 theta 在状态 s 下预测行动 a 的概率。

  • 从一个新初始化的策略网络开始,我们让智能体玩一个完整的回合并收集所有奖励。

  • 对于它采取的每个动作,找出它之后的总折现回报。这是使用蒙特卡洛方法完成的。

  • 最后,为了实际训练模型,策略梯度定理要求我们最大化下图中提供的公式。

  • 如果回报很高,这次更新将通过增加 pi(a|s)来使该动作在未来更有可能。如果回报是负的,这次更新将通过减少 pi(a|s)来使该动作不太可能。

图片

策略梯度

Q-Learning 与 REINFORCE 的区别

Q-Learning 与 REINFORCE 之间的一个核心区别是,Q-Learning 使用 1 步 TD 学习,而 REINFORCE 使用蒙特卡洛抽样。

通过使用 1 步 TD,Q-learning 必须确定每个状态-动作可能性的质量值 Q。因为记住,在 1 步 TD 中,智能体可以在环境中仅迈出一小步并确定该状态的质量分数。

另一方面,使用蒙特卡洛抽样,智能体不需要依赖估计器来学习。相反,它使用在探索过程中观察到的实际回报。这使得 REINFORCE“无偏”,但前提是需要多个样本来正确估计轨迹的价值。此外,智能体在完全完成轨迹(即达到终端状态)之前不能训练,并且在策略网络更新后不能重用轨迹。

在实践中,REINFORCE 经常导致稳定性问题和样本效率低下。让我们谈谈 Actor Critic 如何解决这些限制。

优势 Actor Critic

如果你尝试在大多数复杂问题上使用 vanilla REINFORCE,它将遇到困难,原因有两个。

第一个原因是它受到高方差的影响,因为它是一种蒙特卡洛抽样方法。第二个原因是它没有基线感。比如,想象一个总是给你正奖励的环境,那么回报永远不会是负的,所以 REINFORCE 将增加所有动作的概率,尽管这种增加是不成比例的。

我们不希望仅仅因为得到一个正分数就奖励动作。我们希望奖励那些优于平均的动作。

正是这里,优势的概念变得重要。我们不会仅仅使用原始回报来更新我们的策略,而是减去该状态预期的回报。因此,我们新的更新信号变为:

优势 = 你得到的回报 - 你预期的回报

当优势为我们观察到的回报提供了一个基线时,让我们也讨论一下 Actor Critic 方法的概念。

Actor Critic结合了基于值的方法(如 DQN)和基于策略的方法(如 REINFORCE)的优点。Actor Critic 方法训练一个单独的“critic”神经网络,该神经网络仅用于评估状态,就像之前的 Q-Network 一样。

另一方面,actor 方法学习策略。

图片

优势 Actor Critic

结合优势与演员评论家,我们可以理解流行的 A2C 算法是如何工作的:

  • 初始化 2 个神经网络:策略或演员网络,以及价值或评论家网络。演员网络输入一个状态并输出动作概率。评论家网络输入一个状态并输出一个表示状态价值的单个浮点数。

  • 我们通过查询演员在环境中生成一些 rollouts。

  • 我们使用 TD 学习或蒙特卡洛学习来更新评论家网络。还有一些更高级的方法,比如广义优势估计,它结合了两种方法以实现更稳定的学习。

  • 我们通过从评论家网络生成的平均回报中减去观察到的回报来评估优势

  • 最后,我们通过使用优势和策略梯度方程来更新策略网络。

演员评论家方法通过使用价值函数作为基线来解决策略梯度中的方差问题。PPO(近端策略优化)通过将“信任区域”的概念添加到学习算法中扩展了 A2C,这防止了在学习过程中网络权重的过度变化。本文不会详细介绍PPO;也许有一天我们会打开这个潘多拉的盒子。

结论

这篇文章是下面我制作的 YouTube 视频的配套文章。如果您喜欢这篇阅读,请随意查看。

每个算法都会为每个问题做出特定的选择,这些选择会通过整个系统级联,影响从样本效率到稳定性再到实际性能的各个方面。

最后,创建一个强化学习算法是通过通过做出选择来回答这些问题。DQN 选择学习价值。策略方法直接学习一个策略。蒙特卡洛方法在完整一幕结束后使用实际回报来更新,这使得它们无偏,但由于强化学习探索的随机性,它们具有高方差。TD 学习则选择在每一步基于代理自己的估计来学习。演员评论家方法通过分别学习演员和评论家网络来结合 DQN 和策略梯度。

注意,今天我们没有涵盖很多内容。但这是您开始强化学习的好基础。

这就是这篇文章的结尾,我们下期再见!您可以使用下面的链接来发现更多我的作品。

我的 Patreon:

www.patreon.com/NeuralBreakdownwithAVB

我的 YouTube 频道:

www.youtube.com/@avb_fj

关注我的 Twitter:

x.com/neural_avb

阅读我的文章:

towardsdatascience.com/author/neural-avb/

posted @ 2026-03-27 10:52  布客飞龙V  阅读(0)  评论(0)    收藏  举报