首页 > 其他分享 >贝尔曼方程【Bellman Equation】

贝尔曼方程【Bellman Equation】

时间:2024-03-21 11:31:50浏览次数:27  
标签:aligned Equation Bellman St 贝尔曼 pi sum gamma

强化学习笔记

主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门.

第一章 强化学习基本概念
第二章 贝尔曼方程


文章目录


第一章我们介绍了强化学习的基本概念,本章介绍强化学习中一个重要的概念——贝尔曼方程.

一、状态值函数贝尔曼方程

贝尔曼方程(Bellman Equation),也称为贝尔曼期望方程,用于计算给定策略 π \pi π时价值函数在策略指引下所采轨迹上的期望。考虑如下一个随机轨迹:

S t → A t R t + 1 , S t + 1 → A t + 1 R t + 2 , S t + 2 → A t + 2 R t + 3 , … \begin{aligned} &&&&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},\ldots \\ \end{aligned} ​​​​St​At​ ​Rt+1​,St+1​At+1​ ​Rt+2​,St+2​At+2​ ​Rt+3​,…​
那么累积回报 G t G_t Gt​可以写成如下形式:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … , = R t + 1 + γ ( R t + 2 + γ R t + 3 + … ) , = R t + 1 + γ G t + 1 . \begin{aligned} G_t &=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\ldots, \\ &=R_{t+1}+\gamma(R_{t+2}+\gamma R_{t+3}+\ldots), \\ &=R_{t+1}+\gamma G_{t+1}. \end{aligned} Gt​​=Rt+1​+γRt+2​+γ2Rt+3​+…,=Rt+1​+γ(Rt+2​+γRt+3​+…),=Rt+1​+γGt+1​.​
状态值函数的贝尔曼方程为:

v π ( s ) ≐ E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] , ∀ s ∈ S . \begin{aligned} v_{\pi}(s)& \doteq\mathbb{E}_{\pi}[G_{t}\mid S_{t}=s] \\ &=\mathbb{E}_{\pi}[R_{t+1}+\gamma G_{t+1}\mid S_{t}=s] \\ &=\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\Big[r+\gamma v_\pi(s')\Big],\quad\forall s\in\mathcal{S}. \end{aligned} vπ​(s)​≐Eπ​[Gt​∣St​=s]=Eπ​[Rt+1​+γGt+1​∣St​=s]=a∑​π(a∣s)s′,r∑​p(s′,r∣s,a)[r+γvπ​(s′)],∀s∈S.​

  • 由值函数的定义出发,得到了一个关于 v v v的递推关系

下面再来详细的推导一下贝尔曼方程,由回报的定义,可以将 G t G_t Gt​拆成两部分:
v π ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] . \begin{aligned} v_{\pi}\left(s\right)& =\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{aligned} vπ​(s)​=E[Gt​∣St​=s]=E[Rt+1​+γGt+1​∣St​=s]=E[Rt+1​∣St​=s]+γE[Gt+1​∣St​=s].​
首先考虑第一部分 E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_t=s] E[Rt+1​∣St​=s],全概率公式的应用:

E [ R t + 1 ∣ S t = s ] = ∑ a π ( a ∣ s ) E [ R t + 1 ∣ S t = s , A t = a ] = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r . \begin{aligned}\mathbb{E}[R_{t+1}|S_t=s]&=\sum_a\pi(a|s)\mathbb{E}[R_{t+1}|S_t=s,A_t=a]\\&=\sum_a\pi(a|s)\sum_rp(r|s,a)r. \end{aligned} E[Rt+1​∣St​=s]​=a∑​π(a∣s)E[Rt+1​∣St​=s,At​=a]=a∑​π(a∣s)r∑​p(r∣s,a)r.​
再来考虑第二部分 E [ G t + 1 ∣ S t = s ] \mathbb{E}[G_{t+1}|S_t=s] E[Gt+1​∣St​=s],第二个等式用到马尔可夫性质和全概率公式:

E [ G t + 1 ∣ S t = s ] = ∑ s ′ E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ] p ( s ′ ∣ s ) = ∑ s ′ E [ G t + 1 ∣ S t + 1 = s ′ ] p ( s ′ ∣ s ) = ∑ s ′ v π ( s ′ ) p ( s ′ ∣ s ) = ∑ v π ( s ′ ) ∑ p ( s ′ ∣ s , a ) π ( a ∣ s ) . \begin{aligned} \mathbb{E}\left[G_{t+1}|S_{t}=s\right]& =\sum_{s^{\prime}}\mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s^{\prime}]p(s^{\prime}|s) \\ &=\sum_{s'}\mathbb{E}[G_{t+1}|S_{t+1}=s']p(s'|s) \\ &=\sum_{s^{\prime}}v_{\pi}(s^{\prime})p(s^{\prime}|s) \\ &=\sum v_{\pi}(s^{\prime})\sum p(s^{\prime}|s,a)\pi(a|s). \end{aligned} E[Gt+1​∣St​=s]​=s′∑​E[Gt+1​∣St​=s,St+1​=s′]p(s′∣s)=s′∑​E[Gt+1​∣St+1​=s′]p(s′∣s)=s′∑​vπ​(s′)p(s′∣s)=∑vπ​(s′)∑p(s′∣s,a)π(a∣s).​
以上两部分合起来:
v π ( s ) = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] , = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r ⏟ mean of immediate rewards + γ ∑ a π ( a ∣ s ) ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) , ⏟ mean of future rewards = ∑ a π ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) ] , ∀ s ∈ S = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] , ∀ s ∈ S . \begin{aligned} v_{\pi}\left(s\right)& =\mathbb{E}[R_{t+1}|S_{t}=s]+\gamma\mathbb{E}[G_{t+1}|S_{t}=s], \\ &\begin{aligned}=\underbrace{\sum_a\pi(a|s)\sum_rp(r|s,a)r}_{\text{mean of immediate rewards}}+\underbrace{\gamma\sum_a\pi(a|s)\sum_{s'}p(s'|s,a)v_\pi(s'),}_{\text{mean of future rewards}}\end{aligned} \\ &=\sum_a\pi(a|s)\left[\sum_rp(r|s,a)r+\gamma\sum_{s^{\prime}}p(s^{\prime}|s,a)v_\pi(s^{\prime})\right],\forall s\in\mathcal{S}\\ &=\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\Big[r+\gamma v_\pi(s')\Big],\quad \forall s\in\mathcal{S}. \end{aligned} vπ​(s)​=E[Rt+1​∣St​=s]+γE[Gt+1​∣St​=s],=mean of immediate rewards a∑​π(a∣s)r∑​p(r∣s,a)r​​+mean of future rewards γa∑​π(a∣s)s′∑​p(s′∣s,a)vπ​(s′),​​​=a∑​π(a∣s)[r∑​p(r∣s,a)r+γs′∑​p(s′∣s,a)vπ​(s′)],∀s∈S=a∑​π(a∣s)s′,r∑​p(s′,r∣s,a)[r+γvπ​(s′)],∀s∈S.​

Note:

  • 贝尔曼公式给出了值函数的一个递推关系式
  • 当前状态的值函数,可以由下一状态的值函数完全确定

下面的树状图形象的刻画了贝尔曼方程中几个求和符合,各变量之间的关系:

截屏2024-03-17 12.29.55

实例:
仍然是agent-网格问题,绿色箭头表示当前策略:
截屏2024-03-19 14.56.47

截屏2024-03-19 14.57.14

二、贝尔曼方程的向量形式

我们将贝尔曼公式拆成两项之和的形式:
v π ( s ) = r π ( s ) + γ ∑ s ′ p π ( s ′ ∣ s ) v π ( s ′ ) , v_\pi(s)=r_\pi(s)+\gamma\sum_{s^{\prime}}p_\pi(s^{\prime}|s)v_\pi(s^{\prime}), vπ​(s)=rπ​(s)+γs′∑​pπ​(s′∣s)vπ​(s′),其中:
r π ( s ) ≜ ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r , p π ( s ′ ∣ s ) ≜ ∑ a π ( a ∣ s ) p ( s ′ ∣ s , a ) . \begin{aligned}r_\pi(s)\triangleq\sum_a\pi(a|s)\sum_rp(r|s,a)r,\quad p_\pi(s'|s)\triangleq\sum_a\pi(a|s)p(s'|s,a)\end{aligned}. rπ​(s)≜a∑​π(a∣s)r∑​p(r∣s,a)r,pπ​(s′∣s)≜a∑​π(a∣s)p(s′∣s,a)​.

