DRL入门

目录

1. DRL的核心概念

2. 算法分类

1、免模型学习和有模型学习(理不理解所处的环境)

2、基于策略(概率)的方法和基于价值的方法

3、回合更新和单步更新:

4、在线学习和离线学习

文献

1. Deep Reinforcement Learning: A Survey

1.1 大纲

1.2 重点提炼

2. Neural architecture search with reinforcement learning


1. DRL的核心概念

状态和观察(states and observations)

动作空间(action spaces)

策略(policies)

行动轨迹(trajectories)

不同的回报公式(formulations of return)

强化学习优化问题(the RL optimization problem)

值函数(value functions)

参考:强化学习中的核心概念

2. 算法分类

分类方法:

1、免模型学习和有模型学习(理不理解所处的环境)

       Model-Free:Q-Learning、Sarsa、Policy Gradients

       Model-Based:多了为现实世界建模的过程,多了一个虚拟环境、可通过想象。

2、基于策略(概率)的方法和基于价值的方法

       Policy-Based:输出下一步采取的各种行动的概率,根据概率选取行动,每种action都可能选到;通过概率分布可以处理连续动作。Policy Gradients

       Value-Based:输出所有行动的价值,根据最高价值选择动作。不能处理连续的动作。Q-Learning、Sarsa。

Actor-Critic:结合概率和价值的另一种方法

       Actor:根据概率做出动作

       Critic:根据动作给出价值

3、回合更新和单步更新:

       回合更新:玩完整个游戏才能总结过程中的转折点,然后学习。基础版Policy Gradients、Monte-Carlo Learning

       单步更新:边玩边学习。升级版Policy Gradients、Sarsa、Q-Learning

4、在线学习和离线学习

       On-Policy:Sarsa、Sarsa(λ)

       Off-Policy:Q-Learning 、Deep Q Network

       在线学习(Online Learning)和离线学习(Offline Learning)是两种在机器学习领域中常见的学习范式。它们主要的区别在于学习过程中数据的访问方式和应用环境。

       在线学习:

       在线学习是一种连续的学习方式,即用户不断接收并处理新数据。在在线学习情况下,模型基于一个接一个地单独训练样本进行训练和更新,这使得它能实时地学习和适应新的数据变化。

可以处理大量无法一次性存储在内存中的数据,是一种典型的大数据处理方式。

       在线学习特别适合那些需要实时反馈和更新的任务,例如信用卡涉诈等金融领域应用,网络安全,搜索引擎优化等。

       离线学习:

       离线学习是指首先收集全部的训练数据,然后基于这些训练数据一次性地训练模型。在离线学习中,所有的训练数据必须在学习开始前就已经可用。

       离线学习的一大优点是可以进行批处理,一次调整参数使用的是全部数据。这使得它在处理规模较小,并且不需要实时更新的情况下往往可以得到更好的学习结果。

       离线学习适应于数据量相对较小,且基本稳定无需频繁更新的场景,如一些传统的分类,回归任务等。

       在强化学习中,这两种学习方式也有不同的表现。如离线强化学习(Offline RL)是一种在不再与环境交互的情况下,仅使用过去的经验进行学习的方法。这是一种有效利用资源,降低训练成本的策略,尤其在实验成本高昂或环境交互有限的情况下。然而,在不再收集新的经验的情况下,离线RL需要面对无法探索新的可能性并可能过度拟合过去经验的问题。在线强化学习(Online RL)则是一种模型在与环境交互的过程中逐步学习和改进策略的学习方式,能够实时探索新的策略并获得更好的性能,但需要良好的探索策略以及较高的环境交互成本。

参考:强化学习方法汇总 (Reinforcement Learning)_哔哩哔哩_bilibili

文献

1. Deep Reinforcement Learning: A Survey

1.1 大纲

1 引言

2 背景

       2.1 强化学习(Reinforcement Learning)

              2.1.1 马尔可夫决策过程(Markov Decision Process)

              2.1.2 贝尔曼方程(Bellman Equations)

              2.1.3 在线学习和离线学习(On-Policy and Off-Policy Methods)

              2.1.4 动态规划方法(Dynamic Programming Methods)

              2.1.5 蒙特卡罗方法(Monte Carlo Methods)

              2.1.6 时间差分法(Temporal Difference Methods)

              2.1.7 策略梯度理论(Policy Gradient Theorem)

              2.1.8 演员评论家方法(Actor-Critic Methods)

       2.2 深度学习(Deep Learning)

