【RL】(task1)绪论、马尔科夫过程、动态规划、DQN(更新中)

note

文章目录

  • note
  • 一、马尔科夫过程
  • 二、动态规划
  • DQN算法
  • 时间安排
  • Reference

一、马尔科夫过程

  • 递归结构形式的贝尔曼方程计算给定状态下的预期回报,这样的方式使得用逐步迭代的方法就能逼近真实的状态/行动值。
    有了Bellman equation就可以计算价值函数了
  • 马尔科夫过程描述了一个具有无记忆性质的随机过程,未来状态只依赖于当前状态,与过去状态无关,类似于一个人在空间中的随机游走。

二、动态规划

动态规划:多阶段决策问题的方法,它将问题分解为一系列的子问题,并通过保存子问题的解来构建整体问题的解。

贝尔曼方程

\qquad 类比于回报公式 G t = R t + 1 + γ G t + 1 G_{t} = R_{t+1}+\gamma G_{t+1} Gt=Rt+1+γGt+1,也可以对状态价值函数和动作价值函数做一个类似的推导,如下:

V π ( s ) = E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ ∣ S t = s ] = E [ R t + 1 ∣ s t = s ] + γ E [ R t + 2 + γ R t + 3 + γ 2 R t + 4 + ⋯ ∣ S t = s ] = R ( s ) + γ E [ G t + 1 ∣ S t = s ] = R ( s ) + γ E [ V π ( s t + 1 ) ∣ S t = s ] = R ( s ) + γ ∑ s ′ ∈ S P ( S t + 1 = s ′ ∣ S t = s ) V π ( s ′ ) = R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V π ( s ′ ) \begin{aligned} V_{\pi}(s) & =\mathbb{E}_{\pi}\left[G_t \mid S_t=s\right] \\ & =\mathbb{E}_{\pi}\left[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots \mid S_t=s\right] \\ & =\mathbb{E}\left[R_{t+1} \mid s_t=s\right]+\gamma \mathbb{E}\left[R_{t+2}+\gamma R_{t+3}+\gamma^2 R_{t+4}+\cdots \mid S_t=s\right] \\ & =R(s)+\gamma \mathbb{E}\left[G_{t+1} \mid S_t=s\right] \\ & =R(s)+\gamma \mathbb{E}\left[V_{\pi}\left(s_{t+1}\right) \mid S_t=s\right] \\ & =R(s)+\gamma \sum_{s^{\prime} \in S} P\left(S_{t+1}=s^{\prime} \mid S_{t}=s\right) V_{\pi}\left(s^{\prime}\right)\\ & =R(s)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V_{\pi}\left(s^{\prime}\right) \end{aligned} Vπ(s)=Eπ[GtSt=s]=Eπ[Rt+1+γRt+2+γ2Rt+3+St=s]=E[Rt+1st=s]+γE[Rt+2+γRt+3+γ2Rt+4+St=s]=R(s)+γE[Gt+1St=s]=R(s)+γE[Vπ(st+1)St=s]=R(s)+γsSP(St+1=sSt=s)Vπ(s)=R(s)+γsSp(ss)Vπ(s)

\qquad 其中 R ( s ) R(s) R(s) 表示奖励函数, P ( S t + 1 = s ′ ∣ S t = s ) P(S_{t+1}=s^{\prime} \mid S_{t}=s) P(St+1=sSt=s)就是前面讲的状态转移概率,习惯简写成 p ( s ′ ∣ s ) p\left(s^{\prime} \mid s\right) p(ss),这就是贝尔曼方程(Bellman Equation)。贝尔曼方程的重要意义就在于前面所说的满足动态规划的最优化原理,即将前后两个状态之间联系起来,以便于递归地解决问题。