假设状态为 s i ( i = 1 , … , n ) s_i(i=1, \ldots, n) si​(i=1,…,n),对于状态 s i s_i si​, Bellman方程为:
v π ( s i ) = r π ( s i ) + γ ∑ s j p π ( s j ∣ s i ) v π ( s j ) ∀ i = 1 , … , n v_\pi\left(s_i\right)=r_\pi\left(s_i\right)+\gamma \sum_{s_j} p_\pi\left(s_j \mid s_i\right) v_\pi\left(s_j\right) \quad\forall i=1,\ldots ,n vπ​(si​)=rπ​(si​)+γsj​∑​pπ​(sj​∣si​)vπ​(sj​)∀i=1,…,n

把所有状态的方程放在一起重写成矩阵-向量的形式
v π = r π + γ P π v π v_\pi=r_\pi+\gamma P_\pi v_\pi vπ​=rπ​+γPπ​vπ​
其中

  • v π = [ v π ( s 1 ) , … , v π ( s n ) ] T ∈ R n v_\pi=\left[v_\pi\left(s_1\right), \ldots, v_\pi\left(s_n\right)\right]^T \in \mathbb{R}^n vπ​=[vπ​(s1​),…,vπ​(sn​)]T∈Rn
  • r π = [ r π ( s 1 ) , … , r π ( s n ) ] T ∈ R n r_\pi=\left[r_\pi\left(s_1\right), \ldots, r_\pi\left(s_n\right)\right]^T \in \mathbb{R}^n rπ​=[rπ​(s1​),…,rπ​(sn​)]T∈Rn
  • P π ∈ R n × n P_\pi \in \mathbb{R}^{n \times n} Pπ​∈Rn×n,其中 [ P π ] i j = p π ( s j ∣ s i ) \left[P_\pi\right]_{i j}=p_\pi\left(s_j \mid s_i\right) [Pπ​]ij​=pπ​(sj​∣si​)为状态转移矩阵

实例:

截屏2024-03-19 15.15.54

给定一个策略,算出出相应的状态值被称为策略评估,这是强化学习的一个基本问题。而通过上面的介绍我们知道要得到state value,可以求解贝尔曼方程。由刚刚介绍的贝尔曼方程矩阵形式:
v π = r π + γ P π v π v_\pi=r_\pi+\gamma P_\pi v_\pi vπ​=rπ​+γPπ​vπ​易得:
v π = ( I − γ P π ) − 1 r π v_\pi=(I-\gamma P_\pi)^{-1}r_\pi vπ​=(I−γPπ​)−1rπ​
但矩阵的求逆是 O ( n 3 ) O(n^3) O(n3)的复杂度,当矩阵很大时,求解效率很低。所以我们通常不用这个方法来解贝尔曼方程,而是采用迭代法(下一章详细介绍).迭代法格式如下:
v k + 1 = r π + γ P π v k \begin{aligned}v_{k+1}=r_\pi+\gamma P_\pi v_k\end{aligned} vk+1​=rπ​+γPπ​vk​​给定一个初始值 v 0 v_0 v0​,可以得到迭代序列 { v 0 , v 1 , v 2 , … } . \{v_0,v_1,v_2,\ldots\}. {v0​,v1​,v2​,…}. 并且可以证明

v k → v π = ( I − γ P π ) − 1 r π , k → ∞ v_k\to v_\pi=(I-\gamma P_\pi)^{-1}r_\pi,\quad k\to\infty vk​→vπ​=(I−γPπ​)−1rπ​,k→∞
也就是可以用迭代法,通过有限次迭代得到一个近似值.

三、动作值函数

