强化学习核心 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
没学会先查什么状态归一化与奖励尺度

🔗 相关链接

主题链接
机器学习概览机器学习
深度学习深度学习核心 20%
模型评估模型评估核心 20%
机器人机器人
自动驾驶自动驾驶