Linxii's Blog
RL的原理-2-贝尔曼公式Blur image

1.return的重要性#

  在强化学习中,智能体的目标是最大化其在环境中获得的累积奖励(return 或者 discounted return)。

  四宫格循环走的情况:

v1=r1+γr2+γ2r3+...=r1+γv2v_{1}=r_{1}+\gamma r_{2}+\gamma^{2} r_{3}+...=r_{1}+\gamma v_{2}

v2=r2+γr3+γ2r4+...=r2+γv3v_{2}=r_{2}+\gamma r_{3}+\gamma^{2} r_{4}+...=r_{2}+\gamma v_{3}

v3=r3+γr4+γ2r1+...=r3+γv4v_{3}=r_{3}+\gamma r_{4}+\gamma^{2} r_{1}+...=r_{3}+\gamma v_{4}

v4=r4+γr1+γ2r2+...=r4+γv1v_{4}=r_{4}+\gamma r_{1}+\gamma^{2} r_{2}+...=r_{4}+\gamma v_{1}

  上面的公式展示了return的递归性质,可以写成矩阵的形式

[v1v2v3v4]=[r1r2r3r4]+γ[0100001000011000][v1v2v3v4]\begin{bmatrix} v_{1} \\ v_{2} \\ v_{3} \\ v_{4} \end{bmatrix} = \begin{bmatrix} r_{1} \\ r_{2} \\ r_{3} \\ r_{4} \end{bmatrix} + \gamma \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} v_{1} \\ v_{2} \\ v_{3} \\ v_{4} \end{bmatrix}

  上面的矩阵形式可以写成简化的形式,通过下面这种简化的形式可以很方便的求解

v=r+γPv\mathbf{v} = \mathbf{r} + \gamma \mathbf{P} \mathbf{v}

2.State Value#

StAtRt+1,St+1At+1Rt+2,St+2At+2Rt+3...S_t \xrightarrow{A_t} R_{t+1}, S_{t+1} \xrightarrow{A_{t+1}} R_{t+2}, S_{t+2} \xrightarrow{A_{t+2}} R_{t+3} ... Gt=Rt+1+γRt+2+γ2Rt+3+...G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ...

  状态值函数(State Value Function)表示在给定状态下,智能体在未来能够获得的累积奖励的期望值。状态值函数通常表示为vπ(s)v_{\pi}(s),其中ss表示状态,π\pi表示策略。

vπ(s)=Eπ[GtSt=s]v_{\pi}(s) = \mathbb{E}_{\pi}[G_t | S_t = s]

return 与 state value的关系

  return是针对单个trajestory而言的,而state value是对所有trajestory而言的。state value表示在给定状态下,智能体在未来能够获得的累积奖励的期望值

3.贝尔曼公式#

3.1 如何推导贝尔曼公式#

  • 贝尔曼公式:

