贝尔曼最优方程【BOE】

强化学习笔记

主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门.

第一章 强化学习基本概念
第二章 贝尔曼方程

第三章 贝尔曼最优方程


文章目录


上一节讲了贝尔曼方程,这一节继续在贝尔曼方程的基础上讲贝尔曼最优方程,后面的策略迭代和值迭代算法都是根据贝尔曼最优方程来的.

一、最优策略

强化学习的最终目标是获得最优策略,所以有必要首先定义什么是最优策略。该定义基于状态值,比如,我们考虑两个给定策略 π 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

注意:

  1. 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) 给定
  2. v ( s ) , v ( s ′ ) v(s),v(s^{\prime}) v(s),v(s′) 是需要计算的变量
  3. π \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] 上的一个压缩映射,则

  1. g g g在 [ a , b ] [ a, b] [a,b] 中存在唯一 的不动点 ξ = g ( ξ ) \xi=g\left(\xi\right) ξ=g(ξ) ;
  2. 任何初始值 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的对应章节.

参考资料

  1. Zhao, S. Mathematical Foundations of Reinforcement Learning. Springer Nature Press and Tsinghua University Press.
  2. Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. MIT press, 2018.
相关推荐
浊酒南街2 分钟前
吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.7-2.8
人工智能·深度学习·神经网络
DuoRuaiMiFa36 分钟前
ChatGPT全新功能Canvas上线:开启智能编程与写作新篇章
人工智能·chatgpt
DisonTangor39 分钟前
Windows 11将新增基于AI的搜索、生成式填充和其它AI功能
人工智能
soso196841 分钟前
【AI自然语言处理应用】通过API调用通义晓蜜CCAI-对话分析AIO应用
人工智能·自然语言·ccai
网安-搬运工44 分钟前
RAG再总结之如何使大模型更好使用外部数据:四个不同层级及查询-文档对齐策略
人工智能·自然语言处理·大模型·llm·大语言模型·ai大模型·rag
大模型八哥1 小时前
大模型扫盲系列——大模型实用技术介绍(上)
人工智能·程序人生·ai·大模型·llm·llama·ai大模型
被制作时长两年半的个人练习生1 小时前
【pytorch】权重为0的情况
人工智能·pytorch·深度学习
Elastic 中国社区官方博客1 小时前
使用 Vertex AI Gemini 模型和 Elasticsearch Playground 快速创建 RAG 应用程序
大数据·人工智能·elasticsearch·搜索引擎·全文检索
说私域2 小时前
地理定位营销与开源AI智能名片O2O商城小程序的融合与发展
人工智能·小程序