[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程

本人为强化学习小白,为了在后续科研的过程中能够较好的结合强化学习来做相关研究,特意买了西湖大学赵世钰老师撰写的《强化学习数学原理》中文版这本书,并结合赵老师的讲解视频来学习和更深刻的理解强化学习相关概念,知识和算法技术等。学习笔记是记录自己在看书和视频过程当中的一些自己的想法,通过基于书籍、视频和自己的话讲清楚相关理论知识和算法技术。希望能帮助到同样在学习强化学习的同学和同行等。

本文章为西湖大学赵世钰老师《强化学习数学原理》中文版第2章 贝尔曼方程的学习笔记,在书中内容的基础上增加了自己的一些理解内容和相关补充内容。

2.1 启发示例1:为什么回报很重要?

核心概念: 状态值,作为一个评价策略好坏的指标
核心工具: 贝尔曼方程,描述了所有状态值之间的关系。
通过求解贝尔曼方程,得到状态值,进而可以评价一个策略的好坏。

回顾: 回报可以评价一个策略的好坏。
通过如图2.1所示三个在状态 s 1 s_1 s1策略不同,其他状态策略相同的例子来说明回报的重要性,并分析三个不同策略的好坏。
同一状态不同策略的三个例子

图2.1 同一状态不同策略的三个例子

直接观察结果:

  • 左侧策略,从状态 s 1 s_1 s1出发不会进入禁止区域,回报最大,策略最好。
  • 中间策略,从状态 s 1 s_1 s1出发一定会进入禁止区域,回报最小,策略最坏。
  • 右侧策略,从状态 s 1 s_1 s1出发有0.5的概率进入禁止区域,回报一般,策略不好也不坏。

数学计算结果:

  • 左侧策略,轨迹为 s 1 → s 3 → s 4 → s 4 ⋯ s_1\rightarrow s_3\rightarrow s_4\rightarrow s_4 \cdots s1s3s4s4,计算对应折扣回报为
    r e t u r n 1 = 0 + γ 1 + γ 2 1 + ⋯ = γ ( 1 + γ + γ 2 + ⋯ ) = γ 1 − γ (1) \begin{align}\mathrm{return}_{1}&=0+\gamma1+\gamma^21+\cdots\\ &=\gamma(1+\gamma+\gamma^2+\cdots)\\&=\frac{\gamma}{1-\gamma}\end{align}\tag{1} return1=0+γ1+γ21+=γ(1+γ+γ2+)=1γγ(1)
  • 中间策略,轨迹为 s 1 → s 2 → s 4 → s 4 ⋯ s_1\rightarrow s_2\rightarrow s_4\rightarrow s_4 \cdots s1s2s4s4,计算对应折扣回报为
    r e t u r n 2 = − 1 + γ 1 + γ 2 1 + ⋯ = − 1 + γ ( 1 + γ + γ 2 + ⋯ ) = − 1 + γ 1 − γ (2) \begin{align}\mathrm{return}_{2}&=-1+\gamma1+\gamma^21+\cdots\\ &=-1+\gamma(1+\gamma+\gamma^2+\cdots)\\&=-1+\frac{\gamma}{1-\gamma}\end{align}\tag{2} return2=1+γ1+γ21+=1+γ(1+γ+γ2+)=1+1γγ(2)
  • 右侧策略,得到两条轨迹,分别为 s 1 → s 2 → s 4 → s 4 ⋯ s_1\rightarrow s_2\rightarrow s_4\rightarrow s_4 \cdots s1s2s4s4 s 1 → s 3 → s 4 → s 4 ⋯ s_1\rightarrow s_3\rightarrow s_4\rightarrow s_4 \cdots s1s3s4s4。两条轨迹各有0.5概率发生,其对应的折扣回报分别为 r e t u r n 1 \mathrm{return}_{1} return1 r e t u r n 2 \mathrm{return}_{2} return2,则平均回报计算为
    r e t u r n 3 = 0.5 ( γ 1 − γ ) + 0.5 ( − 1 + γ 1 − γ ) = − 0.5 + γ 1 − γ (3) \begin{align}\mathrm{return}_{3}&=0.5(\frac{\gamma}{1-\gamma})+0.5(-1+\frac{\gamma}{1-\gamma})\\ &=-0.5+\frac{\gamma}{1-\gamma}\end{align}\tag{3} return3=0.5(1γγ)+0.5(1+1γγ)=0.5+1γγ(3)
    结论:根据式(1),(2)和(3)的计算结果可知
    r e t u r n 1 > r e t u r n 3 > r e t u r n 2 (4) \begin{align}\mathrm{return}_{1}>\mathrm{return}_{3}>\mathrm{return}_{2}\end{align}\tag{4} return1>return3>return2(4)
    数学计算折扣回报得到的结果和直接观察得到的结果是一致的。

注:例子得出的结论:回报可以评价一个策略的好坏。但是需要注意的是,回报的定义针对的是一条轨迹,但是 r e t u r n 3 \mathrm{return}_{3} return3为两条轨迹折扣回报的平均值,这其实就是后续要介绍的状态值

2.2 启发示例2:如何计算回报?

  • 定义法:回报定义为沿轨迹收集的所有奖励的折扣总和。如图2.2所示,忽略禁止区域和目标区域,给出一个简单的例子来计算回报。
    如何计算回报示例
图2.2 如何计算回报示例

定义 v i v_{i} vi为从状态 s i s_{i} si出发得到的回报, i = 1 , 2 , 3 , 4 i=1,2,3,4 i=1,2,3,4,则对应状态出发得到的折扣回报为
v 1 = r 1 + γ r 2 + γ 2 r 3 + γ 3 r 4 + ⋯ v 2 = r 2 + γ r 3 + γ 2 r 4 + γ 3 r 1 + ⋯ v 3 = r 3 + γ r 4 + γ 2 r 1 + γ 3 r 2 + ⋯ v 4 = r 4 + γ r 1 + γ 2 r 2 + γ 3 r 3 + ⋯ (5) \begin{align}v_{1}&=r_1+\gamma r_2+\gamma^2 r_3+\gamma^3 r_4+\cdots\\ v_{2}&=r_2+\gamma r_3+\gamma^2 r_4+\gamma^3 r_1+\cdots\\ v_{3}&=r_3+\gamma r_4+\gamma^2 r_1+\gamma^3 r_2+\cdots\\ v_{4}&=r_4+\gamma r_1+\gamma^2 r_2+\gamma^3 r_3+\cdots\end{align}\tag{5} v1v2v3v4=r1+γr2+γ2r3+γ3r4+=r2+γr3+γ2r4+γ3r1+=r3+γr4+γ2r1+γ3r2+=r4+γr1+γ2r2+γ3r3+(5)

  • 自举法(bootstrapping):观察式(5)中针对每个状态出发获得回报的计算结果,可以改写为
    v 1 = r 1 + γ ( r 2 + γ r 3 + γ 2 r 4 + ⋯ ) = r 1 + γ v 2 v 2 = r 2 + γ ( r 3 + γ r 4 + γ 2 r 1 + ⋯ ) = r 2 + γ v 3 v 3 = r 3 + γ ( r 4 + γ r 1 + γ 2 r 2 + ⋯ ) = r 3 + γ v 4 v 4 = r 4 + γ ( r 1 + γ r 2 + γ 2 r 3 + ⋯ ) = r 4 + γ v 1 (6) \begin{align}v_{1}&=r_1+\gamma(r_2+\gamma r_3+\gamma^2 r_4+\cdots)=r_1+\gamma v_{2}\\ v_{2}&=r_2+\gamma(r_3+\gamma r_4+\gamma^2 r_1+\cdots)=r_2+\gamma v_{3}\\ v_{3}&=r_3+\gamma(r_4+\gamma r_1+\gamma^2 r_2+\cdots)=r_3+\gamma v_{4}\\ v_{4}&=r_4+\gamma(r_1+\gamma r_2+\gamma^2 r_3+\cdots)=r_4+\gamma v_{1}\end{align}\tag{6} v1v2v3v4=r1+γ(r2+γr3+γ2r4+)=r1+γv2=r2+γ(r3+γr4+γ2r1+)=r2+γv3=r3+γ(r4+γr1+γ2r2+)=r3+γv4=r4+γ(r1+γr2+γ2r3+)=r4+γv1(6)式(6)的矩阵-向量形式的线性方程为
    [ v 1 v 2 v 3 v 4 ] ⏟ v ∈ R 4 = [ r 1 r 2 r 3 r 4 ] + [ γ v 2 γ v 3 γ v 4 γ v 5 ] = [ r 1 r 2 r 3 r 4 ] ⏟ r ∈ R 4 + [ 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 ] ⏟ P ∈ R 4 × 4 [ v 1 v 2 v 3 v 4 ] ⏟ v ∈ R 4 (7) \begin{align}\underbrace{ \begin{bmatrix} v_{1}\\ v_{2}\\ v_{3}\\ v_{4} \end{bmatrix}}_{v\in\mathbb{R}^{4}}= \begin{bmatrix} r_{1}\\ r_{2}\\ r_{3}\\ r_{4} \end{bmatrix}+ \begin{bmatrix} \gamma v_{2}\\ \gamma v_{3}\\ \gamma v_{4}\\ \gamma v_{5} \end{bmatrix}=\underbrace{ \begin{bmatrix} r_{1}\\ r_{2}\\ r_{3}\\ r_{4} \end{bmatrix}}_{r\in\mathbb{R}^{4}}+\underbrace{ \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \end{bmatrix}}_{P\in\mathbb{R}^{4\times 4}} \underbrace{ \begin{bmatrix} v_{1}\\ v_{2}\\ v_{3}\\ v_{4} \end{bmatrix}}_{v\in\mathbb{R}^{4}} \end{align}\tag{7} vR4 v1v2v3v4 = r1r2r3r4 + γv2γv3γv4γv5 =rR4 r1r2r3r4 +PR4×4 0001100001000010 vR4 v1v2v3v4 (7)式(7)的简化形式为
    v = r + P v v=r+Pv v=r+Pv总结:由式(5)可知,从不同状态出发的回报值式彼此依赖的,即, v 1 v_{1} v1依赖于 v 2 v_{2} v2 v 2 v_{2} v2依赖于 v 3 v_{3} v3 v 3 v_{3} v3依赖于 v 4 v_{4} v4 v 4 v_{4} v4又依赖于 v 1 v_{1} v1。这也反映了自举的思想,即, v 1 v_{1} v1 v 2 v_{2} v2 v 3 v_{3} v3 v 4 v_{4} v4,可以从其自身 v 2 v_{2} v2 v 3 v_{3} v3 v 4 v_{4} v4 v 1 v_{1} v1得到。
    从数学的角度,由式(6)给出的矩阵-向量形式的线性方程为可以很好的理解自举。同时通过线性代数的知识可以很容易得到方程的解为
    v = ( I − γ P ) − 1 r v=(I-\gamma P)^{-1}r v=(IγP)1r这里, I ∈ R 4 × 4 I\in\mathbb{R}^{4\times 4} IR4×4为单位矩阵,且 ( I − γ P ) (I-\gamma P) (IγP)一定是可逆的,这在后续的学习中将会被证明。、

注:方程(6)即为图2所示例子对应的贝尔曼方程,方程(7)即为这个贝尔曼方程的矩阵-向量形式。
贝尔曼方程的核心思想:从一个状态出发获得的回报依赖于从其他状态出发时获得的回报。

2.3 状态值

注:严格定义下,回报只能用来评价一个确定策略的好坏,对于一般化的随机情况(从一个状态出发得到不同策略和回报的可能性),用回报来评价这种策略的好坏是不适用的。这时候就要引入状态值的概念。

首先给出一个一般化的过程,即,在任意时刻( t = 0 , 1 , 2 , … t=0,1,2,\dots t=0,1,2,)智能体处于任意状态 S t S_{t} St按照某一策略 π \pi π执行动作 A t A_{t} At,并下一时刻转移到状态 S t + 1 S_{t+1} St+1且获得即时奖励 R t + 1 R_{t+1} Rt+1的过程
S t → A t S t + 1 , R t + 1 (8) S_{t}\rightarrow^{A_{t}}S_{t+1},R_{t+1}\tag{8} StAtSt+1,Rt+1(8)其中, S t , S t + 1 ∈ S S_{t},S_{t+1}\in\mathcal{S} St,St+1S A t ∈ A ( S t ) A_{t}\in\mathcal{A(S_{t})} AtA(St) R t + 1 ∈ R ( S t , A t ) R_{t+1}\in\mathcal{R}(S_{t},A_{t}) Rt+1R(St,At)

注: S t S_{t} St S t + 1 S_{t+1} St+1 A t A_{t} At R t + 1 R_{t+1} Rt+1都为随机变量(random variables)

由式(8)可以得到从 t t t时刻开始的一条包含一系列“状态-动作-奖励”的轨迹
S t → A t S t + 1 , R t + 1 → A t + 1 S t + 2 , R t + 2 → A t + 2 S t + 3 , R t + 3 , … S_{t}\rightarrow^{A_{t}}S_{t+1},R_{t+1}\rightarrow^{A_{t+1}}S_{t+2},R_{t+2}\rightarrow^{A_{t+2}}S_{t+3},R_{t+3},\dots StAtSt+1,Rt+1At+1St+2,Rt+2At+2St+3,Rt+3,
沿着轨迹计算得到的折扣回报为
G t ≐ R t + 1 + γ R t + 2 + γ 2 R t + 3 + … , γ ∈ ( 0 , 1 ) G_{t}\doteq R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\dots,\;\gamma\in(0,1) GtRt+1+γRt+2+γ2Rt+3+,γ(0,1)

G t G_{t} Gt R t + 1 R_{t+1} Rt+1, R t + 2 R_{t+2} Rt+2, … \dots 这些随机变量的组合得到,同样也为随机变量。

计算随机变量 G t G_{t} Gt的数学期望(expectation/expected value)为
v π ( s ) ≐ E [ G t ∣ S t = s ] v_{\pi}(s)\doteq\mathbb{E}[G_{t}|S_{t}=s] vπ(s)E[GtSt=s]
这里 v π ( s ) v_{\pi}(s) vπ(s)被定义为状态值函数(state-value function),又简称为状态值状态价值(state value)

注:关于状态值的说明。

  • 状态值 v π ( s ) v_{\pi}(s) vπ(s)的值依赖于状态 s s s,不同状态下的状态值一般是不同的。状态值的本质是求随机变量 G t G_{t} Gt在条件 S t = s S_{t}=s St=s下的条件期望。
  • 状态值 v π ( s ) v_{\pi}(s) vπ(s)的值依赖于策略 π \pi π,不同策略下的状态值一般是不同的。不同的策略会产生不同的轨迹,进而影响状态值。
  • 状态值 v π ( s ) v_{\pi}(s) vπ(s)的值不依赖于时间 t t t。所考虑的系统模型是平稳的,不会随时间变化。

“状态值”和“回报”的关系如图2.3所示

在这里插入图片描述

图2.3 “状态值”和“回报”关系图

总结:状态值所描述的情况比回报描述的情况更一般化,可以处理不确定性和随机性的情况。

状态值可以更一般化的来评价策略,能产生更高状态值的策略更好。

2.4 贝尔曼方程

贝尔曼方程(Bellman equation)描述了所有状态值之间的关系。

贝尔曼方程的推导过程如下:

  1. 改写 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{align*}G_{t}&= R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\dots\\ &=R_{t+1}+\gamma(R_{t+2}+\gamma R_{t+3}+\dots)\\ &=R_{t+1}+\gamma G_{t+1}\end{align*} Gt=Rt+1+γRt+2+γ2Rt+3+=Rt+1+γ(Rt+2+γRt+3+)=Rt+1+γGt+1
  2. 基于步骤1中建立的 G t G_{t} Gt G t + 1 G_{t+1} Gt+1之间的关系,状态值 v π ( s ) v_{\pi}(s) vπ(s)可以改写为
    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 ] (9) \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]+\mathbb{E}[\gamma G_{t+1}|S_{t}=s]\end{align}\tag{9} vπ(s)=E[GtSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1St=s]+E[γGt+1St=s](9)
  3. 分析式(9)中的两个数学期望项
  • 即时奖励期望值 E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_{t}=s] E[Rt+1St=s]

