离线强化学习(Offline RL)系列7: (状态处理) OfflineRL中的状态空间的数据增强(7种增强方案)

2023-11-11

S4RL: Surprisingly Simple Self-Supervision for Offline Reinforcement Learning in Robotics

Arxiv原文:S4RL: Surprisingly Simple Self-Supervision for Offline Reinforcement Learning in Robotics

本文是由多伦多大学、斯坦福大学和Nvidia三家合作完成的工作,发表在5th Conference on Robot Learning (CoRL2021)会议上。

现有的OfflineRL存在(1)对训练数据集过度拟合;(2)在部署时表现出对环境的分布外(OOD)泛化能力差的问题,本篇论文作者研究了在 状态空间上执行数据增强 的有效性,并通过7种不同的增强方案在OfflineRL环境环境中进行了实验。结果不表明使用 S4RL(简单自我监督技术, Surprisingly Simple Self-Supervision in RL) 可以显着改进离线机器人学习环境中的效果。

当前的offline model-free强化学习算法包括学习 Q Q Q 函数,其中训练参数化神经网络以从数据中学习状态动作值。 这一系列算法高估了与所使用的离线数据集不同分布的数据的真实状态-动作值。 除了高估误差外,另一个误差来源是神经网络的函数逼近,通常用于参数化 Q Q Q 函数。 由于在训练期间状态-动作分布是静态的,因此神经网络可能会过度拟合数据,从而在部署到实际环境时进一步导致泛化能力差。 为了阻止神经网络中的过度拟合,可以利用数据增来解决。

流行的actor-critic算法中,例如Soft Actor Critic (SAC),在从离线数据集学习时往往表现不佳,因为它们由于高估偏差(overestimate)而无法推广到分布外 (OOD) 数据: Critic高估了以前从收集的数据中没有遇到的状态-动作对的值,会导致了一个脆弱策略(brittle policy)。

1. Representation Learning in RL

一系列的研究表明,使用表示学习对强化学习的特征提取帮助非常大。

表示学习(Representation Learning) 的目的是对复杂的原始数据化繁为简,把原始数据的无效的或者冗余的信息剔除,把有效信息进行提炼,形成特征(feature),这个2013年的时候Yoshua Bengio就写了一篇综述Representation Learning: A Review and New
Perspectives
, 它和特征工程的区别如下:

Image

而将表示学习与RL结合起来,它的结构如下

参考自:https://zhuanlan.zhihu.com/p/112849395

其中最重要的为中间这一部分,即理解特征(PS:强化学习中状态空间过大,特别是无用的特征对算法的收敛也会造成影响,导致算法的收敛、稳定性差)这一层。

本文中作者介绍的数据增强(Data Augementation)主要在状态的提取和策略生成这一层,从图中可以看到直接从Offline Dataset中进行提取数据,通过了 T 1 ( s t ) T_{1}(s_{t}) T1(st) T 2 ( s t ) T_{2}(s_{t}) T2(st)两种方式。然后通过状态空间中的局部扰动具有相似的 Q Q Q 值进行估计,使用增强状态来计算 Q Q Q 值和目标值,以更好地逼近 Q Q Q 网络的函数。

它和传统的RL的区别可以用下图表示,作者特意说: 使用数据增强,能够平滑数据集 s t s_{t} st 中观察值周围的局部状态空间。, 所以核心点就是 *smoothening the state space

而作者这里在的DrQ算法(通过鼓励州周围的局部点具有相似的 Q 值,这有助于在训练期间结合数据增强和学习更好的价值函数。)基础上进行数据增强

DrQ(Data-regularized Q,)算法,是由纽约大学的Ilya Kostrikov提出的Image Augmentation Is All You Need: Regularizing Deep Reinforcement Learning from Pixels, 主要讲述了”在输入数据的层面对强化学习算法作数据增广,就可以达到 CURL 使用 contrastive learning 进行学习的方法的性能。CURL在学习中使用 negative 样本的过程其实也用到了数据增广,只不过 DrQ 直接将这一过程放在了神经网络的数据层面,而非特征学习的层面。通过简单的数据增广可以在很大程度上提升性能。在 RL 中的数据增广基于一个假设,在输入 state 层面进行微弱变化之后的 state 和原有的 state 拥有类似的 value function 估计。“,数学表示为:
Q ( s , a ) = Q ( f ( s , ν ) , a )  for all  s ∈ S , a ∈ A  and  ν ∈ T Q(s, a)=Q(f(s, \nu), a) \text { for all } s \in \mathcal{S}, a \in \mathcal{A} \text { and } \nu \in \mathcal{T} Q(s,a)=Q(f(s,ν),a) for all sS,aA and νT

Image

具体关于DrQ的内容可以看这篇把博客Image Augmentation Is All You Need, 下面我们继续本文。

2. Data augmentation transformation

我们将数据增强的转换过程定义为:
T ( s ~ t ∣ s t )  where  s t ∼ D \mathcal{T}\left(\tilde{s}_{t} \mid s_{t}\right) \text { where } s_{t} \sim \mathcal{D} T(s~tst) where stD

这里的 s ~ t \tilde{s}_{t} s~t 表示增强状态,而 T \mathcal{T} T 表示一个随机转换, 作者通过使用对比学习将同一状态的两个增强表示“拉”向彼此,同时将两个不同的状态表示“推”开。

在这里作者同样类似于DrQ算法: 对给定状态执行多次增强,并且我们简单地对状态的不同增强中的状态-动作值和目标值进行平均, 数学表示为:

min ⁡ Q E s t , a t ∼ D [ r t + γ 1 i ∑ i Q ( T i ( s ~ t + 1 ∣ s t + 1 ) , a t + 1 ) − 1 i ∑ i Q ( T i ( s ~ t ∣ s t ) , a t ) ] \min _{Q} \underset{s_{t}, a_{t} \sim \mathcal{D}}{\mathbb{E}}\left[r_{t}+\gamma \frac{1}{i} \sum_{i} Q\left(\mathcal{T}_{i}\left(\tilde{s}_{t+1} \mid s_{t+1}\right), a_{t+1}\right)-\frac{1}{i} \sum_{i} Q\left(\mathcal{T}_{i}\left(\tilde{s}_{t} \mid s_{t}\right), a_{t}\right)\right] Qminst,atDE[rt+γi1iQ(Ti(s~t+1st+1),at+1)i1iQ(Ti(s~tst),at)]

Image

接下来我们继续看看是如何数据增强的,作者这里提出了7种不同的数据增强方法。
七种数据增强方法

作者通过Offline RL 中两种常见的CQL 离线强化学习(Offline RL)系列3: (算法篇) CQL 算法详解与实现BRAC 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)算法进行了对比实验,结果如下:

参考文献:

[1]. Samarth Sinha, Ajay Mandlekar, Animesh Garg: “S4RL: Surprisingly Simple Self-Supervision for Offline Reinforcement Learning”, 2021; arXiv:2103.06326.

[2]. Ilya Kostrikov, Denis Yarats, Rob Fergus: “Image Augmentation Is All You Need: Regularizing Deep Reinforcement Learning from Pixels”, 2020; arXiv:2004.13649.


OfflineRL推荐阅读

离线强化学习(Offline RL)系列6: (采样效率) OfflineRL中的样本选择策略
离线强化学习(Offline RL)系列5: (模型参数) 离线强化学习中的超参数选择
离线强化学习(Offline RL)系列4:(数据集) 经验样本复杂度对模型收敛的影响分析
离线强化学习(Offline RL)系列4:(数据集)Offline数据集特征及对离线强化学习算法的影响
离线强化学习(Offline RL)系列3: (算法篇) AWAC算法详解与实现
离线强化学习(Offline RL)系列3: (算法篇) AWR(Advantage-Weighted Regression)算法详解与实现
离线强化学习(Offline RL)系列3: (算法篇) Onestep 算法详解与实现
离线强化学习(Offline RL)系列3: (算法篇) IQL(Implicit Q-learning)算法详解与实现
离线强化学习(Offline RL)系列3: (算法篇) CQL 算法详解与实现
离线强化学习(Offline RL)系列3: (算法篇) TD3+BC 算法详解与实现(经验篇)
离线强化学习(Offline RL)系列3: (算法篇) REM(Random Ensemble Mixture)算法详解与实现
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BEAR算法原理详解与实现
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BCQ算法详解与实现
离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
离线强化学习(Offline RL)系列1:离线强化学习原理入门

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

离线强化学习(Offline RL)系列7: (状态处理) OfflineRL中的状态空间的数据增强(7种增强方案) 的相关文章

