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

强化学习的基础概念

这节课会介绍一些基本的概念,并结合例子讲解。
在马尔科夫决策框架下介绍这些概念
本博客是基于西湖大学强化学习课程的视屏进行笔记的,这是链接: 课程链接

目录

强化学习的基本概念

state和state space

Action和Action Space

State transition

Policy

Reward

trajectory

return的作用:通过一个具体的数值,可以用来形容哪个policy更好。而不是人类直观地感受出来的。

Discounted return

Episode

Markov decision process(MDP)


强化学习的基本概念

网格世界:
世界由边界以及不同的区域组成:可进入、障碍、目的。
这个例子能很好的理解概念。在 grid-world的例子中,强化学习的目的是找到一个比较好的路径到达目标
要解决这个问题,有一个比较核心的问题是:我如何评价这个路径是好还是坏。
直观上的评价:要避免forbidden,不要由没有必要的拐弯,不要试图超越边界等等。

state和state space

state在这里就对应了一个网格的位置(在x方向上的,在y方向上的)。这个state其实算是一个比较简单的state了,如果agent是一个机器人的话state可能还需要包括速度、加速度等等。
State space:状态空间,其实就是状态总的一个集合,用花括号来表示。后面的数字表示i的范围。

Action和Action Space

下一个概念ACtion:在每一个状态中,都有一系列可以采取的行动。在这里Action就有五个可以选择的动作,如图。
Action Space:就是在某个状态下,所有可能得action的集合。这里需要注意的是,Action Space和状态是依赖的。
途中A(Si)这种写法也表示了它其实是一个函数。

State transition

当采取了一个状态的时候,agent有可能会从一个状态移动到另一个状态中去,这样的过程就叫 状态转移。状态转移其实是 定义了agent和环境交互的行为
在forbidden area的定义有两种可能:
  • forbidden area可以进入,但是进入这个区域会被惩罚
  • forbidden area不可以进去
我们这节课选择的是第一种解释方式。
这种解释方式有可能会带来一些比较有意思的情况出现:agent为了更快地达到target有可能会冒险进入forbidden area。
我们可以通过表格的方式来表示状态转移。
但是这种表达方式在日常使用中是比较受限的。因为这种表达方式只能表达一些determine的状态,但是有很多种情况是表示不出来的,比如说s7往下走被弹回了s1。
这时候我们引入state trainsition probability(条件概率)。这是第一次引入probablity来描述状态转移。
图中的两种表达方式就是 直观与数学的表达方式的区别
这里提到了一个比较重要的数学基础———— 条件变量(概率论),需要去学习一下基础的概念。
其实意思就是,在s1时tack a2时跳到s2的概率是1。
虽然这里采取的还是确定性的例子来解释,但是条件概率还可以形容一些随机性的例子,比如说有一股风从上往下吹,这样s1 tack a2就有50%的概率到s2还有50%的概率到s5。

Policy

Policy会告诉agent在某个状态会采取什么action
上面那一张图其实就是一个策略,在不同的格子采取不同的action,最终目的都是达到最后的target。根据这个策略不论在哪个格子出生都能到达target。
用数学的语言描述Policy,可以通过条件概率来表示Policy:
再次提到确定性: 在这里确定性的意思是——在s1状态下一定会采取a2的动作
相对的就有不确定的情况,通过条件概率能够很好的理解。
在s1中采取a2和a3的概率都是0.5
策略也是可以通过表格的方式表现出来:
这个表格是非常general的,能够表达确定性的和随机性的情况。实际上在编程的方式——就可以通过矩阵的方式来封装这些数据,达到表示这个策略的效果。然后在选取策略的时候,去一个在0~1之间的随机数就可以了,然后通过这个随机数落在的区间来确定最后采取的action。

Reward

是一个非常独特性的概念。
首相他是一个标量:正数表示鼓励这个行为;负数表示惩罚这个行为。
如果这个值为0意味着什么?意味着没有punishment,没有punishment就意味着一定程度上的鼓励(有点像法无禁止皆可为)
我们可以对一些情况设计一些reward值:超出边界就-1,进入forbidden area就-1,到达target就+1。
我们可以把 设置reward值当做是人机交互的一种手段。我们可以引导agent,它应该怎么做不应该怎么做。
通过表格来表示不同state下采取不同action的影响:
这个表格 适用性不广泛,还是因为确定性问题。实际情况下得到的 reward不一定是确定的这也就意味着不能通过矩阵将其简单记录
这时候我们引入了数学的方式来描述: 条件概率
敲黑板:我们举出的例子是确定性的,但是奖励转换有可能是不确定的,比如:你努力学习了,一定会获得奖励,但是获得多少奖励是不确定的。
而且奖励是依赖于当前的状态和采取的行动的,而不是下一个状态相关的。

trajectory