这一项可以通过全期望(total expectation) 的性质来进行改写,首先给出改写结果,然后给出具体的推导过程
E [ R t + 1 ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) E [ R t + 1 ∣ S t = s , A t = a ] = ∑ a ∈ A π ( a ∣ s ) ∑ r ∈ R p ( r ∣ s , a ) r (10) \begin{align} \mathbb{E}[R_{t+1}|S_{t}=s]&=\sum_{a\in\mathcal{A}}\pi(a|s)\mathbb{E}[R_{t+1}|S_{t}=s,A_{t}=a]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r \end{align}\tag{10} E[Rt+1St=s]=aAπ(as)E[Rt+1St=s,At=a]=aAπ(as)rRp(rs,a)r(10)

式(10)的推导过程如下:

首先基于链式规则(chain rule) 和条件概率公式可以得到
p ( a , b ) = p ( a ∣ b ) p ( b ) p ( a , b , c ) = p ( a ∣ b , c ) p ( b , c ) = p ( a ∣ b , c ) p ( b ∣ c ) p ( c ) \begin{align*}p(a,b)&=p(a|b)p(b)\\ p(a,b,c)&=p(a|b,c)p(b,c)\\&=p(a|b,c)p(b|c)p(c)\end{align*} p(a,b)p(a,b,c)=p(ab)p(b)=p(ab,c)p(b,c)=p(ab,c)p(bc)p(c)
由于 p ( a , b , c ) = p ( a , b ∣ c ) p ( c ) p(a,b,c)=p(a,b|c)p(c) p(a,b,c)=p(a,bc)p(c),所以 p ( a , b , c ) / p ( c ) = p ( a , b ∣ c ) = p ( a ∣ b , c ) p ( b ∣ c ) p(a,b,c)/p(c)=p(a,b|c)=p(a|b,c)p(b|c) p(a,b,c)/p(c)=p(a,bc)=p(ab,c)p(bc)
然后可以进一步推导出以下关系
p ( x ∣ a ) = ∑ b p ( x , b ∣ a ) = ∑ b p ( x ∣ b , a ) p ( b ∣ a ) p(x|a)=\sum_{b}p(x,b|a)=\sum_{b}p(x|b,a)p(b|a) p(xa)=bp(x,ba)=bp(xb,a)p(ba)
其次给出期望(expectation)条件期望(conditional expectation) 的定义,并基于此推导出全期望公式(formula of total expectation)
(1)期望(expectation):随机变量 X X X取值 x x x的概率为 p ( x ) p(x) p(x) X X X的期望值定义为 E [ X ] = ∑ x x p ( x ) \mathbb{E}[X]=\sum_{x}xp(x) E[X]=xxp(x)
(2)条件期望(conditional expectation):
E [ X ∣ A = a ] = ∑ x x p ( x ∣ a ) \mathbb{E}[X|A=a]=\sum_{x}xp(x|a) E[XA=a]=xxp(xa)
(3)全期望公式(formula of total expectation):
E [ X ] = ∑ a E [ X ∣ A = a ] p ( a ) \mathbb{E}[X]=\sum_{a}\mathbb{E}[X|A=a]p(a) E[X]=aE[XA=a]p(a)
全期望公式的证明如下: ∑ a E [ X ∣ A = a ] p ( a ) = ∑ a ∑ x x p ( x ∣ a ) p ( a ) → 由条件期望定义得到 = ∑ x [ ∑ a p ( x ∣ a ) p ( a ) ] x = ∑ x p ( x ) x → 由全概率公式定义得到 = E [ X ] → 由期望值定义得到 \begin{align*}\sum_{a}\mathbb{E}[X|A=a]p(a)&=\sum_{a}\sum_{x}xp(x|a)p(a)\;\rightarrow 由条件期望定义得到\\ &=\sum_{x}\bigg[\sum_{a}p(x|a)p(a)\bigg]x\\ &=\sum_{x}p(x)x\;\rightarrow 由全概率公式定义得到\\ &=\mathbb{E}[X]\;\rightarrow 由期望值定义得到\end{align*} aE[XA=a]p(a)=axxp(xa)p(a)由条件期望定义得到=x[ap(xa)p(a)]x=xp(x)x由全概率公式定义得到=E[X]由期望值定义得到
然后,给出条件期望的另一种数学表示形式
E [ X ∣ A = a ] = ∑ b E [ X ∣ A = a , B = b ] p ( b ∣ a ) \mathbb{E}[X|A=a]=\sum_{b}\mathbb{E}[X|A=a,B=b]p(b|a) E[XA=a]=bE[XA=a,B=b]p(ba)
证明如下: ∑ b E [ X ∣ A = a , B = b ] p ( b ∣ a ) = ∑ b [ ∑ x x p ( x ∣ a , b ) ] p ( b ∣ a ) → 由条件期望定义得到 = ∑ b ∑ x [ p ( x ∣ a , b ) p ( b ∣ a ) x = ∑ x [ ∑ b p ( x ∣ a , b ) p ( b ∣ a ) ] x = ∑ x ∑ b p ( x , b ∣ a ) x → 由链式规则的推广得到 = ∑ x p ( x ∣ a ) x = E [ X ∣ A = a ] → 由期望值定义得到 \begin{align*}\sum_{b}\mathbb{E}[X|A=a,B=b]p(b|a)&=\sum_{b }\bigg[\sum_{x}xp(x|a,b)\bigg]p(b|a)\;\rightarrow 由条件期望定义得到\\ &=\sum_{b}\sum_{x}[p(x|a,b)p(b|a)x\\ &=\sum_{x}\bigg[\sum_{b}p(x|a,b)p(b|a)\bigg]x\\ &=\sum_{x}\sum_{b}p(x,b|a)x\;\rightarrow 由链式规则的推广得到\\ &=\sum_{x}p(x|a)x\\ &=\mathbb{E}[X|A=a]\;\rightarrow 由期望值定义得到\end{align*} bE[XA=a,B=b]p(ba)=b[xxp(xa,b)]p(ba)由条件期望定义得到=bx[p(xa,b)p(ba)x=x[bp(xa,b)p(ba)]x=xbp(x,ba)x由链式规则的推广得到=xp(xa)x=E[XA=a]由期望值定义得到
因此,利用上述等式,我们可以得到即时奖励期望值 E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_{t}=s] E[Rt+1St=s]的改写结果式(10),即 E [ R t + 1 ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) E [ R t + 1 ∣ S t = s , A t = a ] = ∑ a ∈ A π ( a ∣ s ) ∑ r ∈ R p ( r ∣ s , a ) r \begin{align*} \mathbb{E}[R_{t+1}|S_{t}=s]&=\sum_{a\in\mathcal{A}}\pi(a|s)\mathbb{E}[R_{t+1}|S_{t}=s,A_{t}=a]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r \end{align*} E[Rt+1St=s]=aAπ(as)E[Rt+1St=s,At=a]=aAπ(as)rRp(rs,a)r推导结束。

  • 未来奖励期望值 E [ G t + 1 ∣ S t = s ] \mathbb{E}[G_{t+1}|S_{t}=s] E[Gt+1St=s]

这一项可以基于马尔可夫性质改写为如下形式
E [ G t + 1 ∣ S t = s ] = ∑ s ′ ∈ S E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ∣ p ( s ′ ∣ s ) ] = ∑ s ′ ∈ S E [ G t + 1 ∣ S t + 1 = s ′ ∣ p ( s ′ ∣ s ) ] → 由马尔可夫性质得到 = ∑ s ′ ∈ S v π ( s ′ ) p ( s ′ ∣ s ) = ∑ s ′ ∈ S v π ( s ′ ) ∑ a ∈ A p ( s ′ ∣ s , a ) π ( a ∣ s ) → 由链式规则的推广得到 (11) \begin{align}\mathbb{E}[G_{t+1}|S_{t}=s]&=\sum_{s'\in\mathcal{S}}\mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s'|p(s'|s)]\\&=\sum_{s'\in\mathcal{S}}\mathbb{E}[G_{t+1}|S_{t+1}=s'|p(s'|s)]\;\rightarrow 由马尔可夫性质得到\\ &=\sum_{s'\in\mathcal{S}}v_{\pi}(s')p(s'|s)\\ &=\sum_{s'\in\mathcal{S}}v_{\pi}(s')\sum_{a\in\mathcal{A}}p(s'|s,a)\pi(a|s)\;\rightarrow 由链式规则的推广得到\end{align}\tag{11} E[Gt+1St=s]=sSE[Gt+1St=s,St+1=sp(ss)]=sSE[Gt+1St+1=sp(ss)]由马尔可夫性质得到=sSvπ(s)p(ss)=sSvπ(s)aAp(ss,a)π(as)由链式规则的推广得到(11)

马尔可夫性质: E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ] = E [ G t + 1 ∣ S t = s ] \mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s']=\mathbb{E}[G_{t+1}|S_{t}=s] E[Gt+1St=s,St+1=s]=E[Gt+1St=s],即未来的奖励仅依赖于当前状态,与先前的状态无关,即无记忆性。

