Day1:强化学习基本概念

devtools/2025/2/14 5:22:11/

一、基本概念

1. Agent 智能体:执行动作的对象

2. State 状态:对当前环境的概括

3. Action 动作:智能体基于当前状态做出的决策

4. Reward 奖励:智能体执行完一个动作后,环境反馈给智能体的一个数值。(由程序编写者定义)

5. State transition 状态转移:智能体从当前t时刻的状态s转移到下一时刻的状态s'的过程。

注:状态转移是随机的,其随机性来自于环境。

6. State transition function 状态转移函数:

注:这个函数表示,在当前状态s下,智能体执行动作a,环境状态变成s’的可能性。由于环境是随机的,所以即使s和a是确定的,s‘仍旧具有随机性。

7. polocy 策略:如何根据观测到的状态s决策选择动作a。强化学习的目标是得到策略函数。

1)随机性策略函数:状态s下选择动作a的概率值。

注:这是一个概率密度函数,其中有两个输入,一个是s,一个是a;当我已知一个s,对于不同的a会有不同的概率P,所有a得到的概率P的总和或者积分为1。

2)确定性策略:对于给定状态s,做出的策略a是确定的,没有随机性。

8. Agent environment interaction 智能体与环境交互:智能体观测到环境的状态s,做出动作a,动作会改变环境的状态,环境反馈给智能体奖励r以及新的状态s’。

注:其实就是如果我观察到当前的状态s,利用策略Π可以算出所有动作的概率,然后随机抽样,做出动作a,利用状态转移函数pt(s'|s,a)可以随机生成新的状态s',并反馈一个奖励r(s,a,s')。

9. reward 奖励:奖励是状态和动作的函数。

二、强化学习的随机性

1.随机性的两个来源:动作和状态。动作的随机性来源于策略;状态的随机性来源于状态转移。策略由策略函数决定;状态转移由状态转移函数决定。

动作随机性:给定状态s,策略函数可以计算出不同动作的概率,随机抽样有可能获得不同的执行动作a。

状态随机性:当状态s和a都确定,下一个状态可以用状态转移函数计算出所有可能的状态的概率,同样利用随机抽样可以获得下一个状态s’, 这个s’也是随机的。

2.马尔可夫性质:下一时刻状态St+1仅仅依赖于当前状态St和动作At,而不依赖于过去的状态和动作。

3.轨迹:S1==>a1==》s2,r1==》a2==》s3,r2==》a3......==>st==>at==>st+1,rt==>.......

4.回报:从当前时刻开始到本回合结束所有奖励总和

5.折扣回报:未来的奖励和现在的奖励价值是不同的,就像未来的钱会贬值一样,未来的奖励也要成一个折扣系数。

回报也是随机的,其随机性在于At;St+1;At+1;.......Sn;An。也就是动作随机性和状态随机性。前面说过了,动作随机性来自策略,状态随机性来自状态转移。

三、价值函数

1.价值函数:是回报的期望,也就是未来期望获得的奖励之和。价值函数反映了目前这个状态的好坏,价值函数值越大,说明现在的状态越好,越有利。

2.价值函数总共有三种:动作价值函数;最优动作价值函数;状态价值函数。

1)动作价值函数

已经观测到St和At的值,对t+1后的S和A变量求条件期望,从而消除随机变量St+1,At+1.....Sn,An的影响。由于动作A依赖于策略Π,所以t时刻的动作价值函数与三个因素有关,分别是st,at,Π。策略越好,期望越高。

2)最优动作价值函数:为了排除策略的影响,只评价当前状态和动作的好坏,可以采用最有价值函数。

意思就是对于多种策略函数,选择最优的策略,使得价值函数最大。则可以使得价值函数只与st和at有关,而不用再考虑策略影响。

比如:

即如果智能体选择向左走,不管以后用什么策略,回报Ut的期望不会超过130。通过这个方式可以对不同的动作作比较,选择出当前最优的动作,以便有希望获得最高期望。

3)状态价值函数:如果我现在需要知道当前状态st是否对智能体有利,以及成功的概率是多少,就可以用状态价值函数来量化评估。

相当于将At作为随机变量,对其求期望,消除At的影响,得到状态价值函数只依赖与策略和当前的状态st。

学习资料:《深度强化学习》,作者王树森、黎彧君、张志华。

学习视频:【王树森】深度强化学习(DRL)_哔哩哔哩_bilibili


http://www.ppmy.cn/devtools/158686.html

相关文章

CentOS 7操作系统部署KVM软件和创建虚拟机

CentOS 7.9操作系统部署KVM软件和配置指南,包括如何创建一个虚拟机。 步骤 1: 检查硬件支持 首先,确认您的CPU支持虚拟化技术,并且已在BIOS中启用: egrep -c (vmx|svm) /proc/cpuinfo 如果输出大于0,则表示支持虚拟…

设置ollama接口能外部访问

为了配置Ollama以允许外网访问,你可以按照以下步骤进行操作: ‌确认Ollama服务已正确安装并运行‌: 使用以下命令检查Ollama服务的状态: bash Copy Code systemctl status ollama如果服务未运行,使用以下命令启动它&…

SpringBoot_基础

springboot优势: 外部化配置,只要修改配置文件,然后重新启动就行了 不需要大量的配置文件,少量配置文件 配置文件 properties文件 从配置文件中获取值 整合Mybatis 引入JDBC和mybatis依赖 配置文件中写: Bean管理…

‌双非硕士的抉择:自学嵌入式硬件开发还是深入Linux C/C++走软开?

今天给大家分享的是一位粉丝的提问,双非硕研一是自学嵌入式走偏硬件还是说深入学习Linuxc/c走软开呢? 接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。 粉丝提问: 老师好&#xff…

qt QOpenGLContext详解

1. 概述 QOpenGLContext 是 Qt 提供的一个类,用于管理 OpenGL 上下文。它封装了 OpenGL 上下文的创建、配置和管理功能,使得开发者可以在 Qt 应用程序中以平台无关的方式使用 OpenGL。通过 QOpenGLContext,可以轻松地创建和管理 OpenGL 上下…

FreeRtos实时系统: 十二.FreeRTOS的队列集

FreeRtos实时系统: 十二.FreeRTOS的队列集 一.队列集简介二.队列集相关API函数三.队列集操作实验 一.队列集简介 左边的接收任务会在没接收到队列时会阻塞,如果前面释放信号量这时该任务也获取不到信号量。 右边使用队列集如果获取到,判断句柄是谁&#…

利用爬虫高效获取1688商品详情:案例指南

在电商行业,快速获取商品数据对于市场分析和竞争情报收集至关重要。1688作为国内领先的B2B电商平台,拥有海量的商品信息。通过爬虫技术,我们可以高效地获取这些商品详情数据,为商业决策提供有力支持。 一、为什么选择爬虫技术&am…

三格电子-EtherCAT从站转ModbusTCP主站/从站网关

EtherCAT从站转ModbusTCP主站/从站网关 型号:SG-ECAT_S-TCP 本产品是 EtherCAT 和 Modbus TCP 网关,使用数据映射方式工作。本产品在 EtherCAT 侧作为 EtherCAT 从站,接 TwinCAT、CodeSYS、PLC 等;在 ModbusTCP 侧做为 ModbusTCP …