随机推荐

  • halcon之Blob分析实战

    Blob分析 Blob Analysis 在计算机视觉中的Blob是指图像中的具有相似颜色 纹理等特征所组成的一块连通区域 Blob分析 Blob Analysis 是对图像中相同像素的连通域进行分析 该连通域称为Blob 其过程其实就是将
  • 【数据结构】栈

    文章目录 1 栈的概念及结构 2 栈的实现 2 1栈的实现思路 2 2概念理解题 2 3栈的结构体定义 2 4函数接口 功能 2 5头文件Stack h 2 6函数实现Stack c 2 7测试函数Test c 2 8有效的括号 利用栈实现
  • Oracl之动态Sql编写总结

    一 概述 在通常的sql操作中 sql语句基本上都是固定的 如 SELECT t empno t ename FROM scott emp t WHERE t deptno 20 但有的时候 从应用的需要或程序的编写出发 都可能需要用到动态
  • 【抽样技术】CH2 简单随机抽样补充——比率估计与回归估计

    目录 一 概述 1 问题的提出 2 比率估计与回归估计的作用和使用条件 3 辅助变量的特点 4 相关符号 二 比率估计量 编辑 编辑 1 问题的提出 2 定义 3 比估计与简单估计的比较 4 比率估计的思想 5 比率估计量及其性质 1 引理
  • 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。

    import java util Arrays 问题 顺时针螺旋输出数组 题目特征 保持一种模式前进 遇到一定条件转换另一种模式前进 思路 用一个二维数组来不同取值来控制前进 设置变动的边界为改变的条件 public class Test1
  • [1160]ModuleNotFoundError: No module named setuptools_rust

    报错信息 Traceback most recent call last File line 1 in File tmp pip build my9sai1o cryptography setup py line 14 in from se
  • 复现iis 文件解析漏洞

    1 开启IIS服务 开始 管理工具 Internet信息服务 IIS 管理器 2 点击Internet信息服务 IIS 管理器 查看自己web网站中的文件和IIS服务的开始 停止 暂停按钮 查看IIS服务是否开启 若未开启请开启 HLY 本
  • 如何查看某个端口被占用

    查看8080端口是否被占用可以使用如下命令 Windows netstat ano find 8080 Linux netstat ano grep 8080 netstat命令详解 Netstat用于显示与IP TCP UDP和ICMP协
  • IPFS: NAT traversal(NAT穿越)

    IPFS是一个p2p网络 那么一定绕不开的一个问题就是NAT穿越 之前的文章里面也提到过IPFS网络连通性使用的ICE NAT穿越框架 本文简单介绍一下什么是NAT 为什么有NAT技术 NAT主要用来缓解全球的IPv4地址不够用的情况 IP
  • springboot整合rabbitMq(未完成)

    1 下载安装如下软件 erlang语言和rabbitmq服务 2 配置环境变量 erl安装目录 bin rabbit安装目录 sbin 3 安装插件 打开cmd窗口 进入sbin的cmd窗口 输入rabbitmq plugins enabl
  • python3 学习笔记(三):函数与模块

    python3 学习笔记 python 优雅 明确 简单 函数与模块 1 函数 组织好的 可重复使用的 用来实现某一功能的代码段 1 定义 def function x pass 其中 def为关键字 function 为函数名 x为形参
  • C语言基础知识--weak关键字

    目录 一 C语言弱函数定义 weak关键字 1 weak关键字简介 2 weak关键字使用示例 二 总结 一 C语言弱函数定义 weak关键字 1 weak关键字简介 使用 attribute weak 修饰函数 告诉编译器此函数为同名函数
  • 修改服务器404页面,Apache服务器404页面设置具体步骤

    在网站运营过程中 由于某些原因有时候要对网页进行删除 也就意味以后用户或者用户访问删除页面都是访问不了的 如果用户和搜索引擎访问错误页面返回值不是404的话 那么就很不友好 大大增加跳出率 404页面就是引导用户从错误的页面访问到正确的页面
  • 经典算法题收集一

    1 题目一 有 n个人围成一圈 顺序排号 从第一个人开始报数 从 1 到 3 报数 凡报到 3 的人退出圈子 问最后留下的是原来第几号的那位 其实这是一个约瑟夫环问题 这个问题最本质其实就是循环链表的问题 围成一个圈之后 报数即是循环链表的
  • Oracle小数连接字符串时开头的0不见的问题

    小数在连接成字符串的时候 如果小数的开头是0 几的话 前面的 0 会被省略掉 在excel中也有这个特点 具体是为什么不清楚 如 select 0 8 from dual 结果 8 可以用下面的方式避免 防止导致查询到的最终结果不合适 se
  • leetcode分类刷题:基于数组的双指针(四、小的移动)

    leetcode上有些题是真的太难了 正常读题之后完全想不到要用双指针来求解 本次博客总结的题目是双指针初始时位于数组两端 哪个元素小就移动哪个指针 11 盛最多水的容器 1 这道题放在42 接雨水的相似题目里 可能是因为它们都有相似的双指
  • Android 10.0系统启动之init进程-[Android取经之路]

    原文链接 https blog csdn net yiranfeng article details 103549394 摘要 init进程是linux系统中用户空间的第一个进程 进程号为1 当bootloader启动后 启动kernel
  • CTFshow 击剑杯 部分WP

    摆烂了摆烂了 太难了 聪明的师傅已经组队打起月赛了 试试能不能苟住前5 苟住了 复现的后面再补充吧 文章目录 1 Misc 中文识别带师 2 Web 简单的验证码 easyPOP 3 Pwn pwn01 My sword is ready
  • FOX算法的MPI实现

    算法描述如下 将待相乘的矩阵A和B分成p个方块Ai j和Bi j 0 j i p 1 每块大小为 n p n p 并将他们分配给 p p 个处理器 开始时处理器Pi j存放有Ai j和Bi j 并负责计算块Ci j 然后Fox算法执行以下
  • 离线强化学习(Offline RL)系列7: (状态处理) OfflineRL中的状态空间的数据增强(7种增强方案)

    Arxiv原文 S4RL Surprisingly Simple Self Supervision for Offline Reinforcement Learning in Robotics 本文是由多伦多大学 斯坦福大学和Nvidia三