[RL1]深度强化学习基础

news2025/3/17 14:04:40

一、强化学习

        强化学习(reinforce learning, RL)的本质是互动学习,即让智能体与其外界环境进行交互。智能体根据自己每次感知到的外界环境状态来选择相应的动作,以对环境进行响应,然后观测该动作所造成的结果,并根据结果来调整自身动作选择机制,最终让智能体可以对外界环境达到最优的响应,从而获得最好的结果(智能体针对外界环境采取一系列动作后获得的最大奖赏值,也称为累计奖赏值、预期回报)。

RL模型中最关键的三个部分:

  1. 状态(state):智能体所处的外界环境信息。环境状态的具体表现形式可以有很多种,包括多维数组、图像和视频等。外界环境的状态需要能够准确地描述外界环境,尽可能将有效信息包括在内,通常越充分的信息越有利于算法的学习。
  2. 动作(action):智能体在感知到外界环境状态后所要采取的行为,是对外界环境的一种反馈响应。动作的表现形式可以是离散的,也可以是连续的。
  3. 奖励(reward):智能体感知到外界环境并采取动作后所获得的奖赏值,源于根据实际场景定义的某种奖励机制,包括正向奖励和负向奖励。

[注]:深度学习擅长对事物的感知和表达,强化学习擅长学习解决问题的策略。

        深度强化学习(Deep reinforce learning, DRL)是深度学习领域中迅猛发展起来的一个分支,目的是解决计算机从感知到决策控制的问题,从而实现通用人工智能。对于DRL来说,目前的算法都可以包含在actor-critic框架下。actor-critic属于时间差分学习方法,其用独立的内存结构明确地表示独立于值函数的策略。策略结构被称为actor,因为它用于选择动作;而估计值函数被称为critci,因为他评价actor所做的动作。

        把DRL的算法视为智能体的大脑,那么这个大脑包含2个部分:actor行动模块和critic评判模块,这两个模块都是由深度神经网络构成的,这也是DRL中“深度”一词的由来。

  1. actor行动模块:大脑的动作执行机构,输入外部的环境状态,输出相应动作;
  2. critic评判模块:大脑的价值观,根据历史信息及回馈进行自我调整,然后对整个actor行动模块进行相关的更新指导。

深度强化学习的分类:

  1. 基于值函数的DRL
  2. 基于策略的DRL
  3. 基于模型的DRL
  4. 基于分层的DRL

二、马尔可夫属性和决策过程

马尔可夫属性:只有当前状态影响下一个状态,即在给定当前状态的情况下,未来在条件上独立于过去。

马尔可夫决策过程(Markov Decision Process, MDP):满足马尔可夫属性的RL任务称为MDP。

有限马尔可夫决策过程(Finite Markov Decision Process, FMDP):如果状态空间和动作空间有限,则被称为有限MDP。

形式上,RL可以被描述为MDP,其中包括:

  • 一系列状态S,加上初始状态p(s_{0})的分布;
  • 一系列动作A;
  • 动态转换T(s_{t+1}|s_{t},a_{t}),其将时间t处的状态-动作映射到时间t+1处的状态分布;
  • 一个即时奖励函数r(s_{t},a_{t},s_{t+1})
  • 折扣因子r \in [0,1],其中较低的r值更强调即时性奖励。

        通常,策略\Pi是从状态到动作概率分布的映射,\Pi :S\rightarrow p(A=a|S),如果马尔可夫过程是情节性的(episodic)(每经过T个episode之后重置状态),那么一个episode的状态、动作和奖励序列就构成了策略的轨迹或推出。策略的每次推出都会累积来自环境的回报,从而返回结果R=\sum_{t=0}^{T-1} r^{t}r_{t+1},RL的目标是找到一个最优策略\Pi ^{*},它可以得到所有状态的最大预期回报。

        对于非情节性的MDP,即T为无穷大时,让r小于1可以防止无限累积奖励。此时,依赖于完整轨迹的方法不再适用,但那些使用有限过渡的方法仍然可以很好地发挥作用。

三、强化学习核心概念

3.1 值函数

3.2 动态规划

        经典DP算法在RL的用途有限,因为DP通常假设一个完美的模型,并且计算代价很高,但是在理论上它仍然很重要。虽然DP思想可以应用于连续状态和动作空间的问题,但只有在特殊情况下才能实现精确的解决方案,然后应用有限状态DP方法。

  • 状态-动作-奖励-状态-动作(state-action-reward-state-action, SARSA)算法:是一种on-policy的算法,通过使用行为策略(Q^{\prod }的一种派生策略)生成的转换来改进Q^{\prod }的估计。
  • Q-learning算法:是一种off-policy的算法,因为Q^{\prod }不是由派生策略生成的转换来更新的,直接近似Q^{*}

3.3 时间(序)差分

        TD(时间差分),DP(动态规划)和蒙特卡罗方法方法之间的关系是RL理论中反复出现的主题。        

        TD学习是蒙特卡洛思想和DP思想的结合。与蒙特卡罗方法类型,TD方法可以直接从原始经验中学习,而无须环境动态模型与DP一样,TD方法部分基于其他学习的估计来更新其估计,无需等待最终结果来进行引导

