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

NovelD提出了一种新的探索准则,针对稀疏奖励环境中的智能体探索,特别强调在多个感兴趣区域间的有效探索。它利用轨迹中的连续状态novelty,结合比例因子α和限制条件,确保智能体更广泛地探索边界。实验结果显示NovelD在MiniGrid环境中表现出色,优于其他方法。
部署运行你感兴趣的模型镜像

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表示为:
rt=rte+αrti r_t=r_t^e+\alpha r_t^i rt=rte+αrti
intrinsic reward被定义为:
ri(st,at,st+1)=max⁡[novelty(st+1)−α⋅novelty(st),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:novelty(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为:
ri(st,at,st+1)=max⁡[novelty(st+1)−α⋅novelty(st),0]∗I{Ne(st+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方法来计算:
novelty(st)=novelty(st;w):=∥ϕ(st)−ϕw′(st)∥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定义为:
∥ψ(st)−ψ(st+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∈SrN(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、消融实验

文章设计实验寻找最佳的比例和裁剪系数,公式:
ri(st,at,st+1)=max⁡[novelty(st+1)−α⋅novelty(st),β] 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的性能。

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

由于没有直接关于 'Move to Understand a 3D Scene: Bridging Visual Grounding and Exploration for Efficient and Versatile Embodied Navigation' 的参考内容,下面基于一般性知识对该主题做推测性解读。 该标题围绕着在三维场景中的具身导航展开。“Move to Understand a 3D Scene” 表明通过移动来理解三维场景,意味着在导航过程中,主体(如机器人、虚拟智能体等)并非静止地感知环境,而是通过自身的移动去收集更多关于场景的信息,以获得对三维场景更全面和深入的理解。 “Bridging Visual Grounding and Exploration” 强调了连接视觉定位和探索这两个关键方面。视觉定位是指将视觉信息与实际环境中的具体位置和物体进行关联,确定视觉元素在现实场景中的对应关系;而探索则是在场景中主动地移动和发现新的区域。将这两者联系起来有助于提高具身导航的效率和通用性。 在高效和通用的具身导航中,这种结合能够让智能体更好地适应不同的环境,更准确地规划路径,避免碰撞,并快速找到目标位置。例如,在一个复杂的室内环境中,智能体可以通过移动来不断更新视觉信息,利用视觉定位确定自身位置和周围物体的位置,同时通过探索发现新的可通行区域和目标物体。 在技术实现上,可能会涉及到计算机视觉、机器学习、机器人学等多学科的知识。计算机视觉技术用于处理和分析视觉信息,实现视觉定位;机器学习算法用于学习如何在不同场景中进行高效的探索和路径规划;机器人学则为智能体的实际移动提供硬件和控制支持。 ```python # 以下是一个简单的伪代码示例,模拟具身导航中视觉定位和探索的结合 class EmbodiedNavigator: def __init__(self): self.visual_info = None self.position = [0, 0] self.target = None def move(self, direction): # 模拟智能体的移动 if direction == 'forward': self.position[0] += 1 elif direction == 'backward': self.position[0] -= 1 elif direction == 'left': self.position[1] -= 1 elif direction == 'right': self.position[1] += 1 def update_visual_info(self): # 模拟更新视觉信息 # 这里可以调用实际的视觉处理算法 self.visual_info = "Some visual information about the current position" def visual_grounding(self): # 模拟视觉定位 # 根据视觉信息确定当前位置和周围物体的位置 pass def exploration(self): # 模拟探索过程 # 根据当前位置和视觉信息选择下一步的移动方向 possible_directions = ['forward', 'backward', 'left', 'right'] for direction in possible_directions: # 可以根据视觉信息和目标位置评估每个方向的可行性 if True: # 这里可以添加具体的评估条件 self.move(direction) self.update_visual_info() self.visual_grounding() ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值