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

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

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 ϵ 可以逐渐减小,使智能体更多地依赖已经学到的知识,实现更加稳定的学习过程。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MacroSan 2500_24A配置

双控制器电源同时按下,切记/切记/切记 默认信息 默认地址:192.168.0.210 输入ODSP授权后设置密码## 配置端口 物理资源–>设备–>网口–>eth-1:0:0或eth-2:0:0 创建存储池 存储资源–>存储池 介质类型:混合(支持机械及SSD)全闪(仅支持SSD) RAID类型:CRAID-P(基于磁…

SQL-leetcode-180. 连续出现的数字

180. 连续出现的数字 表&#xff1a;Logs -------------------- | Column Name | Type | -------------------- | id | int | | num | varchar | -------------------- 在 SQL 中&#xff0c;id 是该表的主键。 id 是一个自增列。 找出所有至少连续出现三次的数字。 返回的…

ISDP010_基于DDD架构实现收银用例主成功场景

信息系统开发实践 &#xff5c; 系列文章传送门 ISDP001_课程概述 ISDP002_Maven上_创建Maven项目 ISDP003_Maven下_Maven项目依赖配置 ISDP004_创建SpringBoot3项目 ISDP005_Spring组件与自动装配 ISDP006_逻辑架构设计 ISDP007_Springboot日志配置与单元测试 ISDP008_SpringB…

ElementPlus 自定义封装 el-date-picker 的快捷功能

文章目录 需求分析 需求 分析 我们看到官网上给出的案例如下&#xff0c;但是不太满足我们用户想要的快捷功能&#xff0c;因为不太多&#xff0c;因此需要我们自己封装一些&#xff0c;方法如下 外部自定义该组件的快捷内容 export const getPickerOptions () > {cons…

怎么模仿磁盘 IO 慢的情况?并用于MySQL进行测试

今天给大家分享一篇在测试环境或者是自己想检验自己MySQL性能的文章 实验环境&#xff1a; Rocky Linux 8 镜像&#xff1a;Rocky-8.6-x86_64-dvd.iso 1. 创建一个大文件作为虚拟磁盘 [rootlocalhost ~] dd if/dev/zero of/tmp/slowdisk.img bs1M count100 记录了1000 的读入…

C++--------继承

一、继承的基本概念 继承是 C 中的一个重要特性&#xff0c;它允许一个类&#xff08;派生类或子类&#xff09;继承另一个类&#xff08;基类或父类&#xff09;的属性和方法。这样可以实现代码的重用和建立类之间的层次关系。 #include <iostream>// 基类 class Base…

Ubuntu24.04安装NVIDIA驱动及工具包

Ubuntu24.04安装NVIDIA驱动及工具包 安装nvidia显卡驱动安装cuda驱动安装cuDNN安装Anaconda 安装nvidia显卡驱动 NVIDIA 驱动程序&#xff08;NVIDIA Driver&#xff09;是专为 NVIDIA 图形处理单元&#xff08;GPU&#xff09;设计的软件&#xff0c;它充当操作系统与硬件之间…

探秘“香水的 ChatGPT”:AI 开启嗅觉奇幻之旅!

你没有看错&#xff0c;AI也能闻到味道了&#xff01;这是一家名为Osmo公司公布的信息&#xff0c;他们成功创造出了由AI生成的李子味道&#xff0c;快跟着小编一探究竟吧~ 【图片来源于网络&#xff0c;侵删】 Osmo公司的这项技术&#xff0c;通过分析香味的化学成分和人类嗅…

vue之axios基本使用

文章目录 1. axios 网络请求库2. axiosvue 1. axios 网络请求库 <body> <input type"button" value"get请求" class"get"> <input type"button" value"post请求" class"post"> <!-- 官网提供…

高通 ISP pipeline

目录 ISP理解&#xff1a; 1. IFE : Image front-end engine&#xff08;图像前端引擎&#xff09; 1.1 相关特点 1.2 IFE作用 2. BPS : Bayer processing segment&#xff08;拜耳加工段&#xff09; 2.1 相关特点 2.2 BPS基本概念 2.3 BPS与IFE区别&#xff1a; 3. …

