【深度强化学习】目前落地的挑战与前沿对策

到目前为止,深度强化学习最成功、最有名的应用仍然是 Atari 游戏、围棋游戏等。即使深度强化学习有很多现实中的应用,但其中成功的应用并不多。为什么呢?本文总结目前的挑战。

目录

  • 所需的样本数量太大
  • 探索阶段代价太大
  • 超参数的影响非常大
  • 稳定性极差
  • 总结与未来

所需的样本数量太大

深度强化学习一个严重的问题在于需要巨大的样本量。
用 Rainbow DQN 玩 Atari 游戏,达到人类玩家水平,需要至少1800万帧,且超过1亿帧还未收敛。(已经调优了多种超参数)
AlphaGo Zero 用了2900万局自我博弈,每一局约有100 个状态和动作。
TD3算法在MuJoCo物理仿真环境中训练Half-Cheetah、 Ant、 Hopper等模拟机器人,虽然只有几个关节需要控制,但是在样本数量100万时尚未收敛。甚至连Pendulum,Reacher这种只有一两个关节的最简单的控制问题,TD3也需要超过10万个样本。
现实的问题远远比Atari和MuJoCo复杂,其状态空间和动作空间都远大于Atari和MuJoCo,对于简单问题RL尚需要百万、千万级的样本,那对于现实复杂问题,可想样本量的恐怖。而且,在游戏中获取亿万样本并不困难,但是在现实中每获取一个样本都比较困难。举个例子,用机械手臂抓取一个物体至少需要几秒钟时间,那么一天只能收集一万个样本;同时用十个机械手臂,连续运转一百天,才能收集到一千万个样本,未必够训练一个深度强化学习模型。强化学习所需的样本量太大,这会限制强化学习在现实中的应用。

 

探索阶段代价太大

强化学习要求智能体与环境交互用收集到的经验去更新策略。在交互的过程中,智能体会改变环境。在仿真、游戏的环境中,智能体对环境造成任何影响都无所谓。但是在现实世界中,智能体对环境的影响可能会造成巨大的代价。
在强化学习初始的探索阶段,策略几乎是随机的。
如果应用到推荐系统中,上线一个随机的推荐策略,那么用户的体验会极差,很低的点击率也会给网站造成收入的损失。
如果应用到自动驾驶中,随机的控制策略会导致车辆撞毁。
如果应用到医疗中,随机的治疗方案会致死致残。
在物理世界的应用中,不能直接让初始的随机策略与环境交互,而应该先对策略做预训练,再在真实环境中部署。 其中涉及离线强化学习(Offline RL),是一个很有价值的研究方向。

  1. 一种方法是事先准备一个数据集,用行为克隆等监督学习方法做预训练。
  2. 另一种方法是搭建模拟器,在模拟器中预训练策略。

 

超参数的影响非常大

深度强化学习对超参数的设置极其敏感,需要很小心调参才能找到好的超参数。
超参数分两种:神经网络结构超参数算法超参数。这两类超参数的设置都严重影响实验效果。换句话说,完全相同的方法,由不同的人实现,效果会有天壤之别。

  1. 结构超参数: 神经网络结构超参数包括层的数量宽度激活函数,这些都对结果有很大影响。拿激活函数来说,在监督学习中,在隐层中用不同的激活函数(比如 ReLU、Leaky ReLU)对结果影响很小,因此总是用 ReLU 就可以。但是在深度强化学习中,隐层激活函数对结果的影响很大;有时 ReLU 远好于 Leaky ReLU,而有时 Leaky ReLU 远好于 ReLU。由于这种不一致性,我们在实践中不得不尝试不同的激活函数。
  2. 算法超参数: 强化学习中的算法超参数很多,包括学习率批大小 (Batch Size)、经验回放的参数探索用的噪声。(Rainbow 的论文调了超过 10 种算法超参数。)

实验效果严重依赖于实现的好坏。哪怕是一些细微的超参数区别,也会影响最终的效果。 即使都用同一个算法,比如 TRPO 和 DDPG 方法,不同人的编程实现,实验效果差距巨大。

在这里插入图片描述

实验对比的可靠性问题。如果一篇学术论文提出一种新的方法,往往要在 Atari、MuJoCo 等标准的实验环境中做实验,并与 DQN、DDPG、TD3、A2C、TRPO 等有名的基线做实验对照。但是这些基线算法的表现严重依赖于编程实现的好坏,如果你把自己的算法实现得很好,而从开源的基线代码中选一个不那么好的做实验对比,那你的算法可以轻松打败基线。

 

稳定性极差

