强化学习(一)

#! https://zhuanlan.zhihu.com/p/686235471

深度强化学习(一)(基础概念)

一.马尔可夫决策过程

Agent:智能体,动作或决策对象

Environment: 与智能体交互的对象,可随时间变化

State:对某一时刻的环境的概括

State space( S \mathcal S S:所有可能存在的状态集合。(可以是有限也可以是无限)

Action:智能体对于当前状态做出的决策。(可以是确定的,也可以是随机的)

Action space( A \mathcal A A:所有可能的动作集合。

RewardAgent执行某一动作之后环境的回报。通常记作 r ( s , a , s ′ ) r(s,a,s') r(s,a,s)(与当前状态,下一刻状态,当前动作都有关),或 r ( s , a ) r(s,a) r(s,a)(与下一刻状态无关)

State transitionAgent从当前时刻 t t t从状态 s s s转移至 s ′ s' s状态的过程。状态转移通常是随机的,我们用状态转移概率函数来描述随机性,在当前状态 s s s,智能体执行动作 a a a,环境的状态变成 s ′ s' s。(第一个随机性
p t ( s ′ ∣ s , a ) = P ( S t + 1 ′ = s ′ ∣ S t = s , A t = a ) p_t(s'|s,a)=\Bbb P(S'_{t+1}=s'|S_t=s,A_t=a) pt(ss,a)=P(St+1=sSt=s,At=a)
状态转移具有马尔可夫性质,即下一时刻状态 S t + 1 S_{t+1} St+1 仅依赖于当前状态 S t S_t St 和动作 A t A_t At, 而不依赖于过去的状态和动作。
P ( S t + 1 ∣ S t , A t ) = P ( S t + 1 ∣ S 1 , A 1 , S 2 , A 2 , ⋯ , S t , A t ) \mathbb{P}\left(S_{t+1} \mid S_t, A_t\right)=\mathbb{P}\left(S_{t+1} \mid S_1, A_1, S_2, A_2, \cdots, S_t, A_t\right) P(St+1St,At)=P(St+1S1,A1,S2,A2,,St,At)
状态转移也可以是确定性的。给定当前的状态 s s s,智能体执行动作 a a a,下一刻的状态已经确定。

实际中,通常假设状态转移概率函数是平稳的,即函数不会随着时刻 t t t变化。

二.策略

强化学习的目标就是得到一个策略函数,在每个时刻根据观测到的状态做出决策。 策略可以是确定性的,也可以是随机性的。

随机策略:把状态记作 S S S s s s, 动作记作 A A A a a a, 随机策略函数 π : S × A ↦ [ 0 , 1 ] \pi: \mathcal{S} \times \mathcal{A} \mapsto[0,1] π:S×A[0,1]是一个概率函数(第二个随机):
π ( a ∣ s ) = P ( A = a ∣ S = s ) \pi(a \mid s)=\mathbb{P}(A=a \mid S=s) π(as)=P(A=aS=s)
确定策略:确定策略记作 μ : S ↦ A \mu: \mathcal{S} \mapsto \mathcal{A} μ:SA, 它把状态 s s s 作为输入, 直接输出动作 a = μ ( s ) a=\mu(s) a=μ(s),而不是输出概率值。对于给定的状态 s s s, 做出的决策 a a a 是确定的, 没有随机性。可以把确定策略看做随机策略的一种特例,即概率全部集中在一个动作上。

智能体与环境交互 (agent environment interaction) :是指智能体观测到环境的状态 s s s, 做出动作 a a a, 动作会改变环境的状态, 环境反馈给智能体奖励 r r r 以及新的状态 s ′ s^{\prime} s

三.回报与折扣回报

回报(return) 是从当前时刻开始到本回合结束的所有奖励的总和, 所以回报也叫做累计奖励 (cumulative future reward) 。把 t t t 时刻的回报记作随机变量 U t U_t Ut 。如果一回合游戏结束, 已经观测到所有奖励, 那么就把回报记作 u t u_t ut 。设本回合在时刻 n n n 结束。定义回报为:
U t = R t + R t + 1 + R t + 2 + R t + 3 + ⋯ + R n . U_t=R_t+R_{t+1}+R_{t+2}+R_{t+3}+\cdots+R_n . Ut=Rt+Rt+1+Rt+2+Rt+3++Rn.

折扣回报 (discounted return) 给未来的奖励做折扣,其中 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1]叫做折扣率
U t = R t + γ ⋅ R t + 1 + γ 2 ⋅ R t + 2 + γ 3 ⋅ R t + 3 + ⋯ U_t=R_t+\gamma \cdot R_{t+1}+\gamma^2 \cdot R_{t+2}+\gamma^3 \cdot R_{t+3}+\cdots Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+

符号约定

A t A_t At: t t t时刻的动作(随机变量) a t a_t at: t t t时刻观察到的动作(具体值)
S t S_t St: t t t时刻的状态(随机变量) s t s_t st: t t t时刻的状态观测值(具体值)
R t R_t Rt: t t t时刻奖励(随机变量) r t r_t rt: t t t时刻奖励观测值(具体值)
U t U_t Ut: t t t时刻的回报(随机变量) u t u_t ut: t t t时刻观测到的回报(具体值)

四.价值函数

4.1 动作价值函数

假设我们已经观测到状态 s t s_t st,而且做完决策选中动作 a t a_t at。我们想知道这一行为能为我们带来多少收益 U t U_t Ut。一个很自然的想法是对 U t U_t Ut求期望
Q π ( s t , a t ) = E S t + 1 , A t + 1 , ⋯ , S n , A n [ U t ∣ S t = s t , A t = a t ] Q_\pi\left(s_t, a_t\right)=\mathbb{E}_{S_{t+1}, A_{t+1}, \cdots, S_n, A_n}\left[U_t \mid S_t=s_t,A_t=a_t\right] Qπ(st,at)=ESt+1,At+1,,Sn,An[UtSt=st,At=at]
不难看出 Q π ( s t , a t ) Q_\pi\left(s_t, a_t\right) Qπ(st,at)取决于三元组 ( π , s t , a t ) (\pi,s_t,a_t) (π,st,at),除了与状态 s t s_t st,动作 a t a_t at有关,还与所采用的策略有关

4.2 最优动作价值函数

为了排除掉策略 π \pi π的影响,只评价当前状态和动作的好坏,由此产生最优动作价值函数(optimalaction-value function)
Q ⋆ ( s t , a t ) = max ⁡ π Q π ( s t , a t ) , ∀ s t ∈ S , a t ∈ A Q_{\star}\left(s_t, a_t\right)=\max _\pi Q_\pi\left(s_t, a_t\right), \quad \forall s_t \in \mathcal{S}, \quad a_t \in \mathcal{A} Q(st,at)=πmaxQπ(st,at),stS,atA
最好的策略函数则为
π ⋆ = argmax ⁡ Q π ( s t , a t ) , ∀ s t ∈ S , a t ∈ A \pi^{\star}=\operatorname{argmax} Q_\pi\left(s_t, a_t\right), \quad \forall s_t \in \mathcal{S}, \quad a_t \in \mathcal{A} π=argmaxQπ(st,at),stS,atA

4.3 状态价值函数

为排除动作 a t a_t at的影响,仅评价当前状态和策略,我们有状态价值函数(state-value function)
V π ( s t ) = E A t ∼ π ( ⋅ ∣ s t ) [ Q π ( s t , A t ) ] = ∑ a ∈ A π ( a ∣ s t ) ⋅ Q π ( s t , a ) = E A t [ Q π ( s t , A t ) ∣ S t = s t ] \begin{aligned} V_\pi\left(s_t\right) & =\mathbb{E}_{A_t \sim \pi\left(\cdot \mid s_t\right)}\left[Q_\pi\left(s_t, A_t\right)\right] \\ & =\sum_{a \in \mathcal{A}} \pi\left(a \mid s_t\right) \cdot Q_\pi\left(s_t, a\right) \\ & = \Bbb E_{A_{t}}\left[ Q_{\pi}(s_{t},A_{t})|S_t=s_{t}\right] \end{aligned} Vπ(st)=EAtπ(st)[Qπ(st,At)]=aAπ(ast)Qπ(st,a)=EAt[Qπ(st,At)St=st]
或者也可写成
V π ( s t ) = E A t , S t + 1 , A t + 1 , ⋯ , S n , A n [ U t ∣ S t = s t ] V_\pi\left(s_t\right)=\mathbb{E}_{A_t, S_{t+1}, A_{t+1}, \cdots, S_n, A_n}\left[U_t \mid S_t=s_t\right] Vπ(st)=EAt,St+1,At+1,,Sn,An[UtSt=st]

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

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

相关文章

智慧城市的未来:利用数字孪生技术推动智慧城市的智能化升级

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、城市规划与建设 2、城市管理与运营 3、公共服务与民生改善 4、应急管理与灾害防控 四、数字孪生技术推动智慧城市的智能化升级的价值 1、提高城市管理的智能化水平 2、优化城市资源配置 …

Allegro许可与其他软件的兼容性优势

解锁企业软件管理新篇章,Allegro许可与其他软件的兼容性优势 在数字化经济的时代,企业越来越依赖于各种软件应用来提升运营效率和管理水平。然而,企业在选择和使用软件时,经常会遇到与其他软件不兼容的问题,导致数据无…

答题pk小程序源码技术大解析

答题pk小程序源码解析 在数字化时代,小程序因其便捷性、即用性而受到广泛欢迎。其中,答题pk小程序更是成为了一种寓教于乐的现象。它不仅为用户提供了趣味性的知识竞技平台,还为企业、教育机构等提供了互动营销和知识传播的新途径。本文将对…

2024年品牌推广:构建品牌生态圈与注重品牌故事和文化传播

在全球经济深度融合、数字化浪潮汹涌澎湃的2024年,品牌推广的策略与模式正经历着前所未有的变革。在这一背景下,构建品牌生态圈和注重品牌故事与文化传播,成为了企业提升品牌竞争力和市场占有率的重要手段。 一、2024年市场经济分析与现状 …

CDA-LevelⅡ【考题整理-带答案】

关于相关分析中应注意的问题,下面说法错误的是:B 如果两变量间的相关系数为0,则说明二者独立 。解释:只能说明两者不存在线性相关关系现通过参数估计得到一个一元线性回归模型为y3x4,在回归系数检验中下列说法错误的是…

遥感与ChatGPT:科研中的强强联合

随着科技的飞速发展,人工智能(AI)已逐渐渗透到各个领域,为传统行业带来了前所未有的变革。其中,遥感技术作为观测和解析地球的重要手段,正逐渐与AI技术相结合,为地球科学研究与应用提供了全新的…

软件设计模式:模板方法模式

1. 简介 模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。这样,可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 2. 使用条件 模板方法模式适用于以下情况: 算法…

【elasticsearch】ES的JAVA工具类完整版(待完成...)

springboot 的 elasticsearch 版本: 7.15.2 前情提要: 1.首先要理解 elasticsearch 对于【数据类型】很严格,如果字段类型不规范,在 检索/排序/聚合 时候类型不正确就会出现报错或者查不到数据的问题。所以在一般String类型插入结构如下: 这样的结构,不仅可以支持分词查…

【力扣晒题练习】232. 用栈实现队列

题目描述: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素…

基于SpringBoot的招聘网站

基于jspmysqlSpring的SpringBoot招聘网站项目(完整源码sql) 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》…

Elastic Stack--03--索引操作、文档操作、_cat

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1._cat/_cat/indices?v 查看所有的索引信息 2.索引操作索引就相当于我们讲的关系型数据库MySQL中的 database 2.1 创建索引PUT /索引名 2.2 查看索引信息GET /索引…

Java 容器启动执行指定任务

1、实现CommandLineRunner接口 实现CommandLineRunner接口,注意做初始化任务的类需要放在扫描路径下,使用Component注入到spring容器中。 import com.zw.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; impo…

系统学习c++类和对象——深度理解默认成员函数

前言:类和对象是面向对象语言的重要概念。 c身为一门既面向过程,又面向对象的语言。 想要学习c, 首先同样要先了解类和对象。 本节就类和对象的几种构造函数相关内容进行深入的讲解。 目录 类和对象的基本概念 封装 类域和类体 访问限定符…

【Java设计模式】九、桥接模式

文章目录 0、背景1、模式2、案例3、使用场景 0、背景 现要创建不同的图形,图形的形状有圆、长方形、正方形,且它们有不同的颜色 两个维度在变,使用类的继承可以实现,也符合开闭原则,但会类爆炸。 1、模式 将抽象与…

BUG:Enigma Virtual Box打包.net独立程序不正常

专栏介绍与文章目录-CSDN博客 尝试了使用Enigma Virtual Box打包.net8的winform程序,程序发布为不依赖框架的单一文件(设置了压缩),再和另外几个文件打包成一个exe(另外的文件不影响.net程序打开)。 但是打…

Vue中的组件:构建现代Web应用的基石

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

动态规划:Leetcode 91.解码方法

题目 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : A -> "1" B -> "2" ... Z -> "26" 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法&am…

GNN-Transformer新突破!全局与局部的完美融合

图神经网络(GNN)和Transformer的结合是近年来的研究热点。这类结合不仅能够让两者发挥各自的优势,还能推动模型的创新,提高处理图数据的效率和性能。 具体点讲,通过利用Transformer,我们可以扩展GNN的感受…

Python办公自动化之PDF(二)

Python操作PDF二 1、PyMuPDF简介2、 1、PyMuPDF简介 PyMuPDF(也称Fitz)开源,提供了一整套用于处理PDF文件的综合工具。使用PyMuPDF,用户可以高效地执行打开PDF、提取文本、图像和表格、操作旋转和裁剪等页面属性、创建新PDF文档以…

Koltin 语言与Java语言有哪些差异?

目录 1. 变量声明方式不同 2. 方法(函数)定义略有不同 3. 逻辑控制关键字 if 的使用区别 4. 继承的区别 5. 接口和实现的区别 6. Koltin 的数据类有什么用? 1. 变量声明方式不同 Koltin声明变量的方式与Java类似,但是顺序不太一样。 举例如下 J…