[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程
本文章为西湖大学赵世钰老师《强化学习数学原理》中文版第2章 贝尔曼方程的学习笔记,在书中内容的基础上增加了自己的一些理解内容和相关补充内容。
2.1 启发示例1:为什么回报很重要?
核心概念: 状态值,作为一个评价策略好坏的指标
核心工具: 贝尔曼方程,描述了所有状态值之间的关系。
通过求解贝尔曼方程,得到状态值,进而可以评价一个策略的好坏。
回顾: 回报可以评价一个策略的好坏。
通过如图2.1所示三个在状态 s 1 s_1 s1策略不同,其他状态策略相同的例子来说明回报的重要性,并分析三个不同策略的好坏。
直接观察结果:
- 左侧策略,从状态 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 s1→s3→s4→s4⋯,计算对应折扣回报为
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 s1→s2→s4→s4⋯,计算对应折扣回报为
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 s1→s2→s4→s4⋯ 和 s 1 → s 3 → s 4 → s 4 ⋯ s_1\rightarrow s_3\rightarrow s_4\rightarrow s_4 \cdots s1→s3→s4→s4⋯。两条轨迹各有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所示,忽略禁止区域和目标区域,给出一个简单的例子来计算回报。
定义 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} v∈R4 v1v2v3v4 = r1r2r3r4 + γv2γv3γv4γv5 =r∈R4 r1r2r3r4 +P∈R4×4 0001100001000010 v∈R4 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} I∈R4×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} St→AtSt+1,Rt+1(8)其中, S t , S t + 1 ∈ S S_{t},S_{t+1}\in\mathcal{S} St,St+1∈S, A t ∈ A ( S t ) A_{t}\in\mathcal{A(S_{t})} At∈A(St), R t + 1 ∈ R ( S t , A t ) R_{t+1}\in\mathcal{R}(S_{t},A_{t}) Rt+1∈R(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 St→AtSt+1,Rt+1→At+1St+2,Rt+2→At+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) Gt≐Rt+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[Gt∣St=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.4 贝尔曼方程
贝尔曼方程(Bellman equation)描述了所有状态值之间的关系。
贝尔曼方程的推导过程如下:
- 改写 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 - 基于步骤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[Gt∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+E[γGt+1∣St=s](9) - 分析式(9)中的两个数学期望项
- 即时奖励期望值 E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_{t}=s] E[Rt+1∣St=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+1∣St=s]=a∈A∑π(a∣s)E[Rt+1∣St=s,At=a]=a∈A∑π(a∣s)r∈R∑p(r∣s,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(a∣b)p(b)=p(a∣b,c)p(b,c)=p(a∣b,c)p(b∣c)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,b∣c)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,b∣c)=p(a∣b,c)p(b∣c)
然后可以进一步推导出以下关系
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(x∣a)=b∑p(x,b∣a)=b∑p(x∣b,a)p(b∣a)
其次给出期望(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]=x∑xp(x)
(2)条件期望(conditional expectation):
E [ X ∣ A = a ] = ∑ x x p ( x ∣ a ) \mathbb{E}[X|A=a]=\sum_{x}xp(x|a) E[X∣A=a]=x∑xp(x∣a)
(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]=a∑E[X∣A=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*} a∑E[X∣A=a]p(a)=a∑x∑xp(x∣a)p(a)→由条件期望定义得到=x∑[a∑p(x∣a)p(a)]x=x∑p(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[X∣A=a]=b∑E[X∣A=a,B=b]p(b∣a)
证明如下: ∑ 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*} b∑E[X∣A=a,B=b]p(b∣a)=b∑[x∑xp(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]→由期望值定义得到
因此,利用上述等式,我们可以得到即时奖励期望值 E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_{t}=s] E[Rt+1∣St=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+1∣St=s]=a∈A∑π(a∣s)E[Rt+1∣St=s,At=a]=a∈A∑π(a∣s)r∈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 ′ ∈ 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+1∣St=s]=s′∈S∑E[Gt+1∣St=s,St+1=s′∣p(s′∣s)]=s′∈S∑E[Gt+1∣St+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)
马尔可夫性质: 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+1∣St=s,St+1=s′]=E[Gt+1∣St=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+1∣St=s]+γE[Gt+1∣St=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)
贝尔曼方程的解释说明:
- v π ( s ) v_{\pi}(s) vπ(s)和 v π ( s ′ ) v_{\pi}(s') vπ(s′)都是需要计算的状态值,是未知量。
- π ( a ∣ s ) \pi(a|s) π(a∣s)是一个给定的策略,是已知量。
- p ( r ∣ s , a ) p(r|s,a) p(r∣s,a)和 p ( s ′ ∣ s , a ) p(s'|s,a) p(s′∣s,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)=a∈A∑π(a∣s)s′∈S∑r∈R∑p(s′,r∣s,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(s′∣s,a)p(r∣,s,a)=r∈R∑p(s′,r∣s,a)=s′∈S∑p(s′,r∣s,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)=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′)]推导结束。
- 等价形式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],s∈S
推导过程如下
由式(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+1∣St=s]=s′∈S∑vπ(s′)a∈A∑p(s′∣s,a)π(a∣s)=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)=a∈A∑π(a∣s)s′∈S∑p(s′∣s,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)r∈R∑p(r∣s,a)r=p(s′∣s,a)=s′∈S∑p(r(s′)∣s,a)r(s′)将上述等式带入式(12)可得到等价形式3。