ICML 2024:从历史数据中挖掘最优策略,高效完成50+任务,“离线策略提升的在线演员-评论家”研究工作

news2024/11/14 13:57:24

长期以来,如何提升数据利用效率被认为是强化学习落地应用的一大桎梏。过去非策略(off-policy)的强化学习虽然能反复利用收集到的数据来进行策略优化,然而这些方法未能最大限度地利用重放缓冲区(Replay buffer)中的信息,导致了样本效率与策略优化性能不足。此外,基于模型(Model-based)的强化学习通过学习环境模型的方式提取了数据中的信息,然而这样的方法训练耗时过长,并且容易受到模型外推误差的影响。

图片

近期,清华大学计算机系罗宇博士,孙富春教授等在CCF A类会议International Conference on Machine Learning 2024发表的工作,提出了离线策略提升的在线演员-评论家的无模型强化学习训练框架。在6个任务类的53个任务中,包含了多关节运动控制、机械臂操作任务、复杂肌肉控制等,该方法超越了经典的非策略无模型强化学习方法,并与基于模型的强化学习方法具有相当的采样效率和性能,而训练耗时降低了5倍,参数量降低了2倍,显著提升了训练效率。

图片

一、离线策略在在线训练中的优势

由于非策略强化学习在训练过程中使用重放缓冲区来存放数据,因此引入离线强化学习来挖掘缓冲区中的高质量数据成为了一种高效利用的方案。为了探究引入离线最优策略是否具有优势,本工作使用OpenAI Gym中的任务,并设计了三种智能体进行了一系列实验。

(1)在线训练的非策略智能体:使用Soft Actor Critic (简称SAC)作为非策略强化学习算法,通过智能体与各个环境交互一百万次所获得的数据来进行训练。在每次交互中,新探索到的数据会被收集到一个重放缓冲中,并从中随机采样数据来更新策略。

(2)并发训练的离线强化学习智能体:在训练SAC策略的同时,采用Implicit Q-Learning(简称IQL)来协同训练。具体地,基于数据量不断提升的SAC缓冲区中,使用其中的数据并发式地训练离线最优策略,并使用离线最优策略进行测试。在训练过程中,并发的IQL策略不会与环境进行交互。

(3)在线训练的离线智能体:与在线训练的非策略智能体训练过程类似,使用IQL策略替代了SAC策略,即使用IQL策略与环境进行交互,将获得的数据存入重放缓冲区中,并使用这些数据来更新IQL策略。

其实验结果如下图所示。在每项任务中,对比并发训练的离线强化学习智能体(IQL Concurrent)与在线训练的非策略智能体(SAC)时,曲线的相交点即代表了二者性能的差异。由于两个智能体共享了由SAC策略探索的数据并存放在SAC缓冲区中,与SAC策略相比,并发训练的IQL策略能够在数据不断增长的情况下自动辨识出性能更优的策略,即随着数据的增多与覆盖度提升,这样的方式能够更好地利用已收集的数据,获得更佳的策略性能。尽管如此,仅仅通过在线训练的离线智能体会导致性能过快收敛,难以探索到质量更优的新数据,因此表现出明显的保守性。

图片

二、离线策略增强的策略迭代理论分析

理论分析包含策略评估与策略优化两个部分。

(1)策略评估

从重放缓冲区中随机采样数据后,使用贝尔曼期望算子分别对离线策略和在线策略计算目标值函数为

图片

利用该目标值来对两种策略的状态-动作值函数进行更新,并计算状态值函数为

图片

由于贝尔曼期望算子所具有的压缩映射性质,易得该评估过程对于两种策略都是稳定收敛的。

(2)策略提升