3.4 策略梯度

3.5 actor-critic方法

四、Q-learning方法

4.1 Q-learning方法简介

        Q-learning是一种无模型RL的形式,它可以被视为异步DP的方法。学习过程类似于TD方法:智能体在特定状态下尝试行动,并根据其收到的即时奖励或处罚以及对其所处状态的值的估计来评估其后果。通过反复尝试所有状态的所有行动,它可以通过长期折扣奖励来判断总体上最好的行为

        Q-learning的训练过程:首先把Q-learning状态表的动作初始化为0,然后通过训练更新每个单元。在学习开始之前,Q被初始化为任意可能的固定值。然后在每个时间t智能体选择动作a_{t},观察奖励r_{t},进入新状态s_{t+1},并对Q进行更新。该算法的核心是一个简单的值迭代更新过程,即使用旧值和新信息的加权平均值:

Q^{new}(s_t,a_t)\leftarrow (1-\alpha )Q(s_t,a_t)+\alpha (r_{t}+rmax_{a}Q(s_{t+1},a))

其中,r_t是从状态s_t移动到状态s_{t+1}时收到的奖励,\alpha (0<\alpha <1)是学习率,Q(s_t,a_t)是旧值,max_{a}Q(s_{t+1},a))为新信息。当状态s_{t+1}是最终状态时,算法的一个episode结束当然,Q-learning也可以在非episode任务中学习。

4.2 相关变量

  • 学习率/步长\alpha:确定了新获取的信息在多大程度上覆盖旧信息。0使得智能体什么都不学习,即只利用先验知识;1使得智能体只考虑最新信息,忽略先验知识以探索可能性。在实践中,通常使用恒定的学习率,如0.1
  • 折扣因子r:决定了未来奖励的重要性。0将仅考虑当前奖励使得智能体变得“短视”,接近1将使智能体努力获得长期高奖励。对于1来说,没有终止状态,或者智能体从未到达过,那么所有环境历史就变得无限次,这时使用加法通常导致未折扣奖励的值变得无限大。即时折扣因子仅仅略低于1,当使用人工神经网络近似值函数时,Q函数学习也会导致误差和不稳定性的传播。在这种情况下,从较低的折扣因子开始并将其增加至最终值会加速学习。

4.3 实现方法

最简单的Q-learning在表格中存储数据,但当状态和行动的数量非常多时,查询表的时间会非常久。以下展示2种改进的方法:

  1. 函数近似:使用人工神经网络作为函数逼近器,使得即使在状态空间连续时也可以将算法应用于更大的问题上;
  2. 量化可能的值:当状态空间连续时,为存储桶分配多个值,缩小有效操作的可能空间。

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

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

相关文章

docker安装入门及redis,minio,rabbitmq应用安装

部分笔记来自黑马课堂&#xff1a;【黑马程序员Docker快速入门到项目部署&#xff0c;MySQL部署Nginx部署docker自定义镜像DockerCompose项目实战一套搞定-哔哩哔哩】 https://b23.tv/niWEhEF 一、什么是docker&#xff1a; 快速构建、运行、管理应用的工具。--帮助我们快速部…

毕业首选 | CCF推荐1区SCI,IF:6.0,Elsevier出版社,最快仅1个月Accept!

【SciencePub学术】本期&#xff0c;小编给大家解析的是一本Elsevier旗下、CCF-C类、影响因子为6.0的中科院3区SCI。其详情如下&#xff1a; 期刊简介 COMPUTER COMMUNICATIONS ISSN&#xff1a;0140-3664 E-ISSN&#xff1a;1873-703X IF&#xff08;2022&#xff09;&a…

101、nerfstudio——ScaleAndShiftInvariantLoss