由状态值函数与动作值函数的关系,我们有:
v π ( s ) = ∑ a π ( a ∣ s ) q π ( s , a ) . v_\pi(s)=\sum_a\pi(a|s)q_\pi(s,a). vπ​(s)=a∑​π(a∣s)qπ​(s,a).
上小节关于状态值函数的贝尔曼方程为:
v π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] v_{\pi}(s)=\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\Big[r+\gamma v_\pi(s')\Big] vπ​(s)=a∑​π(a∣s)s′,r∑​p(s′,r∣s,a)[r+γvπ​(s′)]
两式对比我们可以得到动作值函数的贝尔曼方程
q π ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] q_\pi(s,a)=\sum_{s',r}p(s',r|s,a)\Big[r+\gamma v_\pi(s')\Big] qπ​(s,a)=s′,r∑​p(s′,r∣s,a)[r+γvπ​(s′)]
总结一下:

截屏2024-03-17 13.15.54

参考资料

  1. Zhao, S… Mathematical Foundations of Reinforcement Learning. Springer Nature Press and Tsinghua University Press.
  2. Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. MIT press, 2018.

标签:aligned,Equation,Bellman,St,贝尔曼,pi,sum,gamma
From: https://blog.csdn.net/v20000727/article/details/136871307

相关文章

  • 有限制的 bellman_ford 算法
    题目链接1.有限制的\(Bellman\_Ford\)时间复杂度:\(O(N*M)\)在传统的\(Bellman\_Ford\)中,可以处理边数不大于\(K\)条边的最短距离但我们只要加一条限制(实际上只多了两行代码)就可以实现求恰好等于\(K\)条边的最短距离具体的就在于其核心代码中:for(inti=0;i......
  • SciTech-Mathmatics-automatic equation Numbering / \tag{E} / \label{E} / \ref{
    https://discourse.devontechnologies.com/t/numbering-and-tagging-equations-in-mathjax/69524/2IwentaroundincirclestryingtofigureouthowtonumberandtagequationsinMathJaxinDT3.TheMathJaxDocsshowshowtodoautomaticequationnumbering21......
  • Differential Equations
    Firstorderdifferentialequations:$\frac{{\rmd}y}{{\rmd}x}+Fy=G$​$$\begin{aligned}&\frac{{\rmd}y}{{\rmd}x}+Fy=G\qquadz\frac{{\rmd}y}{{\rmd}x}+Fzy=Gz\qquadz\frac{{\rmd}y}{{\rmd}x}+\frac{{\rmd}z}{{\rmd}x}y=\frac{{\rmd......
  • 单源最短路径算法之bellman-ford
    单源最短路径算法之\(bellman-ford\)以边为研究对象单起点多终允许有负边权\(bellman-ford\)的工作原理假设\(n\)个点\(m\)条有向边的图,求\(s\)为起点的最短路条以\(s\)出发的最短路,最多包含\(n\)个点,\(n-1\)条边对于一条边\((x,y,w)\),\(y\)可能被\(x\)......
  • Bellman-ford 详解
    讲解  模板 第1题    bellman-ford练习查看测评数据信息给定一个n个点m条边的有向图,图中可能存在重边但不存在自环,边权可能为负数。请你求出从1号点到n号点最短距离,如果无法从1号点走到n号点,输出impossible。1≤n≤500,1≤m≤10000,任意边长的绝对值......
  • Bellman-Ford
    \(Bellman-Ford\)求单源最短路,可以判断有无负权回路(若有,则不存在最短路),时效性较好,时间复杂度\(O(VE)\)。\(Bellman-Ford\)算法是求解单源最短路径问题的一种算法。单源点的最短路径问题是指:给定一个加权有向图\(G\)和源点\(s\),对于图\(G\)中的任意一点\(t\),求从\(s\)到\(t\)......
  • SciTech-Math-AdvancedAlgebra-Dot Product + Linear Equations And Inverse Matrices
    LinearEquationsAndInverseMatrices:https://math.mit.edu/~gs/dela/dela_4-1.pdfDotProduct:Theotherimportantoperationonvectorsisakindofmultiplication.Thisisnotordinarymultiplicationandwedon'twritevw.Theoutputfromvandwwi......
  • [ARC158D] Equation
    题意给定整数\(n\)以及模数\(p\)。你需要构造三元组\((x,y,z)\)满足:\(1\lex<y<z\lep-1\)\((x+y+z)(x^n+y^n+z^n)(x^{2n}+y^{2n}+z^{2n})\bmodx^{3n}+y^{3n}+z^{3n}(modp)\)Sol注意到你如果将左边的式子化简过后,一......
  • Bellman-Ford算法实现带有负权边的单源最短路
    Bellman-Ford算法对于Dijkstra算法,不妨给出这样一个例子graphLRA((A))-->|1|C((C))A-->|2|D((D))D-->|-4|C根据Dijkstra算法的流程,选取A为源点。更新与A邻接的顶点,有C和D。选取已更新顶点中距离A的最小值,显然选择边权为1的边所连接的顶点C,并将C收入最短路集合S中,此......
  • Bellman-Ford Algorithm 算法
    一、处理问题:负权值有向图单原点最短路径问题二、算法描述:假设带权值有向图中没有包含负权值环。定义一个距离数组,dist[0...n-1],dis[i]表示从原点到i的最短路径值初始化数组,假设一开始在原点src出发,终点为dst,那么dist[src]=0遍历所有的有向边,当前遍历边(a,b),a->b,权值为c,那么......