【强化学习论文】离线元强化学习中基于对比学习的稳定表示

news2024/11/20 20:18:57

离线元强化学习中基于对比学习的稳定表示

  • 最近几年来深度强化学习在算法上有很多进展,已初步用在很多场景中。目前深度强化学习有两个重要的问题:数据利用问题,泛化能力。深度强化学习通常要与环境进行大量的交互,通常效率较低,采样不太安全。并且训练一个智能体只能完成单一任务,学到的策略并不能泛化到其他任务,也不能适应环境本身的变化。

  • 对于采样效率低的问题,离线强化学习是一种通过事先采集好的数据中训练的方式。其中,离线策略的方法,怎样利用由其他策略采集的数据来评估和提升当前策略,为离线强化学习奠定了基础。近几年,batch RL(完全离线的强化学习)则是研究仅使用固定的一些数据集怎样学到最好的策略。现有的方法解决了离线训练测试当中分布偏移的问题,以及对Q函数值函数高估的问题。

在这里插入图片描述

  • 元强化学习是提升智能体在不同任务上泛化能力的一种方式,它通过在一个任务的分布上进行训练来学习怎样快速适应一个没有见过的新任务,元强化学习的研究主要有两类方法,第一类:基于上下文的方法。将任务的变化看作环境中隐藏的变量,对历史的信息进行编码,将历史的编码和当前的环境状态放在一起作为当前观测,从而把元强化学习问题转换为部分观测的强化学习问题。第二类基于梯度的方法,在所有任务上学习一个共享的策略参数的初始化,这个初始化使得它在每个新任务上只要做几步的梯度更新,就能够得到一个适应这个新任务的策略。

  • 在这里插入图片描述

  • 我们研究的叫做离线元强化学习,是结合离线强化学习和元强化学习的一类问题。首先,它能够利用在许多任务上,Behavior policies行为策略(其他的策略)采集数据,仅通过这些离线数据学习策略,它能够泛化到一些新的测试任务上。定义不同任务为:不同任务之间的奖励函数以及环境的状态转移函数有区别。
    在这里插入图片描述
    那么在训练的时候,对于每一个任务,都可以从离线的数据集中抽取一些样本来作为这个任务的上下文,然后智能体可以基于上下文在离线的数据集上进行学习。
    在测试的过程中,首先,我们可以有一个探索的策略,然后从测试的新环境中采集少量的数据作为新环境的上下文,智能体要基于新环境的上下文快速得到一个适应新任务的策略去解决这个新任务。

  • 我们发现在训练和测试的过程中,上下文的分布是存在差异的,因为训练的时候上下文是从离线的数据集中采样得到的,分布是由任务本身和采集数据的行为策略来决定的。而在测试中,上下文的分布是由任务和探索策略来决定的。

  • 当行为策略与探索策略不同时,任务上下文的分布从训练到测试就存在偏差,这种偏差就会使得训练的智能体在测试的时候无法准确的识别和适应新任务。
    在这里插入图片描述

  • 这篇2020的文章给出了一个比较直观的图片例子,每一个任务里面智能体都要从出发的起点走到一个目标的位置,不同的任务目标位置是不一样的,在左边这个训练过程中,由于每个任务对应的行为策略都不一样,最终导致了智能体把行为策略走过的路径与最终信息关联起来,并且忽视了真正和任务相关的奖励函数等的信息。学到这样的策略在测试的时候,如果探索策略走过的是这个绿色的路径,虽然这个任务真实的位置是左边的位置,但是智能体由于训练和测试的分布偏差导致了推断的任务位置在如图右边,就导致无法正确完成和测试这个测试的任务。

