Q学习模拟器 返回
机器学习

Q学习模拟器 — 强化学习网格世界

体验强化学习基础算法Q学习的工具,在迷宫般的网格世界中运行。改变学习率、折扣率、探索率,实时观看代理如何仅凭报酬来学习到达目标的最优路径,以及价值函数的收敛过程。

参数设置
网格世界
学习环境的类型
学习率 α
新经验对 Q 值的反映强度
折扣率 γ
对未来报酬的重视程度
探索率 ε
ε-greedy 中选择随机行动的概率
学习剧集数
从开始到目标/陷阱为1剧集的重复次数
计算结果
学习剧集数
最优路径步数
开始单元格的价值 V(start)
平均报酬(最近50)
目标到达率(最近50)
学习状态
网格世界 — 价值热力图和贪心策略

每个单元格的颜色表示学习到的价值 V(s)(深蓝→亮蓝价值越高)。箭头表示贪心策略,绿色=目标,红色=陷阱,灰色=墙。黄点是沿贪心策略行走的代理。

学习曲线 — 每剧集的总报酬
开始单元格的价值 V(start) 收敛
理论·主要公式

$$Q(s,a)\leftarrow Q(s,a)+\alpha\Big[\,r+\gamma\max_{a'}Q(s',a')-Q(s,a)\,\Big]$$

Q学习的更新规则。s:当前状态,a:采取的行动,r:获得的报酬,s':下一状态。方括号内的 $r+\gamma\max_{a'}Q(s',a')-Q(s,a)$ 称为TD误差(时间差分误差),表示当前预测与"观测报酬+次状态最优预测"之间的差距。

$$\pi(s)=\arg\max_{a}Q(s,a), \qquad V(s)=\max_{a}Q(s,a)$$

学习后的贪心策略 π 和状态价值 V。在每个状态选择 Q 值最大的行动就是最优策略,其最大 Q 值就是该状态的价值。

$$a_t=\begin{cases}\text{随机行动} & \text{概率 }\varepsilon\\[2pt]\arg\max_{a}Q(s_t,a) & \text{概率 }1-\varepsilon\end{cases}$$

ε-greedy 的行动选择。概率 ε 下进行探索,概率 1−ε 下进行利用,ε 决定了两者的平衡。

什么是Q学习

🙋
我经常听到关于游戏AI和机器人的"强化学习",但它到底在学什么呢?
🎓
简单来说,就是通过试错来学习"如何行动才能获得最大收益"。在这个模拟器的网格世界中,代理(黄色圆点)从起点出发,到达目标时获得报酬 +1,掉进陷阱时得到 −1。每移动一格还要付出 −0.04 的"行动成本"。一开始代理既不知道地图,也没被教过规则,只是通过动作、获得报酬、不断改进。
🙋
不知道地图的情况下怎么能找到正确的路呢?
🎓
这正是Q学习的作用。Q学习为每个"状态-行动"组合维护一个数字 Q(s,a),表示"在这个状态采取这个行动会有多赚"。每走一步就用理论卡上的更新公式稍微调整 Q。关键在于 max 部分,它把"下一个格子的最优行动价值"混入现在的估计,所以目标的 +1 报酬会逐步向周围格子传播。最终目标附近的格子价值最高,跟着价值高的方向走就能到达目标。
🙋
我理解了。那左边滑块里的"折扣率 γ"是什么?0.9 是标准值吗?
🎓
γ 控制"重视未来报酬的程度"。下一步的价值被折扣 γ 倍继承,所以 γ=0.9 时,目标的 +1 报酬在 7 步外就变成约 0.9⁷≈0.48。γ 越小,代理越只看眼前;γ 越接近 1,就能看到更远的目标,但价值传播需要更长时间。从"开始单元格的价值"收敛图可以看出,改变 γ 时最终价值也会改变。
🙋
我把"探索率 ε"设成 0,结果路径好像不太理想。不随机移动应该更高效啊…
🎓
这正是强化学习最著名的矛盾——"探索与利用的权衡"。ε=0 时代理只选已知的最优行动,导致序列早期偶然通过的路被强化,更好的路径从未被尝试,最后被锁定在次优策略。反之 ε=1 完全随机时,学到的知识也派不上用场。实务中常用"ε衰减",初期 ε 较大以充分探索,后期逐步减小。
🙋
Q学习在迷宫之外还有什么应用呢?
🎓
这个思想到处都用。电梯调度、交通信号控制、库存订购时机、游戏AI都是经典例子。对于状态爆炸的问题(围棋或视频游戏画面),Q 无法用表格存储,需要用神经网络近似,这就是 2015 年轰动的 DQN(深度Q网络)。而这个表格型Q学习正是那些前沿技术的基石,所以这个网格例子是理解现代强化学习最重要的基础。

常见问题

Q学习是强化学习的代表性算法,代理完全不拥有环境模型,而是仅通过获得的报酬来学习表示"在某状态下哪个行动是最优的"的行动价值函数 Q(s,a)。通过重复 Q(s,a) ← Q(s,a) + α[r + γ·max Q(s',a') − Q(s,a)] 的更新,理论上保证在足够的试验后收敛到最优行动价值。在表格型中,每个状态和行动的组合都用表格存储 Q 值。
学习率 α 决定了新经验对 Q 值的影响强度。值越大学习越快但价值振动越大,值越小越稳定但越慢。折扣率 γ 决定了对未来报酬的重视程度,γ 越接近 1 越能看到遥远的目标报酬。探索率 ε 是 ε-greedy 方法中选择随机行动的概率,平衡了探索(尝试新路径)和利用(使用已知最优手段)。
ε=0 时采用纯贪心策略,代理总是选择 Q 值最大的行动。当 Q 值初始值全部相等时,代理只会强化序列中偶然到达的路径,无法尝试更好的路径,导致陷入局部最优策略。这是"探索不足"的问题。相反 ε=1 时完全随机移动,无法利用学到的知识,目标到达率大幅下降。实务中通常使用 ε 衰减,学习初期 ε 较大,逐渐减小。
两者都是基于价值的时间差分学习,但更新式中"次状态价值"的取法不同。Q学习使用 max Q(s',a'),即次状态中可采取的最优行动价值,与实际行为方式无关,学习"方策非相关(off-policy)"的最优策略。SARSA 使用实际选择的下一行动 a' 的 Q(s',a'),是"方策相关(on-policy)",学习的策略更为保守,考虑了探索的风险。在悬崖边缘等路径上,两者行为明显分化。

实际应用

机器人控制与路径规划:移动机器人躲避障碍物到达目的地的路径学习,正是这个网格世界的扩展。在实际应用中状态变成连续值(位置、速度、角度),Q 无法用表格存储,需要与函数近似结合,但"仅靠报酬学策略"的核心思想不变。仓库自主搬运车和扫地机器人的行为优化都用到了这一原理。

游戏AI与DQN:从这种表格型Q学习出发,用深度神经网络近似Q函数就是 DQN(深度Q网络)。2015 年它仅从 Atari 游戏画面像素就能达到人类水平表现而引起轰动。虽然用了神经网络,但Q学习的更新规则(用TD误差直接修正价值)完全保留,这个网格例子就是最小化模型。

调度与控制:电梯群的调度、信号灯时序控制、数据中心空调优化、库存订购决策等"在每个时刻选最优行动"的问题正是强化学习的强项。即使难以建立明确数学模型的复杂系统,也能在模拟器上通过试错获得策略。

强化学习教育与算法验证:网格世界是强化学习的"标准评测环境"。提出新算法时,首先要检查学习曲线在小网格上是否能快速上升、价值函数是否正确收敛。像本工具这样可视化学习曲线和 V(start) 收敛,是理解超参数(α、γ、ε)的最初一步。

常见误区与注意事项

最常见的误解是"学习率 α 越大学习越快就越聪明"。确实 α 加快学习,但接近 1 时,每一步的更新就像直接用经验值替换 Q,导致 ε 波动和报酬噪声让数值大幅震荡。学习曲线长期锯齿状不稳定时,降低 α 往往能解决问题。理论上要保证收敛,需要随学习进行而逐步降低 α。"速度"和"稳定性"是权衡关系,不能兼得。

其次是"折扣率 γ 设成 1 就能最远看,最赚"的错觉。γ 大确实让远处报酬可见,但在未完成任务(不会到达目标或陷阱)的系统中,γ=1 会导致价值发散,计算崩溃。即使在本工具这种每剧集有步数上限、到达目标就结束的设计下,γ=1 也会使价值传播极其缓慢,需要数十倍的剧集才能收敛。这也是为什么多数实现用 γ=0.9~0.99。

最后"学习完成后 ε 就可以设为 0"这个想法需要谨慎。如果环境固定,学后的 ε=0 贪心策略没问题。但现实环境在变化(路被堵、报酬结构改变),完全关闭探索(ε=0)会让代理无法察觉变化,一直坚持旧的最优策略。另外,在报酬稀疏(除目标外基本都是 0)的问题中,探索不足甚至导致代理永远到不了目标,Q 值无法生长。所以关闭 ε 前必须确认真的不需要探索。

使用指南

  1. 设置学习率(α)在0.1~0.9范围:α越大越重视最近经验,α越小越保留过往学习
  2. 调整折扣率(γ)在0.5~0.99:γ=0.99重视长期报酬,γ=0.5优先即时报酬
  3. 指定探索率(ε)在0.01~0.3:ε高时尝试未探索单元格,ε低时选已学最优行动
  4. 输入剧集数100~5000:学习迭代次数越多,Q值收敛精度越高
  5. 点击"运行模拟"按钮启动网格世界的学习过程

具体计算示例

5×5网格世界,设置α=0.3、γ=0.95、ε=0.1、剧集数3000的学习情况:第1000剧集时开始单元格(0,0)的价值V(start)≈8.2,最优路径步数缩减至5.8步,最近50剧集的目标到达率达到94%。若将α增加到0.8,收敛加快,第500剧集时V(start)≈7.9,但陷入局部最优的风险增加

实务中的注意