研究强化学习的有两拨人,一拨是计算机出身,认为强化学习是机器学习的分支,考虑到现阶段的所谓主流机器学习大量使用概率统计知识,机器学习约等同统计机器学习,而强化学习本是炒冷饭,是被机器学习的火热带起来的,计算机出身的人编写的强化学习资料中也充斥着期望、方差、条件期望等统计学术语,现阶段机器学习、深度学习等研究的火热也是这拨人发动起来的;一拨人是控制出身,认为强化学习约等同于最优控制,具体来说是最优控制中的动态规划,再具体来说是提供了一种求解动态规划中Bellman方程的方法,控制出身的人编写的强化学习资料中充斥着系统方程、Lyapunov稳定性等术语,并且控制出身的人研究强化学习或者机器学习的目的不纯,更多地是想搭前一拨人带起来的流行趋势便车,在研究里面随便套一下已有的机器学习方法,显得高大上一点,而不是考虑机器学习究竟是否适用于研究的问题(或者更进一步,究竟研究的问题是不是非要用机器学习不可,优势在哪里,其他方法是不是就不行了)。总之,两拨人的研究互相不友好,导致的结果是彼此看对方的资料往往看得一头雾水,不得要领,这一点在本人尝试看计算机出身的人编写的强化学习资料时感受颇深,下面的笔记就是对这一过程的记录。
1.关于概率
前面已经说过,计算机出身的人编写的强化学习资料以概率统计为基础知识,控制出身的人如果不是研究随机系统控制的话,估计学生阶段学习的概率统计课程早就还给老师了,因此首先需要回顾一下概率统计的基本知识,这一看后面的公式才不至于发懵。
概率在数学上没有严格的定义,数学上利用集合论和公理化方法描述概率,具体如下(见文献[1]):
概率: 设 F \mathcal{F} F是由 Ω \varOmega Ω的一些子集组成的集合(这种由集合组成的集合一般叫做集合系), P = P ( ⋅ ) P=P(\cdot) P=P(⋅)是 F \mathcal{F} F上有定义的实值函数。若定义域 F \mathcal{F} F和函数 P P P满足如下条件:
- Ω ∈ F \varOmega\in\mathcal{F} Ω∈F;
- 若 A ∈ F A\in\mathcal{F} A∈F,则 A c = Ω − A ∈ F A^c=\varOmega-A\in\mathcal{F} Ac=Ω−A∈F;
- 若 A n ∈ F A_n\in\mathcal{F} An∈F(一切 n ≥ 1 n\geq 1 n≥1),则 ⋃ n = 1 ∞ A n ∈ F \displaystyle\bigcup_{n=1}^{\infty}A_n\in\mathcal{F} n=1⋃∞An∈F;
- P ( A ) ≥ 0 P(A)\geq 0 P(A)≥0(一切 A ∈ F A\in\mathcal{F} A∈F);
- P ( Ω ) = 1 P(\varOmega)=1 P(Ω)=1;
- 若 A n ∈ F A_n\in\mathcal{F} An∈F(一切 n ≥ 1 n\geq 1 n≥1),且两两不相交,就有
P ( ⋃ n = 1 ∞ A n ) = ∑ n = 1 ∞ P ( A n ) \begin{aligned} P\left(\bigcup_{n=1}^{\infty}A_n\right)=\sum_{n=1}^\infty P(A_n) \end{aligned} P(n=1⋃∞An)=n=1∑∞P(An)
则称 P P P是 F \mathcal{F} F上的概率测度(简称概率), P ( A ) P(A) P(A)为 A A A的概率(也称 A A A发生的概率)。
考虑到我们不是钻研数学,对上述描述不必较真,只需记住概率是一个取值为非负的函数,然后与概率打交道的是离散随机变量和连续随机变量两类,并且有下面一些基本特性。
- 对于离散随机变量 X X X,用 p ( X = x ) p(X=x) p(X=x)表示 X X X取值 x x x的概率,一般简写为 p ( x ) p(x) p(x),称为概率分布或者概率函数,并且有 ∑ x p ( x ) = 1 \displaystyle\sum_x p(x)=1 x∑p(x)=1;对于连续随机变量 X X X,用 p ( a < X < b ) = ∫ a b p ( x ) d x p(a<X<b)=\int_a^bp(x)\mathrm{d}x p(a<X<b)=∫abp(x)dx表示 X X X取值在 ( a , b ) (a,b) (a,b)区间的概率, p ( x ) p(x) p(x)称为概率密度函数,并且有 ∫ − ∞ + ∞ p ( x ) d x = 1 \int_{-\infty}^{+\infty}p(x)\mathrm{d}x=1 ∫−∞+∞p(x)dx=1,通常简写为 ∫ p ( x ) d x = 1 \int p(x)\mathrm{d}x=1 ∫p(x)dx=1。
- 描述随机变量性质最常用的两个量是期望和方差,对于离散随机变量 X X X,其期望为 E ( X ) = ∑ x x p ( x ) \mathbb{E}(X)=\displaystyle\sum_xxp(x) E(X)=x∑xp(x);对于连续随机变量 X X X,其期望为 E ( X ) = ∫ − ∞ + ∞ x p ( x ) d x \mathbb{E}(X)=\int_{-\infty}^{+\infty}xp(x)\mathrm{d}x E(X)=∫−∞+∞xp(x)dx,通常简写为 E ( X ) = ∫ x p ( x ) d x \mathbb{E}(X)=\int xp(x)\mathrm{d}x E(X)=∫xp(x)dx。无论离散还是连续随机变量,其方差均满足 V ( X ) = E [ ( X − E ( X ) ) 2 ] = E ( X 2 ) − ( E ( X ) ) 2 \mathbb{V}(X)=\mathbb{E}[(X-\mathbb{E}(X))^2]=\mathbb{E}(X^2)-(\mathbb{E}(X))^2 V(X)=E[(X−E(X))2]=E(X2)−(E(X))2。
- 对于两个离散随机变量 X X X和 Y Y Y,用 p ( x , y ) = p ( X = x , Y = y ) p(x,y)=p(X=x,Y=y) p(x,y)=p(X=x,Y=y)表示 X X X取值 x x x且 Y Y Y取值 y y y的概率,称为联合分布,用 p ( x ) p(x) p(x)和 p ( y ) p(y) p(y)分别表示 X X X和 Y Y Y的边缘分布,且有 p ( x ) = ∑ y p ( x , y ) p(x)=\displaystyle\sum_yp(x,y) p(x)=y∑p(x,y), p ( y ) = ∑ x p ( x , y ) p(y)=\displaystyle\sum_xp(x,y) p(y)=x∑p(x,y);对于两个连续随机变量 X X X和 Y Y Y,用 p ( ( X , Y ) ∈ D ) = ∬ D p ( x , y ) d x d y p((X,Y)\in D)=\iint_Dp(x,y)\mathrm{d}x\mathrm{d}y p((X,Y)∈D)=∬Dp(x,y)dxdy表示 X X X和 Y Y Y的取值在区间 D D D上的概率, p ( x , y ) p(x,y) p(x,y)称为联合分布密度,用 p ( x ) p(x) p(x)和 p ( y ) p(y) p(y)分别表示 X X X和 Y Y Y的边缘分布密度,且有 p ( x ) = ∫ p ( x , y ) d y p(x)=\int p(x,y)\mathrm{d}y p(x)=∫p(x,y)dy, p ( y ) = ∫ p ( x , y ) d x p(y)=\int p(x,y)\mathrm{d}x p(y)=∫p(x,y)dx。
- 对于两个离散随机变量 X X X和 Y Y Y,用 p ( x ∣ y ) = p ( X = x ∣ Y = y ) p(x\vert y)=p(X=x\vert Y=y) p(x∣y)=p(X=x∣Y=y) 表示在 Y Y Y取值为 y y y的条件下, X X X取值为 x x x的概率,即条件概率,注意 p ( x ∣ y ) p(x\vert y) p(x∣y)是对 X X X取值概率的描述,满足 ∑ x p ( x ∣ y ) = 1 \displaystyle\sum_xp(x\vert y)=1 x∑p(x∣y)=1;类似地,对于两个连续随机变量 X X X和 Y Y Y,用 p ( x ∣ y ) p(x\vert y) p(x∣y)表示条件概率密度,满足 ∫ p ( x ∣ y ) d x = 1 \int p(x\vert y)\mathrm{d}x=1 ∫p(x∣y)dx=1。无论离散还是连续随机变量,均有 p ( x , y ) = p ( x ∣ y ) p ( y ) = p ( y ∣ x ) p ( x ) p(x,y)=p(x\vert y)p(y)=p(y\vert x)p(x) p(x,y)=p(x∣y)p(y)=p(y∣x)p(x)。
- 有了条件概率的概念后,就可以定义条件期望了,对于离散随机变量 X X X和 Y Y Y,称 E ( X ∣ Y ) = ∑ x x p ( x ∣ y ) \mathbb{E}(X\vert Y)=\displaystyle\sum_x xp(x\vert y) E(X∣Y)=x∑xp(x∣y)为在 Y = y Y=y Y=y的条件下 X X X的条件期望;对于连续随机变量 X X X和 Y Y Y,称 E ( X ∣ Y ) = ∫ x p ( x ∣ y ) d x \mathbb{E}(X\vert Y)=\int xp(x\vert y)\mathrm{d}x E(X∣Y)=∫xp(x∣y)dx称为在 Y = y Y=y Y=y的条件下 X X X的条件期望, E ( X ∣ Y ) \mathbb{E}(X\vert Y) E(X∣Y)可视为关于 Y Y Y的函数。
- 多重期望定理: E ( X ) = E ( E ( X ∣ Y ) ) \mathbb{E}(X)=\mathbb{E}(\mathbb{E}(X\vert Y)) E(X)=E(E(X∣Y))。已知 ϕ ( X , Y ) \phi(X,Y) ϕ(X,Y)为 X X X、 Y Y Y的函数,通常利用多重期望定理来计算 ϕ ( X , Y ) \phi(X,Y) ϕ(X,Y)的期望, E ( ϕ ( X , Y ) ) = E [ E ( ϕ ( X , Y ) ∣ X ) ] \mathbb{E}(\phi(X,Y))=\mathbb{E}[\mathbb{E}(\phi(X,Y)\vert X)] E(ϕ(X,Y))=E[E(ϕ(X,Y)∣X)],即首先计算在给定 X X X后 ϕ ( X , Y ) \phi(X,Y) ϕ(X,Y)的期望,随后对 E ( ϕ ( X , Y ) ∣ X ) \mathbb{E}(\phi(X,Y)\vert X) E(ϕ(X,Y)∣X)再求期望。
- 与条件期望对应的概念有条件方差, V ( X ∣ Y ) = E [ ( X − E ( X ∣ Y ) ) 2 ∣ Y ] = E ( X 2 ∣ Y ) − ( E ( X ∣ Y ) ) 2 \mathbb{V}(X\vert Y)=\mathbb{E}[(X-\mathbb{E}(X\vert Y))^2\vert Y]=\mathbb{E}(X^2\vert Y)-(E(X\vert Y))^2 V(X∣Y)=E[(X−E(X∣Y))2∣Y]=E(X2∣Y)−(E(X∣Y))2;方差分解公式: V ( X ) = V ( E ( X ∣ Y ) ) + E ( V ( X ∣ Y ) ) \mathbb{V}(X)=\mathbb{V}(\mathbb{E}(X\vert Y))+\mathbb{E}(\mathbb{V}(X\vert Y)) V(X)=V(E(X∣Y))+E(V(X∣Y))。
2.关于状态值函数和动作值函数
带着上面的基本知识开始强化学习之旅,主要参考文献[2],并且以有限状态Markov决策过程为研究对象,主要要素为状态集
S
\mathcal{S}
S、动作集
A
\mathcal{A}
A和奖励集
R
\mathcal{R}
R。在给定上一时刻的状态
s
∈
S
s\in\mathcal{S}
s∈S和动作
a
∈
A
a\in\mathcal{A}
a∈A后,特定的状态
s
′
∈
S
s'\in\mathcal{S}
s′∈S和奖励
r
∈
R
r\in\mathcal{R}
r∈R发生的概率为
p
(
s
′
,
r
∣
s
,
a
)
≐
p
(
S
t
=
s
′
,
R
t
=
r
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
)
(1)
p(s',r\vert s,a)\doteq p(S_t=s',R_t=r\vert S_{t-1}=s,A_{t-1}=a)\tag{1}
p(s′,r∣s,a)≐p(St=s′,Rt=r∣St−1=s,At−1=a)(1)
利用
p
(
s
′
,
r
∣
s
,
a
)
p(s',r\vert s,a)
p(s′,r∣s,a)可以进一步计算状态转移概率:
p
(
s
′
∣
s
,
a
)
≐
p
(
S
t
=
s
′
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
)
=
p
(
s
′
∣
s
,
a
)
=
∑
r
∈
R
p
(
s
′
,
r
∣
s
,
a
)
(2)
p(s'\vert s,a)\doteq p(S_t=s'\vert S_{t-1}=s,A_{t-1}=a)=p(s'\vert s,a)=\sum_{r\in\mathcal{R}}p(s',r\vert s,a)\tag{2}
p(s′∣s,a)≐p(St=s′∣St−1=s,At−1=a)=p(s′∣s,a)=r∈R∑p(s′,r∣s,a)(2)
计算状态-动作对的期望奖赏:
r
(
s
,
a
)
≐
E
[
R
t
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
]
=
∑
r
∈
R
r
p
(
r
∣
s
,
a
)
=
∑
r
∈
R
r
∑
s
′
∈
S
p
(
s
′
,
r
∣
s
,
a
)
(3)
r(s,a)\doteq\mathbb{E}[R_t\vert S_{t-1}=s,A_{t-1}=a]=\sum_{r\in\mathcal{R}}rp(r\vert s,a)=\sum_{r\in\mathcal{R}}r\sum_{s'\in\mathcal{S}}p(s',r\vert s,a)\tag{3}
r(s,a)≐E[Rt∣St−1=s,At−1=a]=r∈R∑rp(r∣s,a)=r∈R∑rs′∈S∑p(s′,r∣s,a)(3)
计算状态-动作-下一状态的期望奖赏:
r
(
s
,
a
,
s
′
)
≐
E
[
R
t
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
,
S
t
=
s
′
]
=
∑
r
∈
R
r
p
(
r
∣
s
,
a
,
s
′
)
=
∑
r
∈
R
r
p
(
s
′
,
r
∣
s
,
a
)
p
(
s
′
∣
s
,
a
)
(4)
r(s,a,s')\doteq \mathbb{E}[R_t\vert S_{t-1}=s,A_{t-1}=a,S_t=s']=\sum_{r\in\mathcal{R}}rp(r\vert s,a,s')=\sum_{r\in\mathcal{R}}r\frac{p(s',r\vert s,a)}{p(s'\vert s,a)}\tag{4}
r(s,a,s′)≐E[Rt∣St−1=s,At−1=a,St=s′]=r∈R∑rp(r∣s,a,s′)=r∈R∑rp(s′∣s,a)p(s′,r∣s,a)(4)
上面的式子无非是利用条件概率的性质进行一些变换的把戏,切莫被其唬住,一个原则是,条件概率括号中竖线右边的公共部分照写,然后套用前面提到的两个变量情形下的条件概率性质。有了前面的一些术语后,强化学习进一步引入与累积奖赏有关的值函数,主要是状态值函数和动作值函数两类,通过优化值函数进行学习,最终目的是获得策略,即给定状态下选择动作的概率 π ( a ∣ s ) = p ( a ∣ s ) \pi(a\vert s)=p(a\vert s) π(a∣s)=p(a∣s),也就是条件概率。
- 累积奖赏
G t = R t + 1 + γ R r + 2 + γ 2 R t + 3 + γ 3 R t + 4 + ⋯ = R t + 1 + γ ( R t + 2 + γ R t + 3 + γ 2 R t + 4 + ⋯ ) = R t + 1 + γ G t + 1 (5) \begin{aligned} G_t&=R_{t+1}+\gamma R_{r+2}+\gamma^2 R_{t+3}+\gamma^3 R_{t+4}+\cdots\\ &=R_{t+1}+\gamma(R_{t+2}+\gamma R_{t+3}+\gamma^2 R_{t+4}+\cdots)\\ &=R_{t+1}+\gamma G_{t+1}\tag{5} \end{aligned} Gt=Rt+1+γRr+2+γ2Rt+3+γ3Rt+4+⋯=Rt+1+γ(Rt+2+γRt+3+γ2Rt+4+⋯)=Rt+1+γGt+1(5)
- 状态值函数
v π ( s ) ≐ E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] (6) v_\pi(s)\doteq\mathbb{E}_\pi[G_t\vert S_t=s]=\mathbb{E}_{\pi}\left[\left.\sum_{k=0}^\infty\gamma^kR_{t+k+1}\right\vert S_t=s\right]\tag{6} vπ(s)≐Eπ[Gt∣St=s]=Eπ[k=0∑∞γkRt+k+1∣∣∣∣∣St=s](6)
上式中下标 π \pi π只是为了表明状态值函数是和特定策略 π \pi π有关的,其实还是求期望。
- 动作值函数
q π ( s , a ) ≐ E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] (7) q_\pi(s,a)\doteq \mathbb{E}_\pi[G_t\vert S_t=s, A_t=a]=\mathbb{E}_{\pi}\left[\left.\sum_{k=0}^\infty\gamma^kR_{t+k+1}\right\vert S_t=s,A_t=a\right]\tag{7} qπ(s,a)≐Eπ[Gt∣St=s,At=a]=Eπ[k=0∑∞γkRt+k+1∣∣∣∣∣St=s,At=a](7)
对于状态值函数,可以进一步进行分析,根据定义有
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
]
(8)
\begin{aligned} v_\pi(s)&=\mathbb{E}_\pi[G_t\vert S_t=s]\\ &=\mathbb{E}_\pi[R_{t+1}+\gamma G_{t+1}\vert S_t=s]\\ &=\mathbb{E}_\pi[R_{t+1}\vert S_t=s]+\gamma\mathbb{E}_\pi[G_{t+1}\vert S_t=s] \end{aligned}\tag{8}
vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1∣St=s]+γEπ[Gt+1∣St=s](8)
对于
E
π
[
R
t
+
1
∣
S
t
=
s
]
\mathbb{E}_\pi[R_{t+1}\vert S_t=s]
Eπ[Rt+1∣St=s],可知
E
π
[
R
t
+
1
∣
S
t
=
s
]
=
∑
r
r
p
(
r
∣
s
)
=
∑
r
r
∑
s
′
p
(
s
′
,
r
∣
s
)
=
∑
r
r
∑
s
′
∑
a
p
(
s
′
,
r
∣
s
,
a
)
π
(
a
∣
s
)
=
∑
a
π
(
a
∣
s
)
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
r
(9)
\begin{aligned} \mathbb{E}_\pi[R_{t+1}\vert S_t=s]&=\sum_rrp(r\vert s)\\ &=\sum_r r\sum_{s'}p(s',r\vert s)\\ &=\sum_r r\sum_{s'}\sum_a p(s',r\vert s,a)\pi(a\vert s)\\ &=\sum_a\pi(a\vert s)\sum_{s',r}p(s',r\vert s ,a)r \end{aligned}\tag{9}
Eπ[Rt+1∣St=s]=r∑rp(r∣s)=r∑rs′∑p(s′,r∣s)=r∑rs′∑a∑p(s′,r∣s,a)π(a∣s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)r(9)
对于
E
π
[
G
t
+
1
∣
S
t
=
s
]
\mathbb{E}_\pi[G_{t+1}\vert S_t=s]
Eπ[Gt+1∣St=s],有
E
π
[
G
t
+
1
∣
S
t
=
s
]
=
∑
g
g
p
(
g
∣
s
)
(10)
\mathbb{E}_\pi[G_{t+1}\vert S_t=s]=\sum_g gp(g\vert s)\tag{10}
Eπ[Gt+1∣St=s]=g∑gp(g∣s)(10)
这里将
G
t
+
1
G_{t+1}
Gt+1视为随机变量,同时,考虑到
v
π
(
s
′
)
=
E
π
[
G
t
+
1
∣
S
t
+
1
=
s
′
]
=
∑
g
g
p
(
g
∣
s
′
)
is a function of
s
′
(11)
v_\pi(s')=\mathbb{E}_\pi[G_{t+1}\vert S_{t+1}=s']=\sum_g gp(g\vert s') \text{ is a function of }s'\tag{11}
vπ(s′)=Eπ[Gt+1∣St+1=s′]=g∑gp(g∣s′) is a function of s′(11)
由于
E
π
(
v
π
(
s
′
)
∣
s
)
=
E
π
[
E
π
[
G
t
+
1
∣
S
t
+
1
=
s
′
]
∣
S
t
=
s
]
=
∑
s
′
(
∑
g
g
p
(
g
∣
s
′
)
)
p
(
s
′
∣
s
)
=
∑
s
′
∑
g
g
p
(
g
∣
s
′
)
p
(
s
′
∣
s
)
=
∑
s
′
∑
g
g
p
(
g
,
s
′
∣
s
)
=
∑
g
g
∑
s
′
p
(
g
,
s
′
∣
s
)
=
∑
g
g
p
(
g
∣
s
)
=
E
π
[
G
t
+
1
∣
S
t
=
s
]
(12)
\begin{aligned} \mathbb{E}_\pi(v_\pi(s')\vert s)&=\mathbb{E}_\pi[\mathbb{E}_\pi[G_{t+1}\vert S_{t+1}=s']|S_t=s]\\ &=\sum_{s'}\left(\sum_g gp(g\vert s')\right)p(s'\vert s)\\ &=\sum_{s'}\sum_g gp(g\vert s')p(s'\vert s)\\ &=\sum_{s'}\sum_g gp(g,s'\vert s)\\ &=\sum_{g}g\sum_{s'} p(g,s'\vert s)\\ &=\sum_g gp(g\vert s)\\ &=\mathbb{E}_\pi[G_{t+1}\vert S_t=s] \end{aligned}\tag{12}
Eπ(vπ(s′)∣s)=Eπ[Eπ[Gt+1∣St+1=s′]∣St=s]=s′∑(g∑gp(g∣s′))p(s′∣s)=s′∑g∑gp(g∣s′)p(s′∣s)=s′∑g∑gp(g,s′∣s)=g∑gs′∑p(g,s′∣s)=g∑gp(g∣s)=Eπ[Gt+1∣St=s](12)
另一方面,有
E
π
(
v
π
(
s
′
)
∣
s
)
=
∑
s
′
v
π
(
s
′
)
p
(
s
′
∣
s
)
=
∑
s
′
v
π
(
s
′
)
∑
a
p
(
s
′
∣
s
,
a
)
π
(
a
∣
s
)
=
∑
s
′
v
π
(
s
′
)
∑
a
∑
r
p
(
s
′
,
r
∣
s
,
a
)
π
(
a
∣
s
)
=
∑
a
π
(
a
∣
s
)
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
v
π
(
s
′
)
(13)
\begin{aligned} \mathbb{E}_\pi(v_\pi(s')\vert s)&=\sum_{s'}v_\pi(s')p(s'\vert s)\\ &=\sum_{s'}v_\pi(s')\sum_ap(s'\vert s,a)\pi(a\vert s)\\ &=\sum_{s'}v_\pi(s')\sum_a\sum_rp(s',r\vert s,a)\pi(a\vert s)\\ &=\sum_a\pi(a\vert s)\sum_{s',r}p(s',r\vert s,a)v_\pi(s') \end{aligned}\tag{13}
Eπ(vπ(s′)∣s)=s′∑vπ(s′)p(s′∣s)=s′∑vπ(s′)a∑p(s′∣s,a)π(a∣s)=s′∑vπ(s′)a∑r∑p(s′,r∣s,a)π(a∣s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)vπ(s′)(13)
结合式(12)和(13)可知
E
π
[
G
t
+
1
∣
S
t
=
s
]
=
∑
a
π
(
a
∣
s
)
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
v
π
(
s
′
)
(14)
\mathbb{E}_\pi[G_{t+1}\vert S_t=s]=\sum_a\pi(a\vert s)\sum_{s',r}p(s',r\vert s,a)v_\pi(s')\tag{14}
Eπ[Gt+1∣St=s]=a∑π(a∣s)s′,r∑p(s′,r∣s,a)vπ(s′)(14)
进一步结合式(8)、(9)和(14)可得
v
π
(
s
)
=
∑
a
π
(
a
∣
s
)
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
π
(
s
′
)
]
(15)
v_\pi(s)=\sum_a\pi(a\vert s)\sum_{s',r}p(s',r\vert s ,a)[r+\gamma v_\pi(s')]\tag{15}
vπ(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γvπ(s′)](15)
式(15)即为所谓关于状态值函数的Bellman方程。
类似地,可以推导动作值函数的Bellman方程,具体地,有
q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
=
E
π
[
R
t
+
1
+
γ
G
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
=
E
π
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
+
γ
E
π
[
G
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
(16)
\begin{aligned} q_\pi(s,a)&=\mathbb{E}_\pi[G_t\vert S_t=s, A_t=a]\\ &=\mathbb{E}_\pi[R_{t+1}+\gamma G_{t+1}\vert S_t=s,A_t=a]\\ &=\mathbb{E}_\pi[R_{t+1}\vert S_t=s,A_t=a]+\gamma\mathbb{E}_\pi[G_{t+1}\vert S_t=s,A_t=a] \end{aligned}\tag{16}
qπ(s,a)=Eπ[Gt∣St=s,At=a]=Eπ[Rt+1+γGt+1∣St=s,At=a]=Eπ[Rt+1∣St=s,At=a]+γEπ[Gt+1∣St=s,At=a](16)
对于
E
π
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
\mathbb{E}_\pi[R_{t+1}\vert S_t=s,A_t=a]
Eπ[Rt+1∣St=s,At=a],有
E
π
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
=
∑
r
r
p
(
r
∣
s
,
a
)
=
∑
s
′
,
r
r
p
(
s
′
,
r
∣
s
,
a
)
(17)
\mathbb{E}_\pi[R_{t+1}\vert S_t=s,A_t=a]=\sum_r rp(r\vert s,a)=\sum_{s',r}rp(s',r\vert s,a)\tag{17}
Eπ[Rt+1∣St=s,At=a]=r∑rp(r∣s,a)=s′,r∑rp(s′,r∣s,a)(17)
对于
E
π
[
G
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
\mathbb{E}_\pi[G_{t+1}\vert S_t=s,A_t=a]
Eπ[Gt+1∣St=s,At=a],有
E
π
[
G
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
=
∑
g
g
p
(
g
∣
s
,
a
)
(18)
\mathbb{E}_\pi[G_{t+1}\vert S_t=s,A_t=a]=\sum_ggp(g\vert s,a)\tag{18}
Eπ[Gt+1∣St=s,At=a]=g∑gp(g∣s,a)(18)
考虑到
q
π
(
s
′
,
a
′
)
=
E
π
[
G
t
+
1
∣
S
t
+
1
=
s
′
,
A
t
+
1
=
a
′
]
(19)
q_\pi(s',a')=\mathbb{E}_\pi[G_{t+1}\vert S_{t+1}=s', A_{t+1}=a']\tag{19}
qπ(s′,a′)=Eπ[Gt+1∣St+1=s′,At+1=a′](19)
由于
E
π
[
q
π
(
s
′
,
a
′
)
∣
s
,
a
]
=
E
π
[
E
π
[
G
t
+
1
∣
S
t
+
1
=
s
′
,
A
t
+
1
=
a
′
]
∣
s
,
a
]
=
∑
s
′
,
a
′
∑
g
g
p
(
g
∣
s
′
,
a
′
)
p
(
s
′
,
a
′
∣
s
,
a
)
=
∑
s
′
,
a
′
∑
g
g
p
(
g
,
s
′
,
a
′
∣
s
,
a
)
=
∑
g
g
p
(
g
∣
s
,
a
)
=
E
π
[
G
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
(20)
\begin{aligned} \mathbb{E}_\pi[q_\pi(s',a')\vert s,a]&=\mathbb{E}_\pi[\mathbb{E}_\pi[G_{t+1}\vert S_{t+1}=s', A_{t+1}=a']\vert s,a]\\ &=\sum_{s',a'}\sum_ggp(g\vert s',a')p(s',a'\vert s,a)\\ &=\sum_{s',a'}\sum_ggp(g,s',a'\vert s,a)\\ &=\sum_ggp(g\vert s,a)\\ &=\mathbb{E}_\pi[G_{t+1}\vert S_t=s,A_t=a] \end{aligned}\tag{20}
Eπ[qπ(s′,a′)∣s,a]=Eπ[Eπ[Gt+1∣St+1=s′,At+1=a′]∣s,a]=s′,a′∑g∑gp(g∣s′,a′)p(s′,a′∣s,a)=s′,a′∑g∑gp(g,s′,a′∣s,a)=g∑gp(g∣s,a)=Eπ[Gt+1∣St=s,At=a](20)
另一方面,有
E
π
[
q
π
(
s
′
,
a
′
)
∣
s
,
a
]
=
∑
s
′
,
a
′
q
π
(
s
′
,
a
′
)
p
(
s
′
,
a
′
∣
s
,
a
)
=
∑
s
′
,
a
′
q
π
(
s
′
,
a
′
)
∑
r
p
(
s
′
,
r
∣
s
,
a
)
π
(
a
′
∣
s
′
)
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
∑
a
′
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
(21)
\begin{aligned} \mathbb{E}_\pi[q_\pi(s',a')\vert s,a]&=\sum_{s',a'}q_\pi(s',a')p(s',a'\vert s,a)\\ &=\sum_{s',a'}q_\pi(s',a')\sum_rp(s',r\vert s,a)\pi(a'\vert s')\\ &=\sum_{s',r}p(s',r\vert s,a)\sum_{a'}\pi(a'\vert s')q_\pi(s',a') \end{aligned}\tag{21}
Eπ[qπ(s′,a′)∣s,a]=s′,a′∑qπ(s′,a′)p(s′,a′∣s,a)=s′,a′∑qπ(s′,a′)r∑p(s′,r∣s,a)π(a′∣s′)=s′,r∑p(s′,r∣s,a)a′∑π(a′∣s′)qπ(s′,a′)(21)
结合式(20)和(21)可知
E
π
[
G
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
∑
a
′
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
(22)
\mathbb{E}_\pi[G_{t+1}\vert S_t=s,A_t=a]=\sum_{s',r}p(s',r\vert s,a)\sum_{a'}\pi(a'\vert s')q_\pi(s',a')\tag{22}
Eπ[Gt+1∣St=s,At=a]=s′,r∑p(s′,r∣s,a)a′∑π(a′∣s′)qπ(s′,a′)(22)
进一步结合式(16)、(17)和(22)可得
q
π
(
s
,
a
)
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
∑
a
′
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
]
(23)
q_\pi(s,a)=\sum_{s',r}p(s',r\vert s,a)[r+\gamma\sum_{a'}\pi(a'\vert s')q_\pi(s',a')]\tag{23}
qπ(s,a)=s′,r∑p(s′,r∣s,a)[r+γa′∑π(a′∣s′)qπ(s′,a′)](23)
式(23)即为所谓关于动作值函数的Bellman方程。
我们进一步考察状态值函数
v
π
(
s
)
v_\pi(s)
vπ(s)和动作值函数
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)之间的关系,把
G
t
G_t
Gt视为随机变量,则根据定义有
v
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
=
∑
g
g
p
(
g
∣
s
)
=
∑
g
g
∑
a
p
(
g
∣
s
,
a
)
π
(
a
∣
s
)
=
∑
a
π
(
a
∣
s
)
∑
g
g
p
(
g
∣
s
,
a
)
(24)
\begin{aligned} v_\pi(s)&=\mathbb{E}_\pi[G_t\vert S_t=s]\\ &=\sum_g gp(g\vert s)\\ &=\sum_g g\sum_a p(g\vert s,a)\pi(a\vert s)\\ &=\sum_a\pi(a\vert s)\sum_g gp(g\vert s,a) \end{aligned}\tag{24}
vπ(s)=Eπ[Gt∣St=s]=g∑gp(g∣s)=g∑ga∑p(g∣s,a)π(a∣s)=a∑π(a∣s)g∑gp(g∣s,a)(24)
q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = ∑ g g p ( g ∣ s , a ) (25) q_\pi(s,a)= \mathbb{E}_\pi[G_t\vert S_t=s, A_t=a]=\sum_g gp(g\vert s,a)\tag{25} qπ(s,a)=Eπ[Gt∣St=s,At=a]=g∑gp(g∣s,a)(25)
结合式(24)和(25)可知
v
π
(
s
)
=
∑
a
π
(
a
∣
s
)
q
π
(
s
,
a
)
(26)
v_\pi(s)=\sum_a\pi(a\vert s)q_\pi(s,a)\tag{26}
vπ(s)=a∑π(a∣s)qπ(s,a)(26)
结合式(23)和(26)可知
q
π
(
s
,
a
)
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
π
(
s
′
)
]
(27)
q_\pi(s,a)=\sum_{s',r}p(s',r\vert s,a)[r+\gamma v_\pi(s')]\tag{27}
qπ(s,a)=s′,r∑p(s′,r∣s,a)[r+γvπ(s′)](27)
3.关于最优状态值函数和最优动作值函数
在所有的状态值函数和动作值函数中,强化学习比较关心最优的状态值函数和动作值函数。已知最优状态值函数定义为 v ∗ ( s ) ≐ max π v π ( s ) v_*(s)\doteq\displaystyle\max_\pi v_\pi (s) v∗(s)≐πmaxvπ(s),最优动作值函数定义为 q ∗ ( s , a ) ≐ max π q π ( s , a ) q_*(s,a)\doteq \displaystyle\max_\pi q_\pi(s,a) q∗(s,a)≐πmaxqπ(s,a),根据式(26)有
v ∗ ( s ) = max π v π ( s ) = max π ∑ a π ( a ∣ s ) q π ( s , a ) (28) \begin{aligned} v_*(s)&=\max_\pi v_\pi (s)\\ &=\max_\pi\sum_a\pi(a\vert s)q_\pi(s,a) \end{aligned}\tag{28} v∗(s)=πmaxvπ(s)=πmaxa∑π(a∣s)qπ(s,a)(28)
考虑到
∑
a
π
(
a
∣
s
)
=
1
\displaystyle\sum_a\pi(a\vert s)=1
a∑π(a∣s)=1,若已知
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a),只需让使得
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a)最大的动作概率设为1即可得到
v
∗
(
s
)
v_*(s)
v∗(s),因此有
v
∗
(
s
)
=
max
a
q
∗
(
s
,
a
)
(29)
v_*(s)=\max_a q_*(s,a)\tag{29}
v∗(s)=amaxq∗(s,a)(29)
进一步,根据式(27)可得
q
∗
(
s
,
a
)
=
max
π
q
π
(
s
,
a
)
=
max
π
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
π
(
s
′
)
]
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
max
π
v
π
(
s
′
)
]
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
∗
(
s
′
)
]
(30)
\begin{aligned} q_*(s,a)&=\max_\pi q_\pi(s,a)\\ &=\max_\pi \sum_{s',r}p(s',r\vert s,a)[r+\gamma v_\pi(s')]\\ &=\sum_{s',r}p(s',r\vert s,a)[r+\gamma \max_\pi v_\pi(s')]\\ &=\sum_{s',r}p(s',r\vert s,a)[r+\gamma v_*(s')] \end{aligned}\tag{30}
q∗(s,a)=πmaxqπ(s,a)=πmaxs′,r∑p(s′,r∣s,a)[r+γvπ(s′)]=s′,r∑p(s′,r∣s,a)[r+γπmaxvπ(s′)]=s′,r∑p(s′,r∣s,a)[r+γv∗(s′)](30)
结合式(29)和(30)可得
v
∗
(
s
)
=
max
a
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
∗
(
s
′
)
]
(31)
v_*(s)=\max_a \sum_{s',r}p(s',r\vert s,a)[r+\gamma v_*(s')]\tag{31}
v∗(s)=amaxs′,r∑p(s′,r∣s,a)[r+γv∗(s′)](31)
q ∗ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ max a ′ q ∗ ( s ′ , a ′ ) ] (32) q_*(s,a)=\sum_{s',r}p(s',r\vert s,a)[r+\gamma \max_{a'}q_*(s',a')]\tag{32} q∗(s,a)=s′,r∑p(s′,r∣s,a)[r+γa′maxq∗(s′,a′)](32)
式(31)和(32)即分别为最优状态值函数和动作值函数的Bellman方程,也称Bellman最优方程,是强化学习算法设计的基础。
参考文献
[1]陈家鼎, 郑忠国. 概率与统计[M]. 北京大学出版社, 2007.
[2]Sutton, Richard S., Andrew G. Barto. Reinforcement learning: An introduction (2nd edition). MIT press, 2018.