论文阅读--Conservative Q-Learning for Offline Reinforcement Learning

摘要

在强化学习( RL )中有效地利用以前收集的大量数据集是大规模实际应用的关键挑战。离线RL算法承诺从先前收集的静态数据集中学习有效的策略,而无需进一步的交互。然而,在实际应用中,离线RL是一个主要的挑战,标准的离线RL方法可能会由于数据集和学习到的策略之间的分布偏移而导致的过高估计,特别是在复杂和多模态数据分布上的训练时。在本文中,我们提出了保守Q学习( CQL ),旨在通过学习一个保守的Q函数来解决这些限制,使得一个策略在这个Q函数下的期望值低于其真实值。我们从理论上证明了CQL对现行策略的价值产生了一个下界,可以将其纳入到一个具有理论改进保证的政策学习过程中。在实际应用中,CQL通过一个简单的Q值正则化器来增强标准的贝尔曼错误目标,该正则化器在现有的深度Q学习和行动者-评论家实现的基础上更易于实现。在离散和连续控制域上,我们都表明CQL显著优于现有的离线强化学习方法,通常学习策略可以获得2 ~ 5倍的最终回报,特别是在从复杂和多模态数据分布中学习时。

论文概述

本文主要介绍了一个名为Conservative Q-Learning (CQL)的离线强化学习算法,该算法旨在克服现有离线强化学习算法在数据分布与学习策略之间存在差异时可能导致的过度估计问题。CQL通过学习一个保守的Q函数来解决这个问题,从而为离线强化学习提供了一种有效的解决方案。此外,本文还讨论了CQL的理论性质以及在各种控制领域的实验表现。

The Conservative Q-Learning (CQL) Framework(保守Q学习( Cql )框架)

保守离策略评估:

理论分析表明,CQL通过在训练过程中正则化Q值来学习一个保守的Q函数,使得该Q函数下界估计策略的真实值。

保守Q学习在离线RL中的应用:

通过将CQL应用于离线RL,可以从之前收集的静态数据集中学习有效策略,而无需进一步与环境互动。

保守策略改进保证:

理论分析证明,CQL生成的策略更新在优化过程中是“保守”的,意味着每个后续策略迭代都是根据其值的下界估计进行优化的。

实际算法和实现细节:

实际上,CQL可以通过在现有的深度Q学习和actor-critic实现上添加CQL正则化项来实现,代码量少于20行。

实验评估:

在多个领域和数据集组成上,CQL在离线RL方法方面表现优越,尤其是在学习复杂多模态数据分布时。CQL经常比现有的离线RL方法学到的策略获得2-5倍的最终回报。

  • Conservative Off-Policy Evaluation

在这部分中,作者讨论了如何通过在训练过程中对Q值进行正则化来学习保守的Q函数。这个保守的Q函数的期望值在给定策略下能够下界估计真实的策略值。作者的理论分析表明,CQL产生的值是当前策略的下界,并且可以将其纳入一个具有理论改进保证的策略学习过程中。

  • Conservative Q-Learning for Offline RL

在这部分中,作者讨论了CQL家族中的两个特殊实例,并在第6节中进行了实证评估。首先,如果R(µ)是与先验分布ρ(a|s)的KL散度,即R(µ) = -D_KL(µ, ρ),那么我们得到µ(a|s)∝ρ(a|s)·exp(Q(s, a))(请参考附录A中的推导)。此外,作者还讨论了CQL的实证性能以及与其他离线RL方法的比较。

  • Safe Policy Improvement Guarantees

在这部分中,作者定义了任何策略π的经验回报,然后证明了CQL优化了一个带有惩罚的RL经验目标。接下来,作者构建了CQL的安全策略改进保证,证明了CQL在实际MDP中提供了ζ安全的策略改进。最后,作者讨论了CQL在不同场景下的实证性能以及与其他离线RL方法的比较。

实用算法及实现细节

  1. 算法:CQL可以作为Q-learning算法(使用B * 而不是B π 在方程3,4中)或作为actor-critic算法。实际上,CQL通过在标准Bellman误差目标中添加一个简单的Q值正则化器来实现,这在现有的深度Q学习和actor-critic实现上很容易实现。
  2. 实现细节:CQL的实现只需在现有的软actor-critic(SAC)实现的基础上添加20行代码,以及在QR-DQN实现的基础上添加20行代码。权衡因子α通过Lagrangian对偶梯度下降进行自动调整,对于离散控制,α固定在附录F中描述的常数值。
  3. 超参数设置:除了策略学习率选择为3e-5(与Q函数的学习率相比,后者为3e-4或1e-4)之外,其他超参数与SAC相同。
  4. CQL变体:CQL可以实例化为不同的优化问题,例如CQL(H)和CQL(ρ)。实验证明,CQL在不同的任务上表现出色,尤其是在学习复杂和多模态数据分布时,往往比现有的离线RL方法高出2倍至5倍的最终回报。

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

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

相关文章

数字化浪潮下,制造业如何乘势而上实现精益生产

随着数字化技术的迅猛发展,制造业正迎来前所未有的变革机遇。本文将探讨如何利用数字化手段助推制造业实现精益生产,从而在激烈的市场竞争中脱颖而出。 1、构建智能化生产系统 借助物联网技术,实现设备之间的互联互通,构建智能化…

CODEFORCES --- 1676A. Lucky?

1676A. Lucky? 彩票是由六位数字组成的字符串。如果前三位数字之和等于后三位数字之和,则视为幸运彩票。给定一张彩票,输出它是否幸运。请注意,彩票可以有前导零。 输入 输入的第一行包含一个整数 t ( 1≤t≤103 ) - 测试用例的数量。 每…

