Self-Supervised Exploration via Disagreement论文笔记

通过分歧进行自我监督探索

0、问题

使用可微的ri直接去更新动作策略的参数的,那是不是就不需要去计算价值函数或者critic网络了?

1、Motivation

高效的探索是RL中长期存在的问题。以前的大多数方式要么陷入具有随机动力学的环境,要么效率太低,无法扩展到真正的机器人设置。

2、Introduction

然而,在学习无噪声模拟环境之外的预测模型时,有一个关键的挑战:如何处理代理-环境交互的随机性? 随机性可能由以下几个来源引起:(1)嘈杂的环境观察(例如,电视播放噪声);(2)智能体动作执行中的噪声(例如,滑动);(3)作为智能体动作输出的随机性(例如,智能体抛硬币)。

尽管有几种方法可以在低维状态空间中构建随机模型,但将其扩展到高维输入(例如图像)仍然具有挑战性。另一种方法是建立确定性模型,但在随机不变的特征空间中对输入进行编码。最近的工作提出在逆模型特征空间中构建这样的模型,它可以处理随机观测,但当代理本身是噪源时(例如带有遥控器的电视)会失败。

文章提出训练前向动力学模型的集合,并激励智能体探索该集合中模型预测之间存在最大分歧或方差的动作空间。

3、方法

该模型利用预测的不确定性来激励策略访问不确定性最大的状态。

本文模型的核心思想是:歧义

模型利用采样到的transitions,训练一批前向模型:
{ f θ 1 , f θ 2 … , f θ k } \{f_{\theta_1},f_{\theta_2}\ldots,f_{\theta_k}\} {fθ1,fθ2,fθk}
这个前向模型与ICM中的forward dynamics model一致,通过最小化loss来更新参数:
l o s s = ∥ f ( x t , a t ; θ ) − x t + 1 ∥ 2 loss=\begin{aligned}\|f(x_t,a_t;\theta)-x_{t+1}\|_2\end{aligned} loss=f(xt,at;θ)xt+12
而本文提出的歧义的核心思想是,对于智能体已经很好地探索过的状态空间,将会收集到足够的数据来训练所有模型,从而导致模型之间的一致,而对于新领域和未探索的领域,所有模型仍然具有很高的预测误差,从而导致对下一个状态预测的分歧。

本文模型将intrinsic reward定义为这种分歧,即不同模型的输出之间的方差:
r t i ≜ E θ [ ∥ f ( x t , a t ; θ ) − E θ [ f ( x t , a t ; θ ) ] ∥ 2 2 ] \begin{aligned}r_t^i\triangleq\mathbb{E}_\theta\Big[\|f(x_t,a_t;\theta)-\mathbb{E}_\theta[f(x_t,a_t;\theta)]\|_2^2\Big]\end{aligned} rtiEθ[f(xt,at;θ)Eθ[f(xt,at;θ)]22]
在实践中,为了所有的预测目的,我们将状态x编码到嵌入空间φ(x)中。

在这里插入图片描述

本文提出的智能体代理是自我监督的,不需要任何外部奖励来进行探索。

本文方法与ICM不同,ICM在足够大的样本后,将趋于平均值。由于均值不同于个体的真实随机状态,预测误差仍然很高,使得智能体永远对随机行为感到好奇。

本模型提出的内在奖励作为一个可微函数,以便使用似然最大化来执行策略优化,这很像监督学习而不是强化学习。来自模型的内在奖励可以非常有效地通知智能体在前向预测损失高的方向改变其行动空间,而不是像强化学习那样提供标量反馈。纯粹是基于当前状态和智能体预测动作的模型集合的心理模拟。

与其通过PPO (RL)最大化期望中的内在奖励,我们可以通过将ri 视为可微损失函数来使用直接梯度来优化策略参数θ:
min ⁡ θ 1 , … , θ k ( 1 / k ) ∑ i = 1 k ∥ f θ i ( x t , a t ) − x t + 1 ∥ 2 \begin{aligned}\min_{\theta_1,\dots,\theta_k}&(1/k)\sum_{i=1}^k\|f_{\theta_i}(x_t,a_t)-x_{t+1}\|_2\end{aligned} θ1,,θkmin(1/k)i=1kfθi(xt,at)xt+12

