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控制…

java:简单入门定时任务的几种方式Timer、Quartz、Spring Task

背景 后端的定时任务在许多应用中都扮演着重要的角色,它们可用于处理重复性任务、执行定期操作或处理需要定时触发的任务。以下是一些使用场景的示例: 数据同步:在分布式系统中,不同系统之间经常需要进行数据同步。例如&#xf…

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…

深入探究Spring Cloud中的OpenFeign和配置中心

引言 在当今快速发展的微服务架构中,Spring Cloud作为其核心支持,OpenFeign和配置中心扮演着至关重要的角色。本文将深入探讨Spring Cloud中这两个关键组件的使用、优势以及如何有效地集成,旨在帮助开发者更好地理解和运用这些技术。 Spring…

【CSH 入门基础 10 -- csh 设置 脚本执行的优先级】

文章目录 csh 设置 脚本执行的优先级使用 nice 启动脚本使用 renice 调整正在运行的脚本的优先级在脚本内部调整优先级 csh 设置 脚本执行的优先级 在 UNIX 和类 UNIX 系统中,可以使用 nice 和 renice 命令来调整脚本或程序的执行优先级。优先级(或称为…

【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. 代码实…

Dubbo笔记

一、导包 <!--Dubbo--> <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.8</version> </dependency> <!--Zookeeper--> <dependency>&l…

强化学习笔记

这里写自定义目录标题 参考资料基础知识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; 希望这篇文章对你有所帮助,欢…

设计模式-Factory

定义 工厂设计模式是一种创建型设计模式&#xff0c;它提供了一个用于创建对象的接口&#xff0c;但允许子类决定实例化哪个类。这种设计模式使一个类的实例化延迟到其子类。 实现举例 #include <iostream> #include <string>// 抽象产品类 class Product { pub…

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

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

记一次struct2漏洞获取服务器

文章目录 一、漏洞原因二、漏洞成果三、漏洞利用0x01 struts2漏洞获取shell0x02 todesk配置文件获取连接0x03 orcal数据库连接0x04 web网站 sso管理权限0x05 tomcat网站0x06 获取路由器权限0x07 远程桌面四、总结五、免责声明一、漏洞原因 由于网站使用struct2框架,未及时进行…

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

在视频制作过程中&#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…

Nginx配置性能优化的方法

Nginx配置性能优化的方法 在大多数情况下&#xff0c;一个常规安装的Nginx对你的网站来说已经能很好地工作了。然而&#xff0c;如果你真的想挤压出Nginx的性能&#xff0c;你必须更深入一些。在本指南中&#xff0c;我将解释Nginx的那些设置可以微调&#xff0c;以优化处理大…

Joern安装与使用

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