强化学习是什么
智能体通过与环境交互,在延迟反馈下学习最大化长期回报的行为。
学习目标
- 区分即时奖励与长期后果,理解为什么行动会改变训练数据。
- 独立复核“接单还是先充电:比较完整后果”的输入、计算和解释。
- 长期回报取决于后续转移,不能只比较第一步奖励。
为什么重要
区分即时奖励与长期后果,理解为什么行动会改变训练数据。
学习前需要掌握
背景与问题
配送机器人可以现在接一单,也可以先充电再服务更多客户。只拟合历史订单的“正确动作”不够:不同选择会改变剩余电量、以后可接订单和采样到的状态。强化学习用于这样的连续决策,而不是给每条输入机械地配一个标签。
概念定义
强化学习把决策者称为智能体,把它无法直接控制的转移与反馈机制称为环境。策略根据可用信息选择动作,目标是在明确定义的时间范围内提高期望累计回报。奖励是训练信号,可以稀疏、延迟或带噪声,并不天然等于真实业务价值。
直观理解
下棋时让一颗棋子暂时被吃,可能换来几步后的胜利。判断一步棋不能只看这一步的得失;但最终赢棋也不能证明此前每步都正确,需要通过多次对局和价值估计来分配贡献。
核心原理
交互循环先观察,再选动作,随后收到下一观察与奖励。策略更新后会访问新的局面,所以数据分布也会变化;监督学习里随机打乱一个固定数据集的假设不能直接照搬。
长期目标需要说明折扣、终止条件和约束。将一次事故简单写成负奖励,可能仍让高收益策略接受事故风险;如果禁止事故是硬条件,还需独立的约束与行动检查。
探索通过尝试不确定动作获取信息,利用则选择当前看来最好的动作。仿真可以降低试错成本,但仿真中学到的策略仍可能利用建模漏洞,必须在独立任务与扰动下验证。
数学表达
折扣回报
当前回报由下一奖励与折扣后的未来回报组成。
变量含义
G_t从时刻 t 开始的折扣累计回报。R_{t+1}执行动作后收到的下一步奖励。γ折扣因子,通常位于 [0,1)。
计算步骤
- 1直接策略的回报是 3。
- 2充电策略的回报是 −1+0.9×6=4.4。
- 3按本例回报目标选择先充电;若不存在后续订单,结论会变化。
代码对应位置
示例 1接单还是先充电:比较完整后果:充电的即时奖励更低,但折扣回报 4.4 大于直接接单的 3。
变量解释
| 变量 | 含义 |
|---|---|
G_t | 从时刻 t 开始的折扣累计回报。 |
R_{t+1} | 执行动作后收到的下一步奖励。 |
γ | 折扣因子,通常位于 [0,1)。 |
完整数值示例
接单还是先充电:比较完整后果
已知条件
- 直接接单得到 3 后结束。
- 充电先付出 1,下一步接单得 6;折扣为 0.9。
计算步骤
- 直接策略的回报是 3。
- 充电策略的回报是 −1+0.9×6=4.4。
- 按本例回报目标选择先充电;若不存在后续订单,结论会变化。
计算结果
充电的即时奖励更低,但折扣回报 4.4 大于直接接单的 3。
处理前后对比
- 长期回报取决于后续转移,不能只比较第一步奖励。
- 本例是已知后果的计算;学习还需要用数据估计这些后果。
计算与实现步骤
- 观察状态
- 按策略选择动作
- 环境转移并给奖励
- 更新价值或策略
- 重复并独立评测
代码实现
示例 1
接单还是先充电:比较完整后果
example_01.py用途:充电的即时奖励更低,但折扣回报 4.4 大于直接接单的 3。
direct = 3.0
charge_then_deliver = -1.0 + 0.9 * 6.0
print(f"direct={direct:.1f}, charge_then_deliver={charge_then_deliver:.1f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
充电的即时奖励更低,但折扣回报 4.4 大于直接接单的 3。
Step 1 · 1–3 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
direct = 3.0
charge_then_deliver = -1.0 + 0.9 * 6.0
print(f"direct={direct:.1f}, charge_then_deliver={charge_then_deliver:.1f}")预期输出或运行结果
direct=3.0, charge_then_deliver=4.4
常见错误 · 3 条
- 只优化单步分数,漏掉动作对未来状态的影响。
- 把奖励提高直接等同于用户真实利益提高。
- 只有少数历史轨迹却声称策略学会了所有未见情形。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 只优化单步分数,漏掉动作对未来状态的影响。
- 把奖励提高直接等同于用户真实利益提高。
- 只有少数历史轨迹却声称策略学会了所有未见情形。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 Sutton 与 Barto《Reinforcement Learning: An Introduction》(第 1、3 章)。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 只优化单步分数,漏掉动作对未来状态的影响。
- 把奖励提高直接等同于用户真实利益提高。
- 只有少数历史轨迹却声称策略学会了所有未见情形。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
有一个奖励分数就必须用强化学习吗?
不一定。若行动不影响后续状态,且可以直接获得标签或可微目标,监督学习、上下文老虎机或常规优化可能更合适。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
Reinforcement Learning: An Introduction
从多臂赌博机、MDP、动态规划、蒙特卡洛和 TD 方法建立强化学习理论主线。
Richard Sutton / Andrew Barto · MIT Press
资料笔记
Spinning Up in Deep RL
从术语、数学背景和算法分类进入 VPG、TRPO、PPO、DDPG、TD3 与 SAC。
OpenAI · OpenAI