深度强化学习 第 4 章 DQN 与 Q 学习

4.1 DQN

在这里插入图片描述

  • 最优动作价值函数的用途
    假如我们知道 Q ⋆ Q_⋆ Q,我们就能用它做控制。
    我们希望知道 Q ⋆ Q_⋆ Q,因为它就像是先知一般,可以预见未来,在 t t t 时刻就预见 t t t n n n时刻之间的累计奖励的期望。假如我们有 Q ⋆ Q_⋆ Q 这位先知,我们就遵照先知的指导,最大化未来的累计奖励。然而在实践中我们不知道 Q ⋆ Q_⋆ Q 的函数表达式。是否有可能近似 Q ⋆ Q_⋆ Q这位先知呢?

对于超级玛丽这样的游戏,学出来一个“先知”并不难。假如让我们重复玩超级玛丽一亿次,那我们就会像先知一样,看到当前状态,就能准确判断出当前最优的动作是什么。这说明只要有足够多的“经验”,就能训练出超级玛丽中的“先知”。

  • 最优动作价值函数的近似
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • DQN 的梯度
    在这里插入图片描述

4.2 时间差分(TD)算法

训练 DQN 最常用的算法是时间差分(temporal difference,缩写 TD)。 TD 算法不太好理解,所以本节举一个通俗易懂的例子讲解 TD 算法。

4.2.1 驾车时间预测的例子

假设我们有一个模型 Q ( s , d ; w ) Q(s, d; w) Q(s,d;w),其中 s s s 是起点, d d d 是终点, w w w 是参数。模型 Q 可以预测开车出行的时间开销。这个模型一开始不准确,甚至是纯随机的。但是随着很多人用这个模型,得到更多数据、更多训练,这个模型就会越来越准,会像谷歌地图一样准。

我们该如何训练这个模型呢?在用户出发前,用户告诉模型起点 s s s 和终点 d d d,模型做一个预测 q ^ = Q ( s , d ; w ) \hat q = Q(s, d; w) q^=Q(s,d;w)。当用户结束行程的时候,把实际驾车时间 y y y 反馈给模型。两者之差 q ^ − y \hat q− y q^y 反映出模型是高估还是低估了驾驶时间,以此来修正模型,使得模型的估计更准确。

4.2.2 TD 算法

