← 系列入口:RL-00.系列概述 · 基础:RL-01 · 工具:RL-06.评估环境与工具链
前六篇搭建了 概念 → 原理 → 算法 → 实现 → 数据结构 → 评估 的主线。本文聚焦真实问题如何落成 RL 项目:如何定义状态/动作/奖励、选哪类算法、仿真与上线之间要补哪些课。

一、从论文到产线:实战五问
落地任一 RL 应用前,先回答:
| # | 问题 | 若答不好会怎样 |
|---|---|---|
| 1 | MDP 是否闭环? 状态、动作、转移是否可定义 | 问题不适配 RL |
| 2 | 奖励是否与业务目标一致? | 策略「刷分」但业务受损 |
| 3 | 能否在仿真中大量试错? | 样本贵、安全风险 |
| 4 | 策略更新频率与延迟? | 非平稳环境、用户行为漂移 |
| 5 | 如何离线评估与 A/B? | 上线即「开盲盒」 |
二、场景地图

| 领域 | 典型状态 | 典型动作 | 奖励直觉 | 常用算法 |
|---|---|---|---|---|
| 博弈 | 盘面/特征 | 合法走法 | 胜负、地盘 | MCTS+DL、PPO、自对弈 |
| 机器人 | 关节角、力矩、视觉 | 连续控制 | 距离目标、能耗、跌倒惩罚 | SAC、TD3、PPO |
| 推荐 | 用户/会话上下文 | 展示/排序 | 点击、停留、转化 | Contextual Bandit、Off-Policy RL |
| 调度 | 队列、负载 | 分配/抢占 | 延迟、SLA、成本 | DQN、PPO、多智能体 RL |
| 自动驾驶 | 感知融合 | 转向/加速度 | 安全、舒适、进度 | 模仿+RL、PPO、世界模型 |
三、案例 1:离散控制入门(CartPole → 真实控制)
路径:在 RL-06 的 CartPole 上用 PPO 跑通 → 换 LunarLander → 再上 MuJoCo 连续任务。
| 阶段 | 目标 | 工具 |
|---|---|---|
| 验证循环 | 确认训练曲线上升 | SB3 + CartPole |
| 换环境 | 理解连续动作与稀疏奖励 | LunarLander / MountainCar |
| 连续控制 | 力矩级动作 | SAC + HalfCheetah |
迁移要点:真实机器人需 Sim2Real(域随机化、系统辨识、安全约束), rarely 直接部署仿真策略。
四、案例 2:博弈与序贯决策(围棋 / 卡牌类)
特点:规则已知、奖励延迟、动作空间巨大。
| 组件 | 做法 |
|---|---|
| 状态 | 棋盘编码 + 历史 |
| 策略 | 深度网络 $\pi(a |
| 规划 | MCTS(Monte Carlo Tree Search,MCTS)与策略网络结合 |
| 训练 | 自对弈 + 人类棋谱预训练 |
AlphaGo 类系统 = 监督学习(模仿)+ RL(自对弈)+ 搜索,不单是端到端 RL。算法详见 多智能体 RL、模仿与逆 RL。
段末注释:蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)通过模拟 rollout 在决策树中选择动作;常与策略/价值网络结合。
五、案例 3:推荐与广告(Contextual Bandit → RL)
简化路径:
- 多臂 bandit:无状态,学各臂点击率 → 快速 A/B。
- Contextual bandit:加入用户特征,学 $\pi(a|x)$。
- 全 RL:序列推荐,奖励延迟(长期留存),Off-Policy 用日志数据(Batch RL)。
| 挑战 | 应对 |
|---|---|
| 离策略日志偏差 | IPS、Doubly Robust、保守 Q 学习(CQL) |
| 非平稳 | 定期重训、滑动窗口 |
| 安全 | 约束策略、人工规则护栏 |
奖励务必对齐长期业务指标,避免只优化点击率导致标题党。
六、案例 4:集群与作业调度
建模:
- 状态:各节点 CPU/GPU、队列长度、任务类型
- 动作:下一任务派到哪台机、是否抢占
- 奖励:$-\text{平均等待时间}$、SLA 违反惩罚、能耗
| 实践 | 说明 |
|---|---|
| 仿真器 | 用历史 trace 驱动事件仿真 |
| 算法 | 离散动作用 DQN/PPO;大规模可用启发式 + RL 微调 |
| 对比 | 与 FIFO、公平调度等 baseline 比 p99 延迟 |
与 pipeline / K8s 调度 知识可交叉:RL 是「学习调度策略」,K8s 提供「执行与资源声明」层。
七、案例 5:自动驾驶与机器人(高成本样本)
共性难点:安全、样本贵、Sim2Real。
| 阶段 | 内容 |
|---|---|
| 仿真 | CARLA、Isaac Sim、MuJoCo |
| 预训练 | 模仿学习(行为克隆)初始化 |
| RL 微调 | 奖励:车道保持、碰撞惩罚、舒适度 |
| 验证 | 场景库、形式化约束、影子模式 |
不建议从零纯 RL 上路;Industry 常见 IL + RL + 规则护栏 混合。
八、实战工程链路(通用)