根据上文中的例子,当在线策略性能优于离线策略时,这表明了即使使用重放缓冲区中的最优动作,在线学习策略的性能仍然会比它们更好,即此时引入离线最优策略是无意义的。因此,在执行值函数最大化来优化策略时,无需考虑离线最优策略,避免了潜在的性能负面影响;相反地,当离线策略性能优于在线策略时,与当前学习策略相比,对于相同的状态重放缓冲区中存在性能更优的行动。在这种情况下,考虑在目标函数中添加策略约束,以确保更新后的策略不仅能优化目标函数,还能整合离线最优策略中更好的行动分布,从而实现在线学习策略性能进一步提升。

基于上述思想,将策略改进步骤中的优化问题重构为

图片

其中,𝑓(⋅) 是一个正则化函数用于计算两个策略分布之间的距离,𝟙(⋅) 是一个指标函数。优化问题中的约束条件允许在策略优化的过程中自适应地将离线最优策略融合到在线策略学习中,仅当离线最优策略性能更优时用于指导在线策略的优化。上述约束优化问题在约束被激活时,可得到如下的闭式解

图片

通过该闭式解,可证明在带约束的情况下,任意初始化的在线学习策略可以收敛到最优策略。

三、基于离线策略增强的演员-评论家算法设计

通过上述的策略评估与策略改进两个步骤,本文使用演员-评论家的框架来实现。具体地,算法实现过程可分为环境交互收集数据与算法更新两个步骤。在交互过程中,策略根据当前状态生成动作,环境则依据该状态和动作生成下一个时刻状态与当前奖励,最后这些数据存入重放缓冲区中;在训练过程中,如上所述,分别对两种策略进行评估,获得相应的值函数,随后采用自适应约束的形式来优化策略,整个训练过程如下图所示。

图片

四、实验结果与分析

本文使用了 6 个任务类中的 53 项连续控制任务中对 OBAC 算法进行了实验评估,包括:Mujoco、DMControl、Meta-Worl、Adroit、Myosuit和Maniskill2。这些任务涉及了高维状态和动作、稀疏奖励、多目标和精细操作、肌肉骨骼控制以及复杂刚体运动等。本文设置了如下的对比算法:1)SAC和 TD3,两种高效的非策略在线无模型强化学习方法,区别在于前者使用了随机策略,而后者使用确定性策略;2)BAC,一种非策略无模型强化学习方法,利用离线最优策略的状态-行动值来缓解在线学习策略的 𝑄 值函数被低估的问题;3)TD-MPC2,一种基于模型的高效强化学习方法,该方法结合了模型预测控制和时序差分学习,在多个任务下获得了较高的策略性能和样本效率。

图片

作为一种无模型强化学习方法,OBAC 明显优于其他非策略的无模型强化学习对比方法,并在探索效率和渐进性能上表现出与基于模型的强化学习方法相当的性能。并且,使用同一套超参数的情况下,OBAC 在高维运动任务(DogRun)、多体接触操作(Baoding4th)和复杂肌肉控制任务(myoHand)中表现出色。

图片

与基于模型的强化学习方法 TD-MPC2 相比,OBAC 的参数数量减少了 50%,并且其架构更加简单,并且每个组件都采用了一个隐藏层大小为 512 的 3 层感知机。相比之下,TD-MPC2 需要额外的组件,包括动态模型、奖励模型和 5 个评论家网络。得益于此,OBAC 在训练效率方面也有显著提高,每 100 万步环境交互只需要 TD-MPC2 的 20% 训练时间,同时还能保持相当的采样效率和收敛性能。而与其他无模型 RL 方法相比,如 BAC、SAC 和 TD3,OBAC 的训练时间相似,具备较高的训练效率。

图片

五、小结

本工作的核心工作点如下:

  1. 创新性地挖掘了在非策略强化学习训练过程中使用离线强化学习技术的可能性,并且从理论上证明了本文所提出的自适应约束能够保证策略收敛到最优策略。

  2. 基于上述理论分析,本文设计了一种离线策略增强的演员-评论家的训练框架,实现了在线策略的低成本训练与高样本效率。

  3. 在使用相同的超参数的情况下,本文提出的方法在大量挑战性的任务中取得了优于当前非策略强化学习的性能,并作为无模型的训练方法达到了与有模型训练方法的样本效率。

