当前位置: 首页 > 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; 大数据指的是传统存储方法无法处理的海量数据。机器学习则是计算机系统从观察结果和…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...