游乐游手机版
首页/AI热点日报/热点详情

图解强化学习Q-Learning算法从入门到实战详解教程

类型:热点整理2026-07-17
Q-Learning是一种离线策略强化学习算法,利用Q表存储状态-动作对估值,通过贝尔曼方程更新。其特点在于行为策略与目标策略不同,借助ε-贪婪策略探索,并依靠实际奖励逐步修正估计,使Q值反向传播并最终收敛到最优。

本文深入探讨强化学习中的核心算法——Q-Learning。在前几篇文章中,我们已介绍了基础概念、贝尔曼方程以及无模型算法,现在将进入这一关键领域。本文内容主要参考Ketan Doshi的博客专栏、李宏毅老师的讲稿以及《动手学强化学习》相关章节,后续还将讨论强化学习在大语言模型中的应用。目标是以最简洁直白的语言,清晰阐述Q-Learning的原理与魅力。

图解强化学习 — Q-Learning

一、回顾及引言

本系列文章已更新至第6篇。前5篇依次介绍了基础概念(两篇)、算法分类与贝尔曼方程、以及无模型算法(两篇)。若尚未阅读,建议先回顾,因为本文内容会频繁引用这些知识。不过请放心,本文将尽量做到独立可读。

  • 图解强化学习——基础概念 1
  • 图解强化学习——基础概念 2
  • 图解强化学习-算法分类及贝尔曼方程
  • 图解强化学习——无模型算法 1
  • 图解强化学习——无模型算法 2

二、Q-Learning算法概述

Q-Learning是查找表方法中最有趣的算法之一,也是后续深度Q学习(DQN)的基础。它维护一张Q表,表中行表示状态,列表示动作,每个单元格存储对应状态-动作对的估计Q值。初始时所有Q值均为0,随着智能体与环境交互并获得反馈,算法不断改进这些值,直至收敛到最优。更新的核心工具正是前面提到的贝尔曼方程。

三、如何构建 Q 表?

我们用一个简单游戏来演示。假设有一个3x3网格:玩家从“Start”方格出发,目标是到达“Goal”方格,到达后获得5分奖励。有些方格安全(Reward=0),有些危险(Reward=-10)。玩家在每个方格可以选择上下左右四个方向移动。

因此,共有9个状态(每个格子一个),4个动作,Q表为9行4列。初始所有Q值均为0。例如,单元格((2,2), up)存储的是在位置(2,2)执行“向上”动作的Q值。随后在交互过程中不断更新这些值。

四、Q-Learning 算法整体流程

智能体通过学习每个状态-动作对的最优Q值来找到最优策略。最优Q值(也称最优动作价值函数)表示在给定状态和动作下,按照最优策略能够获得的最大期望总回报。换言之,它假设智能体在后续每一步都能选择最佳动作,是一个理想标杆。

最初智能体随机选择动作,但通过与环境交互,它会根据获得的奖励逐步调整Q值。该流程与之前文章介绍的无模型方法类似,此处不再赘述。Q-Learning的独特之处在于其更新方式——它使用了一个基于贝尔曼方程的变体公式。

五、Q-Learning 在每个时间步中使用两种不同的动作

让我们通过一个具体步骤来理解。算法第2步,智能体利用ε-贪婪策略从当前状态(S1)选择一个动作(a1),执行它,然后获得奖励(R1)和下一个状态(S2)。接着第4步,算法需要用来自下一个状态的Q值来更新当前状态-动作对的Q值。

这里体现了Q-Learning的一个关键特点:下一个状态有多种可选动作,应选择哪个?答案是——选择下一个状态中Q值最高的那个动作(a4)。请注意,这个“目标动作”仅用于更新当前Q值,并不意味着智能体下一步真的会执行它。随后,算法利用更新公式,结合奖励和目标Q值,计算当前Q值的新值,并写回Q表。

简言之,每次更新涉及两个动作:

  • 当前动作:实际在环境中执行的当前状态的动作,其Q值会被更新。
  • 目标动作:来自下一个状态的最高Q值对应的动作,其Q值用于辅助更新当前动作的Q值。

这种“双重动作”是Q-Learning的标志性特点。听起来可能有些绕,但继续看下一个时间步就清楚了:此时下一个状态变为当前状态,智能体再次用ε-贪婪策略选择动作。如果它偏向探索,选择的动作(a2)可能与之前用于更新Q值的那个目标动作(a4)完全不同——它选了a2。这意味着实际执行的动作和学习时使用的目标动作不同,因此称为“离线策略(off-policy)学习”。