在这里插入图片描述

  • 对于离线元强化学习问题近几年有些研究。

  • 其中有些方法将基于上下文的元强化学习方法扩展到离线元强化学习,它们很难解决测试时上下文偏移这样的问题
    在这里插入图片描述

  • 有另一些基于上下文的方法,它们试图解决这样的分布偏移的问题,但他们有的方法需要访问所有任务上的奖励函数的信息作为监督,还有些方法需要在真实环境中做一些额外的探索来解决探索策略之间的gap.
    在这里插入图片描述

  • 我们提出CORRO来解决分布偏移的问题,首先这个框架是一个基于上下文的框架,所谓的上下文即从环境中采集的一条轨迹,轨迹中包含了从1到k时间步的环境的状态转移的信息。然后有一个转移样本的编码器,它把上下文中每一个转移的样本编码成一个向量 Z t Z_t Zt。然后有一个聚合模块将上下文中所有的编码聚合为一个向量Z作为从上下文中抽取的任务的表示,智能体中的策略和Q函数这些模块会将提取的任务表示Z和环境当前的状态共同作为输入来进行决策。这些模块都可以在离线数据集上通过离线强化学习算法进行训练。为了使任务编码器对上下文之间的任务编码更加稳定,我们提出用对比学习的方法来训练这个转移编码器,还提出了一些方法来解决对比学习中生成负样本的问题。这个是我们最终整个模型的框架,转移编码器是通过对比学习进行预训练来得到一个稳定的编码表示,之后的聚合模块和训练模块合在一起可以通过任意的离线强化学习算法进行训练,实验中我们统一使用SAC算法。
    在这里插入图片描述

  • 对于这个转移编码器,我们通过最大化互信息来定义编码器的优化目标。转移样本的编码和任务之间的互信息定义为如下公式:
    -在这里插入图片描述

  • 为什么要用最大化互信息这样一个目标呢?因为这个目标要求了学习出的表示z能够尽可能多的包这个任务M相关的信息,最小化和任务M无关的信息,这个无关信息就包括行为策略和采集上下文的探索策略对样本造成的影响。但问题是直接算这个互信息的值它是不可解的目标。
    在这里插入图片描述

  • 我们通过推导一个下界来给出具体的优化方法,在推导的表达上做了一些数学上的定义。首先把转移编码器定义成一个概率编码器,对于输入一个转移记为x,基于x得到一个任务表示的条件概率分布,记h(x,z)这个函数表示基于z基于x的条件概率分布与z的先验概率分布的比值。最终推导出的互信息的目标的下界是如下公式。左边是任务表示和任务之间的互信息减去一个常数,右边是推出的下界。下界中log里面的分子项是h(x,z),其中x表示的是我们在服从一个任务分布的任务集合中取第一个任务,然后在第一个任务采集的离线数据集上采样的样本。在分母中,有许多 x ∗ x^* x x ∗ x^* x表示在其他的某一个任务 M ∗ M^* M上,所计算出的状态转移的样本。其中 x ∗ x^* x和分子的 x x x是共享同样的上一步的状态和动作对的。
    在这里插入图片描述

  • 在对比学习的框架下,我们用一个score function S S S来估算前面提到的这个概率的比值 h h h。并且我们通过采样的方法来从任务的方法上采样所有的任务,以及在数据中采样本,得到的这样的基于对比学习的优化目标,
    -在这里插入图片描述

  • 在最终这个可解的目标当中,S score function我们用的是余弦相似度,分子项z和z’表示从同一个任务Mi中采样的两个样本得到的两个样本的编码。分母项当中的z表示其他的任务M上采样的样本,这个样本和前面的z一样共享同样的上一步状态动作对。对这个最终的目标做一个直观的理解:为了去最大化对比学习的目标函数,转移编码器必须对同一个任务的两个样本提取更加接近的特征,对来自不同任务但是上一步具有同样状态动作对的样本,要从它们中抽取尽量多样的特征来反映出任务的不同。这样的话由于z 和z* 和z’,它们拥有同样的上一步状态动作对,那么编码器为了区分不同任务的样本,并且把同样任务靠近,它就必须捕获这个样本中与任务最相关的奖励和状态转移的差异。

  • 在这里插入图片描述

  • 有了这样的优化目标后,还存在一个问题即怎样生成负样本z*?因为计算z时需要在其他任务M上计算上一步状态动作下的转移结果。因为我们任务是离线的,在离线下所有任务的奖励函数和状态转移函数都是未知的。
    在这里插入图片描述

  • 设计了两种方法来生成负样本,让生成的负样本的分布尽可能接近优化目标当中从其他任务中采样得到的真实的目标分布。第一个方法是生成模型的方法。我们用在所有训练数据集上取并集,然后在所有数据上学习数据的分布,用这个数据的分布来近似目标的负样本的分布。然后我们在所有的数据上训练了一个CVAE,用它来作为生成负样本近似分布的模型。
    在这里插入图片描述

  • 采用生成模型的方法的好处是当我们的不同任务上的状态动作对的分布比较接近时,我们学习的数据分布其实是跟优化目标中负样本分布很接近的。它在不同任务上状态动作对分布差异大或者甚至没有交集的时候,生成模型就会直接退化成在每一个任务上确定性的预测的模型,在这种情况下,是不能生成足够多样的样本,会使得对比学习无法优化。
    在这里插入图片描述

  • 然后为了解决后面这种比较极端的问题,我们提出了第二种叫做奖励随机化的方法。这种方法只能在不同任务只是区别于有不同奖励函数这样的假设下的。对于这种情况直接对样本中的奖励函数加上一个噪声的扰动,然后用扰动之后的奖励来模拟从其他某些任务中采出的样本,尽管这种奖励随机化的方法并不能近似目标的负样本的分布,但好处能够生成更多多样化的样本来进行更好地对比表示学习。实验证明可以work.
    在这里插入图片描述

  • 最后是对于整个算法的实现,转移编码器是个多层的MLP,共享参数。聚合模块因为和策略模块一起训练,采用轻量化少参数的设计,来更加高效聚集不同时间步样本表示的关键信息,采用的是一种attention的做法,对所有探索的表示来学习一组权重,最后做一个带权的求和得到最终聚合的任务表示。在训练中,转移编码器是预训练的,聚合模块策略Q函数通过SAC离线训练。
    在这里插入图片描述

  • 最后在测试过程中,有一个任意的探索的策略,从新的任务中采样一条轨迹作为上下文,然后任务编码器将新任务的上下文进行编码,最后得到适应后的策略。