\qquad 类似地,动作价值函数贝尔曼方程推导为:

Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) Q_{\pi}(s,a) = R(s,a) + \gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s,a\right) \sum_{a^{\prime} \in A} \pi\left(a^{\prime} \mid s ^{\prime} \right)Q_{\pi}\left(s^{\prime},a'\right) Qπ(s,a)=R(s,a)+γsSp(ss,a)aAπ(as)Qπ(s,a)

\qquad 前面我们提到状态价值函数的定义就是按照某种策略 π \pi π进行决策得到的累积回报期望,换句话说,在最优策略下,状态价值函数也是最优的,相应的动作价值函数也最优。我们的目标是使得累积的回报最大化,那么最优策略下的状态价值函数可以表示为:

V ∗ ( s ) = max ⁡ a E [ R t + 1 + γ V ∗ ( S t + 1 ) ∣ S t = s , A t = a ] = max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V ∗ ( s ′ ) ] \begin{aligned} V^{*}(s)&=\max _a \mathbb{E}\left[R_{t+1}+\gamma V^{*}\left(S_{t+1}\right) \mid S_t=s, A_t=a\right] \\ &=\max_a \sum_{s',r}p(s',r|s,a)[r+\gamma V^{*}(s')] \end{aligned} V(s)=amaxE[Rt+1+γV(St+1)St=s,At=a]=amaxs,rp(s,rs,a)[r+γV(s)]

\qquad 这个公式叫做贝尔曼最优方程(Bellman optimality equation),它对于后面要讲的策略迭代算法具有一定的指导意义。对于动作价值函数也是同理,如下:
Q ∗ ( s , a ) = E [ R t + 1 + γ max ⁡ a ′ Q ∗ ( S t + 1 , a ′ ) ∣ S t = s , A t = a ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ max ⁡ a ′ Q ∗ ( s ′ , a ′ ) ] \begin{aligned} Q^{*}(s, a) & =\mathbb{E}\left[R_{t+1}+\gamma \max _{a^{\prime}} Q^{*}\left(S_{t+1}, a^{\prime}\right) \mid S_t=s, A_t=a\right] \\ & =\sum_{s^{\prime}, r} p\left(s^{\prime}, r \mid s, a\right)\left[r+\gamma \max _{a^{\prime}} Q^{*}\left(s^{\prime}, a^{\prime}\right)\right] \end{aligned} Q(s,a)=E[Rt+1+γamaxQ(St+1,a)St=s,At=a]=s,rp(s,rs,a)[r+γamaxQ(s,a)]

DQN算法

DQN算法的基本思想是使用一个深度神经网络作为智能体的Q函数近似器。Q函数表示在给定状态下采取某个动作的预期回报值。算法通过不断地在环境中与智能体的交互过程中,收集样本数据,然后使用这些数据来训练Q网络,使其能够预测最优的行动选择。

DQN算法的训练过程可以分为以下几个步骤:

  • 初始化一个深度神经网络作为Q函数的近似器。
  • 在每个时间步,智能体观察当前的状态,并根据当前状态选择一个动作。选择动作时可以使用ε-greedy策略,即以ε的概率随机选择动作,以1-ε的概率选择当前Q值最高的动作。
  • 智能体执行选择的动作,与环境进行交互,并观察得到的奖励和下一个状态。
  • 将当前状态、选择的动作、得到的奖励和下一个状态组成一个样本,存储在经验回放缓冲区中。
  • 从经验回放缓冲区中随机采样一批样本,用于训练Q网络。训练过程中使用目标Q网络和当前Q网络的差异来计算损失,并通过反向传播算法来更新网络参数。
  • 定期更新目标Q网络的参数,将当前Q网络的参数复制给目标Q网络。
  • 重复步骤2至步骤6,直到达到预先设定的停止条件或训练轮数。

通过这样的训练过程,DQN算法能够逐步优化Q网络的参数,使其能够更准确地预测每个状态下的最优动作,并实现智能体在环境中做出最优决策的能力。

时间安排

任务天数截止时间注意事项
Task01: 绪论、马尔可夫过程、动态规划3天1月15周一-17日周三
Task02: 免模型预测、免模型控制3天1月18日周四-20周六
Task03: 深度学习基础、DQN算法、DQN算法进阶3天1月21日周日-23日周二
Task04: RL开源框架-JoyRL3天1月24日周三-26日周五
Task05: DQN大作业6天1月27日周六-2月1号周四

在这里插入图片描述

Reference

[1] 开源内容https://linklearner.com/learn/detail/91
[2] https://github.com/datawhalechina/joyrl-book

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务架构设计核心理论:掌握微服务设计精髓

文章目录 一、微服务与服务治理1、概述2、Two Pizza原则和微服务团队3、主链路规划4、服务治理和微服务生命周期5、微服务架构的网络层搭建6、微服务架构的部署结构7、面试题 二、配置中心1、为什么要配置中心2、配置中心高可用思考 三、服务监控1、业务埋点的技术选型2、用户行…

Burp Suite如何拦截站点请求

Burp Suite是一款强大的Web渗透测试工具,可以用于拦截、修改和分析Web应用程序的请求和响应。要使用Burp Suite拦截站点请求有两个方案。我会倾向选用方案二,因为它不会影响本地电脑代理配置。 1. 方案一 安装Burp Suite:首先,您…

【C语言】ipoib驱动 - ipoib_cm_post_receive_nonsrq_rss函数

一、ipoib_cm_post_receive_nonsrq_rss函数定义 static int ipoib_cm_post_receive_nonsrq_rss(struct net_device *dev,struct ipoib_cm_rx *rx, int id) {struct ipoib_dev_priv *priv ipoib_priv(dev);struct ipoib_recv_ring *recv_ring priv->recv_ring rx->ind…

提升开发效率的google插件

在如今的软件开发领域,Google Chrome浏览器的开发者插件扮演着至关重要的角色,为开发人员提供了丰富的工具和功能,从而提高了开发效率。下面介绍几款强大的 Google 插件,它们在不同方面为开发者提供了便利,并能显著提升…

力扣每日一题--2088. 统计农场中肥沃金字塔的数目

看到这道题有些人很容易放弃,其实这道题不是很难,主要是题目长,读的容易让人放弃,但是 只要抓住一些性质就可以解决该问题。 本题中的定义放到图像里其实就是个金字塔,下层的那部分比上一层的那部分,长度加…

51单片机HC-SR04超声波测距lcd1602显示(程序+ad硬件设计+文档说明)

本帖主控使用STC89C52单片机,超声波测距采用HC-SR04模块,包含ad硬件设计和文档。 测距原理 超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距SCt/2,式中的C为超声波波速。由于超声…

【GitHub】如何删除GitHub仓库里的文件夹(区分 rm/git rm)

删除GitHub仓库里的一个文件夹 1、复制仓库地址2、在本地新建一个空文件夹3、在空文件夹内,右键选择Git Bash Here4、弹出GIT Bash框5、克隆远程仓库6、拉取远程仓库7、查看仓库里的文件8、选择想要删除的文件夹进行删除9、提交删除说明10、更新GitHub远程仓库 在gi…

微信小程序-----wxss模版样式

目录 前言 一、WXSS 1. 什么是 WXSS 2. WXSS 和 CSS 的关系 二、rpx 1. 什么是 rpx 尺寸单位 2. rpx 的实现原理 3. rpx 与 px 之间的单位换算 三、样式导入 1. 什么是样式导入 2. import 的语法格式 四、全局样式和局部样式 1. 全局样式 2. 局部样式 前言 上一期…

伪装目标检测模型论文阅读之:Zoom in and out

论文链接:https://arxiv.org/abs/2203.02688 代码;https://github.com/lartpang/zoomnet 1.摘要 最近提出的遮挡对象检测(COD)试图分割视觉上与其周围环境融合的对象,这在现实场景中是非常复杂和困难的。除了与它们的背景具有高…

漏洞复现-金和OA jc6/servlet/Upload接口任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

【RT-DETR有效改进】ShapeIoU、InnerShapeIoU关注边界框本身的IoU(包含二次创新)

前言 大家好,我是Snu77,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本,同时修改内容也支持Re…

【Linux】Linux系统编程——pwd命令

文章目录 1.命令概述2.命令格式3.常用选项4.相关描述5.参考示例 1.命令概述 pwd(Print Working Directory)命令用于显示用户当前工作目录的完整路径。这是一个常用的命令,帮助用户确定他们目前所在的目录位置。 2.命令格式 基本的 pwd 命令…

基于Redis+Lua的分布式限流

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 前面我们了解了如何利用Nginx做网关层限流&#xf…

2024年AMC8历年真题练一练和答案详解(9),以及全真模拟题

“熟读唐诗三百首,不会作诗也会吟”,反复做真题、吃透真题、查漏补缺并举一反三是在各类考试、比赛中得高分的重要学习方法之一,参加AMC8竞赛也是如此。 六分成长继续为您分享AMC8历年真题,最后几天,通过高质量的真题来体会快速思…

爬虫-8-数据存储-mysql

#mysql占空间最小吧,数据存储没问题吧 (//∇//)

23111 网络编程 day2

思维导图 重打代码 #include<myhead.h> #define SER_IP "192.168.122.150" //服务器ip #define SER_PORT 8888 //服务器端口int main(int argc, const char *argv[]) {//1.创建用于连接的套接字int sfdsocket(AF_INET,SOCK_STREAM,0);if(sfd-1){perror("…

压缩编码之JPEG变换编码不同压缩率的模拟的实现——数字图像处理

原理 离散余弦变换&#xff08;DCT&#xff09;和量化是图像压缩中的两个关键步骤&#xff0c;尤其是在JPEG压缩标准中。 离散余弦变换&#xff08;DCT&#xff09;&#xff1a;DCT的目的是将图像从空间域&#xff08;即像素表示&#xff09;转换到频率域。这种转换后&#x…

dp--62. 不同路径/medium 理解度A

62. 不同路径 1、题目2、题目分析3、复杂度最优解代码示例4、抽象与扩展 1、题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中…

利用Python的csv(CSV)库读取csv文件并取出某个单元格的内容的学习过程

csv库在python3中是自带的。 利用它可以方便的进行csv文件内容的读取。 注意&#xff1a;要以gbk的编码形式打开&#xff0c;因为WPS的csv文件默认是gbk编码&#xff0c;而不是utf-8。 01-读取表头并在打印每一行内容时一并输出表头 表头为第1行&#xff0c;现在要读取并打…

【GaussDB数据库】序

参考链接&#xff1a;国产数据库华为高斯数据库&#xff08;GaussDB&#xff09;功能与特点总结 GaussDB简介 官方网站&#xff1a;云数据库GaussDB GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务&#xff0c;同城跨AZ部署&#xff0c;数据0丢失&#…