强化学习教程(一):基本概念介绍
01
引言
强化学习是机器学习中的一个特殊领域,与监督学习或无监督学习等传统方法存在显著差异。其核心目标是训练一种称为"智能体"的程序,使其能够在特定环境中执行最优行动。初始阶段,智能体通常表现欠佳,但通过与环境持续交互并不断试错,它会逐步调整优化行为策略。强化学习的精妙之处在于,同一套算法能使智能体适应完全不同的、未知的且复杂的场景条件。这种技术具有广泛的应用前景,尤其适用于传统方法无法解决的问题:• 游戏领域:现有算法能设计出最优游戏策略并超越人类水平,最著名的案例包括国际象棋和围棋
• 机器人技术:先进算法可赋能机器人实现自主移动、物品搬运或完成家庭日常任务
• 自动驾驶:通过强化学习方法可开发出能自动操控汽车、直升机或无人机的智能系统闲话少说,我们直接开始吧!
02
强化学习框架
首先,我们需要理解强化学习框架中的几个核心术语:
[*]智能体(Agent):指通过学习策略来优化特定过程的对象;
[*]环境(Environment):指智能体所处的"世界",由一系列不同状态组成;
[*]在每个step上,智能体可以执行一个动作(Action),该动作会改变环境当前的状态。同时,智能体会获得一个奖励(Reward)——这是以数值形式呈现的反馈信号,用于评估所执行动作的优劣。
[*]通过持续收集不同状态和动作对应的反馈,智能体逐步学习到能使长期累积奖励最大化的最优策略。
在多数情况下,给定当前状态及智能体在该状态下采取的动作,转移到新状态可能会产生不同的奖励值(而非单一确定值),其中每个奖励值都对应着各自的概率。下面的公式考虑了这一事实,对所有可能转移到的下一状态及其对应的奖励进行了求和运算。为了更清晰地表达,我们将使用上标撇号(')来表示变量的下一时刻状态。例如,若s表示智能体当前状态,则s'就代表智能体的下一状态。
03
奖励类型
为了准确定义长期总奖励,我们需要引入"累积奖励"(cumulative reward)这一术语,它可以有多种表达形式。
[*]简单公式表示
设Rᵢ表示智能体在时间步i获得的奖励,那么累积奖励可定义为从下一时间步到最终时间步T期间所获奖励的总和:
[*]折扣累积奖励
在实际应用中,我们通常采用折扣累积奖励(Discounted cumulative reward)机制。该机制与前述奖励体系原理相同,但需对求和公式中的每个独立奖励乘以一个指数衰减的折扣系数。公式中的γ参数(有时也记作α)称为折扣率,其取值范围为0到1。引入折扣奖励机制可确保智能体优先获取短期回报。最终,折扣累积奖励可通过以下递归形式表示:
04
任务类型
[*]Episodic Tasks
在某些情况下,智能体与环境之间的交互可以包含一系列相互独立的回合(episodes)。在这种情景下,每个回合都独立于其他回合开始,其起始状态是从状态分布中抽样得到的。例如,想象我们希望智能体学习玩游戏的最佳策略。为了做到这一点,我们将运行一系列相互独立的游戏,在每场游戏中,机器人(智能体)要么赢要么输。在每个回合(游戏)中获得的奖励将逐渐影响机器人在后续游戏中使用的策略。回合(episodes)也称为试验(trials)。
[*]持续性任务
同时,并非所有类型的任务都是回合制的:其中一些可能是持续性的,这意味着它们没有终止状态。在这种情况下,不可能总是定义累计回报(cumulative return),因为时间步长是无限的。
05
策略和价值函数
[*]策略 (Policy)
策略π定义了一个从状态空间S到动作概率分布的映射关系。具体而言,对于任意状态s∈S,策略π(s)给出了在该状态下采取各个可能动作的概率分布。如果一个智能体遵循策略 π,那么智能体在状态 s 下执行动作 a 的概率 p(a | s) 等于 p(a | s) = π(s)。根据定义,任何策略都可以用一个大小为 |S| x |A| 的表格来表示。让我们看看下面的迷宫游戏示例。智能体最初位于 A1 单元格。在每一步中,智能体必须水平或垂直(不能对角线)移动到相邻的单元格。当智能体到达位于 C1 的终止状态时,游戏结束。单元格 A3 包含一个大奖励,如果智能体经过它就可以获得相应的奖励值。单元格 B1 和 C3 是迷宫的墙壁,无法到达。可以使用的最简单的策略之一是随机策略:在每个状态下,智能体以相等的概率随机移动到任意允许的单元格。该策略的具体表现如上图所示。上述所示的迷宫也是一个回合制任务的例子。达到终止状态并获得一定的奖励后,可以初始化一个新的独立的游戏。除了策略之外,在强化学习中,通常使用价值函数的概念。价值函数用来衡量智能体处于给定状态,或在当前状态下采取某个特定行动时,基于期望奖励的优劣程度。
[*]State-value function
状态值函数 v(s)(或简称为 V 函数)是一个映射,它将每个环境状态映射到智能体如果最初被置于该状态并遵循某个策略 π 所能获得的累积期望奖励。V-函数可以用一个大小为∣S∣ 的一维表格表示。为了更好地理解 V 函数的定义,让我们参考前面的例子。我们可以看到,位于 A3 附近(即 A2、A3 和 B3)的单元格,其 V 值高于距离它较远(例如 A1、B2 和 C2)的单元格。这是有道理的,因为位于 A3 附近的大额奖励,智能体有更高的机会收集到它。终止状态的状态价值(V值)恒等于0。
[*]Action-value function
与状态值函数相比,动作值函数有相似的概念。然而,动作值函数还考虑了智能体在给定策略下可以采取的特定行动。动作值函数 q(s, a)(或简称 Q 函数)是一个映射,它将每个环境状态 s ∈ S 和智能体的每个可能的行动 a ∈ A,映射到智能体如果最初被置于该状态并采取该行动,然后遵循某个策略 π 所能获得的期望回报。Q 函数可以表示为一个大小为 |S| x |A| 的表格形式。状态值函数和动作值函数之间的区别在于,动作值函数额外考虑了智能体在当前状态下将要采取的行动这一信息。而状态函数只考虑当前状态,不考虑智能体将要采取的行动。V 函数和 Q 函数都是通过智能体的经验来学习的。
[*]V函数与Q函数的一个细微差别
为什么 q(s, a) ≠ v(s’)?也就是说,为什么智能体处于状态 s 并采取导致下一状态 s’ 的动作 a 时所获得的预期奖励,不等于智能体处于状态 s’ 时的预期奖励?这个问题初看起来似乎很合乎逻辑。确实如此,让我们以上面的例子中的智能体为例,它位于 B2 单元格,并假设它随后转移到 B3。从 Q 表中我们可以看到,预期奖励 q(B2, “up”) = 5.6。同时,V 表显示预期奖励 v(B3) = 6.2。虽然 5.6 相对接近 6.2,但这两个值仍然不相等。所以最终的问题是:为什么 q(B2, “up”) ≠ v(B3)?这个问题的答案在于,尽管从状态 s 采取动作 a 会(即使是确定性地)到达下一状态 s’,但智能体从该转移中获得的即时奖励(immediate reward)被 Q 函数考虑在内,而 V 函数不考虑。换句话说,如果当前时间步是 t,那么预期奖励 q(s, a) 将考虑从时间步 t 开始的折后奖励总和:Rₜ + αRₜ₊₁ + …。而对应于 v(s’) 的预期奖励则从时间步 t+1 开始计算,不包含 Rₜ 项:Rₜ₊₁ + αRₜ₊₂ + …。另外值得注意的是,有时在状态 s 采取的动作 a 可能导致多个可能的下一状态。上面的简单迷宫例子没有展示这个概念。但我们可以例如给智能体的动作增加以下条件:当智能体在迷宫中选择一个移动方向时,有 20% 的可能性新单元格的灯是关闭的,因此智能体会最终相对于选定方向偏转 90° 进行移动。引入的这个概念表明,从同一个状态采取同一个动作,可能导致不同的下一状态。结果是,智能体从同一个动作和状态获得的奖励也可能不同。这是导致 q(s, a) 和 v(s’) 不相等的另一个方面。
06
Bellman equation
贝尔曼方程是强化学习中的基本方程之一!简单来说,它递归地建立了当前和下一时间步的状态/动作函数值。
[*]V-function
通过使用期望值的定义,我们可以重写状态价值函数的表达式,使其使用下一步的 V 函数:这个等式简单地阐明了这样一个事实:当前状态 s 的 v 值,等于智能体从该状态转移后所获得的奖励,与下一状态 s’ 的折扣 v 值之和的期望值。在 《Reinforcement Learning》书中,使用了所谓的“回溯图”(backup diagrams),这些图有助于更好地理解状态函数的流程,并捕捉贝尔曼方程中涉及的概率乘法背后的逻辑。用于 V 函数的回溯图如下所示。贝尔曼方程对于 V 函数的计算、逼近和求解起着重要作用。
[*]Q-function
类似于 V 函数,我们可以推导出 Q 函数的贝尔曼方程。
07
最优策略
让我们定义不同策略之间的比较操作。如果策略 π₁ 对于所有状态 s ∈ S 的预期奖励都大于或等于策略 π₂ 的预期奖励,那么称策略 π₁ 优于或等于策略 π₂。如果策略 π⁎ 优于或等于任何其他策略,那么称策略 π⁎ 是最优的。每个最优策略都对应着最优的 V⁎ 函数和 Q⁎ 函数。
[*]贝尔曼最优性方程
我们可以重写适用于最优策略的贝尔曼方程。实际上,它们看起来与我们之前看到的普通贝尔曼方程非常相似,区别在于策略项 π(a|s) 被移除,并加入了 max 函数,以确定性地通过从当前状态 s 选择最优动作 a 来获得最大奖励。这些方程可以对每个状态进行数学求解。如果找到了最优 V⁎ 函数或 Q⁎ 函数中的任何一个,最优策略 π⁎ 也可以很容易地计算出来,它将总是贪婪地选择那些能最大化预期奖励的动作。不幸的是,在实践中很难通过数学方式求解贝尔曼方程,因为大多数问题中的状态数量通常非常庞大。出于这个原因,人们使用了强化学习方法,这些方法能够以少得多的计算和内存需求来近似计算最优策略。
08
结论
在这篇文章中,我们讨论了智能体如何通过试错法从经验中学习。所介绍的强化学习框架简洁明了,能够很好地推广到许多问题,但同时提供了一种灵活的方式来使用策略函数和值函数的概念。与此同时,算法的最终目标在于计算能够最大化期望奖励的最优 V⁎ 函数和 Q⁎ 函数。大多数现有算法都试图近似最优策略函数。虽然由于内存和计算限制,在实际问题中几乎不可能获得最优解,但近似方法在大多数情况下都表现得非常好。
页:
[1]