相比于已有的工作,本文提出的方法还提供了将乐观的非策略在线强化学习与悲观的离线强化学习相结合的新方式,使得离线强化学习的优势能够进一步提升在线策略的性能。该节的研究工作可以通过以下方式进行扩展:在推导离线最优策略时应用更先进的离线 RL 方法,或者在在线策略中加入更多探索,以促进获取更好的数据,从而使得 OBAC 能够从开发和探索两方面提高策略性能。

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

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

相关文章

新手小白学习PCB设计,立创EDA专业版

本教程有b站某UP主的视频观后感 视频链接:http://【【教程】零基础入门PCB设计-国一学长带你学立创EDA专业版 全程保姆级教学 中文字幕(持续更新中)】https://www.bilibili.com/video/BV1At421h7Ui?vd_sourcefedb10d2d09f5750366f83c1e0d4a…

JAVA进阶学习13

文章目录 2.2.3 综合输入和输出方法进行文件拷贝2.2.4 字节流读取时乱码的问题 2.3 字符流的方法概述2.3.1 FileReader方法2.3.2 FileWriter方法2.3.3 小结 三、高级IO流3.1 缓冲流3.1.1 字节缓冲流3.1.2 字符缓冲流 3.2 转换流3.3 序列化流3.3.1 序列化流3.3.2 反序列化流 3.4…

亚马逊自养号测评一直被砍单封号怎么解决

亚马逊是一个大数据公司,可以检测出你的购买行为是否正常,如每次都是直接用链接购买产品而从来不用搜索栏,每次购买产品单一而且时间快速,买家留评比例过高或者评论内容太假,产品还没签收就上评论,某个list…

vxtable行转列