行为策略(behavior policy)是智能体实际与环境互动时遵循的策略(例如ε-贪婪),目标策略(target policy)是智能体希望学到的、能最大化回报的最优策略。离线策略指行为策略与目标策略不同;在线策略(on-policy)则指两者相同。Q-Learning属于前者。

六、Q表是如何从 0 开始被逐渐填充的?

游戏开始时,智能体对哪个动作更好毫无头绪,因此Q表全为0。随后它使用ε-贪婪策略选择动作,从环境获取反馈,再利用更新公式计算新Q值。这个新值便带上了实际观测到的奖励信息。

慢慢地,Q表里的各个单元格开始有了数据。但关键是,这些更新是随机的,还是在向更准确的方向靠拢?答案显然是后者——这就是Q-Learning能收敛到最优值的奥秘。

七、为何估值会随时间提高其准确性?(第一部分)

乍一想,从任意初始估计出发,每次都拿新估计去更新旧估计,竟然能得到更准确的结果?这有点反直觉。其实原因在于:每隔一个时间步,估算值都会根据实际观测结果进行更新,从而变得更精确。

更新公式包含三个项,按权重比例计算。其中两个是估计值(起初不准确),但第三个项——获得的奖励——是来自环境的真实数据。正是这个“真”分量,让智能体能基于实际经验修正自己的猜测。

Q 值通过真实 Reward 进行更新

我们关注Q表里某个特定的单元格(例如状态S3和动作a1),观察其演变过程。第一次访问时它的值为0,更新后基于R1有了一个初值。第二次访问时,Q表里其他单元格也有了一些填充,而且即使是同一状态-动作对,每次获得的奖励也可能不同——这反映了环境的动态性。

更关键的是,目标动作(图中用紫色表示)在每次访问中可能不同。将所有访问叠加在一张图上,会发现:随着多次迭代,奖励的波动会逐渐稳定到它们的期望值,于是Q值也跟着趋向稳定。回顾定义:状态-动作值表示从特定状态执行特定动作后,按策略一直走到回合结束所能获得的平均总回报。多次重复后,平均值就是Q值。

八、为什么估计值会随时间变得更准确?(第二部分)

奖励项会稳定,但更新公式里的另外两个估计项呢?起初它们很不准确,但同样会通过实际观测慢慢修正。我们把目光聚焦在一个回合的最后两个时间步。当到达终止状态时,终止状态没有下一个状态,因此更新公式中的“max”项为0——终止Q值的更新完全依赖实际奖励,不依赖任何估计。这样一来,终止Q值本身就非常可靠了。

然后,在后续回合中再次访问终止前的状态时,更新公式里的“max”项就得用这个已经校准的终止Q值。这就像是把精准度向上一时间步“回流”。如此反复,沿着路径从后往前,每个Q值都逐渐被实际数据“浸润”,准确性一路提升。

随着越来越多回合进行,Q表估计变得越来越精确

迭代次数越多,更精确的Q值就越远地传播到路径前方。每个单元格经过越来越多的更新,最终逼近最优。

Q值收敛到最优值

Q值变得更精确,但我们真正需要的是最优值。如何知道正在接近它?别忘了,Q-Learning隐式地使用ε-贪婪策略来计算Q值。这种策略鼓励探索——探索的状态-动作对越多,就越有可能尝试过所有可能选项,从而找到真正的最优Q值。这就是ε-贪婪策略最终能找到最优解的两个理由(虽然这里只是直观解释,但数学上严格证明是成立的)。

每迭代一次,Q值就改善一点。当你运行足够多次,评估了所有可能性,再也找不到更好的Q值时,就收敛了。

总结:尝试用最简单的语言概括 Q-Learning

自己概括的:

  1. 离线策略:既能保证充分探索,又能收敛到最优Q值。
  2. 直观理解收敛:以最后一个时间步及其前一个时间步为例,每次迭代到最后一步,都是完全基于实际奖励更新;前一步在更新时,也逐渐吸收了实际奖励的可靠信息。这种“回流”最终遍布整个路径。

GPT4.0 概括的:

(此处保留 GPT4.0 的概括内容,但原文中没有给出具体文本,只有空段落,所以按原文处理)

来源:https://www.53ai.com/news/qianyanjishu/2215.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。