强化学习基础之贝尔曼期望方程

本文将对强化学习的基础概念、随机过程、数学推导以及分类进行全面总结。我们将确保章节之间思路连贯,内容尽量详细,并在有公式的地方附带解释。希望通过这篇文章,能够帮助读者更深入地理解强化学习的核心原理及其应用。

1. 强化学习基础概念

强化学习(Reinforcement Learning, RL) 是一种机器学习方法,它通过智能体(agent)与环境(environment)之间的互动来学习如何做出最佳决策。智能体通过执行动作(actions)并根据环境反馈的奖励(rewards)来优化其行为策略。最终目标是让智能体学会在给定环境中最大化累积奖励。

  • 状态(State):描述智能体当前所处的情境。
  • 动作(Action):智能体可以采取的行为。
  • 奖励(Reward):环境对智能体行为的即时反馈。
  • 策略(Policy):决定智能体在每个状态下应采取的动作规则。
  • 价值函数(Value Function):评估状态或状态-动作对的好坏程度。
  • 模型(Model):描述环境动态特性的数学表示,通常包括状态转移概率和奖励函数。

2. 随机过程

强化学习(Reinforcement Learning, RL)和马尔科夫决策过程(Markov Decision Process, MDP)有着密切的关系,而马尔科夫链(Markov Chain)是 MDP 的一个特例。理解这两者之间的联系对于掌握强化学习的理论基础非常重要。

2.1 马尔科夫链 (Markov Chain)

马尔科夫链是一种随机过程,它描述了一组状态之间的转换。关键特性是“无记忆性”或称为“马尔科夫性质”,即未来的状态只依赖于当前的状态,而不受之前历史的影响。换句话说,在给定当前状态的情况下,过去的历史对预测未来没有帮助。例如,天气预报可以看作是一个马尔科夫链:明天是否下雨只取决于今天的天气状况,而不是前几周的天气记录。

2.2 马尔科夫决策过程 (Markov Decision Process)

马尔科夫决策过程扩展了马尔科夫链的概念,加入了智能体(Agent)能够采取的动作以及这些动作带来的奖励。MDP定义了一个框架,其中包含:

  • 状态空间(S):所有可能的状态集合。
  • 动作空间(A):在每个状态下可选的所有动作集合。
  • 转移概率(P):从一个状态到另一个状态的概率分布,给定某个动作被采取。
  • 奖励函数(R):执行某个动作后获得的即时奖励。

在MDP中,智能体根据当前状态选择动作,并依据转移概率进入新的状态,同时收到相应的奖励。目标是找到一种策略,使得长期累积奖励最大化。

2.3 强化学习与 MDP 的关系