强化学习训练的过程中充满了随机性。除了环境的随机性之外,随机性还来自于神经网络随机初始化、决策的随机性、经验回放的随机性。想必大家都有这样的经历:用完全相同的程序、完全相同的超参数,仅仅更改随机种子(Random Seed),就会导致训练的效果有天壤之别。如果重复训练十次,往往会有几次完全不收敛。哪怕是非常简单的问题,也会出现这种不收敛的情形。
所以实验时即使代码和超参数都是对的,强化学习也有可能会出现不收敛的情况。监督学习则几乎没有这种担忧。

在这里插入图片描述

 

总结与未来

RL需要过多的数据量,且现实应用中收集数据成本和代价太大。即使收集到合适数据,训练网络时,超参数和随机种子等因素对模型的训练影响非常大,不稳定。
近年来,研究人员提出了多种方法来应对这些问题,提高RL的实用性和效率。以下是一些前沿的改进方法:

  1. 使用模拟环境和数据增强,减少对真实世界数据的需求,但是这样训练出来的模型如温室的花朵。
  2. 事先准备一个数据集,用行为克隆等监督学习方法做预训练,再进入现实做环境交互,进一步训练。
  3. 迁移学习与元学习,减少新任务所需数据量。
  4. 多任务学习和强化学习的结合,同时学习多个相关任务,共享知识以提高学习效率和泛化能力。
  5. 模型基的RL,构建环境模型以预测未来状态和奖励,减少对真实环境交互的依赖。
  6. 自适应超参数调整。
  7. 集成学习和强化学习结合,结合多个模型或策略,以减少单一模型或策略的不稳定性和偏差。
  8. 利用大模型,具身智能等技术,让模型更具泛化性。

本文内容为看完王树森和张志华老师的《深度强化学习》一书的学习笔记,十分推荐大家去看原书!

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

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

相关文章

Luckysheet类似excel的在线表格(vue)

参考文档&#xff1a;快速上手 | Luckysheet文档 一、引入 在vue项目的public文件夹下的index.html的<head>标签里面引入 <link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/luckysheetlatest/dist/plugins/css/pluginsCss.css /><link relstylesheet hre…

C++PythonC# 三语言OpenCV从零开发(1):环境配置

文章目录 前言课程选择环境配置PythonC#COpenCV官网下载新建C项目测试运行Csharp版Python版 gitee仓库总结 前言 由于老王我想转机器视觉方向的上位机行业&#xff0c;我就打算开始从零学OpenCV。但是目前OpenCV有两个官方语言&#xff0c;C和Pyhont。C# 有大佬做了对应的Open…

使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA

目前基于大模型的信息检索有两种方法&#xff0c;一种是基于微调的方法&#xff0c;一种是基于 RAG 的方法。 信息检索和知识提取是一个不断发展的领域&#xff0c;随着大型语言模型&#xff08;LLM&#xff09;和知识图的出现&#xff0c;这一领域发生了显着的变化&#xff0…

Docker五部曲之四:Docker Compose

文章目录 前言Compose应用程序模型Compose规范顶层属性servicenetworkvolumesconfigssecrets 环境变量.env文件environment属性主机shell中的环境变量 Profiles&#xff08;剖面&#xff09;启动剖面自动启动剖面和依赖项解析 多compose.yml文件共享与扩展构建规范构建属性 部署…

Java根据模板文件生成excel文件,同时将excel文件转换成图片

需求 需要将指定数据导出成表格样式的图片&#xff0c;如图 业务拆解 定义一个导出模板将得到的数据填入模板中&#xff0c;生成excel文件将ecxel文件转换成png格式的图片 代码实现 需要引入的依赖 <dependency><groupId>cn.hutool</groupId><artif…

[C++] opencv - Mat::convertTo函数介绍和使用场景

Mat::convertTo()函数 Converts an array to another data type with optional scaling. 该函数主要用于数据类型的相互转换。 The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid possible overf…

maven环境搭建(打包项目)

Maven:直观来讲就是打包写好的代码封装 Apahche 软件基金会&#xff08;非营业的组织&#xff0c;把一些开源软件维护管理起来&#xff09; maven apahce的一个开宇拿项目&#xff0c;是一个优秀的项目构建&#xff08;管理工具&#xff09; maven 管理项目的jar 以及jar与j…

uniapp 简易自定义日历

注&#xff1a;此日历是根据接口返回的日期自动对应星期的&#xff0c;返回的数据中也包含星期&#xff0c;其实就是一个div自定义&#xff0c;可根据自己需求更改&#xff1b; 1、组件代码 gy-calendar-self.vue <template><view class"calendar"><…

