Q-Learning与Deep Q-network

2023-11-17

1 价值迭代

价值迭代方法假设事先知道环境中的所有状态,可以对其进行迭代,并可以存储与他们关联的近似价值。
对于状态价值步骤如下:请添加图片描述
对于动作价值步骤如下:
请添加图片描述
存在的问题:

  1. 获得优质状态转移动态的估计所需的样本数量,状态空间需要足够小
  2. 将问题限制在离散的动作空间中
  3. 我们很少能知道动作的转移概率和奖励矩阵

2 表格 Q-learning

思想:不需要遍历状态空间的每一个状态,我们有一个环境,该环境可以用作真实状态样本的来源。如果状态空间的一些样本没有展示出来,我们不需要关心这些样本的价值,可以用从环境中获得的状态来更新状态价值,这可以节省很多工作。对于有明确状态价值映射的情况,它具有以下步骤:
请添加图片描述

3 深度Q-Learning

Q-learning方法解决了在整个状态集上迭代的问题,但是在可观察到的状态集数量很大的情况下仍然会遇到困难。例如,在Atari游戏具有不同的屏幕状态,因此如果采用原始像素作为单独的状态,那么很快就会意识到有太多的状态无法跟踪和估算。另外,在某些环境中,不同的可观察状态的数量几乎是无限的。
作为解决这些问题的方案,可以使用非线性表示将状态和动作都映射到一个值,即建模成回归问题。对Q-learning算法进行修改请添加图片描述
但效果并不是很好,可能出现以下问题:

与环境的交互

我们需要以某种方式与环境交互以获得要训练的数据,在一些简单的环境中,可以随机执行动作,但这不是最佳的策略,在一些环境中,随机动作可能大多数情况下没有奖励,或者很小,这意味着要等待很长时间才能遇到有较大奖励的情况。作为替代方案,可以用Q函数近似作为动作的来源。
当Q近似值很差时,随机动作在训练开始时会比较好,因为它可以提供有关环境状态的更均匀分布的信息。随着训练的进行,随机动作变得效率低下,我们希望通过Q的近似值来决定如何采取行动。
请添加图片描述

SGD优化

我们用神经网络来近似一个复杂的非线性函数 Q ( s , a ) Q(s,a) Qs,a,但随机梯度优化的基本要求之一是训练数据独立同分布。而在强化学习中数据并不满足这些条件:

  1. 样本并不是独立的
  2. 训练数据的分布和我们要学习的最佳策略所提供的样本分布并不相同。我们拥有的数据是其他策略的结果。
    为了解决这种问题,我们通常需要使用过去的经验,并从中提取训练数据而不是使用最新的经验数据。此技术称为回放缓冲区(replay buffer)。最简单的实现是设置一个固定大小的缓冲区,将新数据添加到缓冲区的末尾,同时将最旧的数据移除。
    回放缓冲区允许我们在大致独立的数据上训练,但数据足够新,以便在最新策略生成的样本上训练。

步骤之间的相关性

默认训练过程的另一个实际问题也与缺少独立同分布的数据有关,但方式不同。Bellman方程通过 Q ( s ′ , a ′ ) Q(s',a') Q(sa)来提供 Q ( s , a ) Q(s,a) Q(s,a)的值。但是状态 s s s和状态 s ′ s' s之间只有一步之遥,这使得他们非常相近,而神经网络很难分辨他们。当对神经网络的参数进行更新时,可以间接改为 Q ( s ′ , a ′ ) Q(s',a') Q(sa)和其附近其他状态产生的值,,这会使得网络的训练很不稳定。当更新状态s的Q时,在随后的状态中,我们会发现 Q ( s ′ , a ′ ) Q(s',a') Q(sa)变得很糟,但是尝试更新它会破坏 Q ( s , a ) Q(s,a) Q(sa)的值。
为了让训练更加稳定,使用目标网络的技巧,通过该技巧我们可以保留网络的副本并将其用于Bellman方程中 Q ( s ′ , a ′ ) Q(s',a') Q(sa)的值。该网络仅周期性地与主网络同步,例如,每N步进行一次同步。请添加图片描述