max ⁡ θ P ( 1 / k ) ∑ i = 1 k [ ∥ f θ i ( x t , a t ) − ( 1 / k ) ∑ j = 1 k f θ j ( x t , a t ) ∥ 2 2 ] \begin{aligned}\max_{\theta_P}&(1/k)\sum_{i=1}^k\left[\|f_{\theta_i}(x_t,a_t)-(1/k)\sum_{j=1}^kf_{\theta_j}(x_t,a_t)\|_2^2\right]\end{aligned} θPmax(1/k)i=1k[fθi(xt,at)(1/k)j=1kfθj(xt,at)22]

a t = π ( x t ; θ P ) a_t=\pi(x_t;\theta_P) at=π(xt;θP)

4、实验

实验包括三个部分:a)验证在标准非随机环境下的性能; B)在过渡动力学和观测空间中具有随机性的环境的比较; c)验证我们的目标所促进的可微分政策优化的效率。

  1. 设计实验测试了Disagreement方法在标准非随机环境下的性能。比较了雅达利游戏的近确定性和非随机标准基准的不同内在奖励公式。基于分歧的方法优于最先进的方法,而不会在非随机情况下失去准确性。
  2. 在随机性较高的环境下进行测试,基于集合的分歧方法在智能体看到足够的样本后,收敛到几乎为零的内在奖励,而基于预测误差的模型在收敛时也会为具有较高随机性的观测值(即标签为1的图像)分配更多的奖励。基于分歧的方法在存在随机性的情况下表现更好。
  3. 实验显示可微探索加速了智能体的学习,表明了直接梯度优化的有效性。现在在短期和大结构的行动空间设置中评估仅可微分探索(无强化)的性能。
    实验显示可微探索加速了智能体的学习,表明了直接梯度优化的有效性。现在在短期和大结构的行动空间设置中评估仅可微分探索(无强化)的性能。
  4. 在真实世界的机器手臂实验上,基于分歧的可微分策略优化探索展示出了极高的性能。

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

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

相关文章

应用在金银精炼控制系统中的Modbus转Profinet网关案例

应用在金银精炼控制系统中的Modbus转Profinet网关案例 Modbus转Profinet网关(XD-MDPN100)能够支持多种通信协议和接口,满足不同设备和系统的需求。在金银精炼控制系统中使用,通过控制PID阀门的大小,将1200plc与PID控制…

Git 远程仓库(Github)

目录 添加远程库 查看当前的远程库 提取远程仓库 推送到远程仓库 删除远程仓库 Git 并不像 SVN 那样有个中心服务器。 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员…

【paddlepaddle】

安装paddlepaddle 报错 ImportError: /home/ubuntu/miniconda3/envs/paddle_gan/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /home/ubuntu/miniconda3/envs/paddle_gan/lib/python3.8/site-packages/paddle/fluid/libpaddle.so) 替换 /home/ubu…

【python】Python生成GIF动图,多张图片转动态图,pillow

pip install pillow 示例代码: from PIL import Image, ImageSequence# 图片文件名列表 image_files [car.png, detected_map.png, base64_image_out.png]# 打开图片 images [Image.open(filename) for filename in image_files]# 设置输出 GIF 文件名 output_g…

GAMES101—Lec 05~06:光栅化

目录 概念回顾(个人理解)光栅化1.采样2.采样出现的问题:走样 反走样 概念回顾(个人理解) 屏幕:在图形学中,我们认为屏幕是一个二维数组,数组里的每一个元素为一个二维像素。 光栅化…

【Operating Systems:Three Easy Pieces 操作系统导论 】第28章 插叙:线程 API

【Operating Systems:Three Easy Pieces 操作系统导论 】 第28章 插叙&#xff1a;线程 API pthread 库介绍 线程创建 #include <pthread.h> // 头文件 int pthread_create(pthread_t * thread,const pthread_attr_t * attr,void * (*start_routine)(void*),void *…

【数据结构(四)】栈(1)

文章目录 1. 关于栈的一个实际应用2. 栈的介绍3. 栈的应用场景4. 栈的简单应用4.1. 思路分析4.2. 代码实现 5. 栈的进阶应用(实现综合计算器)5.1. 栈实现一位数计算(中缀表达式)5.1.1. 思路分析5.1.2. 代码实现 5.2. 栈实现多位数计算(中缀表达式)5.2.1. 解决思路5.2.2. 代码实…

强化学习笔记

这里写自定义目录标题 参考资料基础知识16.3 有模型学习16.3.1 策略评估16.3.2 策略改进16.3.3 策略迭代16.3.3 值迭代 16.4 免模型学习16.4.1 蒙特卡罗强化学习16.4.2 时序差分学习Sarsa算法&#xff1a;同策略算法&#xff08;on-policy&#xff09;&#xff1a;行为策略是目…

