G23:从零实现 Tabular Q-Learning
Tabular Q-learning 用实际交互样本反复修正状态—动作价值,在不知道转移模型的情况下逼近最优策略,是观察探索、时间差分误差与训练回报局限的最小 model-free 实验。
内容类型:预习教材(不代表已完成)
日期:2027-03-16
阶段:P3 · AGI Foundations 90
总路线:Day 203 / 360
周次 / 节奏:W4 · 周二最小机制
状态:教材已备;学习未完成
主题:TD target、exploration、off-policy update 与 Gridworld 轨迹
一句话定义
Tabular Q-learning 用实际交互样本反复修正状态—动作价值,在不知道转移模型的情况下逼近最优策略,是观察探索、时间差分误差与训练回报局限的最小 model-free 实验。
学习目标
- 能从 Bellman optimality 写出 Q-learning update,并解释每一项。
- 能实现一个小型 Gridworld、epsilon-greedy 行为策略与 Q-table。
- 能区分 behavior policy 与 target policy,理解 off-policy 的含义。
- 能记录 episode return、steps、state visitation 和 TD error,不只展示最终路径。
核心知识
Q-table 的行是离散状态,列是动作,初始可设为零或乐观值。Agent 在状态 s 以 ε 概率随机探索,以 1-ε 选择当前最大 Q 动作。收到 r,s' 后,使用下一状态的最大 Q 构造 target。即使行为策略在探索,更新目标仍朝 greedy 最优策略,因此称 off-policy。
探索是必要的:若初始一次偶然路径得到较好回报,纯 greedy 可能永远不访问更优路径。ε 可以固定或衰减;衰减太快造成覆盖不足,太慢则训练回报波动。训练期间 behavior return 与最终 greedy policy return 不应混为一谈。
Episode 截断必须处理。真正终止 terminated 表示任务到吸收状态,target 不含未来 Q;时间上限 truncated 可能仍应 bootstrap,具体实现需明确。把两者都当终止会引入价值偏差。
机制与推导
Q-learning update:
[ Q(s,a)\leftarrow Q(s,a)+\alpha\left[r+\gamma\max_{a'}Q(s',a')-Q(s,a)\right] ]
方括号是 TD error δ。学习率 α 控制新样本权重,γ 控制未来回报。终止状态的 target 是 r。在有限 MDP、充分探索与合适衰减等条件下,tabular Q-learning 有收敛结果;固定高学习率、有限数据和非平稳环境不满足这些理想条件。
手推示例:若 Q(s,a)=0.4、r=0、γ=0.9、max Q(s')=1.0、α=0.5,则 target 为 0.9,δ=0.5,新值 0.65。这个 update 不需要完整模型,只依赖一步样本。
Gridworld 最小接口:reset(seed)->state、step(action)->next_state,reward,terminated,truncated,info。固定 seed 用于重放,但不能只选一个幸运 seed。轨迹应保存 state/action/reward/next_state/done,便于之后 Dyna-Q 共用。
最小练习或观察步骤
- 定义 4×4 Gridworld、起点、终点、障碍、每步成本与最大步数。
- 手算上面 Q update,再构造终止状态 update,确认不 bootstrap。
- 写出 epsilon-greedy 伪代码,明确随机 tie-breaking。
- 规划记录字段:episode return、length、unique states、mean |TD error| 与 greedy evaluation。
- 构造
ε=0的失败案例和过快衰减案例,说明未访问最优路径的证据。
常见误区与边界
- 用训练中含探索的 return 评价最终 greedy policy。
argmax平局总选第一个动作,造成隐含方向偏置。- 将 timeout 与真正终止一律设为 zero bootstrap。
- 只展示最后一条成功轨迹,忽略访问覆盖和随机性。
- 环境奖励泄漏真实最短路径,使任务过于容易。
- 把 tabular 收敛条件直接套到深度、非平稳或部分可观测环境。
研究/系统场景连接
金融交互策略往往不能安全地在线随机探索,历史数据又受到旧策略选择偏差影响。因此 Gridworld 只帮助理解 update,不授权把 Q-learning 直接用于客户决策。现实中需要离线评价、约束、人工审批和合规边界。尤其高损失动作不能通过“多试几次”学习。
Agent 的本地工具 stub 可以形成安全 toy MDP:读取、转换、验证三类动作,失败只影响内存状态。Q-learning 能学习动作顺序,但若奖励只看终点,可能产生无意义循环或越过流程。状态、奖励和权限仍需独立检查。
自检问题
- TD target 与当前 Q 的差是什么?
- Q-learning 为什么是 off-policy?
ε过快衰减会造成什么观测模式?- Terminated 与 truncated 对 bootstrap 有何影响?
- Tabular 理论条件在哪些现实场景会失效?
专业课程对齐
- 参考 Stanford CS234 中 tabular methods 与 temporal-difference learning,统一 Bellman 与 update 记号。
- 阅读 Q-learning 原始论文,关注算法定义与收敛条件的范围。
- 参考 Gymnasium 官方文档 的环境 API,特别区分 terminated 与 truncated。
深入学习提示
不要急于加入神经网络。先打印少量 Q-table、TD error 和 state visitation,观察学习怎样沿可达路径传播。若实际运行,多 seed 不是 Gate;两个 seed 或一次失败重放已经比单条成功视频有价值。下一日会加入模型与 planning,共用同一环境和轨迹接口以减少比较混杂。
学后填写区
- 我的 Gridworld 与奖励:
- 一次 Q update 手算:
- 探索策略:
- Termination 处理:
- 一个 coverage failure: