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

【强化学习】第02期:动态规划方法

笔者近期上了国科大周晓飞老师《强化学习及其应用》课程,计划整理一个强化学习系列笔记。笔记中所引用的内容部分出自周老师的课程PPT。笔记中如有不到之处,敬请批评指正。

文章目录

  • 2.1 动态规划:策略收敛法/策略迭代法
  • 2.2 动态规划:值迭代法


总的来说,DP方法就是在已知bellman方程的环境参数(回报R和转移概率P)的情况下,求取最优策略 u ∗ u^* u和最优值 v ∗ v^* v

2.1 动态规划:策略收敛法/策略迭代法

总体思路:算V --> 算Q --> 策略改进 (不断重复)
初始化最优策略 u,
Step1 策略评估: 确定当前策略 𝜋 的值函数 V π V^π Vπ,可通过下面的式子求解。

Step2 计算动作值函数Q: 使用值函数 V π V^π Vπ来计算每个状态-动作对的动作值函数 Q π ( s , a ) Q^π(s,a) Qπ(s,a)。这一步是为了计算在当前策略 𝜋 下,每个状态-动作对的期望回报。

Step3 策略改进: 对每个状态 𝑠 选择能使 Q π ( s , a ) Q^π(s,a) Qπ(s,a)最大的动作𝑎,从而形成新的策略 𝜋′。这一步是为了更新策略,使其更接近最优策略。
在这里插入图片描述
Step4: goto Step1, 直到最优策略u不变。
在这里插入图片描述

2.2 动态规划:值迭代法

值迭代(Value Iteration)是一种用于求解马尔可夫决策过程(MDP)的经典动态规划算法。它通过迭代地更新值函数,逐步逼近最优值函数 V ∗ V^* V ,最终得到最优策略 π ∗ π^* π
在这里插入图片描述

值迭代一般分为这几个步骤:
step1 初始化:设定初始值函数 V ( s ) V(s) V(s)为零或其他任意值。
step2 迭代更新:对于每个状态 𝑠 ,根据当前值函数 V k V_k Vk计算新的值函数 V k + 1 V_{k+1} Vk+1。这个更新过程通过遍历所有状态和所有可能的动作,计算在每个状态下采取每个动作所能获得的期望累计奖励,并选择其中的最大值作为新的值函数值。
在这里插入图片描述
step3 收敛判定:当值函数的变化小于某个预设的阈值 𝜃 时,认为值函数已经收敛,可以停止迭代。
在这里插入图片描述
step4 策略提取:在值函数收敛后,通过值函数 V ∗ V^* V 提取最优策略 π ∗ π^* π
在这里插入图片描述

关于值迭代,也有很多处理技巧,这里简单介绍三种。
(1)In-place Dynamic Programming
在标准的值迭代过程中,我们通常会维护两个值函数,一个用于保存当前迭代的结果,另一个用于保存上一次迭代的结果。而在 In-place Dynamic Programming 中,我们只使用一个值函数数组,在每次更新时直接覆盖旧的值。
特点:只需要一个数组来存储值函数,减少了内存消耗。

(2)Prioritized Sweeping
是一种加速值迭代的方法,通过优先更新那些对值函数变化影响较大的状态,从而提高收敛速度。

(3)Real-time Dynamic Programming (RTDP)
是一种在实际运行过程中更新值函数的方法,适用于在线学习。

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

相关文章:

  • 安全技术和防火墙(二)
  • 【51单片机入门】数码管原理
  • 三星DRAM、NAND,“又双叒叕”带头涨价了
  • 星戈瑞FITC-PEG2000-Biotin的生物相容性
  • 数据资产管理的艺术:构建智能化、精细化的数据资产管理体系,从数据整合、分析到决策支持,为企业提供一站式的数据资产解决方案,助力企业把握数字时代的新机遇
  • 基于Java微信小程序校园自助打印系统设计和实现(源码+LW+调试文档+讲解等)
  • 股票复盘思路
  • OpenGL系列(六)摄像机
  • 一个端口配置两个vue和后端服务,nginx以及前后端服务怎么配?
  • 295. 数据流的中位数
  • OCR训练和C#部署英文字符训练
  • webpack【实用教程】
  • 如何使用C++进行文件读写操作
  • Tensorflow Lite移动平台编译
  • 2024年6月24日-6月30日(ue5肉鸽视频p16-p25)
  • LeetCode.面试题17.24.最大子矩阵详解
  • 云动态摘要 2024-06-28
  • 六、资产安全—信息分级资产管理与隐私保护(CISSP)
  • 香港服务器托管对外贸行业必要性和优势
  • Vue Router 导航守卫,多次执行的解决方案
  • SpringBoot集成道历(实现道历日期查询)
  • 面对.rmallox勒索病毒:如何有效防范及应对
  • 嘉立创学习
  • ECharts 响应式设计
  • 基于java语言+springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、APP 医院AI智能导诊系统源码
  • MySQL事务——Java全栈知识(31)
  • 2毛钱不到的2A同步降压DCDC电压6V频率1.5MHz电感2.2uH封装SOT23-5芯片MT3520B
  • Ubuntu安装、更新和删除软件
  • 消息队列kafka中间件详解:案例解析(第10天)
  • Linux高级编程——线程