Value Function 与 Q Function
V 评价状态,Q 评价状态—动作对。
学习目标
- 分清状态价值、动作价值和单次回报,避免把估计最大值当成已知真值。
- 独立复核“同一 Q 下,策略平均与贪心价值不同”的输入、计算和解释。
- Vπ 是策略加权平均,不是 max Qπ。
为什么重要
分清状态价值、动作价值和单次回报,避免把估计最大值当成已知真值。
学习前需要掌握
背景与问题
同一个路口可以按不同路线策略继续行驶,长期收益也就不同。只说“这个路口价值 5”缺少策略与时间范围;价值不是状态固有的标签,而是对某种后续行为的条件期望。
概念定义
状态价值 Vπ(s) 是从状态 s 开始、之后按策略 π 行动的期望回报。动作价值 Qπ(s,a) 先固定第一步动作 a,此后仍按 π 行动。一次轨迹的回报是随机样本,价值函数则对相应未来随机性求期望。
直观理解
V 像评价“到这个路口后照现有习惯走有多好”,Q 像评价“先向右,再照现有习惯走有多好”。评价已有习惯与寻找最优路线是不同问题。
核心原理
离散策略下,Vπ 是各动作 Qπ 按 π 加权的平均,而不是最大值。只有切换到贪心改进或讨论最优价值时,最大值才进入相应表达式。
仅有 V 通常不能直接比较动作,还需要环境模型预测后继,或由 actor 给动作。Q 为每个动作提供比较分数,但连续动作的最大化可能需要额外优化,不能简单枚举。
估计误差与数据覆盖会影响动作排序。高 Q 可能是真高回报,也可能是模型在缺乏证据动作上的乐观误差;价值预测应结合固定策略评估与独立数据诊断。
数学表达
状态与动作价值
两者条件不同。
变量含义
G_t从时刻 t 开始的折扣累计回报。R_{t+1}执行动作后收到的下一步奖励。γ折扣因子,通常位于 [0,1)。
计算步骤
- 1按当前策略求状态价值:0.75×2+0.25×6=3。
- 2贪心选择第二动作,其动作价值是 6。
- 3改变策略后长期 Q 也可能变化;本次只比较给定 Q 的一步策略改进。
代码对应位置
示例 1同一 Q 下,策略平均与贪心价值不同:当前策略价值是 3,给定 Q 的贪心动作价值是 6。
变量解释
| 变量 | 含义 |
|---|---|
G_t | 从时刻 t 开始的折扣累计回报。 |
R_{t+1} | 执行动作后收到的下一步奖励。 |
γ | 折扣因子,通常位于 [0,1)。 |
完整数值示例
同一 Q 下,策略平均与贪心价值不同
已知条件
- 两动作价值为 2 与 6。
- 当前策略概率为 0.75 与 0.25。
计算步骤
- 按当前策略求状态价值:0.75×2+0.25×6=3。
- 贪心选择第二动作,其动作价值是 6。
- 改变策略后长期 Q 也可能变化;本次只比较给定 Q 的一步策略改进。
计算结果
当前策略价值是 3,给定 Q 的贪心动作价值是 6。
处理前后对比
- Vπ 是策略加权平均,不是 max Qπ。
- 策略改进后需要重新评价,不能永远沿用旧策略的全部价值。
计算与实现步骤
- 定义策略
- 采样或计算回报
- 估计 V/Q
- 用于改进策略
代码实现
示例 1
同一 Q 下,策略平均与贪心价值不同
example_01.py用途:当前策略价值是 3,给定 Q 的贪心动作价值是 6。
q = [2.0, 6.0]
policy = [0.75, 0.25]
value = sum(p * action_value for p, action_value in zip(policy, q))
print(f"V_policy={value:.1f}, greedy_Q={max(q):.1f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
当前策略价值是 3,给定 Q 的贪心动作价值是 6。
Step 1 · 1–4 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
q = [2.0, 6.0]
policy = [0.75, 0.25]
value = sum(p * action_value for p, action_value in zip(policy, q))
print(f"V_policy={value:.1f}, greedy_Q={max(q):.1f}")预期输出或运行结果
V_policy=3.0, greedy_Q=6.0
常见错误 · 3 条
- 把 Vπ 写成所有动作 Q 的最大值。
- 比较不同策略或折扣下的数值,却没有对齐定义。
- 用单次幸运回报宣称价值估计已经准确。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 把 Vπ 写成所有动作 Q 的最大值。
- 比较不同策略或折扣下的数值,却没有对齐定义。
- 用单次幸运回报宣称价值估计已经准确。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 Sutton 与 Barto《Reinforcement Learning: An Introduction》(第 3、4 章)。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 把 Vπ 写成所有动作 Q 的最大值。
- 比较不同策略或折扣下的数值,却没有对齐定义。
- 用单次幸运回报宣称价值估计已经准确。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
价值高就是动作一定好吗?
价值是特定策略、状态和奖励定义下的期望估计,还包含采样与逼近误差;不能替代安全约束或对分布外动作的证据。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
David Silver Reinforcement Learning Course
沿 MDP、动态规划、价值函数、TD、策略梯度和函数近似讲解经典强化学习。
David Silver · Google DeepMind / YouTube