1. 状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s)

状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s) 用来衡量在状态 sss 下,遵循策略 π\piπ 时,代理(agent)从该状态出发能获得的期望回报。

定义

Vπ(s)=E[∑t=0∞γtrt∣s0=s,π] V_{\pi}(s) = \mathbb{E} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s, \pi \right] Vπ(s)=E[t=0γtrts0=s,π]

这里的 γ\gammaγ 是折扣因子,rtr_trt 是时刻 ttt 的奖励,s0=ss_0 = ss0=s 表示从状态 sss 开始,按照策略 π\piπ 进行行动,期望获得的累计回报。

  • 也就是说,状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s) 是在给定策略下,从状态 sss 出发,通过执行该策略得到的期望累积回报。

2. 状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a)

状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a) 评估的是:在状态 sss 下,执行某个特定的动作 aaa,然后遵循策略 π\piπ,能获得的期望回报。

定义

Qπ(s,a)=E[∑t=0∞γtrt∣s0=s,a0=a,π] Q_{\pi}(s, a) = \mathbb{E} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s, a_0 = a, \pi \right] Qπ(s,a)=E[t=0γtrts0=s,a0=a,π]

在这里,a0=aa_0 = aa0=a 表示在状态 sss 时,代理选择动作 aaa,然后根据策略 π\piπ 继续行动,得到的期望回报。

  • 状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a) 评估的是从状态 sss 出发并执行某个特定动作 aaa 后,后续的回报。

3. 它们的区别

  • 状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s) 是一个 状态期望回报 的映射,它描述的是从状态 sss 开始,按照策略 π\piπ 行动时的回报。它只关注状态本身,不考虑具体的动作。

  • 状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a) 是一个 状态-动作对期望回报 的映射,它描述的是在状态 sss 下,选择特定的动作 aaa 后,按照策略 π\piπ 行动时的期望回报。它考虑了在某个状态下选择具体动作的影响。

4. 它们的关系

  • Vπ(s)V_{\pi}(s)Vπ(s)Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a) 之间的关系

    对于任意状态 sss状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s) 可以通过状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a) 来计算。实际上,状态价值函数是状态-动作价值函数的加权平均:

    Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a) V_{\pi}(s) = \sum_{a \in A} \pi(a | s) Q_{\pi}(s, a) Vπ(s)=aAπ(as)Qπ(s,a)

    这里,π(a∣s)\pi(a | s)π(as) 是在状态 sss 下采取动作 aaa 的概率(即策略 π\piπ 的定义),Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a) 是状态 sss 下执行动作 aaa 的价值。

    换句话说,状态价值函数是通过对每个动作的状态-动作价值函数加权平均得到的。

  • 同样地,从 Vπ(s)V_{\pi}(s)Vπ(s) 出发,可以通过选取最大值来得到 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a)

    Qπ(s,a)=r(s,a)+γ∑s′P(s′∣s,a)Vπ(s′) Q_{\pi}(s, a) = r(s, a) + \gamma \sum_{s'} P(s'|s, a) V_{\pi}(s') Qπ(s,a)=r(s,a)+γsP(ss,a)Vπ(s)

    这表示,状态-动作价值函数不仅考虑当前的即时奖励 r(s,a)r(s, a)r(s,a),还要加上在下一状态 s′s's 上的期望价值 Vπ(s′)V_{\pi}(s')Vπ(s)

5. 为什么它们看起来没有区别?

从定义上看,状态价值函数状态-动作价值函数看起来是有区别的,但它们其实是紧密相关的。状态价值函数只是状态-动作价值函数在给定策略下的加权平均。在很多情况下,通过 状态-动作价值函数 我们能够得到 状态价值函数,反之亦然。

  • 如果你知道了状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a),可以通过加权求和得到状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s)
  • 反之,如果你知道了状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s),可以通过选择最优动作来得到相应的状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a)

总结

  • 状态价值函数 Vπ(s)V_{\pi}(s)Vπ(s) 是状态到期望回报的映射,只考虑状态,不考虑动作。
  • 状态-动作价值函数 Qπ(s,a)Q_{\pi}(s, a)Qπ(s,a) 是状态-动作对到期望回报的映射,考虑了具体的动作。
  • 它们之间的关系是:状态价值函数是状态-动作价值函数的加权平均,而状态-动作价值函数可以通过状态价值函数来进行更新。

通过这些关系,强化学习算法可以通过计算 状态-动作价值函数 来最终确定最优策略。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