Android Studio 安装及使用

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

电脑游戏录屏软件,记录游戏高光时刻

电脑游戏录制是游戏爱好者分享游戏乐趣、技巧和成就的绝佳方式&#xff0c;此时&#xff0c;一款好用的录屏软件就显得尤为重要。本文将为大家介绍三款电脑游戏录屏软件&#xff0c;通过对这三款软件的分步骤详细介绍&#xff0c;让大家更加了解它们的特点及使用方法。 电脑游戏…

视频剪辑技巧:如何高效地将多个视频合并成一个新视频

在视频制作过程中&#xff0c;将多个视频合并成一个新视频是一个常见的操作。这涉及到将多个片段组合在一起&#xff0c;或者将不同的视频素材进行混剪。无论是制作一部完整的影片&#xff0c;还是为社交媒体提供短视频&#xff0c;都要掌握如何高效地将多个视频合并。现在一起…

ky10 server arm 在线编译安装openssl3.1.4

在线编译脚本 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzecho "安装OpenSSL${OPENSSLVER}...&q…

Joern安装与使用

环境准备 Joern需要在Linux环境中运行&#xff0c;所以在Windows系统中需要借助WSL或虚拟机安装。 JDK安装 Joern的运行需要JAVA环境的支持&#xff0c;本次采用的是JDK17&#xff0c;其他版本建议看一下Joern官方文档。 apt install openjdk-17-jre-headless 配置JAVA环境变…

Win11+Modelsim SE-64 10.6d搭建UVM环境

1、添加源文件及tb文件 在目录下建立文件夹&#xff0c;将DUT和Testbench添加进去&#xff0c;文件夹内容如下所示&#xff1a; 2、以《UVM实战》中的例子做简单的示例&#xff1a; 2.1 设计文件 &#xff1a;dut.sv 功能很简单&#xff0c;即将接受到的数据原封不动发送出去…

UE4基础篇十六:自定义 EQS 生成器

UE4 中的 EQS 带有一组很好的查询项生成器,但在某些情况下,您可能更喜欢根据需要创建生成器。我决定编写自己的生成器,因为我必须编写一个查询来找到查询器周围的最佳位置,但又不能太靠近它。我知道我可以添加一个距离测试来随着距离增加分数,但我什至不想考虑距查询器一定…

vulnhub5

靶机下载地址&#xff1a; https://download.vulnhub.com/boredhackerblog/hard_socnet2.ova 信息收集 第一步信息收集&#xff0c;还是老方法我习惯 fscan 和 nmap 一起用 Fscan 简单探测全局信息 ┌──(kali㉿kali)-[~/Desktop/Tools/fscan] └─$ ./fscan_amd64 -h 19…

5.4 Windows驱动开发:内核通过PEB取进程参数

PEB结构(Process Envirorment Block Structure)其中文名是进程环境块信息&#xff0c;进程环境块内部包含了进程运行的详细参数信息&#xff0c;每一个进程在运行后都会存在一个特有的PEB结构&#xff0c;通过附加进程并遍历这段结构即可得到非常多的有用信息。 在应用层下&am…

轿车5+1汽车变速器变速箱同步器操纵机构机械结构设计CAD汽车工程

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;汽车变速器 获取完整论文报告说明书工程源文件 变速器工程图 操纵机构3D图 一、机械式变速器的概述及其方案的确定 1.1 变速器的功用和要求 变速器的功用是根据汽车在不同的行驶条件下提出的要求&#xff0c;改变发动机…

仪表盘:pyecharts绘制

一、仪表盘 在数据分析中&#xff0c;仪表盘图&#xff08;dashboard&#xff09;的作用是以一种简洁、图表化的方式呈现数据的关键指标和核心信息&#xff0c;以帮助用户快速理解数据的情况&#xff0c;并从中提取关键见解。 仪表盘图通常由多个图表、指标和指示器组成&…

[羊城杯2020]easyphp .htaccess的利用

[CTF].htaccess的使用技巧总结 例题讲解 掌握知识&#xff1a; 测试发现是阿帕奇服务器&#xff0c;就想到上传文件利用.htaccess配置文件执行jpg文件中的php代码&#xff0c;但是再进行第二次文件写入时会把之前的文件删除掉&#xff0c;所以不能上传两次来利用&#xff0c…