强化学习:基本概念

news2024/9/20 23:35:53

在这里插入图片描述
  以 grid-world 为例,进行强化学习基础概念的介绍。如图,机械人处于一个网格世界中,不同的网格代表不同的功能,白色代表机械人可以自由的进入,黄色代表陷阱(机械人一旦进入就会被强制返回起点),蓝色代表终点,现在要求机械人自己学习,从起点到终点走最短路径。

状态 state

状态:系统在各阶段可能发生的状态 S i S_i Si,如图状态有 s 1 s1 s1, s 2 s2 s2, ···, s 9 s9 s9

状态集合:系统在各阶段所有可能发生的状态的集合 S S S= { S i } \left\{\begin{rcases}S_i\end{rcases}\right. {Si}

行为 action

行为:在每个状态可能采取的行为 a i a_i ai。在grid-world中机械人共有5种行为:
   a 1 a1 a1:向上移动;
   a 2 a2 a2: 向右移动;
   a 3 a3 a3: 向下移动;
   a 4 a4 a4: 向左移动;
   a 5 a5 a5: 保存原位置不动;

在这里插入图片描述

行为集合:所有的可采取行为的集合 A ( S i ) A(S_i) A(Si)= { a i } \left\{\begin{rcases}a_i\end{rcases}\right. {ai}

状态转移

状态转移:一个状态通过采取一个行为后会转移到另一个状态 S 1 — a 2 — > S 2 S_1—a2—>S_2 S1a2—>S2

状态转移概率:用概率来描述状态转换!
        p ( s j ∣ s i , a n ) p(s_j | s_i,a_n) p(sjsi,an):表示在状态 s i s_i si 采取行为 a n a_n an 到达状态 s j s_j sj的概率
       如: p ( s 2 ∣ s 1 , a 2 ) = 1 p(s_2 | s_1,a_2)=1 p(s2s1,a2)=1

策略 policy

策略:基于最终的目的指导当前状态下应该采取什么的行为,每个状态都对应有一个策略
   例如现在给出一个策略 (绿色箭头表示策略) ,如下图,那么基于给出的策略会得到不同起点到达终点的路径。

在这里插入图片描述
在这里插入图片描述

   在具体问题中,常常运用数学中的条件概率表示策略,强化学习中习惯性用 π π π 表示策略, π ( a n ∣ s i ) π(a_n|s_i) π(ansi) 表示在状态 s i s_i si 的条件下采取行为 a n a_n an 的概率。
   以状态 s 1 s1 s1为例,上面给出箭头的策略用数学表达形式如下(确定性概率):
π ( a 1 ∣ s 1 ) = 0 π(a_1|s_1)=0 π(a1s1)=0 π ( a 2 ∣ s 1 ) = 1 π(a_2|s_1)=1 π(a2s1)=1 π ( a 3 ∣ s 1 ) = 0 π(a_3|s_1)=0 π(a3s1)=0 π ( a 4 ∣ s 1 ) = 0 π(a_4|s_1)=0 π(a4s1)=0 π ( a 5 ∣ s 1 ) = 0 π(a_5|s_1)=0 π(a5s1)=0
   以状态 s 1 s1 s1为例,不确定性概率的策略:
在这里插入图片描述
π ( a 1 ∣ s 1 ) = 0 π(a_1|s_1)=0 π(a1s1)=0 π ( a 2 ∣ s 1 ) = 0.5 π(a_2|s_1)=0.5 π(a2s1)=0.5 π ( a 3 ∣ s 1 ) = 0.5 π(a_3|s_1)=0.5 π(a3s1)=0.5 π ( a 4 ∣ s 1 ) = 0 π(a_4|s_1)=0 π(a4s1)=0 π ( a 5 ∣ s 1 ) = 0 π(a_5|s_1)=0 π(a5s1)=0

在编程中,策略通常使用数组(矩阵)的形式表示:
在这里插入图片描述

奖励 reward

   在强化学习中,奖励是一个实数(标量),是采取行为后获得的。奖励有正有负,如果奖励为正,说明我们鼓励采取这种行为;如果奖励为负,说明我们不希望采取这种行为,本质是对采取这种行为的惩罚。
   奖励可以理解为是人与机械人进行交互的一种手段,通过奖励可以引导机械人按照我们的期望行事,实现我们的目标。奖励一定是依赖与当前状态和采取的行为的,是依据采取的行为给出的。

   在 gird-world 中,奖励的规则如下:
在这里插入图片描述

	1、如果机械人试图走出边界,则奖励reward=-1		
	2、如果机械人试图进入禁止的单元格,则奖励reward=-1	
	3、如果机械人到达目标单元格,则奖励reward=+1	
	4、其他情况,奖励reward=0	

   在强化学习中,用条件概率来表示采取行为获得的奖励。
p ( r ∣ s i , a n ) :表示在状态 s i 的条件下采取行为 a n 获得奖励的概率 p(r|s_i,a_n):表示在状态s_i的条件下采取行为a_n获得奖励的概率 p(rsi,an):表示在状态si的条件下采取行为an获得奖励的概率
   以状态 s 1 s_1 s1为例(由于我们已经设计好了奖励规则,所以获得的奖励是确定的,但在实际情况中获得的奖励不是确定性的): p ( r = − 1 ∣ s 1 , a 1 ) = 1 p(r=-1|s_1,a_1)=1 p(r=1∣s1,a1)=1

状态-行动-回报 trajectory

   在强化学习中,trajectory 是记录从起点到终点所采取的行为、获得的奖励,以及状态转移的链,包含了状态、奖励、行为三个变化。采样(return)是 trajectory 中很重要的概率,是针对一个 trajectory 而言,其作用是沿着一条trajectory 所得到的所有 奖励加起来。
在这里插入图片描述
.
在这里插入图片描述

   如上图所示,不同的策略会得到不同的轨迹。那么,如何评估不同策略的优劣呢?在强化学习中,通常是使用 return 去评估一个策略的优劣。

衰减系数 γ γ γ 的引入
在这里插入图片描述
   如上图所示,当机械人到达终点时,策略还在进行,会持续反复进入终点,会使得return发散。为了解决这个问题,我们引入衰减系数(discount rate) γ ∈ [ 0 , 1 ) γ∈[0,1) γ[0,1),引入衰减系数后会得到 discount return
在这里插入图片描述
可以发现 γ γ γ的作用:
   1、保证得到的奖励是有限的
   2、能够平衡遥期和近期的回报
    如果 γ γ γ值偏小,则表明我们会更注重近期的奖励,即最终得到的奖励由最开始得到的奖励决定
    如果 γ γ γ值偏大,则表明我们更注重长远的奖励,使机械人变得有远见

episode

   机械人按照策略与环境交互时,到达终点时机械人会停止,由此产生的轨迹被称为episode。
   在网格世界里,应该在到达目标后停下来吗?事实上,我们可以用一个统一的数学来处理。

马尔可夫决策过程MDP(Markov dwcision process)

   一个马尔科夫决策过程由三个要素组成:
1、集合:
状态集合: S 状态集合:S 状态集合:S 行为集合: A ( s ) 行为集合:A(s) 行为集合:A(s) 奖励集合: R ( s , a ) 奖励集合:R(s,a) 奖励集合:R(s,a)

2、概率:
状态转移概率: p ( s ′ ∣ s , a ) 状态转移概率:p(s'|s,a) 状态转移概率:p(ss,a) 奖励概率: p ( r ∣ s , a ) 奖励概率:p(r|s,a) 奖励概率:p(rs,a)

3、策略:
策略: π ( a ∣ s ) 策略:π(a|s) 策略:π(as)

  马尔科夫性质:无后效性,指当前决策只与当前的状态及目标有关,与过去无关。
在这里插入图片描述
grid-world 网格世界可以抽象为一个更普遍的模型,即马尔可夫过程。圆圈表示状态,带有箭头的链接表示状态转移,马尔可夫决策过程一旦给出策略,就变成马尔可夫链。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/548033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Reinforcement Learning: An Introduction》第1章笔记

文章目录 1.1 强化学习1.2 强化学习的例子1.3 强化学习的要素1.4 局限和范围1.5 拓展例子:井字游戏1.6 总结1.7 强化学习的早期历史参考资料 1.1 强化学习 强化学习是学习做什么—如何将情景映射到动作—以便最大化数字奖励信号。学习者不会被告知该采取什么动作&a…

MySQL基础(三十九)MySQL常用命令

1 MySQL常用命令 1.1 mysql 该mysql不是指mysql服务,而是指mysql的客户端工具。 语法 : mysql [options] [database]1.1. 连接选项 #参数 : -u, --username 指定用户名 -p, --password[name] 指定密码 -h, --hostname 指定服务器IP或域名…

计算机组成原理实验报告二-认识汇编语言

实验资料: https://wwpv.lanzoue.com/b05drqjef 密码:d19t 使用txt文档编写下面C源码,文档命名为【学号_hello.c】并使用Mingw工具(是 Minimalist GNU for Windows的缩写)的bin文件夹下gcc.exe带选项编译(&#xff09…

JUC之线程池的标准创建方式

文章目录 JUC之线程池的标准创建方式核心和最大线程数量空闲时长(keepAliveTime)线程工厂(ThreadFactory)任务阻塞队列线程池的拒绝策略线程池的任务调度流程 JUC之线程池的标准创建方式 ​ 因为使用Executors快捷创建线程池在使用时会有严重的潜在问题,因此在实战…

数据结构——队列的实现(细就完事了)

1.队列 1.1队列的概念和结构 今天我们要是实现的队列是完全相反的,队列是数据先进先出。而在栈中我们使用的顺序表(数组)来实现的。而队列却用单链表来实现是更加合适的。 队列:只允许在一端进行插入数据操作,在另一端进行数据操作的特殊线…

【王道·计算机网络】第六章 应用层【未完】

一、基本概念 1.1 应用层概述 应用层对应用程序的通信提供服务应用层协议定义: 应用进程交换的报文类型,请求还是响应?各种报文类型的语法,如报文中的各个字段及其详细描述字段的语义,即包含在字段中的信息的含义进程何时、如何…

这是关于“树先生“的故事

《数据结构专栏》 文章目录 《数据结构专栏》一、认识树结构如何遍历树如何创建一个树?如何判断一颗树是否是完全二叉树? 二、树的简单算法——递归1.相同树2.镜像树3.单值二叉树 总结 一、认识树结构 树的定义:树是指由N(N>0…

高效研发团队都在看!一套方法论带你找到适合自己的效能提升路径

近日,ONES 受邀参加 2023 QECon 全球软件质量&效能大会(深圳站)。在会上,ONES 研发效能改进咨询顾问陈仪,发表了主题为《如何为研发团队打造专属的效能提升路径》的演讲。 陈仪有着丰富的咨询经验,曾带…

Netty核心技术二--BIO编程

1. I/O模型 I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能 Java共支持3种网络编程模型/IO模式:BIO、NIO、AIO Java BIO :同步并阻塞(传统阻塞型),服务器实现模式为一个…

C++每日一练:饿龙咆哮-逃离城堡(避坑指南)非负整数求和

文章目录 前言一、题目二、解题代码及思路1、思路2、代码 三、非负整数求和总结 前言 饿龙这一题要说难度嘛,还真是挺简单的,但要满分也是有坑的!本文就记录了笔者解题过程,希望能对读者使用C编程有所启发。至于非负整数求和代码…

RocketMQ集群环境部署

文章目录 1. 准备环境2. 修改主机名3. 免密登录配置4. 配置RocketMQ集群5. 搭建RocketMQ集群6. 启动集群 1. 准备环境 准备好三台虚拟机,下面是我的虚拟机的一些基本信息 名称ip地址worker010.117.33.135worker110.117.39.202worker210.117.9.52 三台虚拟机都已经…

Windows下nginx的配置与启动

一,下载 http://nginx.org/,打开官网,点击download 选择下载稳定版 二,解压 1,解压到硬盘某个目录 2,由于80端口被占用,于是我要修改conf目录下的nginx.conf文件 查看端口是否被占用 net…

路径规划算法:基于蝴蝶算法的路径规划算法- 附代码

路径规划算法:基于蝴蝶优化的路径规划算法- 附代码 文章目录 路径规划算法:基于蝴蝶优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法蝴蝶…

【C++】类和对象(上):带你速度了解什么是类,如何定义类!!

前言: 前面我们学习C一些基础的内容,也可以说C针对C语言的缺陷进行改进。而今天我们要学的是C的内容也就是类和对象。 一、初识类: 我们先来看看C语言解决一个问题的过程: 假设有以下这个场景:你需要手洗一件衣服&am…

算法Day09 | KMP,28. 实现 strStr() ,459.重复的子字符串

Day09 KMP28. 实现 strStr()459.重复的子字符串 KMP KMP是三个人人名缩写,用于在文本字符串text中搜索pattern字符串,返回在text中第一出现的位置。 算法做法就是在暴力匹配的基础上加速匹配。通过对pattern字符串求next数组(该数组也成为前缀表)&#…

element ui 表格内嵌图片预览展示样式问题 (element plus)

❤️砥砺前行,不负余光,永远在路上❤️ 目录 前言一、问题二、解决 前言 一、问题 二、解决 添加上preview-teleported 属性即可。

ChatGPT ✖️ 前端 = 有点er意思

HOT! HOT! HOT! 🔥 🔥 🔥 ChatGPT登上了国内各大平台的热搜榜,应该在去年11月末的时候就有不少同学了解并使用过,那个时候它刚刚问世,在互联网圈子里有了很大的热度,但是对于大众来说&#xff…

OpenGLES读写图像数据(内存与GPU)——使用PBO

一、什么是PBO 在 OpenGL 开发中,特别是在低端平台上处理高分辨率的图像时,图像数据在内存和显存之前拷贝往往会造成性能瓶颈,而利用 PBO 可以在一定程度上解决这个问题。 PBO (Pixel Buffer Object)是 OpenGL ES 3.…

iOS开发提效cocoapods插件cocoapods-util

cocoapods-util介绍 cocoapods-util是一个iOS开发提效的cocoapods插件。 取名util的原因是我想做一个通用的插件,把一些iOS中常用的命令或问题整理起来。 插件中除了package命令是根据cocoapods-packager插件做了修改而来,其余命令都是属于自己总结开…

uwb高精度定位系统源码 UWB高精度定位技术原理与实现

uwb高精度定位系统 UWB高精度定位技术原理与实现 近些年物联网产业高速发展,越来越多的物联网终端连上了网络,实现了人与物,甚至物与物之间的互连互通。随着智能化要求的进一步提高和物联网应用的进一步拓展,除了互联互通&#x…