关于 Return

image-20260414184017081

之前说过 return 能够衡量 trajectory 的收益,这里用一个例子来具体说明。

从状态 s1s_1 出发到 s4s_4,上图从左至右的回报依次是:

return1=0+γ1+γ21+γ31+=γ(1+γ+γ2+)=γ1γreturn2=1+γ1+γ21+γ31+=1+γ(1+γ+γ2+)=1+γ1γreturn3=0.5(γ1γ)+0.5(1+γ1γ)=0.5+γ1γ\begin{align} \text{return}_1 &=0+\gamma1+\gamma^21+\gamma^31+\dots=\gamma(1+\gamma+\gamma^2+\dots)=\frac{\gamma}{1-\gamma}\\ \text{return}_2&=-1+\gamma1+\gamma^21+\gamma^31+\dots=-1+\gamma(1+\gamma+\gamma^2+\dots)=-1+\frac{\gamma}{1-\gamma}\\ \text{return}_3&=0.5\left(\frac{\gamma}{1-\gamma}\right)+0.5\left(-1+\frac{\gamma}{1-\gamma}\right)=-0.5+\frac{\gamma}{1-\gamma} \end{align}

其中 return3\text{return}_3 为两个 trajectory 的加权均值。

return1>return3>return2\text{return}_1>\text{return}_3>\text{return}_2 可得左一的 policy 是最优的。因此 return 能够用来评价 policy

State value

在时间步 tt 时,设智能体在状态 StS_t 处,由策略 π\pi 指导的下一个动作是 AtA_t。设下一个状态是 St+1S_{t+1},即时奖励是 Rt+1R_{t+1},则该转移过程可表示为

StAtSt+1,Rt+1S_t\overset{A_t}{\rightarrow}S_{t+1},R_{t+1}

其中 St,St+1,At,Rt+1S_{t},S_{t+1},A_{t},R_{t+1} 都是随机变量,且 St,St+1SS_{t},S_{t+1}\in\mathcal{S}AtA(St)A_{t}\in\mathcal{A}(S_{t})Rt+1R(St,At)R_{t+1}\in\mathcal{R}(S_{t},A_t)

那么从 tt 开始,能够得到一条 state-action-reward trajectory 为

StAtSt+1,Rt+1At+1St+2,Rt+2At+2St+3,Rt+3S_t\overset{A_t}{\to}S_{t+1},R_{t+1}\overset{A_{t+1}}{\to}S_{t+2},R_{t+2}\overset{A_{t+2}}{\to}S_{t+3},R_{t+3}\dots

该 trajectory 的 discounted return 为

Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\dots=\sum_{k=0}^{\infty}\gamma^kR_{t+k+1}

由于 Rt+1,Rt+2,Rt+3,R_{t+1},R_{t+2},R_{t+3},\dots 均为随机变量,因此 GtG_t 也是随机变量。所以可以计算出 GtG_t 在初始状态 ss 下的期望值

vπ(s)=E[GtSt=s]=E[k=0γkRt+k+1St=s]\begin{align} v_{\pi}(s)&=\mathbb{E}\left[G_t\mid S_t=s\right]\\ &=\mathbb{E}\left[\sum_{k=0}^{\infty}\gamma^kR_{t+k+1}\mid S_t=s\right] \end{align}

其中,vπ(s)v_{\pi}(s) 称为 state-value function(状态价值函数)或简称为状态 ssstate value(状态价值)。state value 被定义为初始状态 ss 的折扣回报的期望,上式即为 state value 的定义式。

可以看到,vπ(s)v_{\pi}(s) 的值依赖于初始状态 ss 和策略 π\pi,但不依赖于初始的时间步 tt

贝尔曼公式

贝尔曼公式是用来分析 state values 的一个工具

注意到 GtG_t 可以被写成

Gt=Rt+1+γRt+2+γ2Rt+3+=Rt+1+γ(Rt+2+γRt+3+)=Rt+1+γGt+1\begin{align} G_t &= R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\dots\\ &= R_{t+1}+\gamma(R_{t+2}+\gamma R_{t+3}+\dots)\\ &=R_{t+1}+\gamma G_{t+1} \end{align}

由此建立了 GtG_tGt+1G_{t+1}联系。因此,vπ(s)v_{\pi}(s) 可以被写成

vπ(s)=E[GtSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1St=s]+γE[Gt+1St=s]\begin{align} v_{\pi}(s) &=\mathbb{E}[G_t|S_t=s]\\ &=\mathbb{E}[R_{t+1}+\gamma G_{t+1}|S_t=s]\\ &=\mathbb{E}[R_{t+1}|S_t=s]+\gamma\mathbb{E}[G_{t+1}|S_t=s] \end{align}

