深度强化学习课程文档
Q-学习示例
加入 Hugging Face 社区
并获取增强的文档体验
开始使用
Q-学习示例
为了更好地理解 Q-学习,让我们来看一个简单的例子

- 你是一只在这个小迷宫里的老鼠。你总是从同一个起点开始。
- 目标是吃掉右下角的大堆奶酪,并避开毒药。毕竟,谁不喜欢奶酪呢?
- 如果我们吃掉毒药、吃掉大堆奶酪,或者走了超过五步,回合就会结束。
- 学习率是 0.1
- 折扣率 (gamma) 是 0.99

奖励函数如下
- +0: 进入一个没有奶酪的状态。
- +1: 进入一个有少量奶酪的状态。
- +10: 进入有大堆奶酪的状态。
- -10: 进入有毒药的状态,因此死亡。
- +0 如果我们走超过五步。

为了训练我们的智能体拥有一个最优策略(即一个向右、向右、向下的策略),我们将使用 Q-学习算法。
步骤 1:初始化 Q 表格

所以,目前,我们的 Q 表格是无用的;我们需要使用 Q-学习算法来训练我们的 Q 函数。
让我们进行 2 个训练时间步
训练时间步 1
步骤 2:使用 Epsilon 贪婪策略选择动作
因为 epsilon 很大 (= 1.0),所以我采取随机动作。在这种情况下,我向右走。

步骤 3:执行动作 At,获得 Rt+1 和 St+1
通过向右走,我得到了一小块奶酪,所以我进入了一个新的状态。

步骤 4:更新 Q(St, At)
我们现在可以更新使用我们的公式。


训练时间步 2
步骤 2:使用 Epsilon 贪婪策略选择动作
我再次采取随机动作,因为 epsilon=0.99 很大。(请注意,我们稍微衰减了 epsilon,因为随着训练的进行,我们希望减少探索)。
我采取了 ‘向下’ 的动作。这不是一个好的动作,因为它会把我带到毒药那里。

步骤 3:执行动作 At,获得 Rt+1 和 St+1
因为我吃了毒药,我得到,然后我死了。

步骤 4:更新 Q(St, At)

因为我们死了,我们开始一个新的回合。但是我们在这里看到的是,通过两个探索步骤,我的智能体变得更聪明了。
当我们继续探索和利用环境,并使用 TD 目标更新 Q 值时,Q 表格将为我们提供越来越好的近似。在训练结束时,我们将获得最优 Q 函数的估计。
< > 在 GitHub 上更新