| 环节 | 交付物 |
|---|---|
| 建模文档 | $S,A,R,\gamma$ 定义与反例 |
| 仿真 | 可复现 reset/step 或数据 pipeline |
| 训练 | 配置 yaml、曲线、checkpoint |
| 评估 | 多 seed、对照组、统计检验 |
| 上线 | 回滚策略、监控回报代理指标 |
九、算法选型速查(应用向)
| 场景 | 首选 | 备选 |
|---|---|---|
| 离散、原型快 | PPO | DQN |
| 连续控制、仿真 | SAC | TD3、PPO |
| 大动作博弈+搜索 | MCTS + 网络 | 自对弈 PPO |
| 日志离线、推荐 | CQL / BCQ | Contextual Bandit |
| 小状态教学 | Q-Learning | SARSA |
详见 RL-03.算法分类与选型。
十、常见失败模式
| 现象 | 原因 | 建议 |
|---|---|---|
| 仿真很好、真机失败 | Sim2Real gap | 域随机、传感器噪声 |
| 策略钻奖励空子 | Reward hacking | 奖励审计、约束 |
| 训练久、上线崩 | 分布偏移 | 持续学习、监控 |
| 无法复现论文 | 环境/超参不一致 | 对齐 RL-06 checklist |
十一、实战案例与 Notebook 索引
每个二级实战文档含 真实业务案例、落地难点与方案(含优劣势/局限)、可运行 .ipynb。
| 案例 | 文档 | Notebook | 依赖 |
|---|---|---|---|
| 物流 AGV 平衡 POC | CartPole→MuJoCo | cartpole_control_baseline.ipynb | gymnasium, sb3 |
| 首页 5 槽位推荐 | 推荐与 Bandit | bandit_news_recommendation.ipynb | numpy |
| 生信集群调度 | 调度仿真 | bioinfo_cluster_scheduling.ipynb | numpy |
| 单关节 Sim2Real | Sim2Real | sim2real_pendulum_dr.ipynb | gymnasium, sb3 |
| 项目 Checklist 走查 | 项目 Checklist | rl_project_checklist_walkthrough.ipynb | gymnasium, sb3 |
1 | pip install gymnasium stable-baselines3 numpy matplotlib jupyter |
十二、本模块二级文档(已发布)
| 文档 | 内容 |
|---|---|
| RL-07-01-实战-CartPole到MuJoCo | 三阶段渐进实验 |
| RL-07-02-实战-推荐与Bandit | MAB / Contextual / 离线 RL |
| RL-07-03-实战-调度仿真 | 集群调度 MDP |
| RL-07-04-实战-Sim2Real | 机器人 sim2real |
| RL-07-05-实战-项目Checklist | 立项到上线清单 |
十三、阅读顺序
- RL-01.概述与问题建模
- RL-03.算法分类与选型
- RL-04.实现框架与实践
- RL-06.评估环境与工具链
- 本文 — 按领域选型与落地
十四、小结
- 应用 RL = 正确 MDP + 可信仿真/数据 + 对齐业务的奖励 + 严格评估。
- 边跑 Notebook 边理解:从 CartPole ipynb 开始,按业务兴趣选 Bandit / 调度 / Sim2Real。