强化学习本质上是在解决一个 MDP 问题。通过与环境互动,智能体试图学习最优策略来指导其行为。具体来说:

  • 智能体观察当前状态 s s s 并选择一个动作 a a a
  • 环境根据转移概率 P ( s ′ ∣ s , a ) P(s'|s,a) P(ss,a) 将智能体转移到新状态 s ′ s' s,并给出奖励 r r r
  • 智能体更新其知识(如价值函数或 Q 值),以改进未来的决策。

因此,可以说强化学习是基于 MDP 的一种方法论,用来处理那些具有不确定性和动态变化的问题。它利用了马尔科夫性质简化了对未来事件的预测,使问题变得更容易处理。许多经典的强化学习算法,如 Q-learning、SARSA 等,都是为了解决特定形式的 MDP 问题而设计的。

简而言之,马尔科夫链提供了关于状态转换的基础数学模型,而马尔科夫决策过程则进一步引入了动作和奖励的概念,构成了强化学习所依赖的核心框架。通过理解和应用这些概念,研究人员和实践者能够构建出更有效的学习算法,让智能体学会如何在复杂环境中做出更好的决策。

3. 数学相关的推导

3.1 状态价值函数 V ( s ) V(s) V(s)

状态价值函数 V π ( s ) V_\pi(s) Vπ(s) 表示从状态 s s s 开始,并遵循某一策略 π \pi π,所能获得的未来累积奖励的期望值。它衡量的是在一个给定状态下,按照当前策略继续行动的长期效果。

V π ( s ) = E π [ G t ∣ S t = s ] V_\pi(s) = \mathbb{E}_\pi \left[ G_t \mid S_t = s \right] Vπ(s)=Eπ[GtSt=s]

  • V π ( s ) V_\pi(s) Vπ(s):表示在策略 π \pi π 下,从状态 s s s 开始所能获得的未来累积奖励的期望值。
  • E π \mathbb{E}_\pi Eπ:表示根据策略 π \pi π 的期望(平均)值。
  • G t G_t Gt:是从时间步 t t t 开始的累积奖励,即未来的总奖励,通常定义为:

G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots Gt=Rt+1+γRt+2+γ2Rt+3+

  • R t + i R_{t+i} Rt+i:是在时间步 t + i t+i t+i 获得的即时奖励。
  • γ \gamma γ:是折扣因子( 0 ≤ γ < 1 0 \leq \gamma < 1 0γ<1),用于衡量未来奖励的重要性。较小的 γ \gamma γ 意味着更重视即时奖励,而较大的 γ \gamma γ 则更看重未来的奖励。
3.2 动作价值函数 Q ( s , a ) Q(s, a) Q(s,a)

动作价值函数 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 表示从状态 s s s 开始,采取动作 a a a,然后遵循某一策略 π \pi π,所能获得的未来累积奖励的期望值。它不仅依赖于状态 s s s,还明确考虑了特定动作 a a a 的影响。

Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] Q_\pi(s, a) = \mathbb{E}_\pi \left[ G_t \mid S_t = s, A_t = a \right] Qπ(s,a)=Eπ[GtSt=s,At=a]

  • Q π ( s , a ) Q_\pi(s, a) Qπ(s,a):表示在策略 π \pi π 下,从状态 s s s 开始,采取动作 a a a 后所能获得的未来累积奖励的期望值。
  • E π \mathbb{E}_\pi Eπ:表示根据策略 π \pi π 的期望(平均)值。
  • G t G_t Gt:是从时间步 t t t 开始的累积奖励,定义同上。
3.3 贝尔曼期望方程

贝尔曼期望方程是用于计算状态价值函数 V π ( s ) V_\pi(s) Vπ(s) 和动作价值函数 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 的关键工具。它们展示了如何通过考虑所有可能的后续状态和动作来计算一个状态或状态-动作对的价值。

对于状态价值函数 V π ( s ) V_\pi(s) Vπ(s)

