42 posts
策略 · 价值 · 样本效率
MDP、策略梯度、离线与探索——做控制/决策实验时留下的笔记。
约束 MDP 的代价估计偏差:安全层看起来在工作
区分期望约束、条件风险与硬屏蔽,解释代价 critic 偏差如何让可行集虚胖;用约束违反轨迹占比、拉格朗日乘子轨迹和安全层旁路注入验收。
离线强化学习的支持集外动作:为什么 Q 值会自我抬高
从 Bellman backup 的分布外 maximization 解释外推误差;比较行为约束、保守价值与策略正则,并用覆盖率切片与 FQE 交叉验证部署边界。
离策略评估:部署前别只看行为数据上的平均回报
从重要性采样的支持集与方差出发,比较 self-normalized、per-decision、DR 和 FQE,并建立部署前的统计验收。
TimeLimit 不是终止:bootstrap 要看 terminated
用 Gymnasium 的 terminated/truncated 分离重置条件与价值边界,并处理 replay、GAE 和自动重置环境里的最后观测。
不可学任务:换算法前先证可学
观测缺信息、reward 与目标 misalign、sim bug 时,PPO→SAC 也救不了;先 random/expert 上限再堆 sample。
分层 RL:子目标与 options
长 horizon 任务拆高层选子目标、低层执行;options 或 goal-conditioned 分层缓解 credit assignment,层次设计错了比 flat 更糟。
多智能体:环境对你非平稳
其他 agent 也在学习时,你的 MDP 转移在变;独立 PPO 可能不收敛,CTDE(中心化 critic)是常见起点。
墙钟时间:env steps 不是唯一成本
论文比 sample complexity;产线更关心 wall-clock 和真机交互上限——VecEnv 并行和 sim 速度决定算法可行域。
调试:先赢 random baseline
RL 连 random policy 都赢不了,别调 PPO clip——先查 reward sign、action 是否生效、obs 是否常数。
课程学习:成功率门槛升难度
一开始最难任务 sparse reward 下探索常绝望;按 success rate 升难度,但要防只学会「考试技巧」。
控制频率:RL 与底层 PD 分层
策略 10 Hz 出目标,底层 1 kHz PD 跟踪;delay、action hold 和 sim dt 不一致会让 sim policy 真机振荡。
Q 过估计:从 Double DQN 到 twin critic
max Q 和 bootstrap 叠加系统性高估未见动作;Double DQN、TD3/SAC 的 min Q、离线 CQL 都在治同一偏误。
离散动作掩码:非法 move 别采样
棋类、调度里大量非法 action;logits mask 后再 softmax,否则浪费探索且梯度学错。
Gymnasium Wrapper 与 VecEnv
归一化、reward scale、frame skip、TimeLimit 应放在 wrapper 层,算法代码保持干净;换 env 时 wrapper 契约要一致。
评测协议:一个 seed 不够
RL 方差极大;至少多 seed 报 mean±std,eval 用 deterministic policy 和固定 scenario 集。
奖励黑客:高 return 离谱行为
回报高但行为不对,先查 reward 是否漏约束;agent 会 exploit 仿真漏洞,不是单纯「还没训够」。
有模型 RL:省样本但怕模型偏
学动力学做 imagined rollout 或 MPC;长 horizon 误差累积,短 horizon(MBPO)或 uncertainty 缓解。
部分可观测:帧堆叠与 RNN
Agent 看不见完整状态时 MDP 假设不成立;frame stack、RNN 或状态估计把历史信息补进输入。
安全约束:真机探索要有硬护栏
关节限位、速度 clamp、紧急停止应放在策略外;约束 RL 是研究方向,工程上 hard guard 优先。
Sim2Real:域随机化比视觉逼真更常用
完美仿真过拟合会 transfer 失败;随机化质量、摩擦、延迟,并对齐控制频率,通常比追 photorealistic 划算。
HER:失败轨迹也能当成功样本
Hindsight Experience Replay 把 episode 目标改成实际到达状态,稀疏 manipulation 里样本效率可数量级提升。
稀疏奖励:先改任务再换算法
大部分 step reward=0 时,credit assignment 像噪声;HER、curriculum、shaping 要选组合,纯 PPO 硬扛往往不经济。
动作映射:tanh 之后还有一步
策略输出 [-1,1] 要线性映射到关节力矩/速度物理限位;scale 错等于隐式改 reward 和动力学。
观测归一化:连续控制默认项
关节角、速度、力矩量纲混在一起,MLP 很难学;running mean/std 归一化是 SB3 标配,train/eval 统计必须一致。
模仿学习:BC 与 DAgger
行为克隆 warm start 省样本;covariate shift 会让策略漂移,DAgger 或 RL fine-tune 常接在后面。
离线 RL:不能交互时别信外推
只有固定日志、不能再采新数据时,naive Q-learning 会对 OOD 动作给出虚高 Q;CQL、IQL 等抑制外推。
离策略:旧数据何时害你
行为策略与目标策略差太远时,Q 估计靠外推,过估计和崩溃随之而来。
TD3:在 DDPG 上打的三补丁
Twin critic、delayed policy update、target policy smoothing,专治 Q 过估计和确定性策略外推。
SAC:最大熵与自动温度
Soft Actor-Critic 同时最大化回报和策略熵;连续控制里常作 DDPG 的稳定替代。
PPO 裁剪:限制策略一步走多远
Clipped surrogate 近似 trust region,实现比 TRPO 简单;ε、entropy coef 和 value loss 权重是主要旋钮。
GAE:优势估计的 λ 旋钮
广义优势估计在 TD(0) 和 Monte Carlo 之间插值;PPO 里 advantage 质量直接决定更新方向。
Actor-Critic:两个网络各干什么
Critic 估 \(V\) 或 \(Q\) 给 Actor 提供低方差信号;critic 不准会把 policy 带偏。
策略梯度:REINFORCE 与方差
直接优化 \(\mathbb{E}[G_t \nabla \log \pi_\theta]\);完整轨迹 return 方差随 horizon 爆炸,baseline 和 critic 是刚需。
Double DQN:减轻 max 过估计
标准 DQN 用 target 网在 \(s'\) 上 argmax 再取值,系统性高估;Double DQN 用 online 网选动作、target 网估值。
经验回放:打破样本相关
Replay buffer 让 off-policy 算法复用旧数据;容量、采样方式和 n-step 目标影响稳定性。
Q-learning 与 deadly triad
表格 Q-learning 收敛有保证;加函数近似和 off-policy 后,max 与 bootstrap 叠加可能不稳定。
奖励塑形:势函数 shaping 为何相对安全
非势函数的额外 reward 可能改变最优策略;Ng et al. 的 potential-based shaping 在理论上保持最优策略不变。
折扣因子 γ:时间视野不是随便填的
γ 定义 agent 多看重未来;和 episode 长度、reward scale 强耦合,改 γ 等于改任务语义。
探索:ε-greedy 之外还有什么
高维连续空间里纯 ε-greedy 不够;entropy bonus、OU 噪声和 count-based 各适不同场景,探索不足表现为早收敛到次优。
选 DQN 还是 PPO/SAC:看动作空间
离散小动作空间可走 value-based;高维连续控制更常选 Actor-Critic 系,选错家族会浪费大量调参时间。
贝尔曼备份:TD 目标从哪来
TD、Q-learning、DP 共用贝尔曼期望方程;backup 目标写错,整个 value 函数会系统性偏。
MDP 五元组:写代码前先对齐任务
把任务写成 (S,A,P,R,γ) 再选算法,能避免 reward 单位、episode 边界和马尔可夫性上的 silent bug。