Pytorch深度强化学习1-5:详解蒙特卡洛强化学习原理

目录

  • 0 专栏介绍
  • 1 蒙特卡洛强化学习
  • 2 策略评估原理
  • 3 策略改进原理
    • 3.1 同轨蒙特卡洛强化学习
    • 3.2 离轨蒙特卡洛强化学习

0 专栏介绍

本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。

🚀详情:《Pytorch深度强化学习》


在这里插入图片描述

1 蒙特卡洛强化学习

在Pytorch深度强化学习1-4:策略改进定理与贝尔曼最优方程详细推导中,我们介绍了贝尔曼最优方程

{ V γ ∗ ( s ) = max ⁡ a ∈ A ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ ∗ ( s ′ ) ] Q γ ∗ ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ max ⁡ a ′ ∈ A Q γ ∗ ( s ′ , a ′ ) ] { \begin{cases} V_{\gamma}^{*}\left( s \right) =\underset{a\in A}{\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{*}\left( s' \right) \right]\\ Q_{\gamma}^{*}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \underset{a'\in A}{\max}Q_{\gamma}^{*}\left( s',a' \right) \right]\\\end{cases}} Vγ(s)=aAmaxsSPssa[Rssa+γVγ(s)]Qγ(s,a)=sSPssa[Rssa+γaAmaxQγ(s,a)]

然而,在现实的强化学习任务中,转移概率、奖赏函数甚至环境中存在哪些状态往往很难得知,因此有模型强化学习在实际应用中不可行。本节借助有模型学习的思想推广到更一般的免模型学习(model-free learning)中,即假设转移概率和环境状态未知,奖赏也仅是根据经验或需求设计

蒙特卡洛强化学习是免模型学习中的一种,其核心思想是使用蒙特卡洛方法来估计各个状态-动作对的值函数。通过对大量的样本进行采样,并根据它们的累积奖励来评估状态-动作对的价值,智能体可以逐步学习到最优策略。

2 策略评估原理

在有模型学习中,采用的是贝尔曼算子迭代进行策略评估,即

Q γ π ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ ∑ a ′ ∈ A π ( s ′ , a ′ ) Q γ π ( s ′ , a ′ ) ] Q_{\gamma}^{\pi}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \sum_{a'\in A}{\pi \left( s',a' \right) Q_{\gamma}^{\pi}\left( s',a' \right)} \right] Qγπ(s,a)=sSPssa[Rssa+γaAπ(s,a)Qγπ(s,a)]

考虑到动力学特性 P s → s ′ a P_{s\rightarrow s'}^{a} Pssa和状态集合 S S S未知,因此上式无法计算。回归到定义

Q γ π ( s , a ) = E [ R t ] ∣ s t = s , a t = a Q_{\gamma}^{\pi}\left( s,a \right) =\mathbb{E} \left[ R_t \right] \mid_{s_t=s,a_t=a}^{} Qγπ(s,a)=E[Rt]st=s,at=a

可以用蒙特卡洛采样来近似逼近回报期望,即

Q γ π ( s , a ) ≈ 1 n ∑ i = 1 n R t , i Q_{\gamma}^{\pi}\left( s,a \right) \approx \frac{1}{n}\sum_{i=1}^n{R_{t,i}} Qγπ(s,a)n1i=1nRt,i

其中回报 R t , i = ∑ j = t + 1 ∞ γ j − t r j , i R_{t,i}=\sum\nolimits_{j=t+1}^{\infty}{\gamma ^{j-t}r_{j,i}} Rt,i=j=t+1γjtrj,i,问题转换为如何采样这些回报。蒙特卡洛强化学习提出如下的采样方法:

  • 设初始状态为 s 0 s_0 s0并给定终止状态 s T s_T sT
  • s 0 s_0 s0下根据当前策略 π ( a ∣ s 0 ) \pi \left( a|s_0 \right) π(as0)选择一个动作 a 0 a_0 a0
  • s 0 s_0 s0 a 0 a_0 a0确定的条件下,环境转换到下一个状态 s 1 s_1 s1并返回一个奖励 r 1 r_1 r1(这个过程是未知的动力学过程,由环境自身决定而不受智能体影响);
  • 重复上述过程直至达到终止状态 s T s_T sT

称有序数对 ( s t , a t , r t + 1 ) \left( s_t,a_t,r_{t+1} \right) (st,at,rt+1)为一个步骤,重复过程中产生的序列

< s 0 , a 0 , r 1 , s 1 , a 1 , r 2 , ⋯ , s T − 1 , a T − 1 , r T , s T > \left< s_0,a_0,r_1,s_1,a_1,r_2,\cdots ,s_{T-1},a_{T-1},r_T,s_T \right> s0,a0,r1,s1,a1,r2,,sT1,aT1,rT,sT

称为经验轨迹幕(episode)。由于策略 π \pi π是概率分布,因此即使不同幕都达到了给定的终态,中间执行轨迹可能存在差异,但任意两个幕之间独立同分布于 π \pi π

3 策略改进原理

蒙特卡洛强化学习中用来生成采样幕的策略称为行动策略(behavior policy),记为 b b b;实际应用的待评估、待改进的策略称为目标策略(target policy),记为 π \pi π。当 π = b \pi=b π=b时称为同轨策略方法(on-policy),否则称为离轨策略方法(off-policy)。必须指出,用于采样的策略必须是软性策略,即对 ∀ s ∈ S , a ∈ A ( s ) , b ( a ∣ s ) > 0 \forall s\in S,a\in A\left( s \right) ,b\left( a|s \right) >0 sS,aA(s),b(as)>0,若采样策略是确定性策略,则必然导致部分状态-动作对永远不会出现在幕中,造成样本缺失与误差

3.1 同轨蒙特卡洛强化学习

引入单步强化学习的 ϵ \epsilon ϵ-贪心思想,这部分请参考Pytorch深度强化学习1-2:详解K摇臂赌博机模型和ϵ-贪心算法,设

π = b ( a ∣ s ) = { a ∗ = a r g max ⁡ a ∈ A Q π ( s , a ) , 概率 1 − ϵ + ϵ ∣ A ( s ) ∣ A ( s ) / a ∗ , 概率 ϵ ∣ A ( s ) ∣ \pi =b\left( a|s \right) =\begin{cases} a^*=\mathrm{arg}\max _{a\in A}Q^{\pi}\left( s,a \right) , \text{概率}1-\epsilon +\frac{\epsilon}{|A\left( s \right) |}\\ A\left( s \right) / a^*\,\, , \text{概率}\frac{\epsilon}{|A\left( s \right) |}\\\end{cases} π=b(as)={a=argmaxaAQπ(s,a),概率1ϵ+A(s)ϵA(s)/a,概率A(s)ϵ

则算法流程如表所示

在这里插入图片描述

3.2 离轨蒙特卡洛强化学习

同轨策略中虽然保证了采样的随机性,但导致了以下问题

  • 引入先验误差: ϵ \epsilon ϵ是人为经验设置的,不合理的 ϵ \epsilon ϵ会为策略带来错误的先验分布;
  • 目标策略失去确定性

因此引入离轨策略,将行动策略和目标策略分而治之。

将基于策略 π \pi π的回报期望展开为回报与其概率分布加权的形式

Q π ( s , a ) = E π [ R ] ∣ s t = s , a t = a = ∑ R ⋅ P ( r t + 1 , s t + 1 , ⋯ , s T − 1 , a T − 1 , s T ∣ s t = s , a t = a ) \begin{aligned}Q^{\pi}\left( s,a \right) &=\mathbb{E} _{\pi}\left[ R \right] \mid_{s_t=s,a_t=a}^{}\\&=\sum{R\cdot P\left( r_{t+1},s_{t+1},\cdots ,s_{T-1},a_{T-1},s_T|s_t=s,a_t=a \right)}\end{aligned} Qπ(s,a)=Eπ[R]st=s,at=a=RP(rt+1,st+1,,sT1,aT1,sTst=s,at=a)

其中概率分布为从当前步骤到幕结束所有元素的联合分布。

根据马尔科夫性,下一个时刻的状态只取决于当前状态,则

Q π ( s , a ) = ∑ R ⋅ P ( r t + 1 , s t + 1 ∣ s t = s , a t = a ) π ( a t + 1 ∣ s t + 1 ) P ( r t + 2 , s t + 2 ∣ s t + 1 , a t + 1 ) ⋯ = ∑ R ∏ i = t + 1 T − 1 π ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) = ∑ ∏ i = t + 1 T − 1 π ( a i ∣ s i ) b ( a i ∣ s i ) [ R ∏ i = t + 1 T − 1 b ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) ] = ∑ ( ρ t + 1 : T − 1 R ) ∏ i = t + 1 T − 1 b ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) = E b [ ρ t + 1 : T − 1 R ] ∣ s t = s , a t = a \begin{aligned}Q^{\pi}\left( s,a \right) &=\sum{R\cdot P\left( r_{t+1},s_{t+1}|s_t=s,a_t=a \right) \pi \left( a_{t+1}|s_{t+1} \right) P\left( r_{t+2},s_{t+2}|s_{t+1},a_{t+1} \right)}\cdots \\&=\sum{R\prod_{i=t+1}^{T-1}{\pi \left( a_i|s_i \right)}P\left( r_i,s_i|s_{i-1},a_{i-1} \right) P\left( s_T|s_{T-1},a_{T-1} \right)}\\&=\sum{\prod_{i=t+1}^{T-1}{\frac{\pi \left( a_i|s_i \right)}{b\left( a_i|s_i \right)}}\left[ R\prod_{i=t+1}^{T-1}{b\left( a_i|s_i \right) P\left( r_i,s_i|s_{i-1},a_{i-1} \right) P\left( s_T|s_{T-1},a_{T-1} \right)} \right]}\\&=\sum{\left( \rho _{t+1:T-1}R \right)}\prod_{i=t+1}^{T-1}{b\left( a_i|s_i \right) P\left( r_i,s_i|s_{i-1},a_{i-1} \right) P\left( s_T|s_{T-1},a_{T-1} \right)}\\&=\mathbb{E} _b\left[ \rho _{t+1:T-1}R \right] \mid_{s_t=s,a_t=a}^{}\end{aligned} Qπ(s,a)=RP(rt+1,st+1st=s,at=a)π(at+1st+1)P(rt+2,st+2st+1,at+1)=Ri=t+1T1π(aisi)P(ri,sisi1,ai1)P(sTsT1,aT1)=i=t+1T1b(aisi)π(aisi)[Ri=t+1T1b(aisi)P(ri,sisi1,ai1)P(sTsT1,aT1)]=(ρt+1:T1R)i=t+1T1b(aisi)P(ri,sisi1,ai1)P(sTsT1,aT1)=Eb[ρt+1:T1R]st=s,at=a

其中 ρ t + 1 : T − 1 = ∏ i = t + 1 T − 1 π ( a i ∣ s i ) / b ( a i ∣ s i ) \rho _{t+1:T-1}=\prod\nolimits_{i=t+1}^{T-1}{{{\pi \left( a_i|s_i \right)}/{b\left( a_i|s_i \right)}}} ρt+1:T1=i=t+1T1π(aisi)/b(aisi)重要性因子,关联了行动策略与目标策略。不妨取行动策略 b b b为目标策略 π \pi π ϵ \epsilon ϵ贪心形式进行采样,而目标策略仍保持确定性策略,具体算法流程如表所示。

在这里插入图片描述


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/195343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++STL容器

一、顺序性容器 简述&#xff1a;顺序容器为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖元素的值&#xff0c;而是与元素加入容器时的位置相对应。所有顺序容器都提供了快速顺序访问元素的能力 1.vector(向量) 基本概念和介绍 对于vector容器&#xff0c;它…

大模型概述

文章目录 AI大模型的定义AI大模型的分类LoRA 微调 AI大模型的定义 AI大模型是通过深度学习算法和人工神经网络训练出的具有庞大规模参数的人工智能模型。这些模型使用大量的多媒体数据资源作为输入&#xff0c;并通过复杂的数学运算和优化算法来完成大规模的训练&#xff0c;以…

4382系列数字荧光示波器

4382系列数字荧光示波器 简述&#xff1a; 4382系列手持式数字荧光示波器具有8个产品型号&#xff0c;带宽200MHz、350MHz、500MHz、1GHz&#xff0c;最高采样率5GSa/s&#xff0c;最大存储深度60kpts/CH&#xff0c;最快波形捕获率10万个波形/秒&#xff0c;独创的Any Acquire…

专业课145+总分440+东南大学920考研专业基础综合信号与系统数字电路经验分享

个人情况简介 今年考研440&#xff0c;专业课145&#xff0c;数一140&#xff0c;期间一年努力辛苦付出&#xff0c;就不多表了&#xff0c;考研之路虽然艰难&#xff0c;付出很多&#xff0c;当收获的时候&#xff0c;都是值得&#xff0c;考研还是非常公平&#xff0c;希望大…

【部署】Deploying Trino on linux

文章目录 一. Requirements1. Linux operating system2. Java 环境3. Python 二. Installing Trino三. Configuring Trino1. 节点配置2. JVM 配置3. Config properties4. Log levels5. Catalog properties 四. Running Trino 一. Requirements 1. Linux operating system 64位…

SpringBoot错误处理机制解析

SpringBoot错误处理----源码解析 文章目录 1、默认机制2、使用ExceptionHandler标识一个方法&#xff0c;处理用Controller标注的该类发生的指定错误1&#xff09;.局部错误处理部分源码2&#xff09;.测试 3、 创建一个全局错误处理类集中处理错误&#xff0c;使用Controller…

基于java技术的电子商务支撑平台

摘 要 随着网络技术的发展&#xff0c;Internet变成了一种处理日常事务的交互式的环境。互联网上开展各种服务已经成为许多企业和部门的急切需求。Web的普遍使用从根本上改变了人们的生活方式、工作方式&#xff0c;也改变了企业的经营方式和服务方式。人们可以足不出户办理各…

财务管理在IT服务管理中的重要作用

官方网站 www.itilzj.com 文档资料: wenku.itilzj.com 财务管理作为一种管理组织财务资源的方法&#xff0c;在IT服务领域扮演着关键的角色。其涵盖的范围涉及预算编制、成本控制、投资决策、财务报告和绩效评估等多个方面&#xff0c;直接关系到IT服务的财务健康和整体运作。…

WT588F02A-16S录放音语音芯片为何需要配备自动增益控制麦克风?

在语音录放领域&#xff0c;一款优秀的语音芯片如WT588F02A-16S不仅需要具备高品质的录音和播放功能&#xff0c;还需要与合适的麦克风配合&#xff0c;以确保音频输入的最佳效果。而其中&#xff0c;自动增益控制&#xff08;AGC&#xff09;麦克风在这一过程中发挥着重要作用…

Csharp(C#)无标题栏窗体拖动代码

C#&#xff08;C Sharp&#xff09;是一种现代、通用的编程语言&#xff0c;由微软公司在2000年推出。C#是一种对象导向的编程语言&#xff0c;它兼具C语言的高效性和Visual Basic语言的易学性。C#主要应用于Windows桌面应用程序、Windows服务、Web应用程序、游戏开发等领域。C…

使用Redis构建简易社交网站(3)-状态与信息流

目的 本文目的&#xff1a;实现获取主页时间线和状态推送功能。&#xff08;完整代码附在文章末尾&#xff09; 相关知识 在我上一篇文章 《使用Redis构建简易社交网站(2)-处理用户关系》中提到了实现用户关注和取消关注功能。 那这篇文章将教会你掌握&#xff1a;1&#x…

蓝桥杯每日一题2023.12.3

题目描述 1.移动距离 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题需要对行列的关系进行一定的探究&#xff0c;所求实际上为曼哈顿距离&#xff0c;只需要两个行列的绝对值想加即可&#xff0c;预处理使下标从0开始可以更加明确之间的关系&#xff0c;奇数行时这一行的数字需…

做外贸如何写开发信?外贸邮件营销怎么写?

外贸业务员写开发信的技巧&#xff1f;撰写客户开发信模板详解&#xff01; 外贸经营是一项竞争激烈的行业&#xff0c;写好开发信是吸引客户、建立合作关系的重要一环。蜂邮EDM将为您详细介绍如何撰写出色的开发信&#xff0c;以吸引客户的眼球&#xff0c;引领他们与您建立联…

Linux服务器初次使用需要的环境配置

一、划分磁盘 1.查看磁盘 sudo fdisk -l Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors //新增的硬盘 Units: sectors of 1 * 512 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096…

【数电笔记】17-具体函数的卡诺图填入

目录 说明&#xff1a; 用卡诺图表示逻辑函数 1. 基本步骤 2. 例题 2.1 例1-真值表转换卡诺图 2.2 例2-标准与或式画卡诺图 2.3 例3-非标准与或式画卡诺图&#xff08;常见,重点掌握&#xff09; 说明&#xff1a; 笔记配套视频来源&#xff1a;B站&#xff1b;本系列笔…

el-pagination 纯前端分页

需求&#xff1a;后端把所有数据都返给前端&#xff0c;前端进行分页渲染。 实现思路&#xff1a;先把数据存储到一个大数组中&#xff0c;然后调用方法进行切割。主要使用数组的slice方法 所有代码&#xff1a; html <template><div style"padding: 20px&qu…

分享74个节日PPT,总有一款适合您

分享74个节日PPT&#xff0c;总有一款适合您 74个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/18YHKkyJsplx-Gjj7ofpFrg?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

短波红外相机的原理及应用场景

短波红外 (简称SWIR&#xff0c;通常指0.9~1.7μm波长的光线) 是一种比可见光波长更长的光。这些光不能通过“肉眼”看到&#xff0c;也不能用“普通相机”检测到。由于被检测物体的材料特性&#xff0c;一些在可见光下无法看到的特性&#xff0c;却能在近红外光下呈现出来&…

深度学习数据集的划分(加载kaggle的dog数据,多gpu训练加载参数)待更新

待更新 把dog-breed-identification.zip 文件放到data文件目录下&#xff1a; 该文件解压之后得到如下&#xff1a; 遍历train中的所有文件&#xff0c;train_file.split(‘.’)[0]是根据.划分这个文件名&#xff0c;得到前缀和后缀&#xff0c;下标为0的是去掉后缀的文件名…

国家图书馆论文检索证明申请步骤

国家图书馆论文检索证明申请步骤 登录国家图书馆 咨询提交平台 点击论文收引查证 添加附件这一块&#xff0c;需要自己制作一个有格式的EXCEL 卷&#xff0c;期&#xff0c;页码如何查询&#xff1f; 输入自己的联系方式等待工作人员联系即可