V π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V π ( s ′ ) ] V_\pi(s) = \sum_a \pi(a|s) \sum_{s', r} p(s', r | s, a) [r + \gamma V_\pi(s')] Vπ(s)=aπ(as)s,rp(s,rs,a)[r+γVπ(s)]

  • π ( a ∣ s ) \pi(a|s) π(as):表示在状态 s s s 下选择动作 a a a 的概率。
  • p ( s ′ , r ∣ s , a ) p(s', r | s, a) p(s,rs,a):表示从状态 s s s 执行动作 a a a 后转移到新状态 s ′ s' s 并获得奖励 r r r 的概率。

这个公式的意思是:当前状态 s s s 的价值等于根据当前策略 π \pi π 选择动作后,所有可能的结果(新状态 s ′ s' s 和即时奖励 r r r)所带来的即时奖励加上未来奖励的加权平均值。

对于动作价值函数 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a)

Q π ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ ∑ a ′ π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) ] Q_\pi(s, a) = \sum_{s', r} p(s', r | s, a) \left[ r + \gamma \sum_{a'} \pi(a' | s') Q_\pi(s', a') \right] Qπ(s,a)=s,rp(s,rs,a)[r+γaπ(as)Qπ(s,a)]

  • p ( s ′ , r ∣ s , a ) p(s', r | s, a) p(s,rs,a):表示从状态 s s s 执行动作 a a a 后转移到新状态 s ′ s' s 并获得奖励 r r r 的概率。
  • π ( a ′ ∣ s ′ ) \pi(a' | s') π(as):表示在新状态 s ′ s' s 下选择动作 a ′ a' a 的概率。

这个公式的意思是:当前状态-动作对 ( s , a ) (s, a) (s,a) 的价值等于执行该动作后,所有可能的结果(新状态 s ′ s' s 和即时奖励 r r r)所带来的即时奖励加上未来奖励的加权平均值。

3.4 最优贝尔曼等式

当策略达到最优时(即 π ∗ \pi^* π),V 值和 Q 值之间的关系变得更加简单:

V ∗ ( s ) = max ⁡ a Q ∗ ( s , a ) V^*(s) = \max_a Q^*(s, a) V(s)=amaxQ(s,a)

这表明,在最优情况下,一个状态的价值等于该状态下所有可能动作的最大 Q 值。

Q ∗ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V ∗ ( s ′ ) ] Q^*(s, a) = \sum_{s', r} p(s', r | s, a) [r + \gamma V^*(s')] Q(s,a)=s,rp(s,rs,a)[r+γV(s)]

这说明最优 Q 值可以通过考虑即时奖励加上后续状态的最大 V 值来计算。

4. 强化学习的分类

强化学习可以根据不同的角度进行分类,以下是几个主要的分类方式:

4.1 按照是否需要环境模型
  • 基于模型的方法:智能体拥有环境的完整或部分模型,可以预测未来的状态和奖励。这种方法通常更适合已知环境结构的任务。
  • 无模型方法:智能体直接从与环境的交互中学习,不需要显式的环境模型。这类方法更灵活,适用于未知或复杂的环境。
4.2 按照学习方式
  • 值函数方法:通过估计状态或状态-动作对的价值来指导决策,如 Q-learning、SARSA。
  • 策略梯度方法:直接优化策略参数以最大化预期奖励,如 REINFORCE、PPO。
  • Actor-Critic 方法:结合了值函数和策略梯度的优点,包含两个组件:“演员(Actor)”负责选择动作,“评论家(Critic)”评估这些动作的好坏。
4.3 按照探索与利用的平衡
  • ε-greedy 策略:大多数时间选择当前估计的最佳动作(利用),偶尔随机选择其他动作(探索)。具体公式如下:

π ( a ∣ s ) = { 1 − ϵ + ϵ ∣ A ∣ , 如果  a = arg ⁡ max ⁡ a ′ Q ( s , a ′ ) ϵ ∣ A ∣ , 否则 \pi(a|s) = \begin{cases} 1 - \epsilon + \frac{\epsilon}{|A|}, & \text{如果 } a = \arg\max_{a'} Q(s, a') \\ \frac{\epsilon}{|A|}, & \text{否则} \end{cases} π(as)={1ϵ+Aϵ,Aϵ,如果 a=argmaxaQ(s,a)否则

这里 ϵ \epsilon ϵ 是探索的比例, ∣ A ∣ |A| A 是动作空间的大小。

  • 软最大策略(Softmax Policy):根据动作的价值按比例分配选择概率,既考虑了当前最佳动作也保留了一定的探索空间。常用的形式是Boltzmann分布:

π ( a ∣ s ) = exp ⁡ ( Q ( s , a ) / τ ) ∑ a ′ exp ⁡ ( Q ( s , a ′ ) / τ ) \pi(a|s) = \frac{\exp(Q(s, a)/\tau)}{\sum_{a'} \exp(Q(s, a')/\tau)} π(as)=aexp(Q(s,a)/τ)exp(Q(s,a)/τ)

这里 τ \tau τ 是温度参数,控制选择的概率分布的平滑度。

5.总结

Q 值和 V 值之间的关系不仅体现在数学公式上,还在于它们如何帮助智能体做出更好的决策。例如,在迷宫游戏中,智能体不仅可以根据当前状态的价值(V 值)来决定下一步行动,还可以通过考虑每个动作的具体价值(Q 值)来更精确地评估不同选择的好坏。

此外,使用贝尔曼等式可以帮助智能体理解当前决策对未来的影响,从而避免陷入局部最优解。通过迭代应用这些方程,智能体可以逐步逼近最优策略,即使在复杂环境中也能找到良好的解决方案。

最后,ε-greedy 策略提供了一个简单但有效的方法来平衡探索与利用,确保智能体既能充分利用已知的最佳动作,又不会忽视潜在更好的选择。随着学习的进行, ϵ \epsilon ϵ 可以逐渐减小,使智能体更多地依赖已经学到的知识,实现更加稳定的学习过程。

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

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

相关文章

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发&#xff1a; web&#xff0c;网页的意思&#xff0c;www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化&#xff01; 动态 web 淘宝&#xff0c;几乎是所有的网站&#xff1b;提供给所有人看的数据始终会发生变化&#xf…

在国产电脑上运行PDFSAM软件使用pdf分割合并交替混合处理pdf文档

软件下载地址: https://sourceforge.net/projects/pdfsam/files/ 需要注意事项&#xff0c;系统需要java环境&#xff0c;确认系统有java环境&#xff0c;根据软件版本需求安装对应的java运行环境。 下载pdfsam-4.3.4-linux.tar.gz安装包&#xff0c;解压&#xff0c;将runt…

windows下Redis的使用

Redis简介&#xff1a; Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库&#xff0c;并提供多种语言的 API。 Redis通常被称为数据结构服务器&#xff0c;因为值&#xff08;value&#xff…

【Linux系统编程】:信号(4)——信号的处理

1.进程地址空间内核区 我们之前都是谈进程地址空间的用户区&#xff0c;接下来我们谈谈内核区。 进程地址空间中的内核区是操作系统内核在进程地址空间中所占据的特定区域。 一般情况下&#xff0c;一个操作系统只有一个内核区以及一个内核级页表。而进程可以有多个页表。不论…

用Python写炸金花游戏

文章目录 **代码分解与讲解**1. **扑克牌的生成与洗牌**2. **给玩家发牌**3. **打印玩家的手牌**4. **定义牌的优先级**5. **判断牌型**6. **确定牌型优先级**7. **比较两手牌的大小**8. **打印结果** 完整代码 以下游戏规则&#xff1a; 那么我们要实现的功能&#xff0c;就是…

掌握软件工程基础:知识点全面解析【chap03、chap05、chap06、chap08、chap09】

chap03 UML UML定义了哪些视图&#xff1f;分别具有什么特点&#xff1f; 1&#xff0e;用例图&#xff08;Use case diagram&#xff09; 用例图展示各类外部执行者与系统所提供的用例之间的连接。一个用例是系统所提供的一个功能的描述&#xff0c;执行者是指使用这些用例的…

Linux嵌入式编程中与线程有关的知识(线程的概念、线程的创建、互斥锁、线程挂起、主线程、如何看查线程的ID等知识点)

目录 01-线程的概念(通过“进程和线程”的区别来理解)简单的理解详细的理解1. **定义与本质**2. **资源占用**3. **切换开销**4. **通信方式**5. **独立性**6. **调度**7. **使用场景**8. **在Linux中实现**对比总结 02-线程创建函数pthread_create()详解**函数原型****参数说明…

数据结构(Java)——链表

1.概念及结构 链表是一种 物理存储结构上非连续 存储结构&#xff0c;数据元素的 逻辑顺序 是通过链表中的 引用链接 次序实现的 。 2.分类 链表的结构非常多样&#xff0c;以下情况组合起来就有 8 种链表结构&#xff1a; &#xff08;1&#xff09;单向或者双向 &#xff08;…

win版ffmpeg的安装和操作

一、ffmpeg软件安装&#xff1a; ffmpeg是一个通过命令行将视频转化为图片的软件。 在浏览器搜索ffmpeg在官网里找到软件并下载&#xff08;不过官网很慢&#xff09;&#xff0c;建议用这个下载。 下载的文件是一个zip压缩包&#xff0c;将压缩包解压&#xff0c;有如下文件…

SpringBoot学习

一、SpringBoot介绍 (一)SpringBoot简介 Spring Boot 是由 Pivotal 团队提供的一个用于简化 Spring 应用初始搭建以及开发过程的框架。它基于 Spring 框架&#xff0c;旨在通过减少配置和简化开发流程来加速应用的开发和部署。Spring Boot 提供了嵌入式的 Tomcat、Jetty 或 Un…

FIR数字滤波器设计——窗函数设计法——滤波器的时域截断

与IIR数字滤波器的设计类似&#xff0c;设计FIR数字滤波器也需要事先给出理想滤波器频率响应 H ideal ( e j ω ) H_{\text{ideal}}(e^{j\omega}) Hideal​(ejω)&#xff0c;用实际的频率响应 H ( e j ω ) H(e^{j\omega}) H(ejω)去逼近 H ideal ( e j ω ) H_{\text{ideal}}…

FreeType矢量字符库的介绍、交叉编译以及安装

FreeType矢量字符库的介绍 FreeType 是一个开源的跨平台字体引擎库&#xff0c;广泛用于 Linux 嵌入式系统中实现字符显示的功能。它提供了高效的 TrueType、OpenType 和其他字体格式的解析和渲染功能&#xff0c;在嵌入式开发中尤其适合用来绘制矢量字体和位图字体。 FreeTy…

vue css box-shadow transition实现类似游戏中的模糊圈游走的感觉

先看效果&#xff1a; 代码如下&#xff1a; <template><div style"height: 800px"></div><divclass"rainbow-position"ref"host"><divv-for"config in colorStyles"class"one-shadow":style&q…

欧拉计划启航篇(一)

目录 1.什么是欧拉计划 2.简单介绍 3.访问不上去怎么办 4.第一题的代码编写 5.代码的优化 1.什么是欧拉计划 欧拉计划是和我们的数学知识相关的一个网站&#xff0c;但是这个网站上面的相关的问题需要我们去使用编程的知识去进行解决&#xff0c;因此这个适合对于想要提升…

【Compose multiplatform教程12】【组件】Box组件

查看全部组件文章浏览阅读493次&#xff0c;点赞17次&#xff0c;收藏11次。alignment。https://blog.csdn.net/b275518834/article/details/144751353 Box 功能说明&#xff1a;简单的布局组件&#xff0c;可容纳其他组件&#xff0c;并依据alignment属性精确指定内部组件的对…

无人零售 4G 工业无线路由器赋能自助贩卖机高效运营

工业4G路由器为运营商赋予 “千里眼”&#xff0c;实现对贩卖机销售、库存、设备状态的远程精准监控&#xff0c;便于及时补货与维护&#xff1b;凭借强大的数据实时传输&#xff0c;助力深度洞察销售趋势、优化库存、挖掘商机&#xff1b;还能远程升级、保障交易安全、快速处理…

springboot 配置跨域访问

什么是 CORS&#xff1f; CORS&#xff0c;全称是“跨源资源共享”&#xff08;Cross-Origin Resource Sharing&#xff09;&#xff0c;是一种Web应用程序的安全机制&#xff0c;用于控制不同源的资源之间的交互。 在Web应用程序中&#xff0c;CORS定义了一种机制&#xff0…

Ubuntu离线安装Docker容器

前言 使用安装的工具snap安装在沙箱中&#xff0c;并且该沙箱之外的权限有限。docker无法从其隔离的沙箱环境访问外部文件系统。 目录 前言准备环境卸载已安装的Docker环境快照安装的Dockerapt删除Docker 安装docker-compose下载执行文件将文件移到 /usr/local/bin赋予执行权限…

【Unity3D】ECS入门学习(七)缓存区组件 IBufferElementData

组件继承于IBufferElementData&#xff0c;可以让一个实体拥有多个相同的组件。 using Unity.Entities;public struct MyBuffComponentData : IBufferElementData {public int num; }using System.Collections; using System.Collections.Generic; using UnityEngine; using U…

一种寻路的应用

应用背景 利用长途车进行货物转运的寻路计算。例如从深圳到大连。可以走有很多条长途车的路线。需要根据需求计算出最合适路线。不同的路线的总里程数、总价、需要的时间不一样。客户根据需求进行选择。主要有一些细节&#xff1a; 全国的长途车车站的数据的更新&#xff1a; …