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