NovelD: A Simple yet Effective Exploration Criterion论文笔记

NovelD:一种简单而有效的探索准则

1、Motivation

针对稀疏奖励环境下的智能体探索问题,许多工作中采用各种内在奖励(Intrinsic Reward)设计来指导困难探索环境中的探索 ,例如:

  • ICM:基于前向动力学模型的好奇心驱动探索
  • RND:基于随机网络蒸馏驱动的探索
  • Count-Based:基于伪计数驱动的探索

但是本文作者从实验中观察到,如果有多个感兴趣的区域,这些方法有时会很快使智能体被困在一个区域,而无法充分探索其他区域。

2、Introduction

算法使用轨迹中连续状态的NovelD,这个标准在探索和未探索区域之间的边界上提供了很大的内在奖励。

NovelD有以下几点优势:

  1. 几乎没有超参数
  2. 是一种单阶段方法,可以很容易地与任何策略学习方法(例如PPO)相结合
  3. NovelD是渐近一致的:在充分探索之后,它的IR会消失,而RIDE和AMIGo这样的方法则不会。
  4. 与基于计数的方法和RND相比,NovelD优先考虑未探索的边界状态,产生更有效和更广泛的探索模式。

3、方法

在本篇文章中,每一次执行动作后得到的reward表示为:
r t = r t e + α r t i r_t=r_t^e+\alpha r_t^i rt=rte+αrti
intrinsic reward被定义为:
r i ( s t , a t , s t + 1 ) = max ⁡ [ novelty ( s t + 1 ) − α ⋅ novelty ( s t ) , 0 ] r^i(\mathbf{s}_t,\mathbf{a}_t,\mathbf{s}_{t+1})=\max\left[\text{novelty}(\mathbf{s}_{t+1})-\alpha\cdot\text{novelty}(\mathbf{s}_t),0\right] ri(st,at,st+1)=max[novelty(st+1)αnovelty(st),0]
其中α是比例因子,定义一个被探索过的区域为:
{ s : n o v e l t y ( s ) ≤ m } \{\mathbf{s}:\mathrm{novelty}(\mathbf{s})\leq m\} {s:novelty(s)m}
当智能体的探索超过这个区域的边界时,NovelD会给予intrinsic reward。从公式(2)可以看出,当智能体从新状态转回熟悉的状态时,会截取IR以避免负IR。

从等式(2)可以看出,只有当智能体跨越边界时才会关系到IR,当st和st+1都是熟悉的或者陌生的状态时,它们的区别会很小。

但是简单的使用等式(1)会导致智能体在新状态st+1和旧状态st之间来回切换,对此NovelD设置了更为激进的限制:智能体只有在一个episode里第一次访问状态s时才会获得奖励。于是NovelD的intrinsic reward为:
r i ( s t , a t , s t + 1 ) = max ⁡ [ novelty ( s t + 1 ) − α ⋅ novelty ( s t ) , 0 ] ∗ I { N e ( s t + 1 ) = 1 } r^i(\mathbf{s}_t,\mathbf{a}_t,\mathbf{s}_{t+1})=\max\left[\text{novelty}(\mathbf{s}_{t+1})-\alpha\cdot\text{novelty}(\mathbf{s}_t),0\right]*\mathbb{I}\{N_e(\mathbf{s}_{t+1})=1\} ri(st,at,st+1)=max[novelty(st+1)αnovelty(st),0]I{Ne(st+1)=1}
Ne代表一个episode中的状态s的计数,每个episode会重置这个计数。而novelty算子是life-long的。

novelty使用RND方法来计算:
n o v e l t y ( s t ) = n o v e l t y ( s t ; w ) : = ∥ ϕ ( s t ) − ϕ w ′ ( s t ) ∥ 2 \mathrm{novelty}(\mathbf{s}_t)=\mathrm{novelty}(\mathbf{s}_t;\boldsymbol{w}):=\|\phi(\mathbf{s}_t)-\phi_{\boldsymbol{w}}^{\prime}(\mathbf{s}_t)\|_2 novelty(st)=novelty(st;w):=ϕ(st)ϕw(st)2
计算出st的novelty后,就对w执行一次更新来最小化novelty(st;w)。

NovelD是一个一致性算法,经过充分的探索,内在奖励收敛于0。

对于将intrinsic reward定义为:
∥ ψ ( s t ) − ψ ( s t + 1 ) ∥ \|\psi(\mathbf{s}_t)-\psi(\mathbf{s}_{t+1})\| ψ(st)ψ(st+1)
的方法,通常会面临渐进不一致性问题,这是因为在足够多的探索使ψ收敛后,由于神经网络无法完全拟合的特性,智能体总是可以获得非零IR,即当N—>∞时IR永远不—>0。因此,学习策略没有最大化外部奖励re,偏离了强化学习的目标。

但是NovelD方法是渐进一致的。

4、实验

1、对于所有实验,使用PPO作为基础RL算法,同时将NovelD与其他各种生成intrinsic reward的方法进行比较。

在实验的一半任务中,所有的基线结果都是零奖励。在《NetHack》中,NovelD取得了SOTA。

