[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程-下
[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程-下
- 2.6 矩阵-向量形式
- 2.7 求解状态值
- 2.7.1 方法1:解析解
- 2.7.2 方法2:数值解
- 2.7.3 示例
- 2.8 动作值
- 2.8.1 示例
- 2.8.2 基于动作值的贝尔曼方程
- 由于笔记内容较多,因此分为上下两部分来记录。
- 上半部分的笔记请点击这里: [强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程-上。
- 本文章为西湖大学赵世钰老师《强化学习数学原理》中文版第2章 贝尔曼方程的下半部分学习笔记,在书中内容的基础上增加了自己的一些理解内容和相关补充内容。
2.6 矩阵-向量形式
联立每个状态的贝尔曼方程即可得到简洁的矩阵-向量(matrix-vector form),基于这种形式,可以更好的理解和分析贝尔曼方程。
矩阵-向量形式的推导过程如下:
-
改写贝尔曼方程(12)为以下形式
v π ( s ) = r π ( s ) + γ ∑ s ′ ∈ S p π ( s ′ ∣ s ) v π ( s ′ ) (13) v_{\pi}(s)=r_{\pi}(s)+\gamma\sum_{s'\in\mathcal{S}}p_{\pi}(s'|s)v_{\pi}(s')\tag{13} vπ(s)=rπ(s)+γs′∈S∑pπ(s′∣s)vπ(s′)(13) 这里
r π ( s ) ≐ ∑ a ∈ A π ( a ∣ s ) ∑ r ∈ R p ( r ∣ s , a ) r → 即时奖励的期望值 p π ( s ′ ∣ s ) ≐ ∑ a ∈ A π ( a ∣ s ) p ( s ′ ∣ s , a ) → 在策略 π 下从状态 s 一步转移到状态 s ′ 的概率 \begin{align*}r_{\pi}(s)&\doteq\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r\;\rightarrow 即时奖励的期望值\\p_{\pi}(s'|s)&\doteq\sum_{a\in\mathcal{A}}\pi(a|s)p(s'|s,a)\;\rightarrow 在策略\pi下从状态s一步转移到状态s'的概率\end{align*} rπ(s)pπ(s′∣s)≐a∈A∑π(a∣s)r∈R∑p(r∣s,a)r→即时奖励的期望值≐a∈A∑π(a∣s)p(s′∣s,a)→在策略π下从状态s一步转移到状态s′的概率 -
定义状态编号并给出对应编号下的改写结果
假设存在 n = ∣ S ∣ n=|\mathcal{S}| n=∣S∣个状态,并对这 n n n个状态编号为 n = { s 1 , s 2 , … , s n } n=\{s_1,s_2,\dots,s_n\} n={s1,s2,…,sn},则状态 s i s_{i} si对应的式(13)的形式为
v π ( s i ) = r π ( s i ) + γ ∑ s j ∈ S p π ( s j ∣ s i ) v π ( s j ) (14) 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})\tag{14} vπ(si)=rπ(si)+γsj∈S∑pπ(sj∣si)vπ(sj)(14) -
定义相关向量并给出最终的矩阵-向量形式结果
定义 v π = [ v π ( s 1 ) , … , v π ( s n ) ] T ∈ R n v_{\pi}=\begin{bmatrix}v_{\pi}(s_1),\dots,v_{\pi}(s_n)\end{bmatrix}^{T}\in\mathbb{R}^{n} vπ=[vπ(s1),…,vπ(sn)]T∈Rn, r π = [ r π ( s 1 ) , … , r π ( s n ) ] T ∈ R n r_{\pi}=\begin{bmatrix}r_{\pi}(s_1),\dots,r_{\pi}(s_n)\end{bmatrix}^{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 π P_{\pi} Pπ满足 [ P π ] i j = p π ( s j ∣ s i ) [P_{\pi}]_{ij}=p_{\pi}(s_{j}|s_{i}) [Pπ]ij=pπ(sj∣si),则式(14)的矩阵-向量形式如下
v π = r π + γ P π v π (15) v_{\pi}=r_{\pi}+\gamma P_{\pi}v_{\pi}\tag{15} vπ=rπ+γPπvπ(15)这里, v π v_{\pi} vπ为待求解的未知量, γ \gamma γ, r π r_{\pi} rπ和 P π P_{\pi} Pπ是已知量。
矩阵 P π P_{\pi} Pπ的两个性质。
P π P_{\pi} Pπ是一个非负矩阵(no-negative matrix),矩阵 P π P_{\pi} Pπ的所有元素都大于或等于0,即 P π ≥ 0 P_{\pi}\geq 0 Pπ≥0。
P π P_{\pi} Pπ是一个随机矩阵(stochastic matrix),即矩阵 P π P_{\pi} Pπ的每一行所有元素的和等于1。其数学描述为 P π 1 = 1 P_{\pi}\mathbf{1}=\mathbf{1} Pπ1=1,其中 1 = [ 1 , … , 1 ] T \mathbf{1}=\begin{bmatrix}1,\dots,1\end{bmatrix}^{T} 1=[1,…,1]T是一个具有适宜维度的所有元素都为1的向量。
基于图2.5,给出其贝尔曼方程的矩阵向量形式如下
[ v π ( s 1 ) v π ( s 2 ) v π ( s 3 ) v π ( s 4 ) ] ⏟ v π = [ r π ( s 1 ) r π ( s 2 ) r π ( s 3 ) r π ( s 4 ) ] ⏟ r π + γ [ p π ( s 1 ∣ s 1 ) p π ( s 2 ∣ s 1 ) p π ( s 3 ∣ s 1 ) p π ( s 4 ∣ s 1 ) p π ( s 1 ∣ s 2 ) p π ( s 2 ∣ s 2 ) p π ( s 3 ∣ s 2 ) p π ( s 4 ∣ s 2 ) p π ( s 1 ∣ s 3 ) p π ( s 2 ∣ s 3 ) p π ( s 3 ∣ s 3 ) p π ( s 4 ∣ s 3 ) p π ( s 1 ∣ s 4 ) p π ( s 2 ∣ s 4 ) p π ( s 3 ∣ s 4 ) p π ( s 4 ∣ s 4 ) ] ⏟ P π [ v π ( s 1 ) v π ( s 2 ) v π ( s 3 ) v π ( s 4 ) ] ⏟ v π \begin{align*}\underbrace{\begin{bmatrix}v_{\pi}(s_1)\\v_{\pi}(s_2)\\v_{\pi}(s_3)\\v_{\pi}(s_4)\end{bmatrix}}_{v_{\pi}}=\underbrace{\begin{bmatrix}r_{\pi}(s_1)\\r_{\pi}(s_2)\\r_{\pi}(s_3)\\r_{\pi}(s_4)\end{bmatrix}}_{r_{\pi}}+\gamma\underbrace{\begin{bmatrix}p_{\pi}(s_1|s_1) & p_{\pi}(s_2|s_1) & p_{\pi}(s_3|s_1) & p_{\pi}(s_4|s_1) \\p_{\pi}(s_1|s_2) & p_{\pi}(s_2|s_2) & p_{\pi}(s_3|s_2) & p_{\pi}(s_4|s_2) \\p_{\pi}(s_1|s_3) & p_{\pi}(s_2|s_3) & p_{\pi}(s_3|s_3) & p_{\pi}(s_4|s_3) \\p_{\pi}(s_1|s_4) & p_{\pi}(s_2|s_4) & p_{\pi}(s_3|s_4) & p_{\pi}(s_4|s_4) \end{bmatrix}}_{P_{\pi}}\underbrace{\begin{bmatrix}v_{\pi}(s_1)\\v_{\pi}(s_2)\\v_{\pi}(s_3)\\v_{\pi}(s_4)\end{bmatrix}}_{v_{\pi}}\end{align*} vπ vπ(s1)vπ(s2)vπ(s3)vπ(s4) =rπ rπ(s1)rπ(s2)rπ(s3)rπ(s4) +γPπ pπ(s1∣s1)pπ(s1∣s2)pπ(s1∣s3)pπ(s1∣s4)pπ(s2∣s1)pπ(s2∣s2)pπ(s2∣s3)pπ(s2∣s4)pπ(s3∣s1)pπ(s3∣s2)pπ(s3∣s3)pπ(s3∣s4)pπ(s4∣s1)pπ(s4∣s2)pπ(s4∣s3)pπ(s4∣s4) vπ vπ(s1)vπ(s2)vπ(s3)vπ(s4) 带入数值后的结果已经在第2.6节的例子2中给出,可以看到 P π P_{\pi} Pπ满足 P π 1 = 1 P_{\pi}\mathbf{1}=\mathbf{1} Pπ1=1。
2.7 求解状态值
首先给出一个基本问题的定义
策略评价: 强化学习中求解一个策略对应的状态值的基本问题
下面将给出求解贝尔曼方程的两种基本解法,解析解和数值解。
2.7.1 方法1:解析解
v π = r π + γ P π v_{\pi}=r_{\pi}+\gamma P_{\pi} vπ=rπ+γPπ是一个简单的线性方程,可以很容易得到其解析解形式如下
v π = ( I − P π ) − 1 r π v_{\pi}=(I-P_{\pi})^{-1}r_{\pi} vπ=(I−Pπ)−1rπ
矩阵 ( I − P π ) − 1 (I-P_{\pi})^{-1} (I−Pπ)−1的一些性质
- 矩阵 ( I − P π ) (I-P_{\pi}) (I−Pπ)是可逆的
- 矩阵 ( I − P π ) − 1 ≥ I (I-P_{\pi})^{-1}\geq I (I−Pπ)−1≥I,即矩阵 ( I − P π ) − 1 (I-P_{\pi})^{-1} (I−Pπ)−1中的每一个元素都大于或等于0,且大于或等于单位矩阵 I I I中对应的元素。
- 对任何向量 r π ≥ 0 r_{\pi}\geq 0 rπ≥0,存在 ( I − P π ) − 1 r π ≥ r π ≥ 0 (I-P_{\pi})^{-1}r_{\pi}\geq r_{\pi}\geq 0 (I−Pπ)−1rπ≥rπ≥0。
解析解对于理论分析有重要作用,但是涉及到矩阵逆的运算,需要复杂的数值算法来计算。
2.7.2 方法2:数值解
为了解决解析解方法存在的局限性,可以直接使用如下形式的数值迭代算法来求解贝尔曼方程的状态值
v k + 1 = r π + γ P π v k , k = 0 , 1 , 2 , … (16) v_{k+1}=r_{\pi}+\gamma P_{\pi}v_{k},\;k=0,1,2,\dots\tag{16} vk+1=rπ+γPπvk,k=0,1,2,…(16)
如果从一个初始猜测 v 0 v_{0} v0开始,上述算法会给一个序列 { v 0 , v 1 , v 2 , … } \{v_{0},v_{1},v_{2},\dots\} {v0,v1,v2,…},同时该序列最终会收敛到一个真实的状态值,即
v k → v π = ( I − γ P π ) − 1 r π , 随着 k → ∞ (17) v_{k}\rightarrow v_{\pi}=(I-\gamma P_{\pi})^{-1}r_{\pi},\;随着k \rightarrow\infty\tag{17} vk→vπ=(I−γPπ)−1rπ,随着k→∞(17)
式(17)的证明如下
目标: v k → v π , 随着 k → ∞ v_{k}\rightarrow v_{\pi},\;随着k\rightarrow\infty vk→vπ,随着k→∞,即定义误差 δ k = v k − v π \delta_{k}=v_{k}-v_{\pi} δk=vk−vπ,证明 δ k → 0 \delta_{k}\rightarrow 0 δk→0。
基于误差的定义,将 v k + 1 = δ k + 1 + v π v_{k+1}=\delta_{k+1}+v_{\pi} vk+1=δk+1+vπ和 v k = δ k + v π v_{k}=\delta_{k}+v_{\pi} vk=δk+vπ带入式(16)可得 δ k + v π = r π + γ P π ( δ k + v π ) \delta_{k}+v_{\pi}=r_{\pi}+\gamma P_{\pi}(\delta_{k}+v_{\pi}) δk+vπ=rπ+γPπ(δk+vπ)对上式进行变换可得
δ k = − v π + r π + γ P π ( δ k + v π ) = γ P π δ k − v π + ( r π + γ P π v k ) = γ P π δ k \begin{align*}\delta_{k}&=-v_{\pi}+r_{\pi}+\gamma P_{\pi}(\delta_{k}+v_{\pi})\\&=\gamma P_{\pi}\delta_{k}-v_{\pi}+(r_{\pi}+\gamma P_{\pi}v_{k})\\&=\gamma P_{\pi}\delta_{k}\end{align*} δk=−vπ+rπ+γPπ(δk+vπ)=γPπδk−vπ+(rπ+γPπvk)=γPπδk对上式进行关系迭代可得 δ k = γ P π δ k = γ 2 P π 2 δ k − 1 = ⋯ = γ k + 1 P π k + 1 δ 0 \delta_{k}=\gamma P_{\pi}\delta_{k}=\gamma^2P^2_{\pi}\delta_{k-1}=\cdots=\gamma^{k+1}P^{k+1}_{\pi}\delta_{0} δk=γPπδk=γ2Pπ2δk−1=⋯=γk+1Pπk+1δ0 由矩阵 P π P_{\pi} Pπ的性质可知, 0 ≤ P π k ≤ 1 0\leq P^{k}_{\pi}\leq 1 0≤Pπk≤1对任意的 k k k都成立。此外, γ < 1 \gamma<1 γ<1,当 k → ∞ k\rightarrow\infty k→∞时, γ k → 0 \gamma^{k}\rightarrow 0 γk→0,所以,当 k → ∞ k\rightarrow\infty k→∞时,有 δ k = γ k + 1 P π k + 1 δ 0 → 0 \delta_{k}=\gamma^{k+1}P^{k+1}_{\pi}\delta_{0}\rightarrow 0 δk=γk+1Pπk+1δ0→0。
2.7.3 示例
2.8 动作值
本节将在状态值的基础上,引入动作值或动作价值(action value)的概念。
动作值依赖于状态值的概念,理解好状态值才能更好的理解动作值。
动作值的定义:
针对一个状态-动作配对(state-action pair) ( s , a ) (s,a) (s,a),其动作值定义为
q π ( s , a ) ≐ E [ G t ∣ S t = s , A t = a ] q_{\pi}(s,a)\doteq\mathbb{E}[G_{t}|S_{t}=s,A_{t}=a] qπ(s,a)≐E[Gt∣St=s,At=a]
由上述等式可知动作值被定义为在一个状态采取一个动作之后获得的回报的期望值。 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)依赖于一个状态-动作配对 ( s , a ) (s,a) (s,a),而不仅仅是一个动作,严谨来说称为状态-动作值更合适,简称为动作值。
动作值与状态值的关系:
- 由条件期望的性质 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]=∑bE[X∣A=a,B=b]p(b∣a)可知
E [ G t ∣ S t = s ] ⏟ v π ( s ) = ∑ a ∈ A E [ G t ∣ S t = s , A t = a ] ⏟ q π ( s ) π ( a ∣ s ) \underbrace{\mathbb{E}[G_{t}|S_{t}=s]}_{v_{\pi}(s)}=\sum_{a\in\mathcal{A}}\underbrace{\mathbb{E}[G_{t}|S_{t}=s,A_{t}=a]}_{q_{\pi}(s)}\pi(a|s) vπ(s) E[Gt∣St=s]=a∈A∑qπ(s) E[Gt∣St=s,At=a]π(a∣s)
上式的简化形式为 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s ) = E A t ∼ π ( s ) [ q π ( s , A t ) ] (18) \begin{align}v_{\pi}(s)&=\sum_{a\in\mathcal{A}}\pi(a|s)q_{\pi}(s)\\&=\mathbb{E}_{A_{t}\sim\pi(s)}[q_{\pi}(s,A_{t})]\end{align}\tag{18} vπ(s)=a∈A∑π(a∣s)qπ(s)=EAt∼π(s)[qπ(s,At)](18)
由式(18)可知,状态值是该状态对应的动作值的期望值。
- 根据第2.6节可知,状态值可以写成
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v π ( s ′ ) ] v_{\pi}(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] vπ(s)=a∈A∑π(a∣s)[r∈R∑p(r∣s,a)r+γs′∈S∑p(s′∣s,a)vπ(s′)]基于式(18),可以得到以下等式
q π ( s ) = ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v π ( s ′ ) = E [ R t + 1 ∣ S t = s , A t = a ] + E [ γ v π ( S t + 1 ) ∣ S t = s , A t = a ] = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s , A t = a ] (19) \begin{align}q_{\pi}(s)&=\sum_{r\in\mathcal{R}}p(r|s,a)r+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')\\&=\mathbb{E}[R_{t+1}|S_{t}=s,A_{t}=a]+\mathbb{E}[\gamma v_{\pi}(S_{t+1})|S_{t}=s,A_{t}=a]\\&=\mathbb{E}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s,A_{t}=a]\end{align}\tag{19} qπ(s)=r∈R∑p(r∣s,a)r+γs′∈S∑p(s′∣s,a)vπ(s′)=E[Rt+1∣St=s,At=a]+E[γvπ(St+1)∣St=s,At=a]=E[Rt+1+γvπ(St+1)∣St=s,At=a](19)
由式(19)可知,动作值是一个包含动作值 v π ( S t + 1 ) v_{\pi}(S_{t+1}) vπ(St+1)的变量的期望值。
式(18)描述了如何从动作值得到状态值。
式(19)描述了如何从状态值得到动作值。
2.8.1 示例
考虑状态 s 1 s_1 s1的动作值,策略在 s 1 s_1 s1存在两个可能的动作 a 2 a_2 a2或 a 3 a_3 a3,其对应的动作值分别为
q π ( s 1 , a 2 ) = − 1 + γ v π ( s 2 ) q π ( s 1 , a 3 ) = 0 + γ v π ( s 3 ) \begin{align*}q_{\pi}(s_1,a_2)&=-1+\gamma v_{\pi}(s_2)\\q_{\pi}(s_1,a_3)&=0+\gamma v_{\pi}(s_3)\end{align*} qπ(s1,a2)qπ(s1,a3)=−1+γvπ(s2)=0+γvπ(s3)
需要注意的是,在图2.6中,如果认为策略在 s 1 s_1 s1只会执行动作 a 2 a_2 a2或者 a 3 a_3 a3,不会去执行动作 a 1 a_1 a1, a 4 a_4 a4, a 5 a_5 a5,所以就可以忽略 a 1 a_1 a1, a 4 a_4 a4, a 5 a_5 a5的动作值(为0),或者不去计算其动作值,这是非常错误的想法!!!
因此,以下两个观点非常需要注意
- 一个动作即使不会被策略选择,但其仍然具有动作值。我们可以假设当策略“采取”这个动作( a 1 a_{1} a1, a 4 a_{4} a4, a 5 a_{5} a5)后获得的回报。例如:
- 当状态 s 1 s_1 s1选择动作 a 1 a_1 a1后,智能体被弹回,奖励 r = − 1 r=-1 r=−1,然后继续从状态 s 1 s_1 s1按照策略 π \pi π移动,则未来奖励是 γ v π ( s 1 ) \gamma v_{\pi}(s_{1}) γvπ(s1), ( s 1 , a 1 ) (s_1,a_1) (s1,a1)的动作值为 q π ( s 1 , a 1 ) = − 1 + γ v π ( s 1 ) q_{\pi}(s_1,a_1)=-1+\gamma v_{\pi}(s_1) qπ(s1,a1)=−1+γvπ(s1)
- 当状态 s 1 s_1 s1选择动作 a 4 a_4 a4后,智能体被弹回,奖励 r = − 1 r=-1 r=−1,然后继续从状态 s 1 s_1 s1按照策略 π \pi π移动,则未来奖励是 γ v π ( s 1 ) \gamma v_{\pi}(s_{1}) γvπ(s1), ( s 1 , a 4 ) (s_1,a_4) (s1,a4)的动作值为 q π ( s 1 , a 4 ) = − 1 + γ v π ( s 1 ) q_{\pi}(s_1,a_4)=-1+\gamma v_{\pi}(s_1) qπ(s1,a4)=−1+γvπ(s1)
- 当状态 s 1 s_1 s1选择动作 a 5 a_5 a5后,智能体原地不动,奖励 r = 0 r=0 r=0,然后继续从状态 s 1 s_1 s1按照策略 π \pi π移动,则未来奖励是 γ v π ( s 1 ) \gamma v_{\pi}(s_{1}) γvπ(s1), ( s 1 , a 5 ) (s_1,a_5) (s1,a5)的动作值为 q π ( s 1 , a 5 ) = 0 + γ v π ( s 1 ) q_{\pi}(s_1,a_5)=0+\gamma v_{\pi}(s_1) qπ(s1,a5)=0+γvπ(s1)
- 策略不会选择的动作也是需要关注的。虽然一些动作暂时未被策略所选择,但这并不意味着这些动作是不好的。反之,这些动作可能是最好的,只是当前的 策略不够好导致没有选择到最优的动作。
强化学习的目的是寻找最优的策略,因此必须探索所有动作,任何一个动作都不能忽视,只有这样才能找到每个状态下的最优动作。
2.8.2 基于动作值的贝尔曼方程
参考文献:
[1] 赵世钰.强化学习的数学原理[M].清华大学出版社:202504.271.