是一个state-action-reward链(chain),return是一个tracjectory整个链收集到的reward总和。
Policy不同trajectory也不同
return的作用:通过一个具体的数值,可以用来形容哪个policy更好。而不是人类直观地感受出来的。
Discounted return
trajectory有 可能是无限的。比如在上面的例子中,s9的位置一直在循环的话最后的return是无限的。
为了解决这个问题,引入了discount rate来解决这个问题。
通过调整gama,我们可以控制reward的积累速度。close to 0就积累的慢,close to 1就积累的比较快。
减小gama可以让agent变得近视——也就是让他更注重最近的reward。如果gama比较大的话他就会变得更加远视——更加注重长远的reward。
这里的结果是一个 等比数列求和

Episode

一个resulting的trajectory被称为一个episode,一个episode通常是有限步的,这样的任务也被称为episodic tasks。
不过有些任务是没有terminal states的,这就意味着有些agent与环境的交互是永远不会结束的。这种任务被称为continuing task。但是在这节课我们不区分episodic和continuing tasks这两种方式,因为我们有两种方法将episodic转化为continuing tasks。
  1. 将target这一个state的所有action选择改为只有一个action选择——就是在这个状态重复(a5) ,还要再讲这里获得的所有reward都设置为0。这样就实现了将target state转换为absorbing state
  2. 将target state认为是一个普通的状态。然后选择一个策略,如果策略的结果好的话就会一直重复这个策略,不好的话也可以跳出来。
在我们的课程中,我们采用的是第二种方式,这种方式不会区别对待各种状态。这样也会更一般化。

Markov decision process(MDP)

将我们上面学到的这些概念放入马尔科夫决策框架中去, 这是一个框架
MDP有很多的要素:第一个要素就是它包含了很多集合。
Sets:
  1. State:状态集合
  2. Action:A(s)
  3. Reward:奖励的集合R(s,a)
