强化学习核心 20% — 先把问题写成 MDP
一句话:强化学习落地的第一步不是选算法,而是把业务写成 (状态、动作、奖励、转移、折扣) 五元组。写不出来,说明这个问题可能不该用 RL 解。
🎯 这 20% 能解决哪些问题
| 常见困惑 | 本质 | 本页答案 |
|---|
| 我的问题能用 RL 解决吗 | 是否具备序列决策结构 | 见「先问三个问题」 |
| 该用 DQN 还是 PPO | 动作空间类型决定 | 见「四类方法分工」 |
| 训练不稳定、奖励忽高忽低 | 奖励设计或方差问题 | 见「奖励设计五个坑」 |
| 训练几十万步还没学会 | 样本效率与探索问题 | 见「样本效率现实」 |
| 仿真里很好,上线就崩 | 分布偏移(sim2real gap) | 见「离线与仿真」 |
一、先问三个问题
| 问题 | 若答案是”否” |
|---|
| 决策是否影响后续状态? | 不是 → 用监督学习/上下文赌博机 |
| 能否获得可量化的反馈信号? | 不能 → 先把指标定义出来 |
| 能否安全地大量试错? | 不能 → 用离线 RL 或模仿学习 |
上下文赌博机(contextual bandit)是最被低估的中间形态:只关心”这次选择好不好”,不关心状态转移——推荐、定价、广告排序多数属于这一类,用 Bandit 比 RL 简单十倍。
二、MDP 五要素
graph LR
S["状态 S<br/>你看到的世界"] --> A["动作 A<br/>你能做什么"]
A --> R["奖励 R<br/>这一步多好"]
R --> S2["新状态 S'"]
S2 --> S
| 要素 | 定义要点 | 常见错误 |
|---|
| 状态 | 决策所需的充分信息 | 漏掉关键变量导致不可解 |
| 动作 | 可执行集合与粒度 | 动作空间过大导致难学 |
| 奖励 | 每步即时反馈 | 只给终局奖励导致稀疏 |
| 转移 | 环境如何变化 | 假设确定性(现实中随机) |
| 折扣 γ | 未来权重,0.9–0.99 | 与回合长度不匹配 |
三、四类方法分工
| 方法 | 学什么 | 动作空间 | 优点 | 缺点 |
|---|
| 值函数(Q-Learning、DQN) | 动作价值 Q(s,a) | 离散、有限 | 样本效率较高 | 连续动作难用 |
| 策略梯度(REINFORCE、PPO) | 直接学策略 π(a|s) | 连续/离散均可 | 通用、稳定(PPO) | 方差大、样本需求高 |
| Actor-Critic(A2C、SAC、TD3) | 策略 + 价值 | 连续为主 | 兼顾方差与效率 | 调参复杂 |
| 模仿学习 | 从专家轨迹学 | 均可 | 样本极少 | 受限于专家质量 |
选择口诀:离散动作且小规模 → DQN 家族;连续控制 → SAC/TD3 或 PPO;有专家数据 → 先模仿学习再 RL 微调。
四、奖励设计五个坑
| 坑 | 表现 | 纠正 |
|---|
| 奖励稀疏 | 长时间学不到信号 | 加中间奖励或课程学习 |
| 奖励可被钻空子 | 智能体找到作弊路径 | 加入约束项、人工审查最优轨迹 |
| 多目标简单相加 | 某一项压倒其他 | 加权 + 阈值约束(CMDP) |
| 奖励尺度差异大 | 梯度被大项主导 | 归一化到相近量级 |
| 只看结果不看过程 | 学到危险/违规行为 | 加入安全惩罚项 |
黄金测试:把训练出的最优轨迹给人看一遍。如果”这不是我想要的行为”,问题在奖励函数,不在算法。
五、样本效率现实
| 场景 | 大致样本需求 |
|---|
| 离散小游戏(CartPole 级) | 10⁴ 步 |
| Atari 级 | 10⁷ 帧 |
| 机器人连续控制 | 10⁶–10⁸ 步(仿真) |
| 真实硬件 | 通常不可行,需仿真或离线数据 |
四个提升手段:并行环境(向量化)、经验回放、优先采样、从演示数据初始化。这也是为什么”仿真 + sim2real”是机器人落地的标准路径。
六、离线与仿真
| 方式 | 说明 | 风险 |
|---|
| 在线 RL | 与环境实时交互 | 真实环境试错代价高 |
| 离线 RL | 只用历史数据训练 | 分布外动作价值高估 |
| 仿真训练 + 真实微调 | 主流工业做法 | 仿真与真实的差异(sim2real gap) |
| 影子模式 | 线上只观测不执行 | 无法验证动作效果 |
sim2real 的三件套:域随机化(随机光照/摩擦/延迟)、系统辨识(对齐物理参数)、真实环境小步微调。
七、稳定性排查清单
| # | 检查项 |
|---|
| 1 | 状态是否做了归一化 |
| 2 | 奖励是否裁剪到合理区间 |
| 3 | 是否监控了价值函数损失与策略熵 |
| 4 | 是否用了多个随机种子验证 |
| 5 | 是否对比了随机策略与规则策略基线 |
| 6 | 评估是否用固定种子集(避免评估方差) |
📋 一页速查
| 问题 | 答案 |
|---|
| RL 前提 | 决策影响后续状态 |
| 最简形态 | 上下文赌博机 |
| 连续控制首选 | SAC/TD3 或 PPO |
| 奖励设计怎么验 | 人看最优轨迹 |
| 真实硬件怎么训 | 仿真 + sim2real |
| 没学会先查什么 | 状态归一化与奖励尺度 |
🔗 相关链接