由此可见,要计算 vπ(s)v_{\pi}(s) 只要分别计算 E[Rt+1St=s]\mathbb{E}[R_{t+1}|S_t=s](初始状态 ss 下的即时奖励 Rt+1R_{t+1} 的期望) 和 E[Gt+1St=s]\mathbb{E}[G_{t+1}|S_t=s](初始状态 ss 下的下一个状态的折扣回报 Gt+1G_{t+1} 的期望):

E[Rt+1St=s]=aA(s)π(as)E[Rt+1St=s,At=a]=aA(s)π(as)rR(s,a)p(rs,a)r\begin{align} \mathbb{E}[R_{t+1}|S_t=s]&=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot\mathbb{E}[R_{t+1}|S_t=s,A_t=a]\\ &=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot \sum_{r\in\mathcal{R}(s,a)}p(r|s,a)r \end{align}

E[Gt+1St=s]=sSp(ss)E[Gt+1St=s,St+1=s]=sSp(ss)E[Gt+1St+1=s]=sSp(ss)vπ(s)=sSaA(s)p(ss,a)π(as)vπ(s)=aA(s)π(as)sSp(ss,a)vπ(s)\begin{align} \mathbb{E}[G_{t+1}|S_t=s]&=\sum_{s'\in\mathcal{S}}p(s'|s)\cdot\mathbb{E}[G_{t+1}|S_t=s,S_{t+1}=s']\\ &=\sum_{s'\in\mathcal{S}}p(s'|s)\cdot\mathbb{E}[G_{t+1}|S_{t+1}=s']\\ &=\sum_{s'\in\mathcal{S}}p(s'|s)\cdot v_{\pi}(s')\\ &=\sum_{s'\in\mathcal{S}}\sum_{a\in\mathcal{A}(s)}p(s'|s,a)\pi(a|s)\cdot v_{\pi}(s')\\ &=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s') \end{align}

其中 E[Gt+1St=s]\mathbb{E}[G_{t+1}|S_t=s] 推导的第二个等式是由于 Markov property,最后一个等式交换求和顺序。

Elementwise form

于是,得到 vπ(s)v_{\pi}(s)

vπ(s)=E[Rt+1St=s]+γE[Gt+1St=s]=aA(s)π(as)rR(s,a)p(rs,a)r+γaA(s)π(as)sSp(ss,a)vπ(s)=aA(s)π(as)[rR(s,a)p(rs,a)r+γsSp(ss,a)vπ(s)],for all sS\begin{align} v_{\pi}(s)&=\mathbb{E}[R_{t+1}|S_t=s]+\gamma\mathbb{E}[G_{t+1}|S_t=s]\\ &=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot \sum_{r\in\mathcal{R}(s,a)}p(r|s,a)r+\gamma\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')\\ &=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot\left[\sum_{r\in\mathcal{R}(s,a)}p(r|s,a)r+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')\right],&&\text{for all }s\in\mathcal{S} \end{align}

上述等式即为 Bellman equation(贝尔曼公式),体现了 state values 之间的关系。

Matrix-vector form

设状态空间为 S={si1in}\mathcal{S}=\{s_{i}\mid 1\le i\le n\}。由于贝尔曼公式对任意状态 sSs\in\mathcal{S} 都成立,因此列出所有的状态价值 vπ(s1),vπ(s2),,vπ(sn)v_{\pi}(s_1),v_{\pi}(s_2),\dots,v_{\pi}(s_n) 可以得到 nn 个等式,其中 n=Sn=|\mathcal{S}| 为状态空间的大小,进而可以用矩阵-向量的形式去表示贝尔曼公式。

首先将 element-wise 形式的贝尔曼公式改写为