将式(10)和式(11)带入式(9),即可得到贝尔曼方程
v π ( s ) = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S v π ( s ′ ) ∑ a ∈ A p ( s ′ ∣ s , a ) π ( a ∣ s ) = ∑ a ∈ A π ( a ∣ s ) [ ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v π ( s ′ ) ] , s ∈ S (12) \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}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r+\gamma\sum_{s'\in\mathcal{S}}v_{\pi}(s')\sum_{a\in\mathcal{A}}p(s'|s,a)\pi(a|s)\\&=\sum_{a\in\mathcal{A}}\pi(a|s)\bigg[\sum_{r\in\mathcal{R}}p(r|s,a)r+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')\bigg]\;,s\in\mathcal{S}\end{align}\tag{12} vπ(s)=E[Rt+1St=s]+γE[Gt+1St=s]=aAπ(as)rRp(rs,a)r+γsSvπ(s)aAp(ss,a)π(as)=aAπ(as)[rRp(rs,a)r+γsSp(ss,a)vπ(s)],sS(12)

贝尔曼方程的解释说明:

  • v π ( s ) v_{\pi}(s) vπ(s) v π ( s ′ ) v_{\pi}(s') vπ(s)都是需要计算的状态值,是未知量。
  • π ( a ∣ s ) \pi(a|s) π(as)是一个给定的策略,是已知量。
  • p ( r ∣ s , a ) p(r|s,a) p(rs,a) p ( s ′ ∣ s , a ) p(s'|s,a) p(ss,a)代表系统模型,可以是已知的也可以是未知的。

贝尔曼方程的常见等价形式:

  • 等价形式1的表达式如下所示
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] v_{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)[r+\gamma v_{\pi}(s')] vπ(s)=aAπ(as)sSrRp(s,rs,a)[r+γvπ(s)]

推导过程如下
首先给出两个与状态 s s s s ′ s' s,动作 a a a和奖励 r r r有关的全概率公式 p ( s ′ ∣ s , a ) = ∑ r ∈ R p ( s ′ , r ∣ s , a ) p ( r ∣ , s , a ) = ∑ s ′ ∈ S p ( s ′ , r ∣ s , a ) \begin{align*}p(s'|s,a)&=\sum_{r\in\mathcal{R}}p(s',r|s,a)\\ p(r|,s,a)&=\sum_{s'\in\mathcal{S}}p(s',r|s,a)\end{align*} p(ss,a)p(r,s,a)=rRp(s,rs,a)=sSp(s,rs,a)将上述两个全概率公式代入(12),可以得到 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ ∑ r ∈ R p ( r ∣ s , a ) r + ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v π ( s ′ ) ] = ∑ a ∈ A π ( a ∣ s ) [ ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) r + ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) v π ( s ′ ) ] = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] \begin{align*}v_{\pi}(s)&=\sum_{a\in\mathcal{A}}\pi(a|s)\bigg[\sum_{r\in\mathcal{R}}p(r|s,a)r+\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')\bigg]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\bigg[\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)r+\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)v_{\pi}(s')\bigg]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)[r+\gamma v_{\pi}(s')]\end{align*} vπ(s)=aAπ(as)[rRp(rs,a)r+sSp(ss,a)vπ(s)]=aAπ(as)[sSrRp(s,rs,a)r+sSrRp(s,rs,a)vπ(s)]=aAπ(as)sSrRp(s,rs,a)[r+γvπ(s)]推导结束。

  • 等价形式2为贝尔曼期望方程(bellman expectation equation):
    v π ( s ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] , s ∈ S v_{\pi}(s)=\mathbb{E}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s],\;s\in\mathcal{S} vπ(s)=E[Rt+1+γvπ(St+1)St=s],sS

