场景是仓库机器人:要尽快完成拣货,同时避免与同事车碰撞。你第一版用稀疏奖励——每完成一单 +1,碰撞 -10,其他时刻 0,训练几乎不学。第二版加上“离目标货架越近奖励越大”的稠密项后学得很快,但最终策略变成绕圈刷分、迟迟不完成订单。请说明你怎么诊断第二版的问题,重新设计奖励,并给出你验证奖励有没有被钻空子的方法。
面试官在考什么
判断候选人是否理解“稠密化奖励会改变最优策略”这个本质风险,能不能用不改变最优解的方式做奖励塑形,以及有没有用业务指标验证奖励的习惯。
回答框架 · 前两步
- 稀疏奖励学不动是信用分配 + 探索命中率问题:只有完成才给分,随机探索几乎不可能撞上完整成功轨迹;但直接加稠密项会改变最优策略。
- 正确的稠密化是 potential-based shaping:F = γΦ(s') − Φ(s),Φ 可取“到目标距离的负值”,形式正确时保证不改变最优策略。若直接每步加 −d(s) 或加常数系数,等价于 γ=1 的形式或改变了奖励结构,最优策略被扭曲,就会出现绕圈刷分。
还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。
同一能力域的其他题
- 你要给一个 3 台 AGV 的仓库分拣场景建 MDP:决策频率 1 Hz,一个班次 8 小时(28800 步),要求班次结束前清空所有任务。你初始定 γ=0.99。请回答两件事:(1) 你会不会改这个 γ,改成多少,依据是什么,改完会连带影响哪些训练环节;(2) 如果状态只记录“每台 AGV 当前坐标 + 是否空闲”,它在什么情况下不满足马尔可夫性,你打算怎么判断,并补哪些量。
- 你要给一个仓库机器人调度问题建 MDP:状态=(机器人位置, 剩余电量, 已取货任务集合)。位置是 50x50 网格,电量 0-100,任务列表最多 20 个。粗算状态空间约 2.6e11,动作空间 20(去某个货架)。单次环境 step 平均 0.5ms,你有 8 张卡并行采样。有人提出用表格型 Q-Learning 精确求解。请你估算并判断:这个方案是否可行?如果不可行,你会优先降低状态空间还是降低动作空间?为什么?
- 你在给一个补货场景建模成 MDP:决策周期 1 天,动作是每个 SKU 的补货量,奖励是「毛利 − 缺货惩罚 − 持有成本」。团队里有人主张状态直接塞过去 14 天的日销量序列,有人主张只放当前库存 + 未来 7 天需求预测。你怎么判断哪些信息必须进状态、哪些可以丢?给出你会做的验证实验和判断标准,并说明状态维度放大会付出什么代价。
- 一个 agent 在 1×4 的走廊里移动,状态记为 S1、S2、S3、S4,动作只有向左(L)和向右(R),在 S1 向左仍在 S1。每次状态转移的 reward 都是 -0.01;但转移到 S4 的那一次转移 reward 为 +1,并且回合立即终止。折扣因子 γ=0.9。请写出这个问题的 MDP 五元组(S、A、P、R、γ 的具体内容),并求出最优策略下 V*(S2) 的值,给出计算过程。
- 你用表格 Q-Learning 做一个离散库存补货问题,状态 200 个、动作 5 个,奖励是单步利润(可正可负)。学习率固定 0.1,ε 固定 0.2,跑了 10 万步以后发现 Q 值一直在某个区间来回震荡,贪心策略时好时坏。请说明:这算不算不收敛?可能的原因有哪些?你会按什么顺序排查和修?
- 场景:20 个货架的拣货路径优化,状态=(当前位置, 已拣货集合),动作=去下一个货架。状态约 2^20 * 21 ≈ 2200 万,动作 20。你用表格型 Q-Learning 训练 500 万步,发现部分状态的 Q 值来回震荡不收敛。请给出一个具体的排查顺序,并说明每一步你会看什么指标、怎么改。