强化学习数学基础学习(三)

ops/2024/10/30 23:00:17/

前言

这次是蒙特卡洛方法

正文

蒙特卡洛方法(Monte Carlo,MC)

在强化学习(Reinforcement Learning, RL)中,蒙特卡洛方法是一类基于采样的学习方法,主要用于解决那些状态空间或动作空间过大,以至于无法使用动态规划方法的问题。蒙特卡洛方法通过模拟大量的随机经验(即,遵循某种策略与环境互动的序列),来估计价值函数。

换句话说,求解rl问题的时候,我们要么需要模型,要么需要数据,而之前介绍的方法都是基于模型的方法,而这次的mc就是基于数据的无模型方法(这个实际上可以可以分为蒙特卡洛方法和时序差分学习)

所以我们能列出:

蒙特卡洛方法的特点

  • 全回报(Episodic):通常用于具有明确开始和结束的情境(即,episodic tasks)。
  • 不需要知道环境的转移概率和奖励分布:蒙特卡洛方法是一种model-free的强化学习方法,这意味着它不需要事先知道环境的动态特性,即不需要知道状态转移概率和奖励分布。

  • 通过大数据量的样本采样来进行估计:这种方法依赖于从实际的经验(即,episode)中收集大量的样本数据。通过这些样本,可以估计出价值函数或策略。

  • 本质上是大数定律的应用:蒙特卡洛方法基于大数定律,该定律指出,当独立同分布的随机变量样本数量足够大时,样本均值会趋近于这些随机变量的真实期望值。在这里,每个episode可以看作是一个随机样本,而通过大量episode的平均回报来估计状态的价值。

  • 将策略迭代中依赖于model的部分替换为model-free:在传统的动态规划(DP)方法中,需要知道环境模型来进行策略迭代。蒙特卡洛方法则通过采样来绕过这一需求,使得强化学习可以在没有环境模型的情况下进行。

蒙特卡洛算法步骤

  1. 初始化

    • 设置初始的价值函数V(s) 对于所有状态 s。
    • 设置一个策略 π,可以是随机的或基于某些启发式的。
  2. 互动与采样

    • 使用策略 π 与环境互动,生成多个完整的episode(即,从开始状态到终止状态的序列)。
    • 对于每个episode,记录状态、动作、奖励和后续状态。
  3. 回报计算

    • 对于每个episode,计算从每个状态开始到episode结束的回报 Gt​。
    • Gt​ 可以是简单回报(只考虑最终奖励),或者是折现回报(考虑未来奖励的折现和)。
  4. 更新价值函数

    • 对于episode中的每个状态 st​,更新价值函数 V(st​)。
    • 更新规则通常是:

      V(st​)←V(st​)+α(Gt​−V(st​))

    • 其中 α 是学习率。

MC Exploring Starts

MC Exploring Starts 是蒙特卡洛强化学习中的一个概念,它是一种解决策略评估问题的方法,特别是在没有明确探索策略的情况下。这个方法的名称来源于它假设在每个episode的开始,智能体都以非零概率选择所有可能的动作,即“探索性起始”(Exploring Starts)。

基本思想

  • 探索性起始:假设在每个episode的开始,智能体随机选择一个动作,而不是遵循某个特定的策略。这意味着所有状态-动作对都有机会被选中,从而确保了充分的探索。

  • 策略评估:MC Exploring Starts 的目标是评估给定策略的价值函数,即计算在该策略下每个状态或状态-动作对的期望回报。

工作原理

  1. 初始化:为每个状态或状态-动作对初始化一个回报的计数器和一个回报的总和。

  2. 生成episodes:使用探索性起始生成多个episodes。在每个episode中,智能体从初始状态开始,根据当前策略和探索性起始的条件选择动作,直到达到终止状态。

  3. 记录回报:对于每个episode,记录从每个状态或状态-动作对开始的回报。

  4. 更新价值:当一个episode结束时,使用该episode中的回报来更新对应状态或状态-动作对的价值估计。具体来说,对于每个访问过的状态或状态-动作对,将其回报加到回报的总和中,并将计数器加一。然后,将回报的总和除以计数器得到平均回报,这作为该状态或状态-动作对的价值估计。

优势

  • 不需要明确的探索策略:由于假设了探索性起始,因此不需要额外的探索机制,如ε-greedy策略。

局限

  • 实际应用中的限制:在实际应用中,确保探索性起始可能是不现实的,因为这意味着智能体必须在每个episode的开始完全随机地选择动作,这在某些环境中可能是不安全的或不合适的。

  • 收敛性:MC Exploring Starts 要求所有状态-动作对都有非零概率被选中,这对于确保算法的收敛性是必要的。如果某些状态-动作对从未被探索,那么它们的价值将无法被准确估计。

MC Exploring Starts 是蒙特卡洛方法的一个理想化版本,它为理解蒙特卡洛算法提供了一个理论框架,但在实际应用中,通常会采用其他探索策略来确保对所有可能的状态-动作对的探索。