华为路由设备DHCPV6配置

组网需求 如果大量的企业用户IPv6地址都是手动配置&#xff0c;那么网络管理员工作量大&#xff0c;而且可管理性很差。管理员希望实现公司用户IPv6地址和网络配置参数的自动获取&#xff0c;便于统一管理&#xff0c;实现IPv6的层次布局。 图1 DHCPv6服务器组网图 配置思路 …

VLAN区域间路由详解

LAN局域网 WAN 广域网 WLAN无线局域网 VLAN:虚拟局域网 交换机和路由器&#xff0c;协同工作后&#xff0c;将原来的一个广播域&#xff0c;切分为多个&#xff0c;节省硬件成本&#xff1b; 配置思路&#xff1a; 交换机上创建vlan交换机上的各个接口划分到对应的vlan中 T…

meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题&#xff0c;今天稍微总结总结&#xff0c;以后方便自己查找。 一、单台Mac进行压测时候&#xff0c;压测客户端Jmeter启动超过2000个线程&#xff0c;Jmeter报OOM错误&#xff0c;如何解决&#xff1f; 解答&#xff1a;单台Mac配置内存为8G&…

【Android Studio】APP练手小项目——切换图片APP

本项目效果&#xff1a; 前言&#xff1a;本项目最终实现生成一个安卓APP软件&#xff0c;点击按钮可实现按钮切换图片。项目包含页面布局、功能实现的逻辑代码以及设置APP图标LOGO和自定义APP名称。 关于Android Studio的下载与安装见我的博文&#xff1a;Android Studio 最新…

IDEA新建SpringBoot工程时java版本只有17和21

解决方法&#xff1a;替换源 参考博客&#xff1a;https://www.kuazhi.com/post/712799571.html

thinkphp 可执行文件think

think 是一个可执行文件&#xff0c;位置&#xff1a;网站根目录 内容&#xff1a;1 定义项目路径 2 加载cll框架文件 shell脚本里第一行的&#xff1a;#!/usr/bin/env php 什么意思 这句#!的含义就是&#xff0c;按照环境变量PATH寻找第一个php程序来执行。 #!/usr/bin/php…

K8s(一)Pod资源——Pod介绍、创建Pod、Pod简单资源配额

目录 Pod概述 pod网络 pod存储 pod和容器对比 创建pod的方式 pod运行方式分类 Pod的创建 Pod的创建过程 通过kubectl run来创建pod 通过yaml文件创建&#xff0c;yaml文件简单写法 Pod简单操作 Pod的标签labels Pod的资源配额resource 测试 Pod概述 Kubernetes …

RHCE9学习指南 第21章 用bash写脚本

grep的用法是&#xff1a; grep 关键字 file 意思是从file中过滤出含有关键字的行。 例如&#xff0c;grep root /var/log/messages&#xff0c;意思是从/var/log/messages中过滤出含有root的行。这里很明确的是过滤含有“root”的行。 如果我要是想在/var/log/messages中过滤…

基于CPLEX的IEEE-30节点机组组合优化(MATLAB实现)

1.机组组合优化数学模型 1.1 问题分析 机组组合问题要求基于已知的系统数据&#xff0c;求解计划时间内机组决策变量的最优组合&#xff0c;使得系统总成本达到最小。该问题的决策变量由两类&#xff0c;一类是各时段机组的启停状态&#xff0c;为整数变量&#xff0c;0表示关…

android 自定义八边形进度条

自定义八边形动画效果图如下 绘制步骤&#xff1a; 1.先绘制橙色底部八边形实心 2.黑色画笔绘制第二层&#xff0c;让最外层显示一条线条宽度即可 3.再用黄色画笔绘制黄色部分 4.使用渐变画笔根据当前进度绘制覆盖黄色部分 5.使用黑色画笔根据当前进度绘制刻度条 6.黑色画笔绘制…

自动驾驶预测-决策-规划-控制学习(5):图像分割与语义分割入门

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 论文题目&#xff1a;Evolution of Image Segmentation using Deep Convolutional Neural Network: A Survey前言&#xff1a;图像分割与语义分割一、图像分割是什么…

重新认识Word——页眉页脚

重新认识Word——页眉页脚 节设置页脚第X页&#xff0c;共Y页 奇偶页不同页眉包含章节号清除页眉横线 我们之前已经全面的构建了我们的文章&#xff0c;现在我们来了解一下&#xff0c;我们毕业论文的页眉&#xff08;页面信息&#xff09;页脚&#xff08;页码&#xff09;的设…