在探索强化学习的征程中,我们已经钻研了基础概念,还审视了那些假定对环境有全面认知的基于价值的方法。然而在现实世界里,智能体几乎无法获取关于其所处环境的完美模型。 |文末点击阅读原文查看网页版| 更多专栏文章点击查看:
LLM 架构专栏
大模型架构专栏文章阅读指南
Agent系列
强化学习系列
欢迎加入大模型交流群:加群链接 https://docs.qq.com/doc/DS3VGS0NFVHNRR0Ru#
公众号【柏企阅文】
知乎【柏企】
个人网站:https://www.chenbaiqi.com
那么,在事先不了解转移概率和奖励函数的情况下,它们要如何学习最优策略呢?
蒙特卡洛(Monte Carlo)和时间差分(Temporal Difference)学习方法正是解决这一问题的关键所在。这些方法让智能体能够直接从经验中学习,在理论强化学习和实际应用之间架起了一座桥梁。如果说动态规划方法代表了强化学习中 “思考” 的路径,那么蒙特卡洛和时间差分方法则代表了 “实践” 的路径。
它们如何在没有概率和奖励函数的情况下学习?
到目前为止我们探讨过的算法 —— 价值迭代和策略迭代,都属于 “基于模型” 的方法。它们需要对环境动态有全面的了解,这些信息通过转移概率 $P(s’|s,a)$ 和奖励函数 $R(s,a,s’)$ 进行编码。这就好比拿着详细地图和指南针去导航。
相比之下,蒙特卡洛和时间差分方法是 “无模型” 的 —— 它们直接从经历过的状态、动作和奖励序列中学习,无需事先构建环境模型。这更像是通过探索地形并记住有效的路线来找到前行的方向。
为了理解其中的差异,想象一下在一座新城市中探索:
- 基于模型的方法:在踏入城市之前,先研究详细的地图,计算任意两点之间的最优路线。
- 无模型的方法:四处走动探索城市,通过反复尝试,了解哪些路线比较好走。
这种区别意义重大:无模型方法能够在环境动态未知或过于复杂而难以精确建模的情况下学习,而这正是现实世界中大多数应用场景的写照。
蒙特卡洛方法
蒙特卡洛方法为强化学习提供了一种概念上简单易懂的方式:完整地经历一个个情节,观察总回报,并据此更新价值估计。
其核心观点是,如果我们运行足够多的情节,平均回报将会收敛到它们的期望值。
蒙特卡洛算法
蒙特卡洛算法的核心步骤如下:
- 策略评估:任意初始化价值估计。
- 生成情节:遵循当前策略生成完整的情节。
- 计算回报:对于访问过的每个状态,计算该次访问后的回报(奖励总和)。
- 更新价值估计:通过平均回报来更新价值函数。
- 策略改进:根据更新后的价值函数,使策略变为贪婪策略。
- 重复:持续上述步骤,直到收敛。
蒙特卡洛方法的独特之处在于,它们会等到一个情节结束后才进行任何更新。这使得它们能够观察到实际的回报,而不是基于当前的价值近似来进行估计。
餐厅类比
可以把蒙特卡洛方法类比为评估餐厅的过程:
- 去一家餐厅,遵循特定的决策策略(例如 “总是点厨师推荐的菜品”)。
- 完成整个用餐体验。
- 用餐结束时,评估自己对这顿饭的满意程度。
- 根据这次完整的体验,更新对这家餐厅的看法。
- 随着时间推移,基于积累的经验改进自己的决策策略。
核心思想是,在完整的体验结束之前,不做任何判断,也不更新策略。
首次访问与每次访问
蒙特卡洛方法主要有两种类型:
- 首次访问:仅根据一个情节中首次访问某个状态时的情况来更新价值估计。
- 每次访问:根据情节中每次访问某个状态的情况来更新价值估计。
例如,如果状态 $s$ 在一个情节中出现了三次,首次访问蒙特卡洛方法只会使用第一次出现后的回报来更新 $V(s)$,而每次访问蒙特卡洛方法会使用这三次的全部回报。
探索起始和ε-贪婪策略
蒙特卡洛方法面临的一个关键挑战是,要确保所有的状态 - 动作对都被充分访问,以便进行准确的价值估计。有两种常见的方法可以解决这个问题:
- 探索起始:从随机选择的状态 - 动作对开始情节。
- ε-贪婪策略:以概率 ε 选择随机动作,而不是贪婪动作。
在大多数情况下,后一种方法更具实用性,因为它不需要能够随意设置起始状态和动作。
要是你已经了解了蒙特卡洛方法,有任何疑问可以在评论区留言哦!
时间差分学习:通过引导提升效率
蒙特卡洛方法要等到情节结束才更新价值估计,而时间差分(TD)方法则基于其他估计来更新价值,这个过程被称为引导(bootstrapping)。这使得时间差分学习成为一种结合了蒙特卡洛方法和动态规划元素的混合方法。
为了理解时间差分学习,让我们扩展一下城市探索的类比:
不再等到一天结束才评估各个街区,而是即时更新自己的看法:
- 你在街区A,决定前往街区B。
- 到达街区B后,你对B有了一个即时的印象。
- 基于以下因素更新你对A的看法:
- 从A到B的旅程有多愉快(即时奖励)。
- 你目前对B的看法(对未来奖励的估计)。
关键的区别在于,你不必等待一整天的行程结束,而是根据当前的估计立即进行更新。
从数学角度来看,时间差分更新遵循以下模式:
方括号中的项就是时间差分误差,即当前估计与新的目标估计之间的差值。
SARSA:在线策略时间差分控制
SARSA代表状态 - 动作 - 奖励 - 状态 - 动作,反映了其更新规则中使用的事件序列。它是一种在线策略方法,意味着它学习的是实际遵循的策略的价值。
可以把SARSA想象成在考虑自身驾驶习惯的情况下学习驾驶:
- 你处于特定的交通状况(状态S)。
- 你决定采取一个驾驶操作(动作A)。
- 你执行该操作并观察结果(奖励R)。
- 你发现自己处于新的交通状况(状态S’)。
- 你决定下一个操作(动作A’)。
- 基于奖励和对新状况 - 操作对(S’, A’)的评估,更新你对原始状况 - 操作对(S, A)的评估。
关键在于,SARSA在学习过程中考虑了你的实际行为。
Q学习:离线策略时间差分控制
Q学习采用了不同的方法 —— 它学习最优策略,而不依赖于当前遵循的策略。它是离线策略的,这意味着它可以从观察任何行为中学习,而不仅仅是自身的行为。
继续以驾驶为例,Q学习就像是:
- 你处于特定的交通状况(状态S)。
- 你决定采取一个驾驶操作(动作A)。
- 你执行该操作并观察结果(奖励R)。
- 你发现自己处于新的交通状况(状态S’)。
- 基于以下因素更新你对原始状况 - 操作对(S, A)的评估:
- 获得的奖励。
- 在新状况下的最佳可能操作,即使这不是你实际会采取的操作。
关键的区别在于,Q学习在更新时总是考虑未来的最优动作,而不管实际采取的动作是什么。
SARSA与Q学习:悬崖行走示例
经典的悬崖行走场景可以很好地说明SARSA和Q学习之间的差异:
在初始学习阶段,两种算法都会随机探索,并且在了解环境的过程中频繁掉下悬崖。
随着训练的推进,它们的策略开始出现分歧。Q学习开始倾向于沿着悬崖边缘的路径,而SARSA由于偶尔的随机探索动作会导致掉下悬崖,所以开始避开悬崖。
Q学习作为离线策略方法,学习到的是离悬崖边缘最近的路径 —— 如果智能体从不犯错,这就是最优路径。SARSA作为在线策略方法,学习到的路径会离悬崖边缘更远一些,因为它考虑到了探索动作可能会使智能体掉下悬崖的情况。
这种差异凸显了一个重要的实际考量:Q学习在假设完美执行的情况下找到真正的最优路径,而SARSA找到的是考虑了当前探索策略的最优路径。
引导与采样:核心权衡
蒙特卡洛方法和时间差分方法的一个根本区别在于它们估计回报的方式:
- 蒙特卡洛方法使用采样:它们对完整情节的实际回报求平均。
- 时间差分方法使用引导:它们基于其他估计来更新估计值。
这种区别导致了不同的特性:
学习的频谱:从单步到完整情节
时间差分学习和蒙特卡洛方法代表了一个频谱的两端:
- TD(0):基于下一个奖励和状态进行更新(单步前瞻)。
- 蒙特卡洛:基于情节结束前的完整奖励序列进行更新。
在这两个极端之间,存在一系列方法,它们可以前瞻n步,或者使用多步回报的加权平均值。一个强大的统一框架是TD(λ)。
TD(λ):平衡即时学习和长期学习
TD(λ)使用一个参数λ(介于0和1之间)来确定智能体在更新价值时对未来的展望程度:
- λ = 0:单步时间差分(仅关注紧接的下一个状态)。
- λ = 1:蒙特卡洛(一直关注到情节结束)。
- 中间值:一种加权平均,更重视较近的奖励,但也会考虑较远的奖励。
举个具体的例子,想象评估一个国际象棋局面:
- TD(0)只会根据下一个局面进行更新。
- TD(0.5)会对几步之后的局面给予较大权重,但对很多步之后的局面权重较小。
- TD(1)会等到游戏结束,根据最终结果进行更新。
TD(λ)通过 “资格迹”(eligibility traces)来实现这一点,资格迹用于跟踪最近访问过的状态。当获得一个奖励时,所有最近访问过的状态都会根据它们最近被访问的程度按比例进行更新。
实际考量:何时使用每种方法
在蒙特卡洛和时间差分方法(及其变体)之间进行选择,取决于环境和任务的特点:
- 选择蒙特卡洛方法的场景:
- 完整情节可用且长度合理。
- 环境具有高随机性。
- 你需要无偏估计。
- 初始价值估计较差或随意。
- 相比学习速度,你更关注最终的策略质量。
例如,蒙特卡洛方法可能非常适合训练一个扑克游戏智能体,因为扑克游戏有明确的结束,而且结果变化很大。
- 选择TD(0)/SARSA/Q学习的场景:
- 你需要从没有情节边界的持续任务中学习。
- 环境是确定性的或随机性较低。
- 计算效率很重要。
- 你希望在每一步之后进行在线学习。
- 基于当前估计进行引导是可以接受的。
时间差分方法可能更适合训练一个需要持续且高效学习的机器人控制系统。
- 选择具有中间λ值的TD(λ)的场景:
- 你希望在偏差和方差之间取得平衡。
- 你需要比TD(0)更快的学习速度,但比蒙特卡洛方法更稳定。
- 任务同时具有短期和长期的奖励结构。
TD(λ)可能非常适合自动驾驶汽车,因为它需要同时考虑即时安全和长期路线效率。
实际应用
这些无模型方法在各个领域都推动了重大进展:
- 游戏领域:TD-Gammon使用TD(λ)达到了专家级的双陆棋(backgammon)水平。
- 机器人控制:Q学习的变体使机器人能够通过反复尝试学习操作任务。
- 资源管理:时间差分方法优化了电网和数据中心的资源分配决策。
- 推荐系统:蒙特卡洛方法根据用户交互进行个性化的内容推荐。
结论
蒙特卡洛和时间差分方法代表了强化学习中的关键飞跃,从需要完美模型的理论方法,发展到能够从直接经验中学习的实用算法。在下一篇文章中,我们将探索如何通过函数逼近扩展这些方法,以处理连续状态空间,这将使我们更接近为当今最先进的人工智能系统提供动力的深度强化学习技术。
在下一篇文章中,我们将探讨函数逼近方法,这种方法可以让强化学习扩展到具有大型或连续状态空间的环境中。
推荐阅读
1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!
评论