一个 Andrej Karpathy 风格的学习仓库:每个算法、每个环境都从第一行代码写起,只用 Python + numpy,不依赖 gym / stable-baselines 等现成框架。一个概念一个文件,每段代码都能端到端读完。
每个算法的测试断言是"确实学到了东西",而不是"能跑不报错"。以下是两个应用任务的真实训练曲线与评估指标。
8 个智能体共享一个去中心化策略(仅局部观测),在 1200 集内学会在圆形队形槽位上集结并保持。全入槽 +10,碰撞重罚。
牛顿-欧拉动力学 + 内环 PD 姿态稳定,外环学习速度指令。坠机不再终止(地面是状态边界)后,回报从 -4500 提升到 -260,但尚未锁定悬停窗口。
三个应用环境的浏览器实时模拟。四旋翼展示了内环(PD 姿态稳定 + 速度级级联)下被控对象的行为;蜂群环境使用真实训练收敛后的贪婪策略几何行为。
每课的结构:先读笔记建立直觉,再读代码(几十行),最后跑测试和示例验证理解。
核心库 rl/ 纯 numpy,测试验证"学会了"而非"能跑"。
rl/ # 核心库(纯 numpy) ├── tabular.py # MC / SARSA / Q-learning ├── policy_gradient.py # REINFORCE ├── actor_critic.py # 表格 Actor-Critic ├── dqn.py # 经验回放 + 目标网络 ├── dqn_variants.py # Double / Dueling ├── a2c.py # n-step advantage ├── ppo.py # 裁剪目标 + GAE ├── trpo.py # KL 约束 + 自然梯度 ├── sac.py # 双 Q + 自动调温(离散) ├── sac_continuous.py # tanh 高斯策略 + 重参数化 ├── quadrotor.py # 牛顿-欧拉动力学 + 内环 PD ├── swarm_flocking.py # 去中心化编队,k 近邻观测 ├── swarm_pursuit.py # 追逃 + 避障 └── pong.py # 像素策略梯度 examples/ notes/ tests/ # 训练脚本 / 学习笔记 / 学会验证
跑全部测试:python -m pytest tests/ -q