vπ(s)=Eπ[GtSt=s] v_{\pi} (s) = \mathbb{E}_{\pi}[G_t | S_t = s]

   =E[Rt+1St=s]+γEπ[Gt+1St=s]=\mathbb{E} [R_{t+1} | S_t = s]+ \gamma \mathbb{E}_{\pi}[G_{t+1} | S_t = s]

   =aπ(as)rp(rs,a)r+γaπ(as)sp(ss,a)vπ(s)=\sum_{a} \pi(a|s) \sum_{r} p(r|s,a)r + \gamma \sum_{a} \pi(a|s) \sum_{s'} p(s'|s,a)v_{\pi}(s')

   =aπ(as)[rp(rs,a)r+γsp(ss,a)vπ(s)]=\sum_{a} \pi(a|s) [\sum_{r}p(r|s,a)r + \gamma \sum_{s'} p(s'|s,a)v_{\pi}(s') ]

  • 推导流程:

(1)s状态的state value是当前状态的所有return的期望值:

   vπ(s)=E[GtSt=s]v_{\pi}(s)=\mathbb{E}[G_{t}|S_{t}=s]

      =E[Rt+1+γGt+1St=s]=\mathbb{E}[R_{t+1}+\gamma G_{t+1}|S_{t}=s]

      =E[Rt+1St=s]+γE[Gt+1St=s]=\mathbb{E}[R_{t+1}|S_{t}=s]+\gamma \mathbb{E}[G_{t+1}|S_{t}=s]

(2)首先看第一项,第一项就是当前状态下,所有可能动作下的奖励(reward)的期望值:

   E[Rt+1St=s]=aπ(as)E[Rt+1St=s,At=a]\mathbb{E}[R_{t+1}|S_{t}=s]=\sum_{a}\pi (a|s) \mathbb{E}[R_{t+1}|S_{t}=s,A_{t}=a]

           =aπ(as)rp(rs,a)r=\sum_{a}\pi (a|s) \sum_{r} p(r|s,a)r

  其中,π(as)\pi(a|s)表示在状态ss下选择动作aa的概率,p(rs,a)p(r|s,a)表示在状态ss下选择动作aa后获得奖励rr的概率。

(3)再看第二项,第二项是当前状态下,所有可能动作下,所有可能转移到的下一个状态的state value的期望值:

   E[Gt+1St=s]=sE[Gt+1St=s,St+1=s]p(ss)\mathbb{E}[G_{t+1}|S_{t}=s]=\sum_{s'} \mathbb{E}[G_{t+1}|S_t=s,S_{t+1}=s']p(s'|s)

           =sE[Gt+1St+1=s]p(ss)=\sum_{s'} \mathbb{E}[G_{t+1}|S_{t+1}=s']p(s'|s)

           =svπ(s)p(ss)=\sum_{s'} v_{\pi}(s')p(s'|s)

           =svπ(s)ap(ss,a)π(as)=\sum_{s'}v_{\pi}(s') \sum_{a}p(s'|s,a) \pi(a|s)

3.2贝尔曼公式的矩阵与向量形式#

  首先把第一项中的部分组合一下,这部分就是当前状态下执行不同的Action得到的reward的期望值:

rπ(s)=aπ(as)rp(rs,a)rr_{\pi}(s) = \sum_{a} \pi(a|s) \sum_{r} p(r|s,a)r

  然后把第二项中的部分组合一下,这部分就是从ssss'的概率:

Pπ(s,s)=aπ(as)p(ss,a)P_{\pi}(s,s') = \sum_{a} \pi(a|s) p(s'|s,a)

  于是贝尔曼公式可以写成下面的形式:

vπ(s)=rπ(s)+γsPπ(ss)vπ(s)v_{\pi}(s) = r_{\pi}(s) + \gamma \sum_{s'} P_{\pi}(s'|s) v_{\pi}(s')

  上面的公式可以写成矩阵与向量的形式:

vπ=rπ+γPπvπ\mathbf{v}_{\pi} = \mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}_{\pi}

求解

  根据矩阵的形式,可以使用逆矩阵进行求解,不过实际应用中并不使用这种解法,因为状态空间通常非常大,计算逆矩阵的开销很大。通常使用迭代方法来近似求解。

vk+1rπ+γPπvkv_{k+1} \rightarrow r_{\pi} + \gamma P_{\pi} v_{k}

  当kk \rightarrow \infty时,vkv_{k}会收敛到vπv_{\pi}

4.Action Value#

qπ(s,a)=Eπ[GtSt=s,At=a]q_{\pi}(s,a) = \mathbb{E}_{\pi}[G_t | S_t = s, A_t = a] =rp(rs,a)r+γsp(ss,a)vπ(s)= \sum_{r} p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) v_{\pi}(s')

  Action Value 与 State Value的关系:

vπ(s)=aπ(as)qπ(s,a)v_{\pi}(s) = \sum_{a} \pi(a|s) q_{\pi}(s,a)
RL的原理-2-贝尔曼公式
https://linxii.top/blog/rl-learning-2-bellman
Author 林夕夕
Published at January 20, 2026
Comment seems to stuck. Try to refresh?✨