推导过程如下
由式(11)可知
E [ G t + 1 ∣ S t = s ] = ∑ s ′ ∈ S v π ( s ′ ) ∑ a ∈ A p ( s ′ ∣ s , a ) π ( a ∣ s ) = E [ v π ( S t + 1 ) ∣ S t = s ] \begin{align*}\mathbb{E}[G_{t+1}|S_{t}=s]&=\sum_{s'\in\mathcal{S}}v_{\pi}(s')\sum_{a\in\mathcal{A}}p(s'|s,a)\pi(a|s)\\&=\mathbb{E}[v_{\pi}(S_{t+1})|S_{t}=s]\end{align*} E[Gt+1St=s]=sSvπ(s)aAp(ss,a)π(as)=E[vπ(St+1)St=s] 将上述等式带入式(9)即可得到贝尔曼期望方程。

  • 等价形式3的表达式如下所示
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ ∈ S p ( s ′ ∣ s , a ) [ r ( s ′ ) + γ v π ( s ′ ) ] v_{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s'\in\mathcal{S}}p(s'|s,a)[r(s')+\gamma v_{\pi}(s')] vπ(s)=aAπ(as)sSp(ss,a)[r(s)+γvπ(s)]

推导过程如下
在一些特殊问题中,奖励 r r r可能仅依赖于下一个状态 s ′ s' s,这时候奖励可以表示为 r ( s ′ ) r(s') r(s)。这时候以下等式成立
p ( r ( s ′ ) ∣ s , a ) = p ( s ′ ∣ s , a ) ∑ r ∈ R p ( r ∣ s , a ) r = ∑ s ′ ∈ S p ( r ( s ′ ) ∣ s , a ) r ( s ′ ) \begin{align*}p(r(s')|s,a)&=p(s'|s,a)\\\sum_{r\in\mathcal{R}}p(r|s,a)r&=\sum_{s'\in\mathcal{S}}p(r(s')|s,a)r(s')\end{align*} p(r(s)s,a)rRp(rs,a)r=p(ss,a)=sSp(r(s)s,a)r(s)将上述等式带入式(12)可得到等价形式3。

2.5 示例

2.6 矩阵-向量形式

2.7 求解状态值

2.7.1 方法1:解析解

2.7.2 方法2:数值解

2.7.3 示例

2.8 动作值

2.8.1 示例

2.8.2 基于动作值的贝尔曼方程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/81410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker入门指南:镜像、容器与仓库的核心概念解析

目录 前言:为什么需要Docker? 一、Docker能做什么? 二、核心概念解析 1. 镜像(Image):应用的标准化打包 2. 容器(Container):镜像的运行实例 3. 镜像仓库&#xff0…

大模型微调实战:基于GpuGeek平台的低成本高效训练方案

文章目录 引言一、GpuGeek平台使用入门1. 注册与账号设置2. 控制台功能概览3. 快速创建GPU实例3. 预置镜像与自定义环境 二、GpuGeek平台核心优势解析1. 显卡资源充足:多卡并行加速训练2. 镜像超多:开箱即用的开发环境3. 计费灵活:按需付费降…

Linux:计算机的层状结构

1.冯诺依曼体系结构 我们常见的计算机,如笔记本、台式机。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构。 CPU:运算器和控制器组成。运算器主要工作是做算术运算和逻辑运算。控制器主要工作是协调设备之间信息流动的…

LangGraph(四)——加入人机交互控制

目录 1. 引言2. 添加Human Assistance工具3. 编译状态图4. 提示聊天机器人5. 恢复执行参考 1. 引言 智能体可能不可靠,甚至需要人工输入才能完成任务。同样,对于某些操作,你可能需要在运行前获得人工批准,以保证一切按预期运行。 …

数据结构【AVL树】

AVL树 1.AVL树1.AVL的概念2.平衡因子 2.AVl树的实现2.1AVL树的结构2.2AVL树的插入2.3 旋转2.3.1 旋转的原则 1.AVL树 1.AVL的概念 AVL树可以是一个空树。 它的左右子树都是AVL树,且左右子树的高度差的绝对值不超过1。AVL树是一颗高度平衡搜索二叉树,通…

JavaScript【5】DOM模型

1.概述: DOM (Document Object Model):当页面被加载时,浏览器会创建页面的文档对象模型,即dom对象;dom对象会被结构化为对象树,如一个HTML文档会被分为head,body等部分,而每个部分又…

STM32烧录程序正常,但是运行异常

一、硬件配置问题 BOOT引脚设置错误 STM32的启动模式由BOOT0和BOOT1引脚决定。若设置为从RAM启动(BOOT01,BOOT10),程序在掉电后无法保存,导致复位后无法正常运行。应确保BOOT00(从Flash启动)15。…

汽车二自由度系统模型以及电动助力转向系统模型

汽车二自由度系统模型与电动助力转向系统(EPS)的详细建模方案,包含理论推导、MATLAB/Simulink实现代码及参数说明: 一、二自由度汽车模型 1. 模型描述 包含以下两个自由度: 横向运动(侧向加速度&#xf…

git提交库常用词

新功能 feat修改BUG fix文档修改 docs格式修改 style重构 refactor性能提升 perf测试 test构建系统 build对CI配置文件修改 ci修改构建流程、或增加依赖库、工具 chore回滚版本 revert

JavaScript 时间转换:从 HH:mm:ss 到十进制小时及反向转换

关键点 JavaScript 可以轻松实现时间格式(HH:mm:ss 或 HH:mm)与十进制小时(如 17.5)的相互转换。两个函数分别处理时间字符串到十进制小时,以及十进制小时到时间字符串的转换,支持灵活的输入和输出格式。这…

LLM智能体新纪元:深入解析MCP与A2A协议,赋能智能自动化协作

LLM智能体(LLM agents)是能够自主行动以实现特定目标的AI系统。在实际应用中,智能体能够将用户请求拆解为多个步骤,利用知识库或API获取数据,最终整合出答案。这让智能体相比于传统独立聊天机器人拥有更强大的能力——…

[PMIC]PMIC重要知识点总结

PMIC重要知识点总结 摘要:PMIC (Power Management Integrated Circuit) 是现代电子设备中至关重要的组件,负责电源管理,包括电压调节、电源转换、电池管理和功耗优化等。PMIC 中的数字部分主要涉及控制逻辑、状态机、寄存器配置、通信接口&am…

PYTHON训练营DAY28

类 (一)题目1:定义圆(Circle)类 要求: 包含属性:半径 radius。包含方法: calculate_area():计算圆的面积(公式:πr)。calculate_circ…

机器学习-人与机器生数据的区分模型测试 -数据筛选

内容继续机器学习-人与机器生数据的区分模型测试 使用随机森林的弱学习树来筛选相对稳定的特征数据 # 随机森林筛选特征 X data.drop([city, target], axis1) # 去除修改前的城市名称列和目标变量列 y data[target] X_train, X_test, y_train, y_test train_test_split(X…

Data whale LLM universe

使用LLM API开发应用 基本概念 Prompt Prompt 最初指的是自然语言处理研究人员为下游任务设计的一种任务专属的输入模板。 Temperature 使用Temperature参数控制LLM生成结果的随机性和创造性,一般取值设置在0~1之间,当取值接近1的时候预测的随机性较…

Azure 应用的托管身份与服务主体

Microsoft Entra ID -- 前称 Azure Active Directory -- 提供强大的身份验证和授权功能。托管身份和服务主体通过限制凭据暴露的风险来帮助确保对 Azure 资源的访问安全。 托管身份为Azure原生应用程序自动管理身份,而服务主体则非常适合需要访问Azure资源的外部应…

16 C 语言布尔类型与 sizeof 运算符详解:布尔类型的三种声明方式、执行时间、赋值规则

1 布尔类型 1.1 布尔类型概述 布尔类型用于表示逻辑上的真(true)和假(false)两种状态,是编程中条件判断和逻辑运算的基础。在 C 语言中,布尔值的表示方式随着标准的发展而不断完善。 1.2 布尔类型的三种声…

【C++详解】string各种接口如何使用保姆级攻略

文章目录 一、string介绍二、string使用构造函数析构函数赋值运算符重载string的遍历修改方法1、下标[]2、迭代器3、范围for 迭代器使用详解const迭代器反向迭代器(reverse) Capacity(容量相关)size/lengthmax_sizecapacityclear/emptyshrink_to_fit(缩容)reserve(扩…

回调函数应用示例

回调函数是一种通过函数指针(或引用)调用的函数,它在特定事件或条件发生时被另一个函数调用。回调函数的核心思想是将函数作为参数传递,以便在适当的时候执行自定义逻辑,常用于异步编程、事件驱动架构等场景。 业务场景…

linux标准库头文件解析

linuxc标准库 C 标准库&#xff08;C Standard Library&#xff09;包含了一组头文件&#xff0c;这些头文件提供了许多函数和宏&#xff0c;用于处理输入输出、字符串操作、数学计算、内存管理等常见编程任务。。 头文件功能简介<stdio.h>标准输入输出库&#xff0c;包含…