Q 表概念
基于表格的强化学习
Q 表概念 是 CoddyKit 上的免费 Python Academy 课时。 这是第 2 节课,共 5 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 5 节课。
什么是 Q 表?
Q 表概念
Q 表是强化学习中的核心概念。它是一张查找表,其中每个条目表示在给定状态下采取特定动作的预期奖励。
目标是学习 Q 值,让智能体据此采取能够获得最大奖励的最佳动作。

Q 表的结构
Q 表的结构
Q 表的结构如下:
- 行:表示环境的状态。
- 列:表示智能体可以采取的动作。
- 值:表示状态—动作对对应的 Q 值。
智能体会在学习过程中更新这些值。
Q 值更新公式
Q 值更新公式
Q 值使用贝尔曼方程进行更新:
Q(s, a) = Q(s, a) + α [r + γ max(Q(s', a')) - Q(s, a)]
其中:
- s:当前状态
- a:当前动作
- r:该动作获得的奖励
- s':下一状态
- α:学习率
- γ:折扣因子
简单 Q 表示例
简单 Q 表示例
请考虑一个网格世界的 Q 表:
状态:网格位置(例如 A1、B1)
动作:向上、向下、向左、向右移动
初始时,所有 Q 值都设置为零:
| 状态 | 上 | 下 | 左 | 右 |
|---|---|---|---|---|
| A1 | 0 | 0 | 0 | 0 |
| B1 | 0 | 0 | 0 | 0 |
在 Python 中初始化 Q 表
在 Python 中初始化 Q 表
我们可以使用 NumPy 数组或字典来表示 Q 表:
import numpy as np
# Example: Q-Table for 5 states and 4 actions
num_states = 5
num_actions = 4
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)Q 学习中的探索
Q 学习中的探索
智能体使用 ε-贪心策略来平衡探索与利用:
- 以ε的概率随机选择一个动作(探索)。
- 以1-ε的概率选择 Q 值最高的动作(利用)。
Q 表的优势
Q 表的优势
Q 表对于小型环境来说简单且有效。其优势包括:
- 易于实现和调试。
- 能够清晰地解释状态—动作关系。
- 对于较小的状态—动作空间,计算成本较低。
Q 表的局限性
Q 表的局限性
Q 表存在一些局限性:
- 无法扩展到状态空间和动作空间都很大的环境。
- 对于高维问题,需要占用大量内存。
- 无法在相似状态之间进行泛化。
总结与后续步骤
总结与后续步骤
在本课中,我们:
- 了解了 Q 表的概念及其结构。
- 探讨了如何使用贝尔曼方程更新 Q 值。
- 讨论了 Q 表的优点和局限性。
接下来,我们将在 Python 中实现一个简单的 Q 学习算法,看看 Q 表如何发挥作用。

常见问题解答
「Q 表概念」课时是免费的吗?
是的 — 「Q 表概念」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 5 节课。
「Q 表概念」这节课中我会学到什么?
基于表格的强化学习 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 5 节。
「Q 表概念」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。