在这里插入图片描述

  • 我们在实验的部分主要验证在不同分布上学到的策略,对测试任务的泛化能力,第二是对测试任务的稳定性,对上下文分布偏移的适应能力,最后研究了怎样生成负样本的方法的问题。
    在这里插入图片描述
  • 基线:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Redis数据库 ---- 五种数据类型常用命令汇总

❤️ 作者简介:大家好我是小鱼干儿♛是一个热爱编程、热爱算法的大三学生,蓝桥杯国赛二等奖获得者🐟 个人主页 :https://blog.csdn.net/qq_52007481⭐ 个人社区:【小鱼干爱编程】 文章目录RedisRedis键(key)数据库相关…

Java面向对象:对象的概念及面向对象的三个基本特征

面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。…

element-ui 中 el-tree 和 el-table 样式调整

使用 el-tree 和 el-table 时&#xff0c;往往需要根据项目整体环境做一些样式调整&#xff0c;记录一下常用样式。 el-tree <!-- 树结构 --> <el-treeref"tree":data"data":props"defaultProps":default-expand-all"isExpanded&…

51单片机烟雾报警器mq2烟雾报警ADC0832采集实践制作DIY- GC0026-烟雾报警器

一、功能说明&#xff1a; 基于51单片机设计-烟雾报警器 功能介绍&#xff1a; STC89C52单片机&#xff08;AT89C51/52&#xff09;lcd1602adc0832mq2烟雾传感器蜂鸣器2个按键设定报警阈值 1.通过ADC0832采集MQ2烟雾输出的电压换算位烟雾浓度0~100 2.如果烟雾浓度超过设定…

机器学习9衡量线性回归法的指标,MSE,RMS,MAE

文章目录一、衡量线性回归法的指标&#xff0c;MSE,RMS,MAE1、MSE均方误差&#xff08;Mean Squared Error&#xff09;2、RSE均方误差&#xff08;Root Mean Squared Error&#xff09;3、平均绝对误差MAE&#xff08;Mean Absolute Error&#xff09;二、演示&#xff1a;三、…

清华、北大、中科大、UMA、MSU五位博士生畅聊深度学习理论

点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入&#xff01;伴随着深度学习的蓬勃发展&#xff0c;进入人们视线的好像都是算法或AlphaGo等应用层面的东西。但是在理论上&#xff0c;深度学习似乎却没有很出圈的相关理论。因此&#xff0c;部分人也在批评深度学习是缺乏理论…

