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

强化学习 (10)蒙特卡洛

如何在没有模型的情况下估计一些量?→ 蒙特卡洛

引入

投掷一个硬币,正面朝上X=+1,反面朝上X=-1,求X的期望E[X]

第一种方法:model-based

\begin{aligned} \mathbb{E}[X] = \sum_{x} x p(x) = 1 \times 0.5 + (-1) \times 0.5 = 0 \end{aligned}

问题是这么精确的一个分布可能是未知的

第二种方法:model-free

做很多次采样,把采样的结果求平均 →这就是蒙特卡洛的思想

随着N增大,近似会越来越精确

大数定律

随机变量的算术平均值在概率意义下无限趋近于其数学期望

MC-based RL 算法

策略迭代包含两个步骤:

先根据策略\pi_k求出state valuev_{\pi_k},再求解最优化问题得到一个新的策略\pi_{k+1}

其中的policy improvement步骤的elementwise form为:

\begin{aligned} \pi_{k+1}(s) &= \arg \max_{\pi} \sum_{a} \pi(a|s) \left[ \sum_{r} p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) v_{\pi_k}(s') \right] \\ &= \arg \max_{\pi} \sum_{a} \pi(a|s) q_{\pi_k}(s,a), \quad s \in \mathcal{S} \end{aligned}

接下来,目标是求解出最大的q_{\pi_k}(s,a)

第一种求法需要模型(模型里的p(r|s,a)p(s'|s,a)

\begin{aligned} q_{\pi_k}(s, a) = \sum_{r} p(r|s, a) r + \gamma \sum_{s'} p(s'|s, a) v_{\pi_k}(s') \end{aligned}

第二种求法不用模型,用的是action value最初的定义

\begin{aligned} q_{\pi_k}(s, a) = \mathbb{E}[G_t \mid S_t = s, A_t = a] \end{aligned}

蒙特卡洛估计求action value的过程

核心思想是用data代替model,这里的data在强化学习里称为experience

MC basic算法

给定一个初始策略\pi_0,在第k次迭代时有两个步骤:policy evaluation&policy improvement

MC basic算法的第二步与policy iteration一致,只有第一步不同

MC basic太简单了,实际不会用它

episode length

当 episode 长度较短时,只有靠近目标的状态具有非零状态值

随着 episode 长度增加,相较于远离目标的状态,更靠近目标的状态会更早出现非零值

episode 长度应足够长

episode 长度不必是无限长的

MC Exploring Starts

基于蒙特卡洛(MC)的强化学习(RL)的另一个方面是何时更新策略。有两种方法。

第一种方法是,在策略评估步骤中,收集从一个状态 - 动作对开始的所有 episode,然后使用平均回报来近似动作值。这是MC basic算法所采用的方法。这种方法的问题在于智能体必须等到所有 episode 都被收集完毕

第二种方法是使用单个 episode 的回报来近似动作值。通过这种方式,我们可以逐个 episode 地改进策略 

Generalized policy iteration (GPI)

  • GPI是一类算法,并非一种特定算法
  • 它指的是在 policy - evaluation(策略评估)和 policy - improvement(策略改进)过程之间切换的总体思路或框架
  • 许多基于模型(model - based)和无模型(model - free)的强化学习(RL)算法都属于这个框架

MC Exploring Starts 步骤

核心环节:

MC Exploring Starts通过收集 episode(情节)、用回报平均估计 action value 来学习策略。为了让估计出的 action value 能真正反映 “最优选择”,理论上需要确保每个 state - action pair 都有机会作为起始点被探索 。

比如在网格世界任务中,若某个角落状态 s 下的动作 a(比如 “向左走”)从未作为起始去探索,而恰好这个动作是该状态下能获得最大长期回报的最优动作,由于没探索过,算法就无法知晓它的价值,可能永远选不出最优策略 

MC without Exploring Starts

去掉Exploring Starts的方法是引入soft policy 比如epsilon-greedy

balance between exploitation(充分利用) and exploration(探索)

\epsilon=0的时候,变成greedy→exploitation

\epsilon=1的时候,变成均匀分布uniform distribution→exploration

无需严格从每个 state - action pair 起始,就能保证长期探索的充分性,让算法在实践中也能收敛到近似最优策略,弥合了理论和实践的 gap

蒙特卡洛基础算法(MC Basic)和蒙特卡洛探索性起始算法(MC Exploring Starts)中的策略改进步骤是求解:

现在改为:

\epsilon越小,越不探索,这个时候target area的state value很大

\epsilon越大,越探索,这个时候各个area的state value都会变小,因为他们做了很多不该做的探索。特别地,对于一个被好几个forbidden area包围的target area,它的state value会非常小,因为他可能会做很多进入forbidden area的探索,得到很多负数reward

参考文章

S. Zhao. Mathematical Foundations of Reinforcement Learning. Springer Nature Press, 2025.  【【强化学习的数学原理】课程:从零开始到透彻理解(完结)】

https://www.bilibili.com/video/BV1sd4y167NS/?p=2&share_source=copy_web&vd_source=52164f68a5f27ac2e86f0e7963ea966c 

http://www.dtcms.com/a/266502.html

相关文章:

  • SRE - - PV、UV、VV、IP详解及区别
  • Web基础关键_008_JavaScript 的 BOM、ES6、构造函数、原型
  • 利用 AI 打造的开发者工具集合
  • 【Unity笔记02】订阅事件-自动开门
  • 模型部署与推理--利用libtorch模型部署与推理
  • Redisearch接入SpringBoot项目使用
  • MySQL 中 -> 和 ->> 操作符的区别
  • github上部署自己的静态项目
  • 【狂飙AGI】第7课:AGI-行业大模型(系列1)
  • jsonCPP 开源库详解
  • CentOS配置网络
  • RocketMQ延迟消息是如何实现的?
  • 深度学习基础1
  • 基于Android的财务记账App
  • 【wps】 excel 删除重复项
  • AI 应用于进攻性安全
  • linux_git的使用
  • MySQL 8.0:窗口函数
  • 【Unity开发】Unity实现对模型移动、缩放、旋转操作的功能
  • 基于Docker构建OrangePi5 SDK环境
  • 408第三季part2 - 计算机网络 - 计算机网络基本概念
  • 闲庭信步使用SV搭建图像测试平台:第二十九课——绘制正弦波的图片
  • Android 实现底部弹窗
  • Datasophon的Ranger安装时数据库踩坑及问题解决
  • NeighborGeo:基于邻居的IP地理定位(三)
  • NeighborGeo:基于邻居的IP地理定位(二)
  • 【WEB】Polar靶场 6-10题 详细笔记
  • Jenkins-Email Extension 插件插件
  • 前端开发-前置知识
  • Android WebView 性能优化指南