0Pricing
Python Academy · 课时

Q 表概念

基于表格的强化学习

Q 表概念 是 CoddyKit 上的免费 Python Academy 课时。 这是第 2 节课,共 5 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 5 节课。

什么是 Q 表?

Q 表概念

Q 表是强化学习中的核心概念。它是一张查找表,其中每个条目表示在给定状态下采取特定动作的预期奖励。

目标是学习 Q 值,让智能体据此采取能够获得最大奖励的最佳动作。

Q 表概念 — 插图 1

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 表概念 — 插图 10

常见问题解答

「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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 强化学习基本概念
  2. Q 表概念
  3. 在 Python 中实现 Q 表
  4. 深度 Q 学习
  5. 探索 OpenAI Gym
← 返回 Python Academy