强化学习深入学习(一):价值函数和贝尔曼方程

2024-09-05 17:36

本文主要是介绍强化学习深入学习(一):价值函数和贝尔曼方程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 0. 引言
  • 1. 回报(Return)
  • 2. 价值函数(Value Function)
  • 3. 贝尔曼期望方程(Bellman Expectation Equation)
  • 4. 贝尔曼最优方程(Bellman Optimality Equation)
  • 总结


0. 引言

强化学习(Reinforcement Learning, RL)是一种机器学习方法,通过与环境的交互来学习如何采取行动,以最大化累积的回报。智能体的目标是找到最优策略 π ∗ \pi^* π,使得从任意状态 s s s 开始行动时,累积的期望回报最大。这个问题通常通过优化策略的方式来解决。

强化学习的基本概念

  • 智能体(Agent): 强化学习的核心参与者,它通过与环境交互,选择行动并从中学习。智能体的目标是找到一个策略,使得在长期内获得的累积回报最大化。

  • 环境(Environment): 智能体所处的外部世界。智能体与环境交互,通过执行动作改变环境状态,并接收来自环境的反馈(奖励和新状态)。

  • 状态(State, s s s: 环境在某一时刻的具体情况或描述。状态可以是环境的完整描述,也可以是部分信息的表示。

  • 动作(Action, a a a: 智能体在每个状态下可以采取的操作。动作会影响环境的状态,并引发反馈。

  • 奖励(Reward, r r r: 环境对智能体采取某一动作的反馈。奖励是一个标量值,用于指示该动作的好坏。智能体的目标是最大化累积奖励。

  • 策略(Policy, π \pi π: 智能体在每个状态下选择动作的规则或分布。策略可以是确定性的(在某状态下总是选择同一动作)或随机的(在某状态下根据概率选择动作)。

  • 回报(Return, G G G: 从某一时刻开始,智能体获得的累积奖励。通常使用折扣因子 γ \gamma γ 来对未来的奖励进行折扣计算。

强化学习的工作流程

  1. 初始状态: 智能体从环境中感知当前的状态 s t s_t st

  2. 动作选择: 基于当前策略 π \pi π,智能体选择一个动作 a t a_t at

  3. 执行动作: 智能体执行动作 a t a_t at,该动作影响环境并导致状态转移。

  4. 反馈接收: 环境反馈给智能体一个奖励 r t + 1 r_{t+1} rt+1 以及新的状态 s t + 1 s_{t+1} st+1

  5. 更新策略: 智能体利用获得的反馈更新策略,使得将来在类似情形下能做出更好的选择。

  6. 重复: 过程重复,直到智能体达到目标或学习结束。

1. 回报(Return)

回报是指在某个状态下开始,经过一系列行动后获得的累积奖励(Reward)。在时间步 t t t 时的回报通常表示为 G t G_t Gt

对于无折扣的情况,总回报为:
G t = R t + 1 + R t + 2 + R t + 3 + ⋯ = ∑ k = 0 ∞ R t + k + 1 G_t = R_{t+1} + R_{t+2} + R_{t+3} + \cdots = \sum_{k=0}^{\infty} R_{t+k+1} Gt=Rt+1+Rt+2+Rt+3+=k=0Rt+k+1

如果使用折扣因子 γ \gamma γ(其中 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0γ1)来表示未来奖励的重要性,回报可以表示为:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1

这里, γ \gamma γ 控制了未来奖励对当前回报的影响程度。当 γ \gamma γ 越接近 1,越更加重视长期奖励;当 γ \gamma γ 越接近 0,则更加关注短期奖励。

2. 价值函数(Value Function)

价值函数用来评估一个状态或状态-动作对的好坏。价值函数有两种主要形式:

(1)状态价值函数(State Value Function, V ( s ) V(s) V(s):表示在状态 s s s 下,按照某一策略 π \pi π 行动时,未来回报的期望值。
V π ( s ) = E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] V_{\pi}(s) = \mathbb{E}_{\pi} \left[ G_t \mid S_t = s \right] = \mathbb{E}_{\pi} \left[ \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \mid S_t = s \right] Vπ(s)=Eπ[GtSt=s]=Eπ[k=0γkRt+k+1St=s]

(2)动作价值函数(Action Value Function, Q ( s , a ) Q(s, a) Q(s,a):表示在状态 s s s 下采取动作 a a a 并且随后按照某一策略 π \pi π 行动时,未来回报的期望值。
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]

下面说明状态价值函数 V π ( s ) V_{\pi}(s) Vπ(s) 和动作价值函数 Q π ( s , a ) Q_{\pi}(s, a) Qπ(s,a) 之间通过策略 π \pi π 联系在一起。 V π ( s ) V_{\pi}(s) Vπ(s) 可以被视为在当前状态下所有可能动作的 Q π ( s , a ) Q_{\pi}(s, a) Qπ(s,a) 的加权平均。

3. 贝尔曼期望方程(Bellman Expectation Equation)

贝尔曼期望方程将价值函数表示为当前奖励与未来状态的价值之间的关系。

(1)状态价值函数的贝尔曼期望方程
V π ( s ) = E π [ R t + 1 + γ V π ( S t + 1 ) ∣ S t = s ] V_{\pi}(s) = \mathbb{E}_{\pi} \left[ R_{t+1} + \gamma V_{\pi}(S_{t+1}) \mid S_t = s \right] Vπ(s)=Eπ[Rt+1+γVπ(St+1)St=s]
这表示在状态 s s s 下的价值等于当前行动得到的即时奖励与未来状态的折扣价值的期望值。

(2)动作价值函数的贝尔曼期望方程
Q π ( s , a ) = E [ R t + 1 + γ E π [ Q π ( S t + 1 , A t + 1 ) ∣ S t + 1 ] ∣ S t = s , A t = a ] Q_{\pi}(s, a) = \mathbb{E} \left[ R_{t+1} + \gamma \mathbb{E}_{\pi} \left[ Q_{\pi}(S_{t+1}, A_{t+1}) \mid S_{t+1} \right] \mid S_t = s, A_t = a \right] Qπ(s,a)=E[Rt+1+γEπ[Qπ(St+1,At+1)St+1]St=s,At=a]
这里, Q π ( s , a ) Q_{\pi}(s, a) Qπ(s,a) 表示在状态 s s s 下采取动作 a a a 后,立即获得的奖励加上下一状态的期望价值。

4. 贝尔曼最优方程(Bellman Optimality Equation)

贝尔曼最优方程用于描述最优策略下的状态或动作的价值。

(1)最优状态价值函数的贝尔曼方程
V ∗ ( s ) = max ⁡ a E [ R t + 1 + γ V ∗ ( S t + 1 ) ∣ S t = s , A t = a ] V_*(s) = \max_a \mathbb{E} \left[ R_{t+1} + \gamma V^*(S_{t+1}) \mid S_t = s, A_t = a \right] V(s)=amaxE[Rt+1+γV(St+1)St=s,At=a]
这意味着在最优策略下,状态 s s s 的价值是通过选择在该状态下的最佳行动所获得的即时奖励和后续状态的最优价值来决定的。

(2)最优动作价值函数的贝尔曼方程
Q ∗ ( s , a ) = E [ R t + 1 + γ max ⁡ a ′ Q ∗ ( S t + 1 , a ′ ) ∣ S t = s , A t = a ] Q_*(s, a) = \mathbb{E} \left[ R_{t+1} + \gamma \max_{a'} Q^*(S_{t+1}, a') \mid S_t = s, A_t = a \right] Q(s,a)=E[Rt+1+γamaxQ(St+1,a)St=s,At=a]
这里, Q ∗ ( s , a ) Q_*(s, a) Q(s,a) 表示在状态 s s s 下采取动作 a a a 后,立即获得的奖励加上后续状态的最优行动价值。

总结

(1)回报 G t G_t Gt 是从某个时间步开始所能获得的累积奖励。

(2)价值函数 V ( s ) V(s) V(s) Q ( s , a ) Q(s, a) Q(s,a) 用于评估状态或动作的长期好坏。

(3)贝尔曼期望方程 将价值函数与未来的期望回报联系起来,表达策略下的期望价值。

(4)贝尔曼最优方程 则用于找到最优策略下的最大期望回报。


欢迎关注本人,我是喜欢搞事的程序猿; 一起进步,一起学习;

欢迎关注知乎/CSDN:SmallerFL

也欢迎关注我的wx公众号(精选高质量文章):一个比特定乾坤

在这里插入图片描述

这篇关于强化学习深入学习(一):价值函数和贝尔曼方程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139613

相关文章

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基