深入理解强化学习——强化学习的复杂性、局限性和适用范围

分类目录:《深入理解强化学习》总目录


强化学习的复杂性

首先要注意的是,强化学习中的观察结果取决于智能体选择的动作,某种程度上可以说是动作导致的结果。如果智能体选择了无用的动作,观察结果不会告诉你做错了什么或如何选择动作才能改善结果,智能体只会得到负面的反馈。如果智能体很固执并且不断犯错,那么这些观察结果会给出一个错误的印象,即没法获取更大的奖励了,但这种印象很可能是完全错误的。

机器学习的术语来说,就是有非独立同分布(Independent and Identically Distributed,I.I.D)数据,而独立同分布是大多数监督学习方法的前提。第二个复杂的地方是智能体不仅需要利用它学到的知识,还要积极地探索环境,因为选择不同的动作很可能会明显地改善结果。但问题是太多的探索会严重地降低奖励,更不用说智能体实际上会忘记它之前学的知识了,所以需要找到这两种行为之间的平衡点。这种探索与利用的两难问题是强化学习中公开的基本问题之一。人们一直在面对这种选择——应该去一个知名餐厅就餐,还是去新开的新奇餐厅就餐?应该多久换一次工作?应该接触一下新领域还是继续留在现在的领域?这些问题尚无统一的答案。

第三个复杂的地方在于选择动作后奖励可能会严重延迟。例如,在国际象棋中,游戏中途的一次强力落子就可以改变平衡。在学习过程中,我们需要发现这种因果关系,而在时间的流逝和不断选择的动作中辨别这种因果关系是很困难的。然而,尽管存在这么多障碍和复杂性,强化学习在近年来已经取得了巨大的进步,并且在学术研究和实际应用领域中变得越来越活跃。

局限性和适用范围

强化学习十分依赖“状态”这个概念,它既作为策略和价值函数的输人,又同时作为模型的输人与输出。一般,我们可以把状态看作传递给智能体的一种信号,这种信号告诉智能体“当前环境如何"。我们使用的通过马尔可夫决策过程框架给出的状态的正式定义将在《深入理解强化学习》系列后面的文章中介绍。一般来说,我们鼓励读者顺着非正式的定义思考状态的含义,把它理解为当前智能体可知的环境信息。实际上,我们认为状态产生自一些预处理系统,这些系统从逻辑上说是智能体周边环境的一部分。

《深入理解强化学习》系列很多文章中讨论的大多数强化学习方法建立在对价值函数的估计上。但是这并不是解决强化学习问题的必由之路。举个例子,一些优化方法,如遗传算法、遗传规划、模拟退火算法以及其他一些方法,都可以用来解决强化学习问题,而不用显式地计算价值函数。这些方法采取大量静态策略,每个策略在扩展过的较长时间内与环境的一个独立实例进行交互。这些方法选择获取了最多收益的策略及其变种来产生下一代的策略,然后继续循环更新。我们称其为进化方法,因为这类方法与生物进化的过程十分类似,即使这类方法在单个个体的生命周期中不进行学习。如果策略空间充分小,或者可以很好地结构化以找到好的策略,或者我们有充分的时间来搜索,那么进化方法是有效的。另外,进化方法在那些智能体不能精确感知环境状态的问题上具有优势。

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022


http://www.niftyadmin.cn/n/5116468.html

相关文章

npm版本错误——npm ERR! code ERESOLVE 解决方法

起因 项目中echart版本过低,导致某些图表不能正确显示,所以大手一挥,将echart版本从4升级到了5, 再去运行项目的时候 就发现项目报错了 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! …

Java SOAP 调用 C# 的WebService

Java SOAP 调用 C# 的WebService,C# 的WebService方法的创建可以参考上一篇文章。IntelliJ IDEA Community Edition 2021.2.3的idea64.exe新建项目,导入需要的jar,代码如下: import org.apache.axis.client.Service; import org.…

illuminate/database 使用 一

illuminate/database 是完整的php数据库工具包,即ORM(Object-Relational Mapping)类库。 提供丰富的查询构造器,和多个驱动的服务。作为Laravel的数据库层使用,也可以单独使用。 一 使用 加载composer之后&#xff…

webpack中常见的Plugin有哪些?

一、是什么 Plugin(Plug-in)是一种计算机应用程序,它和主应用程序互相交互,以提供特定的功能 是一种遵循一定规范的应用程序接口编写出来的程序,只能运行在程序规定的系统下,因为其需要调用原纯净系统提供…

2023深圳CPSE安博会亮点指引

一、深圳安博会开展预告 10月25-28日,第十九届中国国际社会公共安全博览会(简称“CPSE安博会”)即将在深圳会展中心(福田)拉开帷幕。110,000㎡展示面积,130,000名专业观众,1000参展企业&#x…

学习笔记-MongoDB(命令增删改查,聚合,权限管理,索引,java使用)

基础概念 1 什么是mogodb? MongoDB 是一个基于分布式文件/文档存储的数据库,由 C 编写,可以为 Web 应用提供可扩展、高性能、易部署的数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功…

Centos磁盘问题小纪

场景说明 放个windows的图片镇楼,在给一个centos的来说明问题,咋了,好好的系统,啥也不能干了 来先上一波命令分析下问题 查看挂载 mount 重新挂载数据 mount -o remount, rw / 查看磁盘 df -h 查看分区挂载详情 rw读写权限 mount …

Linux备份Docker的mysql数据并传输到其他服务器保证数据级容灾

目录 简介什么是容灾 ?容灾的分类容灾和备份有什么连系 ? 数据级容灾备份步骤1、scp命令:用于Linux之间复制文件和目录2、编写备份数据库脚本3、crontab定时任务执行脚本4、测试 应用级容灾业务级容灾 简介 为了防止客户系统的数据丢失&…