github 归一化深度图约束nerf未归一化深度重建 class ScaleAndShiftInvariantLoss(nn.Module):"""Scale and shift invariant loss as described in"Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-shot Cross-dataset Transfer&…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Toast组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Toast组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Toast组件 Toast 的应用场景也非常广泛&#xff0c;比如网络请求出错了可以弹一个…

1861_什么是H桥

Grey 全部学习内容汇总&#xff1a; GitHub - GreyZhang/g_hardware_basic: You should learn some hardware design knowledge in case hardware engineer would ask you to prove your software is right when their hardware design is wrong! 1861_什么是H桥 H桥电路可以…

MySQL:通过官方mysql server,搭建绿色版mysql服务器(Windows)

1. 官网下载mysql server 下载mysql server的zip文件&#xff0c;地址&#xff1a; https://downloads.mysql.com/archives/community/ 解压后 2. 初始化数据库 运行cmd&#xff0c; 进入bin目录&#xff0c;运行 mysqld --initialize-insecureinitialize-insecure说明如…

windows中修改my.ini出现MySQL服务正在启动或停止中或服务无法启动

问题&#xff1a; 1.修改my.ini 2.在服务里启动MySQL服务正在启动或停止中或服务无法启动 解决办法&#xff1a; 1.修改my.ini编码方式 2.删除 安装目录中的data文件夹 3.winR&#xff08;管理员身份运行cmd&#xff09; cd 到安装目录中的bin文件夹 4.在cmd中运行 mysql…

2023年国赛高教杯数学建模E题黄河水沙监测数据分析解题全过程文档及程序

2023年国赛高教杯数学建模 E题 黄河水沙监测数据分析 原题再现 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变化和人民生活的影响&#xff0c;以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾等方面都具有重要的理论指导…

开源分布式搜索引擎ElasticSearch结合内网穿透远程连接

文章目录 前言1. Windows 安装 Cpolar2. 创建Elasticsearch公网连接地址3. 远程连接Elasticsearch4. 设置固定二级子域名 前言 简单几步,结合Cpolar 内网穿透工具实现Java 远程连接操作本地分布式搜索和数据分析引擎Elasticsearch。 Cpolar内网穿透提供了更高的安全性和隐私保…

分布式训练通信NCCL之Ring-Allreduce详解

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

SKU低价了如何监测

品牌在做控价的过程中&#xff0c;需要先监测商品的价格&#xff0c;但一条链接里如果有多个SKU应该如何监测呢&#xff0c;有时多个SKU会共用一个标题&#xff0c;只会在款式中体现不同&#xff0c;这就需要监测工作非常细致&#xff0c;否则容易监测失误。 监测低价可以由人工…

C/C++ BM2链表内指定区间反转

文章目录 前言题目1. 解决方案一1.1 思路阐述1.2 源码 2. 解决方案二2.1 思路阐述2.2 源码 总结 前言 这题是BM1的升级版&#xff0c;不过是把完整的链表翻转变成了指定区间。 题目 描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转&#xff0c;要求时间复杂度 …

第二证券:我国股市涨跌幅限制是多少?

我国股市涨跌幅束缚是多少&#xff1f; 1、主板&#xff1a;新股上市后的前5个交易日不设价格涨跌幅束缚&#xff0c;第6个交易日起&#xff0c;涨跌幅束缚为10%。 2、创业板&#xff1a;新股上市后的前5个交易日没有价格涨跌幅束缚&#xff0c;第6个交易日起&#xff0c;涨跌…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十七:演示功能模块相关功能实现

一、本章内容 本章实现常见业务功能,包括文章管理、商品管理、订单管理、会员管理等功能。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载 二、界面预览 三、开发视频 3.1 B站视频地址:

【Jmeter、postman、python 三大主流技术如何操作数据库?】

前言 1、前言 只要是做测试工作的&#xff0c;必然会接触到数据库&#xff0c;数据库在工作中的主要应用场景包括但不限于以下&#xff1a; 功能测试中&#xff0c;涉及数据展示功能&#xff0c;需查库校验数据正确及完整性&#xff1b;例如商品搜索功能 自动化测试或性能测试…

Pytorch深度强化学习2-1:基于价值的强化学习——DQN算法

目录 0 专栏介绍1 基于价值的强化学习2 深度Q网络与Q-learning3 DQN原理分析4 DQN训练实例 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理&#xff0c;并且采用Pytorch框架对常见的强化学习算法、案例进行实现&#xff0c;帮助读者理解并快速上手开发。同时&#xff0c;辅…

swing快速入门(二十九)播放器工具条

注释很详细&#xff0c;直接上代码 上一篇 新增内容 1.工具条按钮添加响应及图标 2.为控件添加滚动条&#xff08;通用&#xff09; 3.在工具按钮之间添加自动间隔 4.设置工具条的可否移动状态&#xff08;默认可移动&#xff09; package swing21_30;import javax.swing…

Spring系列学习二、Spring框架的环境配置

Spring框架的环境配置 一、Java环境配置二、 Spring框架的安装与配置三、Maven与Gradle环境的配置四、IDE环境配置&#xff08;Eclipse与IntelliJ IDEA&#xff09;五、结语 一、Java环境配置 所有编程旅程总是得从基础开始&#xff0c;如同乐高积木大作的基座&#xff0c;首先…

Ubuntu20.04-查看GPU的使用情况及输出详解

1. 查看GPU的使用情况 1.1 nvidia-smi # 直接在终端得到显卡的使用情况 # 不会自动刷新 nvidia-smi# 重定向到文件中 nvidia-smi > nvidia_smi_output.txt# 如果输出的内容部分是以省略号表示的&#xff0c;可以-q nvidia-smi -q 1.2 nvidia-smi -l # 会自动刷新&#x…

Python高级用法:enumerate(枚举)

enumerate&#xff08;枚举&#xff09; 在编写代码时&#xff0c;为了遍历列表并获取每个元素在列表中的索引&#xff0c;我们可以使用Python中的enumerate函数。下面是一个简单的例子&#xff0c;演示了如何使用enumerate函数实现相同的功能。 原始代码片段&#xff1a; i…