马尔可夫性质

强化学习方法以MDP为基础,它假设环境服从马尔可夫性质。但是单一时刻数据可能不足以捕获所有的重要信息,比如我们可能需要速度和方向,这显然违背了马尔可夫性质,可以保留过去的一些观察结果并将其作为状态。

DQN训练的最终形式

论文:playing atati with deep reinforcement learning
算法步骤:
请添加图片描述

4 DQN扩展

4.1 N步DQN

论文:Learning to Predict by the Methods of Temporal Differences
方法:
请添加图片描述
意义:加快值的传播速度,加速收敛
缺点:可能无法收敛,需要调优

4.2 Double DQN

论文:Deep Reinforcement Learning with Double Q-Learning
想法:基础DQN倾向于过高估计Q值,这可能对训练效果有害,有时会产生一个次优策略。造成这种情况的根本原因是Bellman方程中的max运算。可以使用训练网络来选择动作,但是使用目标网络的Q值。请添加图片描述

4.3 噪声网络

论文:Noisy Networks for Exploration
思想:在训练过程中学习探索特征,而不是单独制定探索的策略
基础DQN通过选择随机动作来完成探索,随机选取会依据特定的超参数esilon,他还随着时间的增长慢慢从1.0降至一个小比例0.1或0.02。它需要调优参数来让训练更高效。
做法:在全连接层中加入噪声,并通过反向传播在训练的过程中调整噪声参数。两种添加噪声的方法:
请添加图片描述

4.4 带优先级的回放缓冲区

论文:Prioritized Experence Replay
基础的DQN使用回放缓冲区来打破片段中连续状态转移的相关性。片段中的经验样本是高度相关的,大多数时候,环境是“平滑的”,不会因为执行的动作而改变太多。然而,随机梯度下降方法假设用来训练的数据有独立同分布的性质。为了解决这个问题,基础DQN方法使用一个巨大的状态转移缓冲区,并从中随机采样以获取下一个训练批。
思想:质疑随机均匀采样策略,证明了只要根据训练损失给缓冲区的样本赋予优先级,并按一定的比例根据优先级从缓冲区中进行采样,就能很大程度地提升收敛速度以及DQN产生的策略质量。
比较棘手的是训练时如何保持“不寻常”样本和“剩余样本”之间的平衡,如果只关注缓冲区内的一部分数据集,那么会丢失独立同分布的性质并且很容易过拟合这个小数据集。
**最流行的选择优先级的方法:**和样本在Bellman更新中计算的损失成比例,新的样本刚加入缓冲区的时候需要赋予一个最大的优先级以保证它会马上被采样。
通过调整样本的优先级,在数据分布中引入了偏差(某些状态转移的采样频率会远高于另外一些状态转移),为了能让随机梯度下降法能够正常工作,需要对此进行补偿。为了得到这个结果,论文的作者使用了样本权重,它要乘以单个样本的损失。每个样本的权重值被定义为 w i = ( N ∗ p ( i ) − β ) w_i=(N * p(i)^{-\beta}) wi=(Np(i)β) β \beta β是另一个应该在0-1之间的超参数,当 β = 1 \beta=1 β=1时,采样引入的偏差被完全补偿,但是作者提出为了收敛性的考虑,最好让 β \beta β从0-1之间的一个值开始,再在训练过程中慢慢增加到1。

4.5 Dueling DQN

论文:Dueling Network Architectures for Deep Reinforcement Learning
想法:在神经网络的架构中,显式地i将价值 V ( s ) V(s) V(s)和优势值 A ( s , a ) A(s,a) A(s,a)分隔开,这带来了更好的训练稳定性,更快的收敛速度。
Q ( s , a ) = V ( s ) + A ( s , a ) Q(s,a) = V(s) + A(s,a) Q(s,a)=V(s)+A(s,a)
请添加图片描述
还需要一个约束条件来保证神经网络像我们期望那样学习 V ( s ) V(s) V(s) A ( s , a ) A(s,a) A(s,a):让任何状态的优势值的平均值为0
请添加图片描述

4.6 Categorical DQN

论文:A Distributional Perspective on Reinforcement Learning
思想:论文的作者对Q-Learning的基础部分的Q提出了质疑,试图用更通用的Q值概率分布来替换它们。Q-learning和价值迭代方法,都用简单的数字来表示动作或状态的价值,并用以显示从状态或状态动作对中所能获得的总奖励是多少。但是,对未来所有可能的奖励都塞入一个值不是很现实,在复杂的环境中,未来可能是随机的,概率不同产生的值也不同。
在马尔科夫决策过程中,情况会变得很复杂,因为有一系列的决策需要制定,并且每个决策可能会影响未来的情况。由于目的的不同,使用平均奖励值会丢失很多潜在的动态信息。所以当潜在的值有复杂的分布时,不要将自己限制在预测动作的平均值,可能直接使用分布会更有益。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Q-Learning与Deep Q-network 的相关文章