接着上文驾车时间的例子。出发前模型估计全程时间为 q ^ = 14 小时 \hat q = 14 小时 q^=14小时;模型建议的路线会途径济南。我从北京出发,过了 r = 4.5 小时 r = 4.5 小时 r=4.5小时,我到达济南。此时我再让模型做一次预测,模型告诉我 q ^ ′ ≜ Q ( “济南” , “上海” ; w ) = 11 \hat q^{'} ≜ Q(“济南”, “上海”; w)=11 q^Q(济南,上海;w)=11
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 用TD训练DQN

注意,本节推导出的是最原始的TD 算法,在实践中效果不佳。实际训练 DQN 的时候,应当使用第 6 章介绍的高级技巧。

4.3.1 算法推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3.2 训练流程

在这里插入图片描述
在这里插入图片描述

  • 收集训练数据
    在这里插入图片描述
  • 更新 DQN 参数 w w w
    在这里插入图片描述

4.4 Q学习算法

在这里插入图片描述

  • 用表格表示 Q⋆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 收集训练数据
    在这里插入图片描述
  • 经验回放更新表格 Q ~ \tilde{Q} Q~
    在这里插入图片描述

4.5 同策略(On-policy)与异策略(Off-policy)

在强化学习中经常会遇到两个专业术语: 同策略(on-policy)异策略(off-policy)。为了解释同策略和异策略,我们要从行为策略(behavior policy) 和**目标策略(target policy)**讲起。

在强化学习中,我们让智能体与环境交互,记录下观测到的状态、动作、奖励,用这些经验来学习一个策略函数。在这一过程中,控制智能体与环境交互的策略被称作行为策略。 行为策略的作用是收集经验(experience),即观测的状态、动作、奖励。

在这里插入图片描述

行为策略和目标策略可以相同,也可以不同。同策略是指用相同的行为策略和目标策略,后面章节会介绍同策略。异策略是指用不同的行为策略和目标策略,本章的DQN属于异策略。

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

5G来临,迎客莱带你探索运营商大数据的应用

随着5G时代的来临,不仅在算力的基础上得到了加强和保障,同时也丰富了计算的方式和模式,如边缘计算、霾计算等。计算方式和模式的改变,对于运营商来说,意味着更丰富的数据维度,更鲜活的数据和更强大的数据处…

无人机航拍图像拼接与目标识别

一、简介 无人机用来做图像侦察是常见功能,现有技术基本是无人机对某片区域进行飞行,人工实时监控飞行图像,将图像录制成视频供事后回放。此方法对人员业务要求比较高、反应速度足够快、不利于信息收集、录制视频丢失空间信息、对于后期开展区…

Qt判断一个点在多边形内还是外(支持凸边形和凹变形)

这里实现的方法是转载于https://blog.csdn.net/trj14/article/details/43190653和https://blog.csdn.net/WilliamSun0122/article/details/77994526 来实现的,并且按照Qt的规则进行了调整。 以下实现方法有四种,每种方法的具体讲解在转载的博客中有说明&…

Python之爬虫

目录 HTTP请求HTTP响应获得页面响应伪装用户访问打包数据爬取豆瓣top250 HTTP请求 HTTP:HypertextTransferProtcol 超文本传输协议 1、请求行 POST/user/info?new_usertrue HTTP/1.1#资源了路径user/info 查询参数new_usertrue 协议版本HTTP/1.1 2、请求头 Ho…

element ui 下拉框 选择月份和天数

一、背景 目前做的管理系统项目&#xff0c;期望实现功能为&#xff1a;设置出账周期和出账日&#xff0c;考虑使用element ui下拉框实现功能 二、所用技术 vue2element ui 三、实现效果 四、具体代码 <template><popup-frame :title"批量设置出账日" …

Leetcode—2530.执行K次操作后的最大分数【中等】(C语言向上取整数学公式)

2023每日刷题&#xff08;五&#xff09; Leetcode—2530.执行K次操作后的最大分数 向上取整思想 参考了这篇文章 有人肯定会问&#xff0c;这个向上取整为什么是这样来的。接下来我简单讲解一下。 数学式&#xff1a; x y 数学式&#xff1a;\frac{x}{y} 数学式&#xff1a…

配置Linux

首先安装VMware&#xff1a; 安装说明&#xff1a;&#xff08;含许可证的key&#xff09; https://mp.weixin.qq.com/s/XE-BmeKHlhfiRA1bkNHTtg 给大家提供了VMware Workstation Pro16&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1q8VE3TkPzDnM3u9bkTdA_g 提取码&…

文件的物理结构(连续分配,链接分配,索引分配)

1.文件块&#xff0c;磁盘块 类似于内存分页&#xff0c;磁盘中的存储单元也会被分为一个个“块/磁盘块/物理块”。 很多操作系统中&#xff0c;磁盘块的大小与内存块、页面的大小相同。 内存与磁盘之间的数据交换&#xff08;即读/写操作、磁盘I/O&#xff09;都是以“块”为…

详细解读DALLE 3技术报告:Improving Image Generation with Better Captions

Diffusion models代码解读&#xff1a;入门与实战 前言&#xff1a;OpenAI是推动大模型创新的领头羊&#xff0c;最近发布的DALLE 3凭借着远超市面上其他图片生成模型的表现&#xff0c;再次火出圈。最近OpenAI官方发布了DALLE 3的技术报告《Improving Image Generation with B…

后缀表达式求值

题目要求: 后缀表达式求值&#xff1a;建立一个操作数栈S。然后从左到右读表达式&#xff0c;如果读到操作数就将它压入栈S中&#xff0c;如果读到n元运算符(即需要参数个数为n的运算符)则取出由栈顶向下的n项操作数进行运算&#xff0c;再将运算的结果代替原栈顶的n项压入栈中…

Catalan 数 和 Stirling 数

这个也可以理解为栈&#xff0c;用 ( 表示 入栈 &#xff0c; ) 表示出栈 , 任何情况下表示入栈的 ( 都必须大于等于 ) 的个数 这个思路和入栈出栈的思路是等价的

ms-sql server sql 把逗号分隔的字符串分开

案例&#xff1a; sql 查询-字段里是逗号,分隔开的数组&#xff0c;查询匹配数据 sql 查询-字段里是逗号,分隔开的数组&#xff0c;查询匹配数据_sql server 数组匹配-CSDN博客 SQL SERVER 把逗号隔开的字符串拆分成行 SQL SERVER 把逗号隔开的字符串拆分成行_sqlserver拆分…

【暴力剪枝】CF1708D

https://codeforces.com/contest/1708/problem/D 题意 思路 这样的操作下&#xff0c;数列减的速度是非常快的&#xff0c;也就是说&#xff0c;易出现很多的0&#xff0c;0的操作没啥意义&#xff0c;所以我们要找到第一个 >0 的数对其后的序列进行排序&#xff0c;就能大…

【Edabit 算法 ★☆☆☆☆☆】Power Calculator

【Edabit 算法 ★☆☆☆☆☆】Power Calculator math numbers Instructions Create a function that takes voltage and current and returns the calculated power. Examples circuitPower(230, 10) // 2300 circuitPower(110, 3) // 330 circuitPower(480, 20) // 9600Not…

大数据平台开发经验

如果我是一个有着10年大数据平台开发经验的开发者&#xff0c;面试时可能需要准备以下知识 大数据生态系统&#xff1a;** 熟悉大数据技术栈&#xff0c;如Hadoop、Spark、Flink等&#xff0c;了解它们的原理、用途和优劣势。 分布式系统设计&#xff1a; 深入了解分布式系统的…

java项目运行时信息获取

大体思路如下&#xff0c;想要获取启动时处理器数量、jvm 相关信息&#xff0c;操作系统信息、运行机器信息 运行机器信息 import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.lang.invoke.MethodHandles;/*** 机器工具类*/ public abstract class ServerU…

051校园短期闲置资源置换平台

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

git第一次推送出现推送被拒绝

前言 git 第一次推送出现以下错误 ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘https://gitee.com/fengshangyunwang/iot-front-end.git’ hint: Updates were rejected because the remote contains work that you do hint: not …

Mac硬盘检测工具

Mac硬盘检测软件是一款用于检测和诊断Mac硬盘健康状态的工具&#xff0c;帮助用户及时发现潜在的硬盘问题&#xff0c;避免数据丢失和系统故障。通过全面的检测和报告功能&#xff0c;用户可以更好地了解自己的硬盘状况&#xff0c;确保数据的安全和可靠。给大家介绍几款好用的…

数字秒表VHDL启动暂停清零,源码和视频

名称&#xff1a;数字秒表VHDL启动暂停清零&#xff08;代码在文末付费下载&#xff09; 软件&#xff1a;Quartus 语言&#xff1a;VHDL 代码功能&#xff1a; 数字秒表 使用VHDL语言设置数字秒表。要求具有百分秒、秒和分钟显示,百分秒范围00-99,秒范围00-59,分钟范围0…