RL-07.应用实战

← 系列入口:RL-00.系列概述 · 基础:RL-01 · 工具:RL-06.评估环境与工具链

前六篇搭建了 概念 → 原理 → 算法 → 实现 → 数据结构 → 评估 的主线。本文聚焦真实问题如何落成 RL 项目:如何定义状态/动作/奖励、选哪类算法、仿真与上线之间要补哪些课。

RL 应用场景示意


一、从论文到产线:实战五问

落地任一 RL 应用前,先回答:

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

二、场景地图

应用领域与 RL 共性阶段(建模 → 仿真 → 训练 → 部署)

领域 典型状态 典型动作 奖励直觉 常用算法
博弈 盘面/特征 合法走法 胜负、地盘 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)

简化路径

  1. 多臂 bandit:无状态,学各臂点击率 → 快速 A/B。
  2. Contextual bandit:加入用户特征,学 $\pi(a|x)$。
  3. 全 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 + 规则护栏 混合。


八、实战工程链路(通用)

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
2
3
pip install gymnasium stable-baselines3 numpy matplotlib jupyter
cd source/_posts/02.开发-21.强化学习/RL-07-01-实战-CartPole到MuJoCo
jupyter notebook cartpole_control_baseline.ipynb

十二、本模块二级文档(已发布)

文档 内容
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 立项到上线清单

十三、阅读顺序

  1. RL-01.概述与问题建模
  2. RL-03.算法分类与选型
  3. RL-04.实现框架与实践
  4. RL-06.评估环境与工具链
  5. 本文 — 按领域选型与落地

十四、小结

  • 应用 RL = 正确 MDP + 可信仿真/数据 + 对齐业务的奖励 + 严格评估
  • 边跑 Notebook 边理解:从 CartPole ipynb 开始,按业务兴趣选 Bandit / 调度 / Sim2Real。
-------------本文结束感谢您的阅读-------------