强化学习笔记
主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门.
第一章 强化学习基本概念
第二章 贝尔曼方程
第三章 贝尔曼最优方程
文章目录
- 强化学习笔记
- 一、最优策略
- 二、贝尔曼最优方程(BOE)
- 三、BOE的求解
- 1 求解方法
- 2 实例
- 四、BOE的最优性
- 参考资料
上一节讲了贝尔曼方程,这一节继续在贝尔曼方程的基础上讲贝尔曼最优方程,后面的策略迭代和值迭代算法都是根据贝尔曼最优方程来的.
一、最优策略
强化学习的最终目标是获得最优策略,所以有必要首先定义什么是最优策略。该定义基于状态值,比如,我们考虑两个给定策略
π
1
\pi_1
π1和
π
2
\pi_2
π2。若任一状态下
π
1
\pi_1
π1的状态值大于等于
π
2
\pi_2
π2的状态值,即:
v
π
1
(
s
)
≥
v
π
2
(
s
)
,
∀
s
∈
S
,
v_{\pi_1}(s)\geq v_{\pi_2}(s),\quad\forall s\in\mathcal{S},
vπ1(s)≥vπ2(s),∀s∈S,
那么我们称
π
1
\pi_1
π1是比
π
2
\pi_2
π2更好的策略.最优策略就是所有可能的策略中最好的,定义如下:
如何得到这个策略呢?需要求解贝尔曼最优方程.
二、贝尔曼最优方程(BOE)
贝尔曼最优方程(Bellman Optimal Equation,BOE),就是最优策略条件下的贝尔曼方程:
v
(
s
)
=
max
π
∑
a
π
(
a
∣
s
)
(
∑
r
p
(
r
∣
s
,
a
)
r
+
γ
∑
s
′
p
(
s
′
∣
s
,
a
)
v
(
s
′
)
)
,
∀
s
∈
S
=
max
π
∑
a
π
(
a
∣
s
)
q
(
s
,
a
)
s
∈
S
\begin{aligned} v\left(s\right)& =\max_{\pi}\sum_{a}\pi(a|s)\left(\sum_{r}p(r|s,a)r+\gamma\sum_{s'}p(s'|s,a)v(s')\right),\quad\forall s\in\mathcal{S} \\ &=\max_{\pi}\sum_{a}\pi\left(a|s\right)q\left(s,a\right)\quad s\in{\mathcal S} \end{aligned}
v(s)=πmaxa∑π(a∣s)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)v(s′)),∀s∈S=πmaxa∑π(a∣s)q(s,a)s∈S
注意:
- p ( r ∣ s , a ) , p ( s ′ ∣ s , a ) p(r|s,a),p(s^{\prime}|s,a) p(r∣s,a),p(s′∣s,a) 给定
- v ( s ) , v ( s ′ ) v(s),v(s^{\prime}) v(s),v(s′) 是需要计算的变量
- π \pi π为优化变量
我们可以发现贝尔曼最优方程存在两个未知数
v
v
v和
π
\pi
π,一个方程怎么求解两个未知数呢?我们以下列式子说明,是可以求解的。
也就是说在求解时,可以固定一个变量,先求max的变量.
受上面例子的启发,考虑到 ∑ a π ( a ∣ s ) = 1 \sum_a\pi(a|s)=1 ∑aπ(a∣s)=1,我们有:
υ
(
s
)
=
max
π
∑
a
π
(
a
∣
s
)
(
∑
r
p
(
r
∣
s
,
a
)
r
+
γ
∑
s
′
p
(
s
′
∣
s
,
a
)
v
(
s
′
)
)
,
=
max
π
∑
a
π
(
a
∣
s
)
q
(
s
,
a
)
=
max
a
∈
A
(
s
)
q
(
s
,
a
)
\begin{aligned} \upsilon(s)& \begin{aligned}=\max_{\color{red}{\pi}}\sum_{a}\pi(a|s)\left(\sum_{r}p(r|s,a)r+\gamma\sum_{s'}p(s'|s,a)v(s')\right),\end{aligned} \\ &=\max_{\color{red}{\pi}}\sum_{a}\color{red}{\pi(a|s)}q(s,a) \\ &=\max_{\color{red}{a\in\mathcal{A}(s)}}q(s,a) \end{aligned}
υ(s)=πmaxa∑π(a∣s)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)v(s′)),=πmaxa∑π(a∣s)q(s,a)=a∈A(s)maxq(s,a)
我们通过先对
π
\pi
π变量求max,最后将问题转换为:
v
(
s
)
=
max
a
∈
A
(
s
)
q
(
s
,
a
)
v(s)=\max_{\color{red}{a\in\mathcal{A}(s)}}q(s,a)
v(s)=a∈A(s)maxq(s,a)而这个方程与
π
\pi
π无关了,只有一个变量,那就是
v
(
s
)
v(s)
v(s)(向量形式),如何求解这个方程呢?下面介绍如何用迭代法进行求解.
三、BOE的求解
1 求解方法
我们考虑BOE的向量形式:
v
=
f
(
v
)
=
max
π
(
r
π
+
γ
P
π
v
)
v=f(v)=\max_{\pi}(r_\pi+\gamma P_\pi v)
v=f(v)=πmax(rπ+γPπv)而这个函数
f
f
f是一个压缩映射,压缩常数为
γ
\gamma
γ,证明见参考资料1的对应章节。什么是压缩映射?
定义(压缩映射)
如果存在 α ∈ ( 0 , 1 ) \alpha\in(0,1) α∈(0,1),使得函数 g g g对 ∀ x 1 , x 2 ∈ dom g \forall x_1,x_2\in \operatorname{dom} g ∀x1,x2∈domg满足
∥ g ( x 1 ) − g ( x 2 ) ∥ ≤ α ∥ x 1 − x 2 ∥ \|g(x_1)-g(x_2)\|\leq\alpha\|x_1-x_2\| ∥g(x1)−g(x2)∥≤α∥x1−x2∥则我们称 g g g为一个压缩映射,称常数 α \alpha α为压缩常数.
f f f是压缩映射有什么用呢?这里需要先介绍一下压缩映射原理.
定理(压缩映射原理)
设 g g g是 [ a , b ] [a,b] [a,b] 上的一个压缩映射,则
- g g g在 [ a , b ] [ a, b] [a,b] 中存在唯一的不动点 ξ = g ( ξ ) \xi=g\left(\xi\right) ξ=g(ξ) ;
- 由任何初始值 x 0 ∈ [ a , b ] x_0\in[a,b] x0∈[a,b] 和递推公式
x n + 1 = g ( x n ) , n ∈ N ∗ x_{n+1}=g\left(x_n\right),n\in N^* xn+1=g(xn),n∈N∗ 生成的数列 { x n } \{x_n\} {xn} 一定收敛于 ξ \xi ξ.
这也就是说,压缩映像原理给出了一个求不动点的方法,而BOE的 f f f是压缩映射,因此我们有
具体来看每一次迭代怎么算:
当我们计算每个状态
s
s
s时,我们由
v
k
(
s
′
)
v_k(s')
vk(s′)可以计算得到
q
k
(
s
,
a
)
q_k(s,a)
qk(s,a),然后再求最大就得到
v
k
+
1
(
s
)
v_{k+1}(s)
vk+1(s)了。值得注意的是上述方程右端取得最优值时,我们有:
π
k
+
1
(
a
∣
s
)
=
{
1
a
=
a
∗
,
0
a
≠
a
∗
.
\pi_{k+1}(a|s)=\begin{cases} 1 & a=a^*,\\ 0 & a\neq a^*. \end{cases}
πk+1(a∣s)={10a=a∗,a=a∗.其中
a
∗
=
arg
max
a
q
k
(
s
,
a
)
a^*=\arg\max\limits_a q_k(s,a)
a∗=argamaxqk(s,a),这个策略被称为greedy policy,也就是每次都选择动作值(q值)最大的动作.
Note:
- 值得注意的是,任意给 v 0 ∈ dom f v_0\in\operatorname{dom} f v0∈domf,都能收敛到不动点.
2 实例
我们考虑如下这样一个问题,还是智能体走格子:
- 状态集: s 1 , s 2 , s 3 s_1,s_2,s_3 s1,s2,s3其中 s 2 s_2 s2是目标状态.
- 动作集: a l , a 0 , a r a_l,a_0,a_r al,a0,ar分别代表向左、原地不动、向右.
- 奖励:进入 s 2 s_2 s2+1,走出格子-1。
回顾上一章讲动作值函数和状态值函数的关系,我们可以写出
q
(
s
,
a
)
q(s,a)
q(s,a)与
v
(
s
)
v(s)
v(s)的关系:
下面给定一个
v
(
s
)
v(s)
v(s)的初始值,进行迭代:
显然,从直观上我们知道当前策略已经是最好的了。如果继续进行迭代,得到的策略不会再改变了,那么迭代算法怎么停止呢?停止准则可以通过如下公式进行判断:
∥
v
k
+
1
−
v
k
∥
≤
ϵ
\|v_{k+1}-v_k\|\leq\epsilon
∥vk+1−vk∥≤ϵ其中
ϵ
\epsilon
ϵ是一个给定的很小的值,也就是相邻两次
v
v
v相差很小时,我们认为
v
v
v已经逼近精确值了.
四、BOE的最优性
上面介绍怎么求解BOE的过程中,我们同时通过greedy policy的方法得到了最优策略:
π
∗
=
arg
max
π
(
r
π
+
γ
P
π
v
∗
)
\pi^*= \arg\max\limits_\pi (r_\pi+\gamma P_\pi v^*)
π∗=argπmax(rπ+γPπv∗)其中
v
∗
v^*
v∗是
π
∗
\pi^*
π∗对应的状态值,那么求解贝尔曼最优方程得到的这个
π
∗
\pi^*
π∗是不是最优策略呢?有如下定理进行保证.
这个定理保证了,我们通过求解BOE得到的策略是最优策略,证明见参考资料1的对应章节.
参考资料
- Zhao, S. Mathematical Foundations of Reinforcement Learning. Springer Nature Press and Tsinghua University Press.
- Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. MIT press, 2018.