当前位置: 首页 > article >正文

【强化学习】——03 Model-Free RL之基于价值的强化学习

【强化学习】——03 Model-Free RL之基于价值的强化学习

\quad\quad
\quad\quad 动态规划算法是基于模型的算法,要求已知状态转移概率和奖励函数。但很多实际问题中环境

可能是未知的,这就需要不基于模型(Model-Free)的RL方法。

\quad\quad 其又分为:

  • 基于价值(Value-Based RL)的强化学习,学习并贪婪地选择值最大地动作(确定性策略)
  • 基于策略(Policy-Based RL)的强化学习,对策略进行建模和优化(随机性策略)

\quad\quad 主要区别在于优化目标和动作选择的方式

  • 基于价值的RL,优化目标是价值函数 Q ( s , a ) Q(s,a) Q(s,a) V ( s ) V(s) V(s),通过价值函间接选择动作
  • 基于策略的RL,优化目标是策略函数 π ( s ) \pi(s) π(s),通过优化策略参数来最大化累计奖励

\quad\quad 本文先介绍基于价值的强化学习

一、不基于模型的“预测”——更新 V π ( s ) V_\pi(s) Vπ(s)

(一) 蒙特卡洛算法MC

  1. 主要思想

\quad\quad 通过大量采样来逼近真实值,用频率来估计概率。通过多次采样,使用一个事件发生的频率来替代其发生的概率,以解决状态转移概率未知的问题。

\quad\quad Agent与环境交互产生若干完整的轨迹(从初态到末态),通过对多条轨迹的回报进行平均,进而估计状态价值或动作价值。

  1. 整体思路

\quad\quad 模拟——抽样——估值

\quad\quad 强化学习的目标是寻找最优策略,方法是求 V π ( s ) V_\pi(s) Vπ(s) Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)

  1. 实现

(1)策略评估

\quad\quad 初始化——选择一个 ( s , a ) (s,a) (s,a)

\quad\quad 模拟——使用当前策略 π \pi π,从 ( s , a ) (s,a) (s,a)进行一次模拟,随机产生一段轨迹

\quad\quad 抽样——获得这段轨迹上每个 ( s i , a i ) (s_i,a_i) (si,ai)的收获 G ( s i , a i ) G(s_i,a_i) G(si,ai)

G t = R t + 1 + γ R t + 2 + . . . + γ T − t − 1 R T G_t=R_{t+1}+\gamma R_{t+2}+...+\gamma^{T-t-1}R_T Gt=Rt+1+γRt+2+...+γTt1RT

V π ( s ) = E [ G t ∣ S t = s ] V_\pi(s)=E[G_t|S_t=s] Vπ(s)=E[GtSt=s]

\quad\quad 注意:实际上我们使用N个样本回报来估计期望回报,即 V π ( s ) ≈ 1 / N ∑ G t V_\pi(s)\approx1/N\sum G_t Vπ(s)1/NGt

\quad\quad 但在等待一个轨迹的过程中,会产生估计误差。

\quad\quad 我们可以使用真实回报来纠偏,使得新的估计=原有估计+学习率×实际回报和估计回报的误差

V ( S t ) ← V ( S t ) + α [ G t − V ( S t ) ] V(S_t)\leftarrow V(S_t)+\alpha[G_t-V(S_t)] V(St)V(St)+α[GtV(St)]

\quad\quad 直至预测的回报无限接近真实的回报

(2)策略优化

\quad\quad 如选择贪心地改进策略, π ( s ) = ˙ arg max ⁡ a q ( s , a ) \pi(s)\dot=\argmax_a q(s,a) π(s)=˙argmaxaq(s,a)

\quad\quad 优化 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a) π ( s ) \pi(s) π(s)

(二)时序差分算法TD

\quad\quad MC要求所有采样序列都是完整的状态序列。如果没有完整的状态序列,可采用时序差分算法

  1. 引导