随机推荐

  • Python与OpenCV(三)——基于光流法的运动目标检测程序分析

    光流的概念是指在连续的两帧图像当中 由于图像中的物体移动或者摄像头的移动而使得图像中的目标形成的矢量运动轨迹叫做光流 本质上光流是个向量场 表示了一个像素点从第一帧过渡到第二帧的运动过程 体现该像素点在成像平面上的瞬时速度 而当我们对图像当
  • oracle 游标 上限,ORA-01000: 超出打开游标的最大数

    语言 java 数据库 oracle 开发中通过jdbc做批量删除对象时 出现了如下异常 java sql SQLException ORA 01000 超出打开游标的最大数 at oracle jdbc driver T4CTTIoer
  • UE5_创建C++项目报错

    UE官方VS安装推荐 https docs unrealengine com 4 26 en US ProductionPipelines DevelopmentSetup VisualStudioSetup UE5报错 A fatal e
  • 下拉框怎么用ajax实现添加功能,ajax实现动态下拉框示例

    许多页面上都涉及有下拉框 即select标签 对于简单的下拉框 被选择的数据是不需要改变的 我们可以用写死 这样下拉框的数据永远都是那几条 示例 信息一 信息二 信息三 信息四 但是有些项目或者工程是需要将数据库中的数据呈现出来并提供选择的
  • CH3-栈和队列

    文章目录 3 1栈和队列的定义和特点 栈的应用 队列的应用 3 1 1栈的定义和特点 3 1 2队列的定义和特点 3 2案例引入 案例3 1 进制转换 案例3 2 括号匹配的检验 案例3 3 表达式求值 案例3 4 舞伴问题 3 3栈的表示
  • 网络传输方式

    1 单播 1 1 定义 单播是指一种向单个目标地址传送数据的方式 即单独的一对一通讯方式 1 2 可使用协议 UDP TCP等协议 1 3 常见的场景 发送电子邮件 传输文件 2 广播 2 1 定义 一种向本地网络中所有设备发送数据的方式
  • FISCO BCOS 三、多群组部署以及新节点加入群组

    本章主要以星形组网和并行多组组网拓扑为例 指导您了解如下内容 了解如何使用build chain sh创建多群组区块链安装包 了解build chain sh创建的多群组区块链安装包目录组织形式 学习如何启动该区块链节点 并通过日志查看各群
  • 正确加载 Javascript 和 CSS 到 WordPress

    原文 http technerdia com 1789 include jquery css html 正确加载 jQuery Javascript 和 CSS 到你的WordPress网站也许是一件比较痛苦的事情 本文将讲解如何使用Wor
  • 使用python处理selenium中的获取元素属性

    获取我的订单元素class属性值 get class name driver find element by link text 我的订单 get attribute class 判断class属性值是否为active self asser
  • 深度学习半自动化视频标注工具——VATIC使用教程

    Vatic简介 Vatic是一个带有目标跟踪的半自动化视频标注工具 适合目标检测任务的标注工作 输入一段视频 支持自动抽取成粒度合适的标注任务并在流程上支持接入亚马逊的众包平台Mechanical Turk 当然也可以自己在本地标注 最大的
  • 使用markdown写大论文

    目的 用自己中意的 Markdown 编辑器来写论文初稿 使用 Zotero 来管理大量参考文献 然后论文转换成 Office Word 文档让老师们查看 当 Markdown 内容并转换成 Word 格式后 所有引用都需要被 Zotero
  • 【BraTS】Brain Tumor Segmentation 脑部肿瘤分割3--构建数据流

    往期回顾 BraTS Brain Tumor Segmentation 脑部肿瘤分割1 数据篇 BraTS Brain Tumor Segmentation 脑部肿瘤分割2 UNet的复现 在上一篇网络复现中提到 输入图像变成 4 155
  • OSG学习:纹理映射(四)——三维纹理映射

    以下内容来自 1 OpenSceneGraph三维渲染引擎编程指南 肖鹏 刘更代 徐明亮 清华大学出版社 2 OpenSceneGraph三维渲染引擎设计与实践 王锐 钱学雷 清华大学出版社 3 自己的总结 下载完整工程OSG 12 Tex
  • 基于区块链的分布式存储系统开发论文研究

    基于区块链的分布式存储系统开发论文研究 一 论文一 基于区块链的应用系统开发方法研究 蔡维德 论文引用 1 蔡维德 郁莲 王荣 刘娜 邓恩艳 基于区块链的应用系统开发方法研究 J 软件学报 2017 28 06 1474 1487 1 区块
  • 数据结构之二叉查找树(Binary Search Tree)和红黑树(Red Black Tree)

    感兴趣的话大家可以关注一下公众号 猿人刘先生 欢迎大家一起学习 一起进步 一起来交流吧 二叉查找树 Binary Search Tree 二叉查找树又可以称之为 二叉搜索树 二叉排序树 它或者是一棵空树 或者是具有下列性质的二叉树 若它的左
  • jsoup的Elements类

    随时随地阅读更多技术实战干货 获取项目源码 学习资料 请关注源代码社区公众号 ydmsq666 一 简介 该类是位于select包下 直接继承自Object 所有实现的接口有Cloneable Iterable
  • Qt限制文本框输入的方法

    在做界面编程的时候 对文本框的处理往往是个很头疼的事情 一是焦点进入文本框时 从人性化考虑 应选择文本框中文本 方便输入 二是 限制文本框的输入 只允许输入有效的文本 如果不这样做的话 那么就需要在程序中滤去非法输入 在这里介绍一种解决上述
  • Tip of the Week #65: Putting Things in their Place

    Tip of the Week 65 Putting Things in their Place Originally posted as totw 65 on 2013 12 12 By Hyrum Wright hyrum hyrumw
  • 关系数据模型(一)

    声明 最近在准备考试 故整理数据库笔记 关系数据模型 关系 域 笛卡尔积 关系 域D1 D2 Dn上的关系r是笛卡尔积D1x D2 xDn的任意子集 n个域上的关系称为n 元关系 元 又称目或度 关系的性质 1 关系是笛卡尔积的子集 即元组
  • Q-Learning与Deep Q-network

    1 价值迭代 价值迭代方法假设事先知道环境中的所有状态 可以对其进行迭代 并可以存储与他们关联的近似价值 对于状态价值步骤如下 对于动作价值步骤如下 存在的问题 获得优质状态转移动态的估计所需的样本数量 状态空间需要足够小 将问题限制在离散