易基因课程回顾|表观遗传学和表观育种在品种改良中的应用研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 传统作物育种包括杂交、选择所需性状的遗传变异&#xff0c;导致遗传基础缩窄和遗传多样性缺失&#xff0c;从而阻碍作物改良。表型性状受遗传学和表观遗传学影响&#xff0c;利用表观遗传…

简单个人网页设计作业 静态HTML个人主题网页作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页Dreamweaver设计作业

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

Spring框架(十二):实现日志功能通过SpringBean后处理器

实现日志功能通过SpringBean后处理器引子需求分析实现Log功能Spring Bean的后置处理器引子 痛定思痛&#xff0c;主要问题出现在自己雀氏不熟悉框架底层、一些面试题&#xff0c;以及sql的一些情况淡忘了。 本章节的开始是对于过去的重新回顾&#xff0c;当然&#xff0c;我也…

技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统

搭建 Linux 服务器监控的目的是防止以下现象&#xff1a;自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高&#xff0c;最终导致服务器卡死。 所以基于这个痛点&#xff0c;想知道当前的 CPU 和内存是多少。阿里云 ECS 控制台中也提供对服务…

【自适应滤波】基于FxLMS的样条自适应滤波算法分析(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

DockerCompose安装、使用及微服务部署实操

1 什么是DockerCompose DockerCompose是基于Compose文件帮助我们快速的部署分布式应用。 解决容器需手动一个个创建和运行的问题&#xff01; Compose文件本质上是一个文本文件&#xff0c;其通过指令定义集群中的每个容器如何运行。 我们可以将其看做是将多个docker run命令…

RTLinux的介绍

RTLinux RTLinux是由美国新墨西哥州的fsmlabs(finite state machine labs, 有限状态机实验室)公司开发的、利用linux开发的面向实时和嵌入式应用的操作系统。在rtlinux宣言中&#xff0c;这样描述rtlinux &#xff1a; rtlinux is the hard realtime variant of linux that mak…

基于LLVM的AFL分析

简介 Fuzzing是指通过构造测试输入&#xff0c;对软件进行大量测试来发现软件中的漏洞的一种模糊测试方法。当前大多数远程代码执行和特权提升等比较严重的漏洞都是使用Fuzzing技术挖掘的&#xff0c;Fuzzing技术被证明是当前鉴别软件安全问题方面最强大测试技术。 然而Fuzzin…

Linux Shell 脚本的10个高频面试问答

Linux 的浩瀚无垠&#xff0c;使人总能每次都提交与众不同的内容。这些内容不仅对他们的职业生涯很有用&#xff0c;同时也让他们增长知识。在此&#xff0c;我们就尝试这么去做&#xff0c;至于能取得多大的成功&#xff0c;就由我们的读者朋友们来判断吧。 在此&#xff0c;…

CopyOnWriteArrayList真的线程安全吗?

前几天刷博客时&#xff0c;无意中看到一篇名为《CopyOnWriteArrayList真的完全线程安全吗》博客。心中不禁泛起疑问&#xff0c;它就是线程安全的啊&#xff0c;难道还有啥特殊情况&#xff1f; 我们知道CopyOnWrite的核心思想正如其名&#xff1a;写时复制。在对数据有修改操…

只要背着电脑,他可以去任何地方

12月是微软全球开发者月&#xff0c;MSDN 微软开发者社区将在此期间推出特别专栏《技术狂旅》&#xff0c;解读这些技术狂热爱好者的个人经历&#xff0c;循着他们的人生旅程看到我们自己的影子&#xff0c;希望能带给你一些启发或激励&#xff0c;一起探寻自身更多的可能性。 …

Android三种数据存储的方式

文章目录Android数据存储技术持久化技术文件存储将数据存储到文件当中示例_将数据存储到文件当中示例_从文件当中读取数据SharedPreferences存储将数据存储到SharedPreferences1.Context类中getSharedPreferences()方法2.Activity类中的getSharedPreferences()方法往SharedPref…

html+css鼠标悬停发光按钮![HTML鼠标悬停的代码]使用HTML + CSS实现鼠标悬停的一些奇幻效果!

源码如下: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> <style> *{ /* 初始化 清除页面元素得内外边距 */ paddin…

【HTML期末作业】大学生抗疫感动专题网页设计作业 抗疫最美逆行者网页 致敬疫情感动人物网页设计制作

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…