3 基于价值的DRL方法(VALUE-BASED DRL METHODS)

       3.1 Deep Q-Learning

              1)Deep Q Network

              2)Experience Replay

              3)Target Network

       3.2 Double DQN

       3.3 Prioritized Experience Replay

       3.4 Dueling Architecture

       3.5 Noisy Network

       3.6 Multistep Learning

       3.7 Distributional Approach

       3.8 Other Improvements and Variants

4 基于策略的 DRL方法(POLICY-BASED DRL METHODS)

       4.1 优势演员批评家方法(Advantage Actor-Critic Methods)

       4.2 基于信任域的方法(Trust Region-Based Algorithms)

       4.3 确定性策略梯度(Deterministic Policy Gradient)

5 最大熵DRL(MAXIMUM ENTROPY DRL)

     5.1 最大熵强化学习框架(Maximum Entropy Reinforcement Learning Framework)

       5.2 Soft Q-Learning and SAC

6 进一步的研究主题

       6.1 基于模型的方法(Model-Based Methods)

       6.2 分层深度强化学习(Hierarchical Deep Reinforcement Learning

       6.3 多智能体深度强化学习Multiagent Deep Reinforcement Learning

       6.4 从示范中学习(Learning From Demonstrations)

       6.5 元强化学习(Meta-Reinforcement Learning)

       6.6 离线强化学习(Offline Reinforcement Learning)

       6.7 强化学习中的迁移学习(Transfer Learning in Reinforcement Learning)

1.2 重点提炼

深度强化学习(DRL)是深度学习(DL)和强化学习(RL)的结合,主要应用于解决决策问题。在DRL的过程中,一般需要以下几个重要的参数:

状态(State): 状态是指智能体在环境中的当前情况,这可能包括智能体自身的属性,以及智能体与环境的相互作用。

动作(Action): 动作是指智能体在环境中所采取的行为,例如向前走、向后退、跳跃等。

策略(Policy): 策略是指在特定状态下智能体选择某一动作的概率。在实践中,我们希望通过学习找到强化学习问题的最优策略,即为每种状态指定一个能使获得的总奖励最大化的动作。

奖励(Reward): 奖励是指智能体在环境中采取某个动作后所得到的反馈,通常以数值的形式给出。奖励的目的是在强化学习过程中引导智能体。

回报/累积奖励(Return): 回报是指智能体在整个时间过程中获得的奖励之和,可能包含立即奖励和未来奖励。

价值函数(Value Function): 价值函数用来估计特定状态或特定状态-动作对的未来回报的期望值,通常用于在确定策略时帮助智能体做出决策。

折扣因子(Discount Factor,γ): 折扣因子是用于确定未来奖励相对于立即奖励的相对重要性。折扣因子越接近1,未来奖励对价值函数的影响越大。

可以用(S,A,P,R,γ)来描述强化学习过程。

基于学习目标进行分类

1、基于价值的算法:

       这些算法主要在于学习一个函数来估计每个状态或状态-动作对的价值。牵头的例子包括Q-learning和它的变体,例如Deep Q Networks (DQN)。DQN结合了神经网络和Q学习的方法,通过一个名为“经验重放的”机制来解决数据之间的关联性以及非稳定目标问题。

2、基于策略的算法:

       这些算法试图学习一个映射,从观察到动作,直接或间接的优化策略。一些示例包括策略梯度方法和自由能方程法,它们可以处理连续的行动空间。

3、基于最大熵的算法:

       这些算法在优化一个目标函数的时候考虑了熵的增大,从而保持一种策略的多样性。这可以增强探索行为以及防止过早的收敛。

不同的DRL算法有其各自的优点,并且这些优点是相互补充的。他们研究了double DQN, prioritized experience replay, dueling network, noisy network, multistep learning, 和 distributional DQN,所有这些扩展技术都有可取之处,例如优化样本效率、增强稳定性、提高性能等。

区别:

基于策略的算法和基于价值的算法是强化学习的两种主要类型,并且他们在处理问题和训练方式上有一些重要的区别:

基于价值的算法:基于价值的强化学习方法,如Q-learning或Deep Q Networks (DQN),主要关注的是学习一个价值函数,这个价值函数可以评估在给定状态下执行特定动作的预期收益。通过学习这个价值函数,代理可以选择最优的动作来执行,即选择可以使价值函数值最大的那个动作。这种方法的好处是通常采样效率好,但是不适用于连续的行动空间

基于策略的算法:基于策略的方法,如Policy Gradients 或 REINFORCE,利用梯度上升直接优化策略。策略被定义为一个映射函数,从观察到动作的概率分布。其优势在于它们能处理连续的行动空间,而且策略梯度算法旨在找到一种策略,使得预期的总回报最优。但是,策略梯度经常需要较大数量的样本来进行训练,可能因此训练过程会慢一些。

总的来说,两种方法各有其优势和局限性,且根据应用的具体环境和需求,它们可以相互补充。在实际问题中,研究者常常会采用叫做Actor-Critic的方法,这是一种结合价值和策略的方法,以充分利用这两种优势。

深度强化学习(DRL)是合并深度学习和强化学习两个领域的研究成果,形成的一种学习方法。将深度学习的强大学习表示能力和强化学习的环境交互,策略迭代思想结合在一起。深度强化学习在许多领域已经取得了突破性的进展,如游戏、机器人技术、自动驾驶等。

算法种类和特征:深度强化学习算法主要分为基于价值的算法,基于策略的算法以及基于最大熵的算法。其中,基于价值的算法(如Q-learning和它的变体DQN)致力于学习一个函数,用以估计每个状态或状态-动作对的价值。基于策略的算法(如策略梯度方法和自由能方程法)则试图学习一个映射,从观察到动作,并直接或间接的优化策略。基于最大熵的算法在优化目标的同时,也考虑熵的最大化,从而保持策略的多样性。

转移学习在强化学习中的应用:转移学习也在强化学习中起着重要的作用。在许多情况下,我们希望学习到的知识能够转换到其他任务或环境中。这要求算法能够抽取出更一般的知识,而不仅仅是特定环境的知识。

论文阅读和理解:在阅读深度强化学习相关论文时,需要提出和解答一些关键问题,如论文的主旨,算法的详细过程,实验的有效性等。

以上的总结都基于数据集中提供的信息。深度强化学习本身是一个快速发展的研究领域,还有许多其他的深度强化学习技术比如DPG,DDPG,TRPO,PPO,SAC等。为了获取更全面的理解,建议相关的论文和书籍。

2. Neural architecture search with reinforcement learning

注意论文中的哪些部分是搜索空间、搜索策略、评价结果的指标。

NAS算法自动搜索的基本思想:围绕搜索空间、搜索策略以及评价搜索的指标三个维度展开搜索最优的网络,先确定在哪些模块(卷积,池化等等)里面搜索组合一个网络,然后用什么样的方式组合我们的网络,最后得出的网络我们如何评价它是否好用。

背景:

手工设计网络需要丰富的经验与实验,甚至有时手工设计显得非常困难。

方法:

提出了一种神经网络搜索的方法NAS(Neural Architecture Search),利用循环神经网络RNN生成模型描述,并且利用强化学习策略最大化验证集上的模型准确度。这种方法基于梯度,用于找到非常好的 Architecture。

使用一个RNN网络作为controller生成一个对应的网络结构,以及生成这种网络结构的概率P。以此网络结构作为基础,训练子网络在相应的数据集上,当发生收敛的时候,在验证集得到准确值R,计算梯度值并且最大化R的值进行梯度更新反向传播。

结果:

在 CIFAR-10 数据集上,测试错误率为 3.65,提高了 0.09%,速度提高了 1.05 倍。在 Penn Treebank 数据集上实现了 62.4 的测试集困惑度,比之前最先进的模型好 3.6 的困惑度。该单元还可以转移到 PTB 上的字符语言建模任务,并达到 1.214 的最先进的困惑度。

note:

困惑度:困惑度定义为测试集的概率的倒数,并用单词数做归一化。
词序列的条件概率越高,困惑度越低。根据语言模型,最小化困惑相当于最大化测试集概率。
 

参考:

【论文精读-NAS开山之作】Neural Architecture Search with Reinforcement Learning - 知乎 (zhihu.com)

【论文解读】 Neural Architecture Search with reinforcement learning-CSDN博客

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

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

相关文章

Java后端开发——Mybatis实验

文章目录 Java后端开发——Mybatis实验一、MyBatis入门程序1.创建工程2.引入相关依赖3.数据库准备4.编写数据库连接信息配置文件5.创建POJO实体6.编写核心配置文件和映射文件 二、MyBatis案例:员工管理系统1.在mybatis数据库中创建employee表2.创建持久化类Employee…

嵌套的CMake

hehedalinux:~/Linux/multi-v1$ tree . ├── calc │ ├── add.cpp │ ├── CMakeLists.txt │ ├── div.cpp │ ├── mult.cpp │ └── sub.cpp ├── CMakeLists.txt ├── include │ ├── calc.h │ └── sort.h ├── sort │ ├── …

Java language programming:设计一个矩形类Rectangle

&#xff08;源于PTA&#xff09; 题目&#xff1a;设计一个名为Rectangle的类表示矩形。 这个类包括&#xff1a; <1>.两个名为width和height的double型数据域&#xff0c;它们分别表示矩形的宽和高。width和height的默认值都为1。 <2>.一个无参构造方法。 <3&…

网络安全工具大全

通用工具 工具类型 工具地址 更新时间 内网扫描 https://github.com/shadow1ng/fscan 2022-07-06 哥斯拉Webshell管理 https://github.com/BeichenDream/Godzilla 2021-11-01 ARL 资产侦察灯塔 https://github.com/TophantTechnology/ARL 2022-08-25 aliyun-accesskey-Too…

基于面向对象编程,C++实现单链表

链表&#xff1a;在内存空间中是非连续存储 组成&#xff1a;链表是由一个个节点组成的&#xff0c;每个节点都包含两个元素&#xff1a;数据和指针 节点头文件&#xff1a; 建立一个ListNode.h头文件 #pragma once class ListNode { public:int value;ListNode* next;Lis…

杭州经典爬山路线推荐

杭州经典爬山路线推荐爬山地图 【东岳村】路线一&#xff1a;东岳村(上山)——美人峰——龙门山——石人岭——天门山——石门山——棋盘山——天马山——茶叶博物馆&#xff08;下山&#xff09; 【林海亭】路线一&#xff1a;林海亭&#xff08;上山&#xff09;——唐家坞—…

设计模式之并发特定场景下的设计模式 Two-phase Termination(两阶段终止)模式

思考一下 在线程1中如何终止线程2&#xff1f;stop()&#xff1f;还是System.exit()&#xff1f;还是其他方式 方式解答 1.使用stop()不可取 线程对象的stop()方法会直接杀死线程&#xff0c;假设此时使用了线程锁&#xff0c;当此时使用了stop()命令会导致线程锁无法释放&am…

当浏览器输入url的时候会发生什么?

说在前面 当我们在浏览器中输入URL并按下回车时&#xff0c;背后发生了一系列神秘的操作。本文将带您深入了解&#xff0c;从URL解析到页面渲染&#xff0c;揭秘浏览器输入URL的完整流程。 具体步骤 当浏览器输入URL时&#xff0c;一般经过以下细节步骤&#xff1a; 1、引言 …

利用Qt输出XML文件

使用Qt输出xml文件 void PixelConversionLibrary::generateXML() {QFile file("D:/TEST.xml");//创建xml文件if (!file.open(QIODevice::WriteOnly | QIODevice::Text))//以只写方式&#xff0c;文本模式打开文件{qDebug() << "generateXML:Failed to op…

语义分割miou指标计算详解

文章目录 1. 语义分割的评价指标2. 混淆矩阵计算2.1 np.bincount的使用2.2 混淆矩阵计算 3. 语义分割指标计算3.1 IOU计算方式1(推荐)方式2 3.2 Precision 计算3.3 总体的Accuracy计算3.4 Recall 计算3.5 MIOU计算 参考 MIoU全称为Mean Intersection over Union&#xff0c;平均…

Docker五部曲之三:镜像构建

文章目录 前言Docker构建架构构建指令构建上下文本地目录Git存储库压缩文件纯文本文件.dockerignore文件 Dockerfile解析器指令环境变量命令执行格式exec格式shell格式 FROMRUNCMDLABELEXPOSEENVADDCOPYENTRYPOINTVOLUMEUSERWORKDIRARGONBUILDSHELL 多级构建 前言 本文均翻译自…

java-ArrayBlockingQueue详解

在Java并发编程中&#xff0c;ArrayBlockingQueue是一个非常常用的工具类。它是一个由数组支持的有界阻塞队列&#xff0c;提供了线程安全的队列操作。 1.ArrayBlockingQueue概述 ArrayBlockingQueue是一个基于数组实现的阻塞队列&#xff0c;它继承自AbstractQueue并实现了B…

一周速递|全球车联网产业动态(2024年1月14日)

政策法规 1、1月9日&#xff0c;国家发展改革委、商务部、市场监管总局发布《关于支持广州南沙放宽市场准入与加强监管体制改革的意见》&#xff0c;提出加快智能&#xff08;网联&#xff09;汽车多场景试点应用及商业化运营&#xff0c;推动电动垂直起降飞行器&#xff08;e…

对快速排序思想的进一步理解,分而治之,欧几里得算法(常用求最大公约数的方法)

自己找到的最优的快排的代码 快速排序 思想 分而治之使用欧几里得算法&#xff08;辗转相除法&#xff09;来求解一个应用题 假设有一块地&#xff0c;现在用这个同样大小的正方形来铺满&#xff0c;求所可用的最大的正方形地砖的面积 这两个方法放在一起是因为这个欧几里得要…

Linux环境之Ubuntu安装Docker流程

今天分享Linux环境之Ubuntu安装docker流程&#xff0c;Docker 是目前非常流行的容器&#xff0c;对其基本掌握很有必要。下面我们通过阿里云镜像的方式安装&#xff1a; 本来今天准备用清华大学镜像安装呢&#xff0c;好像有点问题&#xff0c;于是改成阿里云安装了。清华安装…

抓交通肇事犯(python)

问题描述&#xff1a; 一辆卡车违反交通规则&#xff0c;撞人后逃跑。现场有三人目击该事件&#xff0c;但都没有记住车号&#xff0c;只记下了车号的一些特征。甲说&#xff1a;牌照的前两位数字是相同的&#xff1b;乙说&#xff1a;牌照的后两位数字是相同的&#xff0c;但…

GVM垃圾收集器

Serial收集器&#xff08;新生代&#xff09; Serial&#xff08;串行&#xff09;收集器是最基本、历史最悠久的垃圾收集器&#xff0c;采用“标记-复制”算法负责新生代的垃圾收集。它是Hotspot虚拟机运行在客户端模式下的默认新生代收集器。 它是一个单线程收集器。它会使用…

软件测试学到这个程度,面试轻松拿下20K

很多人认为&#xff0c;软件测试是一个简单的职位&#xff0c;职业生涯走向也不会太好&#xff0c;但是随着时间的推移&#xff0c;软件测试行业的变化&#xff0c;人们开始对软件测试行业的认知有了新的高度&#xff0c;越来越多的人开始关注这个行业&#xff0c;开始重视这个…

v-if控制div内容显示,克隆这个div但是v-if没有效果

问题描述&#xff1a; 我的子页面打印的时候通过isPdf来隐藏“选择参加人员”按钮。 我子页面有个el-dialog&#xff0c;el-dialog里面有个大的div它的id为app-pre-meet-add&#xff0c;在子页面我通过isPdf来显示我想要的内容。现在我在父页面先通过this.$refs.child.control…

常用电容功能以及型号

电容在电子电路中具有多种重要作用&#xff0c;以下是其主要功能&#xff1a; 1. **隔直流、通交流**&#xff1a;电容器对直流电压有阻断作用&#xff08;理想情况下完全阻止直流通过&#xff09;&#xff0c;而对于交流信号则可以允许通过。这是因为电容器可以通过充放电过程…