Linux知识点回顾(期末提分篇)

前言&#xff1a;本篇文章为WK学子量身打造&#xff0c;其余读者也可根据题目进行巩固提升。 目录 前言&#xff1a;本篇文章为WK学子量身打造&#xff0c;其余读者也可根据题目进行巩固提升。 一、Linux的内核版本每一部分的含义 二、查看当前系统中所有用户的详细信息的文…

【图像处理lec10】图像压缩

目录 一、图像压缩基础 1、图像压缩的基本概念 2、数据冗余与压缩比 3、三种主要的数据冗余类型 4、保真度评估标准&#xff08;Fidelity Criteria&#xff09; 5、应用与实践 二、图像压缩模型 1、图像压缩模型概述 &#xff08;1&#xff09;压缩系统的结构 &#…

Java和Go语言的优劣势对比

文章目录 Java和Go语言的优劣势对比一、引言二、设计哲学与语法特性1、设计哲学2、语法特性 三、性能与内存管理1、性能2、内存管理和垃圾回收 四、并发编程模型五、使用示例1、Go语言示例代码2、Java语言示例代码 六、对比表格七、总结 Java和Go语言的优劣势对比 一、引言 在…

CH340系列芯片驱动电路·CH340系列芯片驱动!!!

目录 CH340基础知识 CH340常见类型 CH340引脚功能讲解 CH340驱动电路 CH340系列芯片数据手册 编写不易&#xff0c;仅供学习&#xff0c;请勿搬运&#xff0c;感谢理解 常见元器件驱动电路文章专栏连接 LM7805系列降压芯片驱动电路降压芯片驱动电路详解-CSDN博客 ME62…

[Python3] Sanic中间件

在 Sanic 中&#xff0c;中间件&#xff08;middleware&#xff09;是指在请求和响应之间执行的代码。它们是一个非常强大的工具&#xff0c;用于处理请求的预处理、响应的后处理、全局错误处理、日志记录、认证、权限校验、跨域资源共享&#xff08;CORS&#xff09;等任务。中…

pikachu靶场搭建详细步骤

一、靶场下载 点我去下载 二、靶场安装 需要的环境&#xff1a; mysqlApaches&#xff08;直接使用小皮面板Phpstudy&#xff1a;https://www.xp.cn/&#xff09;&#xff0c;启动他们 设置网站&#xff0c;把靶场的路径对应过来 对应数据库的信息 由于没有核对数据库的信…

Goland 安装与使用

GoLand安装 官方网址&#xff1a; JetBrains GoLand&#xff1a;不只是 Go IDE 1. 进入官网&#xff0c;点击下载&#xff1a; ​ 2. 如下图一步步安装 ​ ​ ​ ​ ​ 3. 如下图一步步安装

计算属性 简写和 完整写法

计算属性渲染不加上括号 methods方法和computed属性区别&#xff1a; computed只计算一次&#xff0c;然后缓存&#xff0c;后续直接拿出来使用&#xff0c;而methods每次使用每次计算&#xff0c;不会缓存 计算属性完整写法&#xff1a; 既获取又设置 slice 截取 成绩案例 …

2024最新鸿蒙开发面试题合集(二)-HarmonyOS NEXT Release(API 12 Release)

上一篇面试题链接&#xff1a;https://mp.csdn.net/mp_blog/creation/editor/144685078 1. 鸿蒙简单介绍和发展历程 HarmonyOS 是新一代的智能终端操作系统&#xff0c;为不同设备的智能化、互联与协同提供了统一的语言。带来简洁&#xff0c;流畅&#xff0c;连续&#xff0…

【C++】——精细化哈希表架构:理论与实践的综合分析

先找出你的能力在哪里&#xff0c;然后再决定你是谁。 —— 塔拉韦斯特弗 《你当像鸟飞往你的山》 目录 1. C 与哈希表&#xff1a;核心概念与引入 2. 哈希表的底层机制&#xff1a;原理与挑战 2.1 核心功能解析&#xff1a;效率与灵活性的平衡 2.2 哈希冲突的本质&#x…