第二个要素就是probablity distribution:
  1. p(s'|s,a)
  2. p(r|s,a)
第三个要素就是policy:在状态s采取状态a的概率pi(a|s)
第四个要素是马尔科夫性质:memoryless property。一般来说:以前的状态和决策会影响到今天的决策,但是马尔科夫性质定义下一个状态的转换不会与以前的状态、动作有关,只与上一个相关且概率相等。
Markov->Markov property
decision->policy
precess->通过Sets和Probablity distribution来描述,从某个状态跳到某个状态这个过程

相关文章:

强化学习的基础概念

这节课会介绍一些基本的概念,并结合例子讲解。 在马尔科夫决策框架下介绍这些概念 本博客是基于西湖大学强化学习课程的视屏进行笔记的,这是链接: 课程链接 目录 强化学习的基本概念 state和state space Action和Action Space State transiti…...

excel怎么删除右边无限列(亲测有效)

excel怎么删除右边无限列(亲测有效) 网上很多只用第1步的,删除了根本没用,还是存在,但是隐藏后取消隐藏却是可以的。 找到右边要删除的列的第一个空白列,选中整个列按“ctrlshift>(向右的小箭头)”&am…...

STM32-笔记23-超声波传感器HC-SR04

一、简介 HC-SR04 工作参数&#xff1a; • 探测距离&#xff1a;2~600cm • 探测精度&#xff1a;0.1cm1% • 感应角度&#xff1a;<15 • 输出方式&#xff1a;GPIO • 工作电压&#xff1a;DC 3~5.5V • 工作电流&#xff1a;5.3mA • 工作温度&#xff1a;-40~85℃ 怎么…...

Linux | Ubuntu零基础安装学习cURL文件传输工具

目录 介绍 检查安装包 下载安装 手册 介绍 ‌cURL是一个利用URL语法在命令行下工作的文件传输工具&#xff0c;首次发行于1997年‌‌12。cURL支持多种协议&#xff0c;包括FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3…...

什么是 GPT?Transformer 工作原理的动画展示

大家读完觉得有意义记得关注和点赞&#xff01;&#xff01;&#xff01; 目录 1 图解 “Generative Pre-trained Transformer”&#xff08;GPT&#xff09; 1.1 Generative&#xff1a;生成式 1.1.1 可视化 1.1.2 生成式 vs. 判别式&#xff08;译注&#xff09; 1.2 Pr…...

SpringCloudAlibaba实战入门之路由网关Gateway过滤器(十三)

承接上篇,我们知道除了断言,还有一个重要的功能是过滤器,本节课我们就讲一下常见的网关过滤器及其一般使用。 一、Filter介绍 类似SpringMVC里面的的拦截器Interceptor,Servlet的过滤器。“pre”和“post”分别会在请求被执行前调用和被执行后调用,用来修改请求和响应信…...

电路仿真软件PSIM简介

在从事开关电源相关产品开发的工程师或者正在学习开关电源的学习者&#xff0c;常常会用到各种仿真软件进行电路的仿真&#xff0c;不仅可以快速验证电路参数&#xff0c;还能清楚知道各器件的工作状态。 现在的电路仿真软件很多&#xff0c;例如matlab、Multisim、Simplis&…...

C语言:调试的概念和调试器的选择

所谓调试&#xff08;Dubug&#xff09;&#xff0c;就是跟踪程序的运行过程&#xff0c;从而发现程序的逻辑错误&#xff08;思路错误&#xff09;&#xff0c;或者隐藏的缺陷&#xff08;Bug&#xff09;。 在调试的过程中&#xff0c;我们可以监控程序的每一个细节&#xff…...

25. C++继承 1 (继承的概念与基础使用, 继承的复制兼容规则,继承的作用域)

⭐上篇模板文章&#xff1a;24. C模板 2 (非类型模板参数&#xff0c;模板的特化与模板的分离编译)-CSDN博客 ⭐本篇代码&#xff1a;c学习 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) ⭐标⭐是比较重要的部分 目录 一. 继承的基础使用 1.1 继承的格式 1.2 …...

git 退出编辑模式

在使用 Git 时&#xff0c;有时需要进入编辑器来输入提交信息或进行其他编辑操作。不同的系统和配置可能会导致使用不同的编辑器。以下是几种常见 Git 编辑器的退出方法&#xff1a; ‌Vim 编辑器‌&#xff1a; ‌保存并退出‌&#xff1a; 按下 Esc 键退出编辑模式。输入 :w…...

内容营销与传统营销方式有哪些差别?

在互联网高度发达的当下&#xff0c;碎片化的信息接收方式&#xff0c;让用户对于营销信息拥有较高的敏感度。这一现状&#xff0c;也使得众多传统营销方式正在逐渐失效。想要稳定推广效率&#xff0c;内容营销是当下不少品牌的共同选择。接下来&#xff0c;就让我们来了解下内…...

EasyExcel(读取操作和填充操作)

文章目录 1.准备Read.xlsx&#xff08;具有两个sheet&#xff09;2.读取第一个sheet中的数据1.模板2.方法3.结果 3.读取所有sheet中的数据1.模板2.方法3.结果 EasyExcel填充1.简单填充1.准备 Fill01.xlsx2.无模版3.方法4.结果 2.列表填充1.准备 Fill02.xlsx2.模板3.方法4.结果 …...

【华为OD-E卷 - 机房布局 100分(python、java、c++、js、c)】

【华为OD-E卷 - 机房布局 100分&#xff08;python、java、c、js、c&#xff09;】 题目 小明正在规划一个大型数据中心机房&#xff0c;为了使得机柜上的机器都能正常满负荷工作&#xff0c;需要确保在每个机柜边上至少要有一个电箱。 为了简化题目&#xff0c;假设这个机房…...

【竞技宝】LOL:IG新赛季分组被质疑

北京时间2024年12月31日&#xff0c;今天已经2024年的最后一天&#xff0c;在进入一月之后&#xff0c;英雄联盟将迎来全新的2025赛季。而目前新赛季第一阶段的抽签结果已经全部出炉&#xff0c;其中人气最高的IG战队在本次抽签中抽到了“绝世好签”引来了网友们的质疑。 首先介…...

ChatBI来啦!NBAI 正式上线 NL2SQL 功能

NebulaAI 现已正式上线 NL2SQL 功能&#xff0c;免费开放使用&#xff01; 什么是 NL2SQL&#xff1f;NL2SQL 即通过自然语言交互&#xff0c;用户可以轻松查询、分析和管理数据库中的数据&#xff08;ChatBI&#xff09;&#xff0c;从此摆脱传统复杂的数据库操作。 欢迎免费…...

8. Web应用程序(Web)

8. Web应用程序&#xff08;Web&#xff09; Spring Boot 非常适用于Web应用程序开发。你可以使用嵌入式 Tomcat、Jetty、Undertow或Netty创建一个独立的HTTP服务器。大多是Web应用程序都会使用 spring-boot-starter-web 依赖模块来快速启动和运行项目。你也可以选择使用 spri…...

Linux内核修改内存分配策略

今天遇到了如下的内核报错 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f0e1e06c000, 65536, 1) failed; errorCannot allocate memory (errno12)这个报错是因为&#xff0c;linux会对大部分的内存资源申请都回复允许&#xff0c;以便于运行更…...

六大亮点解析:AI视频监控助力部队训练安全管理

一、用户痛点&#xff1a; 在部队的日常训练和任务执行中&#xff0c;官兵的安全始终是最为重要的保障。然而&#xff0c;传统的监控方式存在显著的局限性&#xff0c;尤其是在高强度、长时间的训练过程中&#xff0c;人工值守监控容易产生疲劳&#xff0c;误判的风险大&#…...

【从零开始入门unity游戏开发之——C#篇33】C#委托(`Delegate`)和事件(`event` )、事件与委托的区别、Invoke()的解释

文章目录 一、委托&#xff08;Delegate&#xff09;1、什么是委托&#xff1f;2、委托的基本语法3、定义自定义委托4、如何使用自定义委托5、多播委托6、C# 中的系统委托7、GetInvocationList 获取多个函数返回值8、总结 二、事件&#xff08;event &#xff09;1、事件是什么…...

大数据与机器学习(它们有何关系?)

想了解大数据和机器学习吗&#xff1f;我们将为你解释它们是什么、彼此之间有何关联&#xff0c;以及它们为何在数据密集型应用中如此重要。 大数据和机器学习是如何相互关联的&#xff1f; 大数据指的是传统存储方法无法处理的海量数据。机器学习则是计算机系统从观察结果和…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...