实验主要使用MiniGird中的三个具有挑战性的环境:多房间(MR),关键走廊(KC)和受阻迷宫(OM)。

在这里插入图片描述

可以从图中看到,NovelD设法解决了MiniGrid中的所有静态环境。相比之下,所有的基线只能解决中等水平的任务,而不能在更困难的任务上取得任何进展。

2、仅在环境中使用IR进行探索(无外部奖励),NovelD导致了更集中的边界探索和更广泛的状态覆盖。

为了研究NovelD是否在MiniGrid中产生更广泛的状态覆盖,实验在一个固定的MRN7S8环境中测试了NovelD和RND。同时,定义了两个指标来衡量勘探策略的有效性:

  1. 每个状态的探视次数都超过训练次数

  2. 每个房间的访问熵:
    H ( ρ ′ ( s ) ) where  ρ ′ ( s ) = N ( s ) ∑ s ∈ S r N ( s ) \mathcal{H}(\rho'(\mathbf s))\text{ where }\rho'(\mathbf s)=\frac{N(\mathbf s)}{\sum_{\mathbf s\in\mathcal{S}_r}N(\mathbf s)} H(ρ(s)) where ρ(s)=sSrN(s)N(s)

实验结果显示,NovelD的每个房间熵分布大于RND。这表明与RND相比,NovelD鼓励对状态进行更统一的探索。

实验说明,当两个房间之间的门成为探索的瓶颈时,NovelD的IR专注于解决这个问题。

3、消融实验

文章设计实验寻找最佳的比例和裁剪系数,公式:
r i ( s t , a t , s t + 1 ) = max ⁡ [ novelty ( s t + 1 ) − α ⋅ novelty ( s t ) , β ] r^i(\mathbf{s}_t,\mathbf{a}_t,\mathbf{s}_{t+1})=\max\left[\text{novelty}(\mathbf{s}_{t+1})-\alpha\cdot\text{novelty}(\mathbf{s}_t),\beta\right] ri(st,at,st+1)=max[novelty(st+1)αnovelty(st),β]
实验得出当α=0.5,β=0时效果最好。

文章设计实验验证不同特征提取方式对NovelD效果的影响,分别有:ICM、Random、DBC以及Successor Features。最终发现只有Random和Successor Features表现得还不错。

5、结论

NovelD方法也适用于随机环境,虽然到达随机环境的边界本身是一个难题,但通过在边界状态上设置高IR并使用RL算法训练代理,策略将更频繁地到达这些边界状态。

NovelD方法由于采用RND方法来进行新颖性度量,所以对于白噪声问题有一定的缓解,而实验也表明在《MiniGrid》、《Atari Games》和《NetHack》中,都没有看到由于电视噪音问题导致的NovelD的性能下降。

在多种环境中,NovelD显示了更广泛的状态覆盖,并将IR的重点放在边界状态上。

6、留存的问题

没有在一些连续RL领域测试NovelD的性能。

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

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

相关文章

CCF编程能力等级认证GESP—C++1级—样题1

CCF编程能力等级认证GESP—C1级—样题1 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)第一题第二题 参考答案单选题判断题编程题1编程题2 单选题&#xf…

Linux文件系统

1.基础IO (1)文件操作 在C语言中,用来进行文件操作的函数有很多,比如: 所谓文件操作,简而言之就是通过语言层面向系统层面进行函数调用,命令操作系统为在磁盘上为其创建文件,那么这些…

企业级源代码安全审计咨询案例

代码审计网专家服务团队,除了提供网络、现场的源代码审计服务外,为了帮助企业建立代码审计服务平台、代码扫描基线、安全和质量编码规范、制度流程,打通企业研发的各个管理环节,实现自动化等企业级源代码安全审计咨询服务。 企业要…

react Antd3以下实现年份选择器 YearPicker