腾讯云云原生数据库TDSQL-C mysql 以及项目怎么接入

要接入腾讯云的云原生数据库TDSQL-C的MySQL版本,并将它用于你的项目中,你需要按照以下步骤进行: 创建TDSQL-C的MySQL数据库实例: 登录腾讯云控制台。在产品搜索框中搜索TDSQL-C,然后选择它。在TDSQL-C的产品页面上&…

【爬虫】在Scrapy中配置随机User-Agent中间件

祝福这个快要漫出来的杯子吧,让杯里的水变得金光灿烂地流出,把反映你的喜悦的光送往各处! 🎵 罗老师《查拉图斯特拉的前言_漾水》 在网络爬虫开发中,合理使用User-Agent(UA)是绕过服务…

Linux函数学习 select

1、Linux select 函数 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); nfds 最大文件fd 1 readfds 监听可读文件集合fd writefds 监听可写文件集合fd exceptfd 监听异常文件集…

数据结构--循环链表

一.循环链表的设计 1.循环链表的结构设计: typedef struct CNode{ int data; struct CNode* next; }CNode ,*CList; 2.循环链表的示意图: 3.循环链表和单链表的区别: 唯一区别,没有空指针,尾节点的后继为头,为循环之意. 二.循环链表的实现 //初始化free(q);return true; …

Pandas的测试关键词云

文章目录 前言一、pandas是什么? 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学…

git 拉取项目时切换账号密码

一般拉取线上代码的先 1.git clone 2.在输入用户名 3.输入密码 等三步操作,这样子太麻烦了 直接一步操作 git clone http://用户名:密码地址 1 例子 如果你用户叫123xxx 密码是mypassword 地址是git.xxx.com/www.git git clone http://123xxx:mypasswordgit.xxx.com/www.git注…

Spring boot 入门 ---(一),2024年最新java进阶训练营

spring-snapshots http://repo.spring.io/snapshot spring-milestones http://repo.spring.io/milestone spring-boot-starter-parent是使用Spring Boot的一种不错的方式,但它 并不总是最合适的。有时你可能需要继承一个不同的父POM,或只是不喜欢我…

集成sharding-jdbc实现分库分表

集成sharding-jdbc实现分库分表 sharding-jdbc是由当当捐入给apache的一款分布式数据库中间件&#xff0c;支持垂直分库、垂直分表、水平分库、水平分表、读写分离、分布式事务和高可用等相关功能。 1、ruoyi-framework\pom.xml模块添加sharding-jdbc整合依赖 <!-- shard…

自己写的组件中使用v-model双向绑定

这里的时间选择表单是我写的一个组件&#xff0c;我想用v-model获取到实时的ref值。 代码&#xff1a; //父组件<TimePickerModal v-model:value"time" label-text"计划客面时间" /> const time ref(2024-04-09 15:20:00);//子组件<template>…

基于Springboot中小企业设备管理系统设计与实现(论文+源码)_kaic

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…

题目:画图,学用rectangle画方形。

题目&#xff1a;画图&#xff0c;学用rectangle画方形。    There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about bei…

Open CASCADE学习|求曲面的参数空间

在三维空间中&#xff0c;任意的曲面都可以通过特定的方法映射到一个二维参数平面上&#xff0c;从而对其进行详细的几何分析和处理。首先&#xff0c;我们需要从三维模型中提取出特定的曲面&#xff0c;这通常被称为“Face”。一个face可以被视为三维空间中的一个封闭区域&…

竞赛升温,量子革命待发

人工智能已经吸引了全球企业巨头和政界领袖的广泛关注。同时&#xff0c;一场激烈的全球竞赛正在展开&#xff0c;目标是开发被许多专家视为下一个领域革命性技术的量子计算。 量子计算机利用量子物理学的原理&#xff0c;有潜力推动包括药物研究、股票市场分析以及数据加密在内…

Celery使用异步、定时任务使用

一、什么是Celery 1.1、celery是什么 Celery是一个简单、灵活且可靠的&#xff0c;处理大量消息的分布式系统&#xff0c;专注于实时处理的异步任务队列&#xff0c;同时也支持任务调度。 Celery的架构由三部分组成&#xff0c;消息中间件&#xff08;message broker&#xf…

虚拟化性能计数器需要至少一个可正常使用的计数器

VMware 虚拟机报错&#xff1a;虚拟化性能计数器需要至少一个可正常使用的计数器。 截图如下&#xff1a; 解决方式参考下图操作即可

<网络> 网络Socket编程基于TCP协议模拟简易网络通信

目录​​​​​​​ 前言&#xff1a; 一、字符串回响 &#xff08;一&#xff09;程序结构 &#xff08;二&#xff09;初始化服务器 &#xff08;三&#xff09;启动服务器 1. 处理连接请求 2. 业务处理 3. 回调函数 &#xff08;四&#xff09;填充server源文件 &…

语音情感识别调研

语音情感识别调研 1、情绪识别综述2、语音情感识别算法3、语音特征提取4、相关项目1、用 LSTM、CNN、SVM、MLP 进行语音情感识别2、DST&#xff1a;基于Transformer的可变形语音情感识别模型3、语音情感基座模型emotion2vec4、IEEE ICME 2023论文&#xff5c;基于交互式注意力的…

一体式I/O模块与RS485串口联动,实现工业网络无缝对接

在现代工业自动化领域中&#xff0c;一体化I/O模块和RS485串口的联动应用已经成为实现工业设备高效、稳定通信的关键技术手段之一。这种联动机制能够有效地将各种现场设备的数据实时、准确地传输到上位机系统&#xff0c;从而实现工业网络的无缝对接。 一体化I/O模块&#xff…