贝尔曼公式,描述当前状态的值函数与后续状态值函数之间的关系,可以通过直接求解或迭代更新将状态值函数 VπV_πVπ收敛到真实值,用于评估给定策略 πππ 的长期回报,进而评价该策略的好坏

预备知识:

π(a∣s)\pi(a|s)π(as):s状态采取a动作的概率。
pπ(s′∣s)p_{π}(s^{'}|s)pπ(ss)πππ策略时,s状态下,进入s′s^{'}s状态的概率。
p(s′∣s,a)p(s^{'}|s,a)p(ss,a):s状态下,采取a动作后,进入s′s^{'}s状态的概率。
p(s′∣s)=π(a∣s)∑ap(s′∣s,a) p(s^{'}|s)=\pi(a|s)\sum_{a}^{} p(s^{'}|s,a) p(ss)=π(as)ap(ss,a)
Rt+1R_{t+1}Rt+1:是智能体在状态sts_tst(确定量)执行动作AtA_tAt后,转移到状态St+1S_{t+1}St+1(未知量)时获得的即时奖励。是一个随机变量。
Rt+1R_{t+1}Rt+1随机性来源:宏观上讲,奖励值应该在环境中获取,但t+1时刻相对于当前(t时刻)来说是“下一个时刻”,因此是一个“未定值”,也就是一个随机变量;微观上讲,智能体在sts_tst状态做出什么动作AtA_tAt,以及做出确定动作ata_{t}at后进入什么状态St+1S_{t+1}St+1,以及进入确定状态st+1s_{t+1}st+1后得到多大的奖励值都有可能是随机的,因此下一时刻的奖励值是一个随机变量。并且t时刻以后的奖励,相对t时刻来说,都是随机变量。
GtG_{t}Gt:t时刻以后的累计折扣奖励。是一个随机变量
Gt=Rt+1+γRt+2+γ2Rt+3+....γtend−t−1Rtend=Rt+1+γGt+1 \begin{equation*} %加*表示不对公式编号 \begin{split} G_{t} &=R_{t+1}+γ^{}R_{t+2}+γ^{2}R_{t+3}+....γ^{tend-t-1}R_{tend}\\ &=R_{t+1}+γG_{t+1}\\ \end{split} \end{equation*} Gt=Rt+1+γRt+2+γ2Rt+3+....γtendt1Rtend=Rt+1+γGt+1

贝尔曼公式的样子及其推倒

Vπ(s)V_π(s)Vπ(s)πππ策略时,状态值函数;状态s下获得奖励值的期望。∀s∈S\forall s \in SsS
Vπ(s)=E[Gt∣St=s](定义)=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=∑s′pπ(s′∣s)∑rp(r∣s′)r+γ∑s′pπ(s′∣s)E[Gt+1∣St+1=s′]=∑aπ(a∣s)∑s′p(s′∣s,a)∑rp(r∣s′)r+γ∑aπ(a∣s)∑s′p(s′∣s,a)Vπ(s′)=∑aπ(a∣s)∑rp(r∣s,a)r+γ∑aπ(a∣s)∑s′p(s′∣s,a)Vπ(s′)=∑aπ(a∣s)[∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)Vπ(s′)](贝尔曼公式)Vπ(s)=E[Gt∣St=s](定义)=E[Rt+1∣St=s]+γE[Gt+1∣St=s]=rπ(s)+γ∑s′pπ(s′∣s)E[Gt+1∣St+1=s′]=rπ(s)+γ∑s′pπ(s′∣s)Vπ(s′)(贝尔曼公式的另一者更简洁的表示形式)其中rπ(s)为,π策略时,s状态本次的奖励的期望rπ(s)=∑aπ(a∣s)∑rp(r∣s,a)r \begin{equation*} \begin{split} V_π(s) &=E[ G_{t}|S_t=s ] (定义)\\ &=E[ R_{t+1}|S_t=s ] + γ E[ G_{t+1} | S_t=s ] \\ &=\sum_{ s^{'} } ^{} p_{\pi}( s^{'} | s) \sum_{r}^{} p( r | s^{'} ) r + γ \sum_{ s^{'} }^{} p_{\pi}( s^{'} | s ) E[ G_{t+1} | S_{t+1}=s^{'} ]\\ &=\sum_{a}^{} \pi(a|s)\sum_{s^{'}}^{} p(s^{'}|s,a)\sum_{r}^{} p(r|s^{'})r+γ\sum_{a}^{} \pi(a|s)\sum_{s^{'}}^{} p(s^{'}|s,a)V_π(s^{'})\\ &=\sum_{a}^{} \pi(a|s) \sum_{r}^{} p(r|s,a)r+γ\sum_{a}^{} \pi(a|s)\sum_{s^{'}}^{} p(s^{'}|s,a)V_π(s^{'})\\ &=\sum_{a}^{} \pi(a|s) \left[\sum_{r}^{} p(r|s,a)r+γ\sum_{s^{'}}^{} p(s^{'}|s,a)V_π(s^{'}) \right ](贝尔曼公式)\\ V_π(s) &=E[ G_{t}|S_t=s ] (定义)\\ &=E[ R_{t+1}|S_t=s ] + γ E[ G_{t+1} | S_t=s ] \\ &=r_{\pi}(s) + γ \sum_{ s^{'} }^{} p_{\pi}( s^{'} | s ) E[ G_{t+1} | S_{t+1}=s^{'} ]\\ &=r_{\pi}(s) + γ \sum_{ s^{'} }^{} p_{\pi}( s^{'} | s ) V_π(s^{'})(贝尔曼公式的另一者更简洁的表示形式)\\ 其中& r_{\pi}(s)为,π策略时,s状态本次的奖励的期望\\ r_{\pi}(s)&=\sum_{a}^{} \pi(a|s)\sum_{r}^{} p(r|s,a)r\\ \end{split} \end{equation*} Vπ(s)Vπ(s)其中rπ(s)=E[GtSt=s](定义)=E[Rt+1St=s]+γE[Gt+1St=s]=spπ(ss)rp(rs)r+γspπ(ss)E[Gt+1St+1=s]=aπ(as)sp(ss,a)rp(rs)r+γaπ(as)sp(ss,a)Vπ(s)=aπ(as)rp(rs,a)r+γaπ(as)sp(ss,a)Vπ(s)=aπ(as) rp(rs,a)r+γsp(ss,a)Vπ(s) (贝尔曼公式)=E[GtSt=s](定义)=E[Rt+1St=s]+γE[Gt+1St=s]=rπ(s)+γspπ(ss)E[Gt+1St+1=s]=rπ(s)+γspπ(ss)Vπ(s)(贝尔曼公式的另一者更简洁的表示形式)rπ(s)为,π策略时,s状态本次的奖励的期望=aπ(as)rp(rs,a)r
向量形式表示
vπ=rπ+γPπvπ v_π=r_π+γP_{π} v_{π} vπ=rπ+γPπvπ
其中
vπ=[Vπ(s1),Vπ(s2),...,Vπ(sn)]v_π = [V_π(s_1),V_π(s_2),...,V_π(s_n)]vπ=[Vπ(s1),Vπ(s2),...,Vπ(sn)]
rπ=[rπ(s1),rπ(s2),...,rπ(sn)]r_π = [r_π(s_1),r_π(s_2),...,r_π(s_n)]rπ=[rπ(s1),rπ(s2),...,rπ(sn)]
Pπ∈Rn∗n(系数矩阵)P_π \in R^{n*n}(系数矩阵)PπRnn(系数矩阵)

Qπ(s,a)Q_π(s,a)Qπ(s,a):动作值函数;πππ策略时,状态s下,采取a动作获得奖励值的期望。
关于动作值函数也有一个贝尔曼公式。(暂略)

此时我们再来会看这句话:
贝尔曼公式,描述当前状态的值函数与后续状态值函数之间的关系,可以通过直接求解或迭代更新将状态值函数 VπV_πVπ收敛到真实值,用于评估给定策略 πππ的长期回报,进而评价该策略的好坏

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