\quad\quad 由于没有完整的状态序列,因此收获的计算不能用 G t G_t Gt的公式。

\quad\quad 根据状态价值函数的定义,用 R t + 1 + γ V π ( S t + 1 ) R_{t+1}+\gamma V_\pi(S_{t+1}) Rt+1+γVπ(St+1)来替代 G t G_t Gt,作为TD的目标值

\quad\quad 这一过程称为引导,使只需要两个连续的状态和奖励,便可以尝试求解强化学习问题

  1. 时序差分的预测问题

\quad\quad 根据状态价值函数的定义 V π ( s ) = E [ G t ∣ S t = s ] V_\pi(s)=E[G_t|S_t=s] Vπ(s)=E[GtSt=s]

\quad\quad 对于蒙特卡洛算法, G t = R t + 1 + γ R t + 2 + . . . G_t=R_{t+1}+\gamma R_{t+2}+... Gt=Rt+1+γRt+2+...带入计算

\quad\quad 对于时序差分算法, G t = R t + 1 + γ V ( S t + 1 ) G_t=R_{t+1}+\gamma V(S_{t+1}) Gt=Rt+1+γV(St+1)带入计算

\quad\quad 从中也可以看出,时序差分方法是一种当前状态价值的有偏估计,而蒙特卡洛算法是无偏估计

\quad\quad 类似地,用误差学习方法进行纠偏从而对状态价值函数进行估计:

V ( S t ) ← V ( S t ) + α [ R t + 1 + γ V

http://www.lryc.cn/news/2403624.html

相关文章:

  • Edge(Bing)自动领积分脚本部署——基于python和Selenium(附源码)
  • html表格转换为markdown
  • VsCode 安装 Cline 插件并使用免费模型(例如 DeepSeek)
  • 短视频矩阵系统源码新发布技术方案有那几种?
  • React 第五十二节 Router中 useResolvedPath使用详解和注意事项示例
  • 【PmHub面试篇】性能监控与分布式追踪利器Skywalking面试专题分析
  • Cursor快速梳理ipynb文件Prompt
  • 天机学堂-分页查询
  • 业态即战场:零售平台的生意模型与系统设计解构
  • 微算法科技(NASDAQ:MLGO)基于信任的集成共识和灰狼优化(GWO)算法,搭建高信任水平的区块链网络
  • 全新Xsens Animate版本是迄今为止最大的软件升级,提供更清晰的数据、快捷的工作流程以及从录制开始就更直观的体验
  • 大语言模型评测体系全解析(下篇):工具链、学术前沿与实战策略
  • python打卡day46@浙大疏锦行
  • C++.OpenGL (1/64) 创建窗口(Hello Window)
  • Excel 发现此工作表中有一处或多处公式引用错误。请检查公式中的单元格引用、区域名称、已定义名称以及到其他工作簿的链接是否均正确无误。弹窗
  • NVIDIA DRIVE AGX平台:引领智能驾驶安全新时代
  • 推荐12个wordpress企业网站模板
  • 沙市区举办资本市场赋能培训会 点赋科技分享智能消费新实践
  • Docker 容器化基础:镜像、容器与仓库的本质解析
  • 九.C++ 对引用的学习
  • 探秘鸿蒙 HarmonyOS NEXT:实战用 CodeGenie 构建鸿蒙应用页面
  • art-pi2 上手记录(二)
  • 数据库SQLite基础
  • 1.3 古典概型和几何概型
  • html-pre标签
  • 【WPF】WPF 项目实战:用ObservableCollection构建一个可增删、排序的管理界面(含源码)
  • MCU_IO驱动LED
  • 上门预约行业技术方案全解析:小程序、App还是H5?如何选择?
  • Java 集合面试题 PDF 及常见考点解析与备考指南
  • Java 大视界 -- 基于 Java 的大数据分布式计算在蛋白质组学数据分析中的加速与优化(255)