项目antd版本低,没有直接可使用的年份选择器,参考此篇(使用antd实现年份选择器控件 - 掘金) 一开始在state里设置了time: this.state {isopen: false,time: null } 在类似onChange事件里this.setState({time: valu…

一文搞懂Transformer

近期Transformer系列模型的出现,增加了CV领域的多样性。但是Transformer这一不同领域的模型对学习者来说需要一个细致的学习过程.下面就是本菜鸟总结学习路线。 Transformer是基于attention机制。而attention机制又在Encoder、Decode中。本篇博客将从Attention->…

短视频短剧小程序系统:创新的内容传播与互动体验

随着移动互联网的普及和用户消费习惯的改变,短视频短剧小程序系统逐渐成为内容传播和互动体验的新宠。这种小程序系统以短视频和短剧为主要内容形式,通过创新的内容传播和互动体验,为用户提供了一种全新的娱乐和社交方式。本文将详细介绍短视…

C# Onnx 轻量实时的M-LSD直线检测

目录 介绍 效果 效果1 效果2 效果3 效果4 模型信息 项目 代码 下载 其他 介绍 github地址:https://github.com/navervision/mlsd M-LSD: Towards Light-weight and Real-time Line Segment Detection Official Tensorflow implementation of "M-…

使用 maven 自动将源码打包并发布

maven-source-plugin 作用&#xff1a; 在构建过程中将项目的源代码进行打包&#xff0c;并作为一个jar文件附着在主构件上&#xff0c;在 pom.xml 中添加如下内容&#xff0c;使用 maven 生成 jar 的同时生成 sources 包 在 pom 中配置如下&#xff1a; <build><p…

Hive 查询优化

Hive 查询优化 -- 本地 set mapreduce.framework.namelocal; set hive.exec.mode.local.autotrue; set mapperd.job.trackerlocal; -- yarn set mapreduce.framework.nameyarn; set hive.exec.mode.local.autofalse; set mapperd.job.trackeryarn-- 向量模式 set hive.vectori…

最小二乘法及参数辨识

文章目录 一、最小二乘法1.1 定义1.2 SISO系统运用最小二乘估计进行辨识1.3 几何解释1.4 最小二乘法性质 二、加权最小二乘法三、递推最小二乘法四、增广最小二乘法 一、最小二乘法 1.1 定义 1974年高斯提出的最小二乘法的基本原理是未知量的最可能值是使各项实际观测值和计算…

[数据结构]—带头双向循环链表——超详解

&#x1f493;作者简介&#x1f389;&#xff1a;在校大二迷茫大学生 &#x1f496;个人主页&#x1f389;&#xff1a;小李很执着 &#x1f497;系列专栏&#x1f389;&#xff1a;数据结构 每日分享✨&#xff1a;旅行是为了迷路&#xff0c;迷路是为了遇上美好❣️❣️❣️ …

XoT:一种新的大语言模型的提示技术

这是微软在11月最新发布的一篇论文&#xff0c;题为“Everything of Thoughts: Defying the Law of Penrose Triangle for Thought Generation”&#xff0c;介绍了一种名为XOT的提示技术&#xff0c;它增强了像GPT-3和GPT-4这样的大型语言模型(llm)解决复杂问题的潜力。 当前提…

Spring底层原理学习笔记--第九讲--(aop之ajc增强)

AOP实现之ajc编译器 AOP的另一种实现及原理 A10Application.java package com.lucifer.itheima.a10;import com.lucifer.itheima.a10.service.MyService; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframewor…

如何让组织的KPI成为敏捷转型的推手而不是杀手 | IDCF

作者&#xff1a;IDCF学员 伍雪锋 某知名通讯公司首席敏捷教练&#xff0c;DevOps布道者。2020年到2021年小100人团队从0-1初步完成敏捷转型&#xff0c;专注传统制造业的IT转型&#xff0c;研发效能提升。 一、前言 在公司我们常常听见这么一个流传的故事&#xff0c;只要…

HCIA-经典综合实验(二)

经典综合实验&#xff08;二&#xff09; 实验拓扑配置步骤配置Eth-Trunk聚合链路第一步 配置二层VLAN第二步 配置MSTP生成树第三步 配置相关IP地址第四步 配置DHCP及DHCP中继第五步 配置三层的网关冗余协议 VRRP及OSPF第六步 配置静态路由,NAT地址转换及其他配置完善 配置验证…

Linux Ubuntu系统中添加磁盘

在学习与训练linux系统的磁盘概念、文件系统等&#xff0c;需要增加磁盘、扩展现有磁盘容量等&#xff0c;对于如何添加新的磁盘&#xff0c;我们在“Linux centos系统中添加磁盘”中对centos7/8版本中如何添加、查看、删除等&#xff0c;作了介绍&#xff0c;而对Ubuntu版本中…

解决k8s通过traefik暴露域名失败并报错:Connection Refused的问题

我敢说本篇文章是网上为数不多的解决traefik暴露域名失败问题的正确文章。 我看了网上太多讲述traefik夸夸其谈的文章了&#xff0c;包含一大堆复制粘贴的水文和还有什么所谓“阿里技术专家”的文章&#xff0c;讲的全都是错的&#xff01;基本没有一个能说到点子上去&#xf…

Python之函数进阶-递归函数

Python之函数进阶-递归函数 递归 函数直接或者间接调用自身就是 递归递归需要有边界条件、递归前进段、递归返回段递归一定要有边界条件当边界条件不满足的时候&#xff0c;递归前进当边界条件满足的时候&#xff0c;递归返回 递归要求 递归一定要有退出条件&#xff0c;递…

SQL 主从数据库实时备份

在SQL数据库中&#xff0c;主从复制&#xff08;Master-Slave Replication&#xff09;是一种常见的实时备份和高可用性解决方案。这种配置允许将一个数据库服务器&#xff08;主服务器&#xff09;的更改同步到一个或多个其他数据库服务器&#xff08;从服务器&#xff09;&am…

解决:element ui表格表头自定义输入框单元格el-input不能输入问题

表格表头如图所示&#xff0c;有 40-45&#xff0c;45-50 数据&#xff0c;且以输入框形式呈现&#xff0c;现想修改其数据或点击右侧加号增加新数据编辑。结果不能输入&#xff0c;部分代码如下 <template v-if"columnData.length > 0"><el-table-colu…