MC ε-Greedy

MC ε-Greedy 是一种结合了蒙特卡洛(Monte Carlo, MC)方法和ε-Greedy 探索策略的强化学习算法。它主要用于解决强化学习中的策略评估和策略改进问题。

MC ε-Greedy 算法步骤

  1. 初始化

    • 对于所有的状态s和动作a,初始化一个计数器N(s, a)来记录(s, a)对被选中的次数,以及一个累加器Q(s, a)来记录在状态s下采取动作a所获得的总回报。
    • 设置一个参数ε(通常是一个较小的正数,如0.1),用于控制探索和利用的比例。
  2. 生成Episodes

    • 对于每个episode,从初始状态开始,使用ε-Greedy策略选择动作:
      • 以ε的概率随机选择一个动作。
      • 以1-ε的概率选择当前估计的最优动作(即Q值最大的动作)。
    • 执行选定的动作,观察环境反馈的下一个状态和奖励,直到达到终止状态。
  3. 记录回报

    • 对于每个episode,记录从开始到结束的每一步的状态、动作和奖励。
  4. 更新价值函数

    • 当一个episode结束后,使用该episode中的经验来更新动作值函数Q(s, a)。
    • 对于episode中出现的每个(s, a)对,计算从该(s, a)对开始直到episode结束的回报G。
    • 更新Q(s, a)的值为:Q(s, a) = Q(s, a) + (G - Q(s, a)) / N(s, a)。
    • 同时,更新N(s, a)的计数:N(s, a) = N(s, a) + 1。
  5. 策略改进

    • 在每个状态s下,根据更新的Q值来选择最优动作,即贪婪地选择Q(s, a)最大的动作。
    • 随着Q值的更新,策略也会逐渐改进。

尾声

这个挺好理解的


http://www.ppmy.cn/ops/129717.html

相关文章

pikachu-XSS闯关挑战

get message<script>alert("123")</script>&submitsubmit post 可以暴力破解账号密码&#xff0c;但由于是XSS练习&#xff0c;点右上角的提示&#xff0c;就可以登陆 直接在输入框中输入 <script>alert("123")</script> …

Date工具类详细汇总-Date日期相关方法

# 1024程序员节 | 征文 # 目录 简介 Date工具类单元测试 Date工具类 简介 本文章是个人总结实际工作中常用到的Date工具类&#xff0c;主要包含Java-jdk8以下版本的Date相关使用方法&#xff0c;可以方便的在工作中灵活的应用&#xff0c;在个人工作期间频繁使用这些时间的格…

ljjh#True

// background.js // 使用 Map 存储拦截的请求数据&#xff0c;键为 interceptionId const interceptedRequests new Map(); // 使用 Map 存储 requestId 到 interceptionId 的映射 const requestIdToInterceptionIdMap new Map(); // 存储已附加调试器的标签页ID const d…

Spring Authorization Server基于Spring Session的前后端分离实现

本章实现的效果 授权码模式下使用前后端分离的登录页面和授权确认页面。设备码模式(Device Flow)下使用前后端分离的登录页面、授权确认页面、用户码(user_code)验证页面和用户码(user_code)验证成功页面。 分析 在一年多以前我出了两篇前后端分离的文章&#xff0c;分别是《S…

像素、分辨率、PPI(像素密度)、帧率的概念

文章目录 前言一、像素1、定义2、像素点也不是越多越好 二、分辨率1、定义 三、PPI(像素密度)1、定义2、计算公式3、视网膜屏幕 四、帧率1、帧 (Frame)2、帧数 (Frames)3、帧率 (Frame Rate)4、FPS (Frames Per Second)5、赫兹 五、其他1、英寸2、为何显示器尺寸以英寸命名 总结…

vue 项目中无 router 文件夹,如何安装路由

两种情况&#xff1a; 第一种&#xff1a;创建项目的时候有勾选 router&#xff0c;但是没有生成 router 文件夹&#xff1b; 解决方法&#xff1a; 首先&#xff0c;查看 package.json 中有没有 router 的依赖&#xff0c;如下图&#xff1a; 自行在 src 目录下添加 router…

HarmonyOS开发5.0 net 启动界面设置

第一步、创建我们界面 第二步&#xff0c; 在EntryAbility中配置启动页面&#xff0c;在entry/src/main/ets/entryability/EntryAbility.ets中配置启动页面 配置如下 至此大功告成

react文档阅读笔记

文章目录 一、基础入门1. 创建声明一个组件2. 使用组件3. JSX标签语法4. 给组件添加样式5.在JSX中使用JS代码6.在JS中使用JSX7.内联样式8.条件渲染9.列表渲染10.事件处理11.更新页面&#xff08;状态记录&#xff09;12.react的hook函数13.组件间的数据共享 二、React哲学1.将U…