当前位置: 首页 > news >正文

【强化学习入门笔记】1.5 贝尔曼最优公式

本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.

课程视频网址:https://space.bilibili.com/2044042934

1.5.1 定义

1.5.1.1 Contraction mapping theorem (收缩映射定理)

  • fixed point(不动点)

如果 x ∗ x^* x满足下式, x ∗ x^* x称之为fixed point(不动点)

f ( x ∗ ) = x ∗ f\left(x^*\right)=x^* f(x)=x

  • Contraction mapping (收缩映射)

如果一个函数满足下面不等式, 则称这个函数满足Contraction mapping

∥ f ( x 1 ) − f ( x 2 ) ∥ ≤ γ ∥ x 1 − x 2 ∥ γ ∈ ( 0 , 1 ) \left\|f\left(x_1\right)-f\left(x_2\right)\right\| \leq \gamma\left\|x_1-x_2\right\| \\ \gamma \in(0,1) f(x1)f(x2)γx1x2γ(0,1)

  • Contraction mapping theorem (收缩映射定理)

如果函数 f ( x ) f(x) f(x)满足Contraction mapping, 则有Contraction mapping theorem:

  • 存在性: 一定存在fixed point, 使其满足 f ( x ∗ ) = x ∗ f\left(x^*\right)=x^* f(x)=x
  • 唯一性: fixed point x ∗ x^* x一定是唯一的
  • 求解算法: x ∗ x^* x可以通过迭代计算得到, 并且迭代会指数收敛

1.5.1.2 贝尔曼最优公式

如果对于所有的状态 S \mathcal{S} S, 策略 π ∗ \pi^* π的状态值大于等于其他任何一个策略的状态值, 那么 π ∗ \pi^* π称之为 S \mathcal{S} S状态空间中的最优策略:

v π ∗ ( s ) ≥ v π ( s ) for all  s ∈ S v_{\pi^*}(s) \geq v_\pi(s) \text { for all } s \in \mathcal{S} vπ(s)vπ(s) for all sS

在贝尔曼公式的基础上, 求解使得状态值 v ( s ) v(s) v(s)最大的策略 π ( s ) \pi(s) π(s)就是贝尔曼最优公式:

v ( s ) = max ⁡ π ( s ) ∈ Π ( s ) ∑ a ∈ A π ( a ∣ s ) ( ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v ( s ′ ) ) = max ⁡ π ( s ) ∈ Π ( s ) ∑ a ∈ A π ( a ∣ s ) q ( s , a ) , \begin{aligned}v(s) & =\max _{\pi(s) \in \Pi(s)} \sum_{a \in \mathcal{A}} \pi(a \mid s)\left(\sum_{r \in \mathcal{R}} p(r \mid s, a) r+\gamma \sum_{s^{\prime} \in \mathcal{S}} p\left(s^{\prime} \mid s, a\right) v\left(s^{\prime}\right)\right) \\& =\max _{\pi(s) \in \Pi(s)} \sum_{a \in \mathcal{A}} \pi(a \mid s) q(s, a),\end{aligned} v(s)=π(s)Π(s)maxaAπ(as)(rRp(rs,a)r+γsSp(ss,a)v(s))=π(s)Π(s)maxaAπ(as)q(s,a),

将贝尔曼最优公式写成矩阵形式:

v = max ⁡ π ∈ Π ( r π + γ P π v ) v=\max _{\pi \in \Pi}\left(r_\pi+\gamma P_\pi v\right) v=πΠmax(rπ+γPπv)

如果将右边的最优化问题, 定义为函数 f ( x ) f(x) f(x):

v = f ( v ) = max ⁡ π ( r π + γ P π v ) v=f(v)=\max _\pi\left(r_\pi+\gamma P_\pi v\right) v=f(v)=πmax(rπ+γPπv)

书中详细证明了函数符合Contraction mapping, 有兴趣可以看详细证明, 这里我们使用结论即可.

1.5.2 最优解及其特性

1.5.2.1 最优解

Contraction mapping theorem告诉我们:贝尔曼最优公式一定存在唯一解 v ∗ v^* v, 并且可以用迭代的方式求解.

当我们有了最优解 v ∗ v^* v之后, 就有它对应的最优策略 π ∗ \pi^* π:

π ∗ = arg ⁡ max ⁡ π ∈ Π ( r π + γ P π v ∗ ) \pi^*=\arg \max _{\pi \in \Pi}\left(r_\pi+\gamma P_\pi v^*\right) π=argπΠmax(rπ+γPπv)

那么贝尔曼最优公式可以简写成:

v ∗ = r π ∗ + γ P π ∗ v ∗ v^*=r_{\pi^*}+\gamma P_{\pi^*} v^* v=rπ+γPπv

我们可以发现, 这就是一个贝尔曼公式. 只不过他的参数是最优策略 π ∗ \pi^* π, 也就是说贝尔曼最优公式是贝尔曼公式在最优策略下的一个特殊形式.

v ∗ = v π ∗ ≥ v π v^*=v_{\pi^*} \geq v_\pi v=vπvπ, 书中同样详细证明了为什么 v ∗ v^* v π ∗ \pi^* π是最优的.

1.5.2.2 Greedy optimal policy(贪婪最优定理)

最优策略 π ∗ \pi^* π的Greedy optimal policy(贪婪最优定理), 对于任何 s ∈ S s ∈ S sS,贝尔曼最优公式的最优解唯一, 且是确定性贪婪策略:

π ∗ ( a ∣ s ) = { 1 , a = a ∗ ( s ) , 0 , a ≠ a ∗ ( s ) , \pi^*(a \mid s)= \begin{cases}1, & a=a^*(s), \\ 0, & a \neq a^*(s),\end{cases} π(as)={1,0,a=a(s),a=a(s),

之所以称之为贪婪, 是因为只有最优动作的概率是1, 其他动作概率都是0. 但是仍然有以下两个性质需要注意:

  • π ∗ \pi^* π不唯一: 虽然最优解 v ∗ v^* v的值是唯一的, 但是最优策略不唯一. 也就是说, 可能有多个策略的状态值都是最优.
  • π ∗ \pi^* π可能是随机策略: 虽然Greedy optimal policy告诉我们, 一定存在一个确定性的策略 π ∗ \pi^* π; 但是因为 π ∗ \pi^* π不唯一, 其他的 π ∗ \pi^* π可能是随机策略.

这个例子可以说明上面的两个特性: 两个策略的状态值都是最优, 那么它们都是最优策略; 并且左边是确定策略, 右边是随机策略.

1.5.3 例子

我们重新回顾贝尔曼最优公式:

v ( s ) = max ⁡ π ( s ) ∈ Π ( s ) ∑ a ∈ A π ( a ∣ s ) ( ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v ( s ′ ) ) , s ∈ S . v(s)=\max _{\pi(s) \in \Pi(s)} \sum_{a \in \mathcal{A}} \pi(a \mid s)\left(\sum_{r \in \mathcal{R}} p(r \mid s, a) r+\gamma \sum_{s^{\prime} \in \mathcal{S}} p\left(s^{\prime} \mid s, a\right) v\left(s^{\prime}\right)\right), \quad s \in \mathcal{S} . v(s)=π(s)Π(s)maxaAπ(as)(rRp(rs,a)r+γsSp(ss,a)v(s)),sS.

  • 求解目标: 状态值 v ( s ) v(s) v(s), 策略 π ( s ) \pi(s) π(s)
  • 参数 r , γ r,\gamma r,γ: 通过改变奖励设计和折扣率, 可以改变最优解

1.5.3.1 γ \gamma γ的影响

举个例子说明参数的影响,在这样参数设置时:

  • 抵达禁止格或边界的奖励是-1: r boundary  = r forbidden  = − 1 r_{\text {boundary }}=r_{\text {forbidden }}=-1 rboundary =rforbidden =1
  • 抵达终点的奖励是1: r target  = 1 r_{\text {target }}=1 rtarget =1
  • γ = 0.9 \gamma=0.9 γ=0.9
  • 其他行为奖励是0

它的最优策略和最优状态值如下图所示, 它会倾向于穿过禁止格, 抵达终点:

当我们把 γ = 0.5 \gamma=0.5 γ=0.5时, 最优策略则倾向于绕过禁止格, 抵达终点:

当我们把 γ = 0 \gamma=0 γ=0时, 最优策略则几乎放弃抵达终点, 倾向于脱离禁止格后原地不动, 因为它只考虑了眼前的即时动作奖励:

这几个例子说明了 γ \gamma γ代表奖励设计的远视程度: γ \gamma γ越大说明越鼓励长远的收益; γ \gamma γ越小说明越鼓励眼前的收益;

不过需要说明的是, 只要 γ \gamma γ不等于1, 远期收益都会逐渐衰减. 我们可以看return的公式:

G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … G_t =R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\ldots Gt=Rt+1+γRt+2+γ2Rt+3+

因为 0 ≤ γ ≤ 1 0\leq \gamma \leq1 0γ1, 越远期的奖励折扣率越小, 它自然的就会使得远期收益逐渐衰减.

1.5.3.2 r r r的影响

如果我们非常不希望策略进入禁止格, 那么我们可以将禁止格惩罚设置为-10或者是更小的值, 来惩罚对应的动作.

但是显而易见的是: 如果整体性的放大奖励, 比如将终点奖励也设置为10, 结果不会有任何变化.

推荐阅读

  • 端到端理论与实战
  • 动手学轨迹预测
  • 动手学运动规划
  • 动手学行为决策
  • 强化学习入门笔记

相关文章:

【强化学习入门笔记】1.5 贝尔曼最优公式

本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记. 课程视频网址:https://space.bilibili.com/2044042934 1.5.1 定义 1.5.1.1 Contraction mapping theorem (收缩映射定理) fixed point(不动点) 如果 x ∗ x^* x∗满足下式, x ∗ x^* x∗称之为…...

编码问题技术探讨:IDE全局GBK与项目UTF-8引发的中文乱码

在软件开发过程中,编码问题一直是开发者们需要面对和解决的难题之一。尤其是在使用IDE(集成开发环境)时,如果全局编码设置与项目编码设置不一致,往往会导致中文乱码的问题。本文将深入探讨这一问题的背景、示例以及解决…...

SpringBoot两天

SpringBoot讲义 什么是SpringBoot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式&#xf…...

自动化立体仓库项目任务调度系统中任务流程可视化实现

在运维自动化平台中,任务系统无疑是最核心的组成部分之一。它承担着所有打包编译、项目上线、日常维护等运维任务的执行。通过任务系统,我们能够灵活地构建满足不同需求的自定义任务流。早期的任务流后端采用了类似列表的存储结构,根据任务流内子任务的排序依次执行,尽管通…...

计算机毕业设计hadoop+spark民宿推荐系统 民宿数据分析可视化大屏 民宿爬虫 民宿大数据 知识图谱 机器学习 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

Java中OGNL表达式语言的使用

文章目录 OGNL 介绍OGNL 使用场景- ognl- 主要功能- 注意事项- Ognl类的主要方法- 设置值- 获取值- 使用示例 - MybatisJava原生表达式的使用 - Fastjson- JSONPath类的主要方法- 主要功能- JSONPath的优势- 使用示例 Spring不选择OGNL的原因 OGNL 介绍 OGNL(Objec…...

[HCTF 2018]WarmUp-滑稽

启动场景打开链接&#xff0c;出现一下图片 F12查看代码出现一个注释&#xff0c;应该在这个文件中&#xff0c; 进入到该页面&#xff0c;出现一段代码 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["sourc…...

JAVAWeb——maven、SpringBoot、HTTP、Tomcat

目录 1.maven a.概述 b.作用 c.仓库 b.坐标 c.依赖管理 2.SpringBoot 3.HTTP a.概述 b.请求协议 c.响应协议 d.协议解析 4.Tomcat a.Web服务器 b.Tomcat c.SpringBoot与Tomcat关系 1.maven a.概述 Maven是apache旗下的一个开源项目&#xff0c;是一款用于管理…...

【C++】—— set 与 multiset

【C】—— map 与 set 1 序列式容器和关联式容器2 set 系列的使用2.1 set 和 multiset 参考文档2.2 set 类的介绍2.3 set 的迭代器和构造2.4 set的增删查2.4.1 insert2.4.2 find 与 erase2.4.3 count 2.5 lower_bound 与 upper_bound2.6 multiset 与 set 的差异2.6.1 不再去重2…...

蓝桥杯-扫雷

这题不难&#xff0c;就是麻烦一点&#xff0c;这里暴力求解了直接 题目链接&#xff1a; 扫雷 AC代码&#xff1a; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan ne…...

黑马JavaWeb-day06、07、08(SQL部分) _

文章目录 MYSQL概述数据模型SQL简介SQL分类 DDL数据库操作表操作 DML增&#xff08;INSERT&#xff09;改&#xff08;UPDATE&#xff09;删&#xff08;DELETE&#xff09; DQL基本查询条件查询&#xff08;where&#xff09;分组查询&#xff08;group by&#xff09;排序查询…...

三十五:Wireshark的捕获过滤器

Wireshark 是一个广泛使用的网络协议分析工具&#xff0c;主要用于捕获和分析网络流量。它支持丰富的协议分析&#xff0c;并提供了多种过滤方式&#xff0c;以便用户在大量数据中精确地找到自己关注的内容。在Wireshark中&#xff0c;过滤器可以分为两类&#xff1a;捕获过滤器…...

第9章 大模型的有害性(上)

9.1 引言 本章将探讨大型语言模型&#xff08;LLMs&#xff09;可能带来的有害性&#xff0c;重点讨论以下几个方面&#xff1a; 性能差异社会偏见和刻板印象 在后续内容中&#xff0c;还会涉及其他层面的危害&#xff0c;如有害信息、虚假信息、隐私和安全风险、版权问题、…...

遗传算法与深度学习实战(26)——编码卷积神经网络架构

遗传算法与深度学习实战&#xff08;26&#xff09;——编码卷积神经网络架构 0. 前言1. EvoCNN 原理1.1 工作原理1.2 基因编码 2. 编码卷积神经网络架构小结系列链接 0. 前言 我们已经学习了如何构建卷积神经网络 (Convolutional Neural Network, CNN)&#xff0c;在本节中&a…...

Linux无线网络配置工具:iwconfig vs iw

在Linux系统中&#xff0c;无线网络配置和管理是网络管理员和开发者的常见任务。本文将详细介绍两个常用的无线网络配置命令行工具&#xff1a;iwconfig 和 iw&#xff0c;并对比它们之间的区别&#xff0c;帮助您更好地选择合适的工具进行无线网络配置。 一、iwconfig 简介 …...

RabbitMQ介绍及安装

文章目录 一. MQ二. RabbitMQ三. RabbitMQ作用四. MQ产品对比五. 安装RabbitMQ1. 安装erlang2. 安装rabbitMQ3. 安装RabbitMQ管理界⾯4. 启动服务5. 访问界面6. 添加管理员用户7. 重新登录 一. MQ MQ( Message queue ), 从字⾯意思上看, 本质是个队列, FIFO 先⼊先出&#xff…...

借助 AI 工具,共享旅游-卡-项目助力年底增收攻略

年底了&#xff0c;大量的商家都在开始筹备搞活动&#xff0c;接下来的双十二、元旦、春节、开门红、寒假&#xff0c;各种活动&#xff0c;目的就是为了拉动新客户。 距离过年还有56 天&#xff0c;如何破局&#xff1f; 1、销售渠道 针对旅游卡项目&#xff0c;主要销售渠道…...

Docker Compose 和 Kubernetes 之间的区别?

一、简介&#x1f380; 1.1 Docker Compose Docker Compose 是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排&#xff0c;可以管理多个 Docker 容器组成一个应用。你只需定义一个 YAML 格式的配置文件 docker-compose.yml &#xff0c;即可创建并…...

node.js常用的模块和中间件?

‌Node.js常用的模块和中间件包括以下几种‌&#xff1a; ‌Express‌&#xff1a;Express是一个灵活的Node.js web应用框架&#xff0c;提供了丰富的API来处理HTTP请求和响应。它支持中间件系统&#xff0c;可以轻松地添加各种功能&#xff0c;如路由、模板引擎、静态文件服务…...

Llama模型分布式训练(微调)

1 常见大模型 1.1 参数量对照表 模型参数量发布时间训练的显存需求VGG-19143.68M2014~5 GB&#xff08;单 224x224 图像&#xff0c;batch_size32&#xff09;ResNet-15260.19M2015~7 GB&#xff08;单 224x224 图像&#xff0c;batch_size32&#xff09;GPT-2 117M117M2019~…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...