复杂环境决策中的强化学习
强化学习概述
强化学习(RL)为学习任意系列动作以实现特定目标提供了强大的框架。不过,它仍是一个相对年轻且活跃的研究领域,存在诸多尚未解决的挑战。训练强化学习模型颇具挑战,原因在于后续模型输入依赖于先前采取的动作,这会引发各种问题,通常导致学习行为不稳定。此外,这种序列依赖性会产生所谓的延迟效应,即时间步 t 采取的动作可能在任意数量的步骤后才产生未来奖励。
强化学习系统的智能体 - 环境接口
在所有强化学习示例中,都有两个不同的实体:智能体和环境。正式而言,智能体是学习如何做出决策并通过采取行动与周围环境进行交互的实体。作为采取行动的结果,智能体根据环境的规则接收观察信息和奖励信号。环境则是智能体之外的一切,它与智能体进行通信,确定智能体行动的奖励信号及其观察信息。
奖励信号是智能体与环境交互时收到的反馈,通常以标量值形式提供,可为正或负,其目的是告知智能体表现如何。智能体接收奖励的频率取决于给定的任务或问题。例如,在国际象棋游戏中,奖励基于整个游戏的所有走法结果(胜或负)在游戏结束后确定;而在迷宫任务中,可以定义为每个时间步确定一次奖励,智能体在这种情况下会尝试在整个生命周期(即一个回合的持续时间)内最大化累积奖励。
智能体与环境的交互和通信可用以下流程表示:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(智能体状态 St):::process -->|采取行动 At| B(环境):::process
B -->|奖励信号 Rt+1| C(智能体状态 St+1):::process
智能体的状态是其所有变量的集合。例如,对于无人机机器人,这些变量可能包括当前位置(经度、纬度和高度)、剩余电池电量、每个风扇的速度等。在每个时间步,智能体通过一组可用动作与环境交互。基于智能体在状态 𝑆𝑡 时采取的动作 𝐴𝑡,智能体将收到奖励信号 𝑅𝑡 + 1,其状态将变为 𝑆𝑡 + 1。
在学习过程中,智能体必须尝试不同的动作(探索),以便逐步了解哪些动作更值得优先选择和频繁执行(利用),从而最大化总累积奖励。例如,一名专注于软件工程的计算机科学新毕业生,会纠结是去公司工作(利用),还是攻读硕士或博士学位以深入学习数据科学和机器学习(探索)。一般来说,利用会导致选择短期奖励更大的动作,而探索可能在长期内带来更大的总奖励。探索与利用之间的权衡已被广泛研究,但对于这个决策困境,尚无通用的解决方案。
强化学习的理论基础
在进行实际示例和训练强化学习模型之前,我们先了解其一些理论基础,包括马尔可夫决策过程的数学公式、 episodic 与连续任务、一些关键的强化学习术语,以及使用贝尔曼方程的动态规划。
马尔可夫决策过程
强化学习处理的问题通常被表述为马尔可夫决策过程(MDPs)。解决 MDP 问题的标准方法是动态规划,但强化学习相对于动态规划有一些关键优势。当状态规模(即可能的配置数量)相对较大时,动态规划不是可行的方法,此时强化学习被认为是解决 MDPs 更高效、更实用的替代方法。
动态规划是理查德·贝尔曼在 20 世纪 50 年代开发的一组计算机算法和编程方法,本质上是递归解决问题,即将相对复杂的问题分解为较小的子问题。递归与动态规划的关键区别在于,动态规划会存储子问题的结果(通常以字典或其他查找表的形式),以便在未来再次遇到这些子问题时能在恒定时间内访问(而不是重新计算)。计算机科学中一些通过动态规划解决的著名问题包括序列比对和计算从 A 点到 B 点的最短路径。
马尔可夫决策过程中,智能体与环境交互产生的序列可表示为:{𝑆₀, 𝐴₀, 𝑅₁}, {𝑆₁, 𝐴₁, 𝑅₂}, {𝑆₂, 𝐴₂, 𝑅₃}, … 。其中,𝑆ₜ 和 𝐴ₜ 分别表示时间步 t 的状态和采取的动作,𝑅ₜ₊₁ 表示执行动作 𝐴ₜ 后从环境获得的奖励。这些时间相关的随机变量 𝑆ₜ 和 𝑅ₜ₊₁ 的概率分布仅取决于前一个时间步 t - 1 的值。𝑆ₜ₊₁ = 𝑠′ 和 𝑅ₜ₊₁ = 𝑟 的概率分布可写为条件概率:
[p(s’, r|s, a) \triangleq P(S_{t + 1} = s’, R_{t + 1} = r|S_t = s, A_t = a)]
这个概率分布完全定义了环境的动态(或环境模型),因为基于此分布可以计算环境的所有转移概率。因此,环境动态是对不同强化学习方法进行分类的核心标准。需要环境模型或尝试学习环境模型(即环境动态)的强化学习方法称为基于模型的方法,与之相对的是无模型方法。
如果对于给定状态,特定动作总是或从不被采取,即 𝑝(𝑠′, 𝑟|𝑠, 𝑎) ∈ {0, 1},则环境动态可视为确定性的;否则,在更一般的情况下,环境具有随机行为。观察未来状态 𝑆ₜ₊₁ = 𝑠′ 在当前状态 𝑆ₜ = 𝑠 和执行动作 𝐴ₜ = 𝑎 条件下的概率表示为 𝑝(𝑠′|𝑠, 𝑎),可通过对所有可能奖励求和计算得到:
[p(s’|s, a) \triangleq \sum_{r \in \hat{R}} p(s’, r|s, a)]
这个概率称为状态转移概率。如果环境动态是确定性的,意味着智能体在状态 𝑆ₜ = 𝑠 采取动作 𝐴ₜ = 𝑎 时,向状态 𝑆ₜ₊₁ = 𝑠′ 的转移是 100% 确定的,即 𝑝(𝑠′|𝑠, 𝑎) = 1。
马尔可夫过程可以用有向循环图表示,图中的节点代表环境的不同状态,边代表状态之间的转移概率。例如,学生在三种不同情况(A. 在家复习考试、B. 在家玩电子游戏、C. 在图书馆学习)之间做决策,还有一个睡觉的终止状态(T)。决策每小时进行一次,做出决策后学生将在该小时内处于所选情况。在家(状态 A)时,有 50% 的可能性切换到玩电子游戏;在玩电子游戏(状态 B)时,后续小时继续玩游戏的可能性较高(80%)。其行为动态可用以下表格和图表示:
|当前状态|转移到 A 的概率|转移到 B 的概率|转移到 C 的概率|转移到 T 的概率|
| ---- | ---- | ---- | ---- | ---- |
|A|0|0.5|0.5|0|
|B|0|0.8|0.2|0|
|C|0|0|0.9|0.1|
|T|0|0|0|1|
graph LR
classDef state fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(A: 在家复习考试):::state -->|0.5| B(B: 在家玩游戏):::state
A -->|0.5| C(C: 在图书馆学习):::state
B -->|0.8| B
B -->|0.2| C
C -->|0.9| C
C -->|0.1| T(T: 睡觉):::state
T -->|1| T
回合制与连续任务
智能体与环境交互时,观察序列或状态形成轨迹,轨迹有两种类型。如果智能体的轨迹可以划分为多个子部分,每个子部分从时间 t = 0 开始并在终止状态 𝑆ₜ 结束,则该任务称为回合制任务;如果轨迹是无限连续且没有终止状态,则称为连续任务。例如,国际象棋学习智能体的任务是回合制任务,而保持房屋整洁的清洁机器人执行的通常是连续任务,这里我们仅考虑回合制任务。
在回合制任务中,一个回合是智能体从起始状态 𝑆₀ 到终止状态 𝑆ₜ 的序列或轨迹:
[S_0, A_0, R_1, S_1, A_1, R_2, \ldots, S_t, A_t, R_{t + 1}, \ldots, S_{T - 1}, A_{T - 1}, R_T, S_T]
对于前面学生复习考试的马尔可夫过程示例,可能会遇到以下回合:
- 回合 1: BBCCCCBAT → 通过(最终奖励 = +1)
- 回合 2: ABBBBBBBBBT → 失败(最终奖励 = -1)
- 回合 3: BCCCCCT → 通过(最终奖励 = +1)
强化学习术语:回报、策略和价值函数
回报
时间 t 的回报是一个回合内获得的累积奖励。已知 𝑅ₜ₊₁ = 𝑟 是在时间 t 执行动作 𝐴ₜ 后获得的即时奖励,后续奖励为 𝑅ₜ₊₂、𝑅ₜ₊₃ 等。时间 t 的回报可通过即时奖励和后续奖励计算:
[G_t \triangleq R_{t + 1} + \gamma R_{t + 2} + \gamma^2 R_{t + 3} + \cdots = \sum_{k = 0}^{\infty} \gamma^k R_{t + k + 1}]
其中,𝛾 是范围在 [0, 1] 的折扣因子,它表示未来奖励在当前时刻的“价值”。当 𝛾 = 0 时,意味着不考虑未来奖励,回报等于即时奖励,智能体是短视的;当 𝛾 = 1 时,回报是所有后续奖励的无加权总和。回报方程也可以用递归形式更简单地表示:
[G_t = R_{t + 1} + \gamma G_{t + 1} = r + \gamma G_{t + 1}]
这意味着时间 t 的回报等于即时奖励 r 加上时间 t + 1 的折扣后未来回报,这一特性便于回报的计算。
以学生考试为例,假设 𝛾 = 0.9,且仅根据考试结果给予奖励(通过为 +1,失败为 -1),中间时间步的奖励为 0。各回合不同时间步的回报计算如下:
- 回合 1: BBCCCCBAT → 通过(最终奖励 = +1)
- 𝑡 = 0: (G_0 = R_1 + \gamma R_2 + \gamma^2 R_3 + \cdots + \gamma^6 R_7 = 0 + 0 \times \gamma + \cdots + 1 \times \gamma^6 = 0.9^6 \approx 0.531)
- 𝑡 = 1: (G_1 = 1 \times \gamma^5 = 0.590)
- 𝑡 = 2: (G_2 = 1 \times \gamma^4 = 0.656)
- …
- 𝑡 = 6: (G_6 = 1 \times \gamma = 0.9)
- 𝑡 = 7: (G_7 = 1)
- 回合 2: ABBBBBBBBBT → 失败(最终奖励 = -1)
- 𝑡 = 0: (G_0 = -1 \times \gamma^8 = -0.430)
- 𝑡 = 1: (G_0 = -1 \times \gamma^7 = -0.478)
- …
- 𝑡 = 8: (G_0 = -1 \times \gamma = -0.9)
- 𝑡 = 9: (G_{10} = -1)
策略
策略通常用 𝜋(𝑎|𝑠) 表示,是一个确定下一步行动的函数,可以是确定性的,也可以是随机的(即采取下一步行动的概率)。随机策略在给定状态下对智能体可以采取的动作有一个概率分布:
[\pi(a|s) \triangleq P[A_t = a | S_t = s]]
在学习过程中,策略可能会随着智能体获得更多经验而改变。例如,智能体可能从所有动作概率均匀的随机策略开始,有望学习优化策略以达到最优策略。最优策略 𝜋∗(𝑎|𝑠) 是产生最高回报的策略。
价值函数
价值函数(也称为状态价值函数)衡量每个状态的优劣,其评判标准基于回报。基于回报 𝐺ₜ,我们将状态 s 的价值函数定义为遵循策略 𝜋 后的预期回报(所有可能回合的平均回报):
[v_{\pi}(s) \triangleq E_{\pi}[G_t|S_t = s] = E_{\pi}[\sum_{k = 0}^{\infty} \gamma^{k + 1} R_{t + k + 1}| S_t = s]]
在实际实现中,我们通常使用查找表来估计价值函数,避免多次重新计算。例如,使用表格方法估计价值函数时,我们将所有状态值存储在一个表 V(s) 中。在 Python 实现中,这可以是一个列表或 NumPy 数组,其索引引用不同的状态;也可以是一个 Python 字典,字典键将状态映射到相应的值。
我们还可以定义每个状态 - 动作对的价值,称为动作价值函数,用 𝑞ₜ(𝑠, 𝑎) 表示。动作价值函数指智能体在状态 𝑆ₜ = 𝑠 并采取动作 𝐴ₜ = 𝑎 时的预期回报 𝐺ₜ:
[q_{\pi}(s, a) \triangleq E_{\pi}[G_t|S_t = s, A_t = a] = E_{\pi}[\sum_{k = 0}^{\infty} \gamma^{k + 1} R_{t + k + 1}| S_t = s, A_t = a]]
类似于最优策略 𝜋∗(𝑎|𝑠),𝑣∗(𝑠) 和 𝑞∗(𝑠, 𝑎) 分别表示最优状态价值函数和最优动作价值函数。估计价值函数是强化学习方法的重要组成部分,后续会介绍计算和估计状态价值函数与动作价值函数的不同方法。
奖励、回报和价值函数的区别
奖励是智能体在给定环境当前状态下采取行动的结果,是智能体执行动作从一个状态转移到下一个状态时收到的信号,但并非每个动作都会产生正或负奖励。例如,国际象棋中只有在赢得比赛时才会获得正奖励,所有中间动作的奖励为零。
状态本身有一定的价值,价值函数用于衡量状态的优劣。通常,具有“高”或“好”价值的状态是那些预期回报高且在特定策略下可能产生高奖励的状态。例如,国际象棋计算机只有在赢得比赛时才会获得正奖励。假设计算机执行了一个捕获对手皇后的特定走法且无负面后果,由于只有赢得比赛才有奖励,此走法不会立即获得奖励,但捕获皇后后的新棋盘状态可能具有高价值,因为捕获皇后通常会增加获胜的可能性,从而具有高预期回报或价值,但捕获皇后并不一定保证获胜。
简而言之,回报是一个回合内奖励的加权总和,在国际象棋示例中等于折扣后的最终奖励;价值函数是所有可能回合的期望值,基本上计算了进行某个特定走法的平均“价值”。
复杂环境决策中的强化学习
基于模型与无模型的强化学习
当概率 (p(s’, r|s, a)) 已知时,学习任务可以用动态规划解决。但在许多现实问题中,环境动态未知,这时就需要通过与环境大量交互获取样本,以弥补未知的环境动态。处理这个问题主要有两种方法:无模型的蒙特卡罗(MC)和时间差分(TD)方法。以下是这两种方法的分类图示:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(强化学习方法):::process --> B(基于模型方法):::process
A --> C(无模型方法):::process
C --> D(蒙特卡罗方法):::process
C --> E(时间差分方法):::process
接下来将从理论到实际算法详细介绍这些不同的方法及其分支。
无模型方法的具体介绍
蒙特卡罗方法
蒙特卡罗方法通过大量的采样回合来估计价值函数。具体步骤如下:
1. 初始化:随机初始化策略 (\pi) 和价值函数 (V(s))。
2. 采样回合:根据当前策略 (\pi) 与环境交互,生成一个完整的回合 (S_0, A_0, R_1, S_1, A_1, R_2, \ldots, S_T)。
3. 计算回报:对于回合中的每个时间步 (t),计算从该时间步开始的回报 (G_t)。
4. 更新价值函数:对于回合中出现的每个状态 (s),使用所有访问该状态时的回报的平均值来更新 (V(s))。
5. 重复步骤 2 - 4 多次,直到价值函数收敛。
蒙特卡罗方法的优点是简单直观,不依赖于环境模型,但需要大量的回合采样才能得到准确的估计,且只能在回合结束后进行更新。
时间差分方法
时间差分方法结合了蒙特卡罗方法的采样思想和动态规划的自举思想,它不需要等到回合结束就可以更新价值函数。以最简单的 TD(0) 算法为例,其步骤如下:
1. 初始化:随机初始化策略 (\pi) 和价值函数 (V(s))。
2. 与环境交互:在每个时间步 (t),根据当前策略 (\pi) 选择动作 (A_t),执行动作后得到奖励 (R_{t + 1}) 和下一个状态 (S_{t + 1})。
3. 更新价值函数:使用以下公式更新当前状态 (S_t) 的价值函数:
[V(S_t) \leftarrow V(S_t) + \alpha [R_{t + 1} + \gamma V(S_{t + 1}) - V(S_t)]]
其中,(\alpha) 是学习率,控制每次更新的步长。
4. 重复步骤 2 - 3,直到达到终止状态或满足停止条件。
时间差分方法的优点是可以在线学习,不需要等到回合结束,更新速度快,但对学习率的选择比较敏感。
强化学习中的探索与利用权衡
在强化学习中,探索与利用的权衡是一个关键问题。探索是指智能体尝试不同的动作以发现新的、可能更好的策略;利用是指智能体选择已知能带来高回报的动作。以下是几种常见的处理探索与利用权衡的方法:
1.
(\epsilon) - 贪心策略
:以概率 (\epsilon) 随机选择一个动作进行探索,以概率 (1 - \epsilon) 选择当前估计价值最高的动作进行利用。随着学习的进行,可以逐渐减小 (\epsilon) 的值,使智能体从探索为主过渡到利用为主。
2.
上置信界(UCB)方法
:为每个动作的价值估计加上一个置信区间,智能体选择置信区间上限最大的动作。随着动作被选择的次数增加,置信区间会逐渐缩小,从而平衡探索与利用。
3.
汤普森采样
:假设每个动作的回报服从某种概率分布,通过采样这些分布来选择动作。随着观察到的回报数据增加,分布会不断更新,从而指导智能体进行探索和利用。
强化学习的应用场景
强化学习在许多领域都有广泛的应用,以下是一些常见的应用场景及其简要介绍:
|应用场景|描述|
| ---- | ---- |
|游戏|如围棋、国际象棋等,智能体通过与环境(对手)交互学习最优策略,击败人类选手。例如,AlphaGo 就是强化学习在围棋领域的杰出应用。|
|机器人控制|机器人在复杂环境中完成任务,如导航、抓取物体等。通过强化学习,机器人可以学习到如何在不同的环境条件下做出最优决策。|
|自动驾驶|自动驾驶汽车需要在各种路况和交通规则下做出决策,强化学习可以帮助汽车学习到安全、高效的驾驶策略。|
|资源管理|在云计算、能源管理等领域,强化学习可以用于优化资源分配,提高资源利用率。例如,在云计算中,根据不同用户的需求和服务器的负载情况,动态分配计算资源。|
强化学习的未来发展趋势
强化学习虽然已经取得了显著的成果,但仍然面临一些挑战,未来的发展趋势可能包括以下几个方面:
1.
结合深度学习
:将强化学习与深度学习相结合,形成深度强化学习,能够处理更复杂的环境和任务。例如,深度 Q 网络(DQN)在游戏领域取得了巨大成功。
2.
多智能体强化学习
:研究多个智能体之间的协作和竞争,应用于多机器人系统、交通流量控制等领域。
3.
可解释性和安全性
:提高强化学习模型的可解释性,确保模型在实际应用中的安全性。例如,在医疗、金融等领域,需要能够解释模型决策的原因。
4.
与其他领域的交叉融合
:与神经科学、心理学等领域交叉融合,借鉴生物智能的原理,改进强化学习算法。
强化学习作为一种强大的决策学习方法,在复杂环境中具有巨大的应用潜力。通过不断的研究和发展,相信强化学习将在更多领域发挥重要作用,为解决实际问题提供有效的解决方案。
超级会员免费看
3454

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