<script setup lang"ts"> import dayjs from "dayjs"; import {Search} from "element-plus/icons-vue"; import {ElMessage} from "element-plus"; class SearchModel{startTime?: Date | stringendTime?: Date | stringcons…

react-native从入门到实战系列教程一ScrollView组件吸顶效果

在ScrollView组件里面把第一元素固定在视图顶部的效果&#xff0c;ScrollView在手机上自带了bounce回弹的效果&#xff0c;不管内容是不是超出组件高度还是宽度 实现效果 代码实现 import {View,Text,StyleSheet,Dimensions,TextInput,Button,Alert,ScrollView,StatusBar,Saf…

[windows10]win10永久禁用系统自动更新操作方法

WinR打开运行 输入regedit打开注册表 点击确定打开注册表 按照如下路径找到UX 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 在空白处点击鼠标右键&#xff0c;新建选择DWORD&#xff0c;然后重命名为FlightSettingsMaxPauseDays 双击FlightSet…

图论:1203. 项目管理(以小组为单位进行拓扑排序)

文章目录 1.问题分析2.思路整理3.官解思路 LeetCode&#xff1a;1203. 项目管理 建议直接看思路整理 1.问题分析 仔细读题可以发现&#xff0c;如果不考虑小组项目彼此相邻&#xff0c;则项目之间的依赖关系就是一个拓扑排序。 但是如果要考虑小组项目彼此相邻&#xff0c;问…

【机器人学】6-3.六自由度机器人运动学参数辨识- 机器人辨识参数耦合性分析

前言 上一章我们用两步优化方法求解了辨识参数&#xff0c; 【机器人学】6-2.六自由度机器人运动学参数辨识-优化方法求解辨识参数 我们给机器人的几何参数进行了数学建模&#xff0c;其中使用高斯牛顿法求解出了激光仪相对于机器人基座的坐标变换和机器人末端执行器相对于靶球…

【RTT-Studio】详细使用教程七:SGM5352外部DAC使用

文章目录 一、简介二、RTT时钟配置三、初始化配置四、完整代码五、测试验证 一、简介 本文主要介绍使用RTT-ThreadStudio来驱动SGM5352芯片的使用&#xff0c;该芯片主要是一个低功率&#xff0c;4通道&#xff0c;16位&#xff0c;电压输出DAC。它从2.7V到5.5V&#xff0c;设…

短视频矩阵系统设计:抖音短视频平台的最佳选择

随着移动互联网的快速发展&#xff0c;短视频行业异军突起&#xff0c;抖音短视频平台凭借其丰富的内容、便捷的创作工具和智能推荐算法&#xff0c;吸引了大量用户。在这个背景下&#xff0c;短视频矩阵系统应运而生&#xff0c;成为抖音短视频平台的最佳选择。本文将详细介绍…

左手坐标系、右手坐标系、坐标轴方向

一、右手坐标系 1、y轴朝上&#xff1a;webgl、Threejs、Unity、Unreal、Maya、3D Builder x&#xff1a;向右y&#xff1a;向上z&#xff1a;向前&#xff08;朝向观察者、指向屏幕外&#xff09; 2、z轴朝上&#xff1a;cesium、blender x&#xff1a;向右y&#xff1a;向前…

C# 方法的重载(Overload)

在C#中&#xff0c;方法的重载&#xff08;Overloading&#xff09;是指在一个类中可以有多个同名的方法&#xff0c;只要这些方法具有不同的方法签名&#xff08;即参数的数量、类型或顺序不同&#xff09;。这使得你可以使用相同的方法名称来执行相似但参数不同的操作&#x…

GEE必须会教程——基于Landsat影像构建NDVI时间序列

很久很久以前&#xff0c;小编写了一篇基于MODIS影像构建归一化植被指数的文章&#xff0c;不知道大家还有没有印象&#xff0c;有一段时间没有更新时间序列分析相关的文章了。 今天&#xff0c;我们来看看基于Lansat影像&#xff0c;我们来看看在GEE上如何构建NDVI的时间序列。…

AI跟踪报道第50期-新加坡内哥谈技术-本周AI新闻: 听听没有Scarlett Johansson的GPT-4o更加震撼

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

shellcode加密免杀

通过加密shellcode方式过安全软件拦截 先说结论&#xff0c;笔者没成功 shellcode&#xff1a; Shellcode 是一段用于在目标系统上执行特定操作的机器码。它通常被用于利用软件漏洞&#xff0c;以获取对目标系统的控制权或执行特定的恶意行为。 Shellcode 可以执行诸如创建进程…

MySQL 预处理、如何在 [Node.js] 中使用 MySQL?

前面文章我们已经总结了mysql下载安装配置启动以及如何用 Navicat 连接&#xff0c;还有MySQL的入门基础知识 、Node.js的基本知识、Express框架基于Node.js基础知识、下面我们总结如何在Node.js中使用MySQL数据库以及MySQL预处理基本知识。 目录 一、MySQL预处理 二、如何在…

JavaFX布局-GridPane

JavaFX布局-GridPane 常用实行alignmenthgapvgappaddinggridLinesVisible 实现方式Java实现fxml实现 使用行和列来组织其子节点将节点放置在二维网格中的任何单元格&#xff0c;同时也可以设置跨越行、跨越列 常用实行 alignment 对齐方式&#xff0c;设置内容居中&#xff0…

032-GeoGebra中级篇-列表与集合(list and set)及常用操作大全

列表在 GeoGebra 中扮演着重要角色&#xff0c;使用户能够处理和管理一组数值、点或对象。这些列表可以用于执行多种操作&#xff0c;如计算平均值、排序、查找最大或最小值、绘制点的集合等。通过使用列表&#xff0c;用户可以简化复杂的计算步骤&#xff0c;增强图形的动态性…

《计算机组成原理》(第3版)第1章 计算机系统概论 复习笔记

第1章 计算机系统概论 一、计算机系统简介 &#xff08;一&#xff09;计算机的软硬件概念 1&#xff0e;计算机系统由“硬件”和“软件”两大部分组成 &#xff08;1&#xff09;所谓“硬件”&#xff0c;是指计算机的实体部分&#xff0c;如主机、外部设备等。 &#xff0…