vπ(s)=rπ(s)+γsSpπ(ss)vπ(s)v_{\pi}(s)=r_{\pi}(s)+\gamma\sum_{s'\in\mathcal{S}}p_{\pi}(s'|s)v_{\pi}(s')

其中

rπ(s)=aA(s)π(as)rR(s,a)p(rs,a)rpπ(ss)=aA(s)π(as)p(ss,a)\begin{align} r_{\pi}(s) &=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot \sum_{r\in\mathcal{R}(s,a)}p(r|s,a)r\\ p_{\pi}(s'|s) &=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot p(s'|s,a) \end{align}

事实上,这里 rπ(s)r_{\pi}(s) 表示状态 ss 下的即时奖励 Rt+1R_{t+1} 的期望值,而 pπ(ss)p_{\pi}(s'|s) 表示状态 ss 转移到状态 ss' 的概率。

则对于任意状态 sis_i,有

vπ(si)=rπ(si)+γsjSpπ(sjsi)vπ(sj)v_{\pi}(s_i)=r_{\pi}(s_i)+\gamma\sum_{s_j\in\mathcal{S}}p_{\pi}(s_j|s_i)v_{\pi}(s_j)

vπ=[vπ(s1),vπ(s2),,vπ(sn)]TRnv_{\pi}=\left[v_{\pi}(s_1),v_{\pi}(s_2),\dots,v_{\pi}(s_n)\right]^T\in\mathbb{R}^nrπ=[rπ(s1),rπ(s2),,rπ(sn)]TRnr_{\pi}=\left[r_{\pi}(s_1),r_{\pi}(s_2),\dots,r_{\pi}(s_n)\right]^T\in\mathbb{R}^n,以及 PπRn×nP_{\pi}\in\mathbb{R}^{n\times n},其中 [Pπ]ij=pπ(sjsi)[P_{\pi}]_{ij}=p_{\pi}(s_j|s_i)(事实上,这里的 PπP_{\pi} 就是当前环境与策略下的状态转移概率矩阵)。则 nnvπ(si)v_{\pi}(s_i) 的等式可以写为矩阵-向量的形式:

vπ=rπ+γPπvπv_{\pi}=r_{\pi}+\gamma P_{\pi}v_{\pi}

其中 vπv_{\pi} 为未知量,而 rπ,γ,Pπr_{\pi},\gamma,P_{\pi} 均为已知量。

例子

下面用 n=4n=4 的例子来更直观地说明:

image-20260415002809697

四个状态 s1,s2,s3,s4s_1,s_2,s_3,s_4 对应的贝尔曼公式的四个等式的矩阵形式如下:

[vπ(s1)vπ(s2)vπ(s3)vπ(s4)]vπ=[rπ(s1)rπ(s2)rπ(s3)rπ(s4)]rπ+γ[pπ(s1s1)pπ(s2s1)pπ(s3s1)pπ(s4s1)pπ(s1s2)pπ(s2s2)pπ(s3s2)pπ(s4s2)pπ(s1s3)pπ(s2s3)pπ(s3s3)pπ(s4s3)pπ(s1s4)pπ(s2s4)pπ(s3s4)pπ(s4s4)]Pπ[vπ(s1)vπ(s2)vπ(s3)vπ(s4)]vπ\underbrace {\left[ \begin{array}{l} v _ {\pi} \left(s _ {1}\right) \\ v _ {\pi} \left(s _ {2}\right) \\ v _ {\pi} \left(s _ {3}\right) \\ v _ {\pi} \left(s _ {4}\right) \end{array} \right]} _ {v _ {\pi}} = \underbrace {\left[ \begin{array}{l} r _ {\pi} \left(s _ {1}\right) \\ r _ {\pi} \left(s _ {2}\right) \\ r _ {\pi} \left(s _ {3}\right) \\ r _ {\pi} \left(s _ {4}\right) \end{array} \right]} _ {r _ {\pi}} + \gamma \underbrace {\left[ \begin{array}{l l l l} p _ {\pi} \left(s _ {1} \mid s _ {1}\right) & p _ {\pi} \left(s _ {2} \mid s _ {1}\right) & p _ {\pi} \left(s _ {3} \mid s _ {1}\right) & p _ {\pi} \left(s _ {4} \mid s _ {1}\right) \\ p _ {\pi} \left(s _ {1} \mid s _ {2}\right) & p _ {\pi} \left(s _ {2} \mid s _ {2}\right) & p _ {\pi} \left(s _ {3} \mid s _ {2}\right) & p _ {\pi} \left(s _ {4} \mid s _ {2}\right) \\ p _ {\pi} \left(s _ {1} \mid s _ {3}\right) & p _ {\pi} \left(s _ {2} \mid s _ {3}\right) & p _ {\pi} \left(s _ {3} \mid s _ {3}\right) & p _ {\pi} \left(s _ {4} \mid s _ {3}\right) \\ p _ {\pi} \left(s _ {1} \mid s _ {4}\right) & p _ {\pi} \left(s _ {2} \mid s _ {4}\right) & p _ {\pi} \left(s _ {3} \mid s _ {4}\right) & p _ {\pi} \left(s _ {4} \mid s _ {4}\right) \end{array} \right]} _ {P _ {\pi}} \underbrace {\left[ \begin{array}{l} v _ {\pi} \left(s _ {1}\right) \\ v _ {\pi} \left(s _ {2}\right) \\ v _ {\pi} \left(s _ {3}\right) \\ v _ {\pi} \left(s _ {4}\right) \end{array} \right]} _ {v _ {\pi}}

将具体值代入就是:

[vπ(s1)vπ(s2)vπ(s3)vπ(s4)]=[0.5(0)+0.5(1)111]+γ[00.50.50000100010001][vπ(s1)vπ(s2)vπ(s3)vπ(s4)]\left[ \begin{array}{l} v _ {\pi} \left(s _ {1}\right) \\ v _ {\pi} \left(s _ {2}\right) \\ v _ {\pi} \left(s _ {3}\right) \\ v _ {\pi} \left(s _ {4}\right) \end{array} \right] = \left[ \begin{array}{c} 0. 5 (0) + 0. 5 (- 1) \\ 1 \\ 1 \\ 1 \end{array} \right] + \gamma \left[ \begin{array}{c c c c} 0 & 0. 5 & 0. 5 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 \end{array} \right] \left[ \begin{array}{l} v _ {\pi} \left(s _ {1}\right) \\ v _ {\pi} \left(s _ {2}\right) \\ v _ {\pi} \left(s _ {3}\right) \\ v _ {\pi} \left(s _ {4}\right) \end{array} \right]

求解贝尔曼公式

由贝尔曼公式的定义可以发现,如果能够求解出贝尔曼公式,就能够得到所有的状态价值函数。所以说贝尔曼公式是分析 state values 的一个很好的工具。求解贝尔曼方程有两种方法,一个是 closed-form(封闭形式)解,另一个是 iterative(迭代)解。

closed-form solution

根据矩阵-向量形式的贝尔曼公式 vπ=rπ+γPπvπv_{\pi}=r_{\pi}+\gamma P_{\pi}v_{\pi},可以得到 vπv_{\pi} 的解析解:

vπ=(IγPπ)1rπv_{\pi}=(I-\gamma P_{\pi})^{-1}r_{\pi}

但在实际使用中,除非状态空间极小且已知所有概率,否则贝尔曼方程组通常不能直接写出封闭解(因为矩阵求逆复杂度 O(S3)O(|\mathcal{S}|^3) 过高),因此需要用迭代方法进行数值求解

iterative solution

根据矩阵-向量形式的贝尔曼公式 vπ=rπ+γPπvπv_{\pi}=r_{\pi}+\gamma P_{\pi}v_{\pi},可以得到求解 vπv_{\pi} 的迭代公式:

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

通过该迭代公式,并赋初值 v0Rnv_{0}\in\mathbb{R}^n,得到值序列 v0,v1,v2,,vk,v_0,v_1,v_2,\dots,v_k,\dots。可以证明当 kk\to\infty 时有

vkvπ=rπ+γPπvπv_{k}\to v_{\pi}=r_{\pi}+\gamma P_{\pi}v_{\pi}

证明如下:

image-20260415010801911

Action value

action value 表示在某一个状态下采取某一个动作所带来的价值。对于状态 ss 和采取的动作 aa,其 action value 定义为折扣回报的期望

qπ(s,a)=E[GtSt=s,At=a]=E[k=0γkRt+k+1St=s,At=a]\begin{align} q_{\pi}(s,a)&=\mathbb{E}\left[G_{t}|S_t=s,A_t=a\right]\\ &=\mathbb{E}\left[\sum_{k=0}^{\infty}\gamma^kR_{t+k+1}\mid S_t=s,A_t=a\right] \end{align}

可以发现,一个状态下的 state value 就是该状态下每一个动作的 action value 的加权和,即

E[GtSt=s]=aA(s)π(as)E[GtSt=s,At=a]\mathbb{E}[G_t|S_t=s]=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot\mathbb{E}[G_t|S_t=s,A_t=a]

因此 state value 可以写为

vπ(s)=aA(s)π(as)qπ(s,a)v_{\pi}(s)=\sum_{a\in\mathcal{A}(s)}\pi(a|s)\cdot q_{\pi}(s,a)

再结合贝尔曼公式的 element-wise 形式,可以得到

qπ(s,a)=rR(s,a)p(rs,a)r+γsSp(ss,a)vπ(s)q_{\pi}(s,a)=\sum_{r\in\mathcal{R}(s,a)}p(r|s,a)r+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')

根据上式可以发现**根据 state value 可以求解 action value **。