Policy、Episode 与 Trajectory
策略产生动作分布,Episode 定义一次交互边界,Trajectory 保存完整经历。
学习目标
- 区分动作分布、一次交互记录和 episode 边界,正确理解轨迹概率。
- 独立复核“一条两步轨迹的概率”的输入、计算和解释。
- 策略随机性与环境随机性需要分别记录。
为什么重要
区分动作分布、一次交互记录和 episode 边界,正确理解轨迹概率。
学习前需要掌握
背景与问题
同一个策略运行两次也会得到不同轨迹:策略可能随机采样,环境转移也可能随机。保存一串动作不足以复现实验,还需要初始状态、观察、奖励、边界和随机性。
概念定义
策略是根据当前信息选动作的规则,可以确定也可以随机。轨迹按时间排列状态、动作与反馈;episode 是从初始化到任务结束或采样边界的一段完整记录。持续任务也有轨迹,但没有天然的任务终点。
直观理解
菜谱是策略,一次实际烹饪记录是轨迹。菜谱相同,食材差异与操作随机性仍会改变结果;记录到一半停止也不等于菜已经完成。
核心原理
离散随机策略的各动作概率非负且和为 1。连续策略输出的是密度,某个精确实数动作的概率通常为零,不能把密度值直接当离散概率解释。
给定一条离散轨迹,其概率包含初始分布、沿途动作概率和环境转移概率的乘积。策略只能改变其中动作项;策略梯度正是利用这一结构,避免直接求未知环境动力学的导数。
训练时保存的旧动作对数概率必须对应实际生成数据的策略。更新后的策略重新算出的概率不能冒充旧概率,否则重要性比率失去意义。截断片段还应保留后继观察和 bootstrap 信息。
数学表达
轨迹概率
策略与环境转移共同决定轨迹分布。
变量含义
G_t从时刻 t 开始的折扣累计回报。R_{t+1}执行动作后收到的下一步奖励。γ折扣因子,通常位于 [0,1)。
计算步骤
- 1策略对这两个动作的联合因子是 0.6×0.5=0.3。
- 2加入环境转移后,轨迹概率为 0.6×0.8×0.5×1=0.24。
- 30.24 是这条特定轨迹的概率,不是任意成功轨迹概率之和。
代码对应位置
示例 1一条两步轨迹的概率:动作因子为 0.300,完整轨迹概率为 0.240。
变量解释
| 变量 | 含义 |
|---|---|
G_t | 从时刻 t 开始的折扣累计回报。 |
R_{t+1} | 执行动作后收到的下一步奖励。 |
γ | 折扣因子,通常位于 [0,1)。 |
完整数值示例
一条两步轨迹的概率
已知条件
- 初始状态确定。
- 两次所选动作概率分别为 0.6 和 0.5;对应转移概率分别为 0.8 和 1。
计算步骤
- 策略对这两个动作的联合因子是 0.6×0.5=0.3。
- 加入环境转移后,轨迹概率为 0.6×0.8×0.5×1=0.24。
- 0.24 是这条特定轨迹的概率,不是任意成功轨迹概率之和。
计算结果
动作因子为 0.300,完整轨迹概率为 0.240。
处理前后对比
- 策略随机性与环境随机性需要分别记录。
- 连续变量的轨迹密度不能直接解释为精确轨迹的概率质量。
计算与实现步骤
- reset
- 按策略采样
- 记录 transition
- 终止后计算回报
代码实现
示例 1
一条两步轨迹的概率
example_01.py用途:动作因子为 0.300,完整轨迹概率为 0.240。
action_prob = [0.6, 0.5]
transition_prob = [0.8, 1.0]
policy_factor = action_prob[0] * action_prob[1]
trajectory_prob = policy_factor * transition_prob[0] * transition_prob[1]
print(f"policy_factor={policy_factor:.3f}, trajectory_prob={trajectory_prob:.3f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
动作因子为 0.300,完整轨迹概率为 0.240。
Step 1 · 1–5 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
action_prob = [0.6, 0.5]
transition_prob = [0.8, 1.0]
policy_factor = action_prob[0] * action_prob[1]
trajectory_prob = policy_factor * transition_prob[0] * transition_prob[1]
print(f"policy_factor={policy_factor:.3f}, trajectory_prob={trajectory_prob:.3f}")预期输出或运行结果
policy_factor=0.300, trajectory_prob=0.240
常见错误 · 3 条
- 把策略概率最大的动作当成随机策略每次必选的动作。
- 计算轨迹概率时漏掉环境转移概率。
- 用新策略概率覆盖采样时保存的旧概率。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 把策略概率最大的动作当成随机策略每次必选的动作。
- 计算轨迹概率时漏掉环境转移概率。
- 用新策略概率覆盖采样时保存的旧概率。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 Sutton 与 Barto《Reinforcement Learning: An Introduction》(第 3、13 章)。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 把策略概率最大的动作当成随机策略每次必选的动作。
- 计算轨迹概率时漏掉环境转移概率。
- 用新策略概率覆盖采样时保存的旧概率。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
episode 和固定长度 rollout 一样吗?
不一样。rollout 可以只是 episode 的片段;在非终止边界通常需要后继价值来补足未采到的未来。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。