Exploration by random network distillation论文笔记
Exploration by Random Network Distillation (2018)
随机网络蒸馏探索
0、问题
这篇文章提出的随机网络蒸馏方法与Curiosity-driven Exploration by Self-supervised Prediction中提出的好奇心机制的区别?
猜想:本文是基于随机网络蒸馏提出的intrinsic reward设计方式,好奇心是基于前向动力学模型的误差设计的intrinsic reward。
1、Motivation
依然旨在为智能体的探索提供一种有效的探索奖励,文章还提供一种灵活的结合intrinsic 和 extrinsic reward的方法。
论文使用随机网络蒸馏算法。
问题:以往的论文,探索奖励是基于智能体过去经验训练的网络的预测误差来量化新经验的新颖性,但是最大化这种预测误差的智能体,往往会被输入是随机的transition所吸引。举例来说就是,如果预测问题是在给定当前观察和动作(前向动态)的情况下预测下一个观察结果,那么对于一个transition(st,at,r,st+1),输入的st是例如电视雪花一样的随机噪声,那么预测出来的st+1肯定是误差最大的,因此智能体会陷入这种transition中。
于是本论文提出新的方案解决这种问题,即在当前观测值的基础上预测一个固定的随机初始化神经网络的输出。
为了结合exploration bonus和extrinsic rewards,文章引入了PPO算法的修改版本。
2、方法
Target网络:一个固定且随机初始化的网络。
Predictor网络:在智能体收集的数据上进行训练的网络。
Target网络对智能体的observation进行映射:
f : O → R k f:\mathcal{O}\to\mathbb{R}^k f:O→Rk
Predictor网络也对智能体的observation进行映射:
f ^ : O → R k \hat{f}:\mathcal{O}\to\mathbb{R}^k f^:O→Rk
并且通过梯度下降来最小化期望MSE:
∥ f ^ ( x ; θ ) − f ( x ) ∥ 2 \|\hat{f}(\mathrm{x};\theta)-f(\mathrm{x})\|^2 ∥f^(x;θ)−f(x)∥2
以此来更新Predictor网络的参数θ,如果observation是Predictor网络没有训练过的,那么预测出来的误差将比较高,以此可以来作为智能体的探索奖励来推动智能体探索新颖的环境。
3、预测误差的来源以及其他模型的问题
- 训练数据量。对于Predictor很少看到的类似的例子的observation,预测误差很高。
- 随机性。由于目标函数是随机的,因此预测误差很高。随机的Transition是前向动力学模型预测误差的来源。
- 模型错误规范。因为缺少必要的信息,或者模型类太有限,无法适应目标函数的复杂性,使得预测误差很高。
- 学习动力。因为优化过程未能在模型类中找到最接近目标函数的预测器,所以预测误差很高。
因素1是能用预测误差来作为exploration bonus的原因。因素2会导致基于forward dynamics model的预测误差为exploration bonus的智能体陷入局部熵源中,例如“noisy-TV”。
有论文提出了改进方法来避免因素2和3带来的不良影响问题,但是这些方法往往是计算昂贵的,难以扩展。
而RND方法消除了因素2和3带来的不良影响,因为Target网络是被固定下来的,并且在Predictor网络的模型类内。
tips:【伏羲讲堂】强化学习的探索方法简介 - 知乎 (zhihu.com)对此处有详细解释
4、奖励和Observation归一化
在不同的环境和不同的时间点,奖励的规模可能会有很大的不同,所以要对exploration bonus进行归一化处理。
对observation进行归一,如果缺乏归一化处理,嵌入的方差可能会非常低,并且携带的关于输入的信息很少。
5、实验
-
在纯intrinsic reward的实验中,发现non-episodic agent比episodic agent表现得更好,探索到的房间更多。
-
针对状态价值结合方式:
V = V E + V I V=V_{E}+V_{I} V=VE+VI
实验得出结论,在使用两个状态价值函数,即状态Extrinsic reward价值函数和状态intrinsic reward价值函数的情况下,使用non-episodic的intrinsic reward结合episodic的extrinsic reward这种组合要优于都是episodic的intrinsic reward和extrinsic reward的组合。而在episodic的设置中,使用单个的状态价值函数来直接估计VE和VI的结合,分别使用两个状态价值函数分别估计VE和VI效果差不多,但是文章的实验还是基于两个状态价值函数,这样做是为了将VE和VI与各自不同的特征结合起来。
-
实验研究extrinsic reward和intrinsic reward折扣因子的性能,发现外部奖励的折扣因子越高,性能越好,而对于内在奖励,它会损害探索。实验发现当extrinsic reward的折扣因子γE为0.999,intrinsic reward的折扣因子γI为0.99时,性能最好,但是当γI增加到0.999时,性能反而受到了损害。
-
实验表明在使用不同数量并行环境进行实验时,通过调整批次大小并保持内在奖励递减速率恒定,能够帮助策略模型有效地利用那些临时的、随着时间消失的内在奖励,以促进对于新颖状态的探索和学习。
-
实验表明基于RNN的策略要更频繁地优于基于CNN的策略,因为基于RNN的策略可以保持总结过去的状态。
6、结论
RND探索奖励足以处理局部探索,即探索短期决策的结果,如是否与特定对象互动或避免它。然而,涉及长期协调决策的全局勘探超出了RND方法的范围。
文章指出未来仍然有需要继续研究的地方:举了个例子,在Montezuma’s Revenge游戏的第一关中,智能体要想通关必须打开进入一个由两扇门锁着的房间,这就需要两把钥匙。但是整个环境中,一共有6扇门和4把钥匙,这就意味着智能体需要保留4把钥匙中的2把,以留到最后的两扇门中来打开,但是打开前面4扇门又能够立即获得外部奖励,这意味着智能体需要有足够的内在奖励来使智能体放弃打开前4扇门中的2扇,以平衡由于早期使用密钥而失去的外部奖励。可是RND方法并不能很好的实现这种策略。
7、RND+PPO算法的伪代码
相关文章:
Exploration by random network distillation论文笔记
Exploration by Random Network Distillation (2018) 随机网络蒸馏探索 0、问题 这篇文章提出的随机网络蒸馏方法与Curiosity-driven Exploration by Self-supervised Prediction中提出的好奇心机制的区别? 猜想:本文是基于随机网络蒸馏提出的intrin…...
Ubuntu22.04配置Go环境
Ubuntu上配置Go环境biCentOS简单多了,有两种方案,一种直接使用apt进行安装,一种自己从官网下载安装包进行安装。 1、使用apt直接安装 更新apt安装包,常规操作 apt update 然后看看apt自带的Go版本是多少 apt list golang 是1…...
Zabbix深入解析与实战
1.Zabbix 1.1.监控概述 监控是指对行为、活动或其他变动中信息的一种持续性关注,通常是为了对人达成影响、管理、指导或保护的目的 监控 监视主机架构状态控制,事后追责目标:早发现早处理(故障、性能、架构) 网站扩容(用数据说话) 为什么要…...
怎么用电脑开发安卓app?能外包吗?
随着智能手机的普及,安卓应用程序的开发需求也越来越高,许多人都想开发自己的安卓应用程序,但苦于缺乏相关知识和技能,本文将介绍如何使用电脑开发安卓应用程序,以及是否可以将开发工作外包给专业的开发团队。 一、了…...
1-前端基本知识-HTML
1-前端基本知识-HTML 文章目录 1-前端基本知识-HTML总体概述什么是HTML?超文本标记语言 HTML基础结构文档声明根标签头部元素主体元素注释 HTML概念词汇:标签、属性、文本、元素HTML基本语法规则HTML常见标签标题标签段落标签换行标签列表标签超链接标签…...
磁盘的分区、格式化、检验与挂载 ---- fdisk,mkfs,mount
磁盘的分区、格式化、检验与挂载 磁盘管理是非常重要的,当我们想要再系统里面新增一块磁盘使用时,应执行如下几步: 对磁盘进行划分,以建立可用的硬盘分区 (fdisk / gdisk)对硬盘分区进行格式化࿰…...
Solr搜索参数详解
Solr 页面搜索 1.1 基本查询 参数意义q查询的关键字,此参数最为重要,例如,qid:1,默认为q:,fl指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,…...
Flink(三)【运行时架构】
前言 今天学习 Flink 的一些原理性的东西,比较偏概念,但是十分重要。有人觉得上来框框敲代码才能学到东西,那是狗屁不通的道理(虽然我以前也这么认为)。个人认为,学习 JavaEE那些框架,你上来就敲…...
conda添加清华镜像源
一、conda下载 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 显示所有channel conda config --show channels 二、添加清华镜像源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://…...
「Verilog学习笔记」求两个数的差值
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1ns module data_minus(input clk,input rst_n,input [7:0]a,input [7:0]b,output reg [8:0]c );always (posedge clk or negedge rst_n) begin if (~rst_…...
微头条项目实战:通过postman测试登录验证请求
1、CrosFilter package com.csdn.headline.filters; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class CrosFilter implements Filter {/*** 过滤器方法,用于处理HTTP请求* param servletReq…...
ARCGIS SERVER WMS、WFS服务添加过滤条件
我们知道geoserver中的wms,wfs过滤参数为cql_filter。比如过滤字段“mc”为"恒宇花园"的数据: cql_filtermc‘恒宇花园 但是arcgis server有所不同。具体可以看下它的标准:使用 WMS 请求中的 layerDefs 参数过滤要素—文档 | ArcGIS Enterpris…...
2013年108计网
第33题 在 OSI 参考模型中, 下列功能需由应用层的相邻层实现的是()A. 对话管理B. 数据格式转换C. 路由选择D. 可靠数据传输 很显然,题目所问的应用层的相邻层是表示层。该层实现与数据表示相关的功能。选项a中的对话管理属于会话层。选项c中的路由选择属于网络层。…...
【数据结构】单链表OJ题(一)
🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 前言一、移除链表元素二、寻找链表中间结点三、输出链表倒数第k个结点四、反转单链表五…...
2023年云计算发展趋势浅析
云计算的概念 云计算是一种通过互联网提供计算资源和服务的模式。它允许用户通过网络访问和使用共享的计算资源,而无需拥有或管理这些资源的物理设备。云计算的核心理念是将计算能力、存储资源和应用程序提供给用户,以便随时随地根据需要…...
[极客大挑战 2019]Http1
打开题目 没有发现什么,我们查看源代码 在这里我们发现了提示 访问一下页面得到 提示说不能来自于https://Sycsecret.buuoj.cn,我们尝试访问一下这个url 发现访问不了 我们bp抓包一下 伪造个referer头 referer:https://Sycsecret.buuoj.cn 发包过去…...
C 语言 for循环
C 语言 for循环 在本教程中,您将借助示例学习在C语言编程中创建for循环。 在编程中,循环用于重复代码块,直到满足指定条件为止。 C语言编程具有三种循环类型: for 循环while 循环do… while 循环 我们将在本教程中学习for循环…...
浅谈数据结构之链表
链表是一种灵活的数据结构,有单向链表、双向链表和循环链表等多种形式。在本文中,我们将深入探讨单向链表、双向链表、循环链表的定义、Java实现方式、使用场景,同时比较它们的不同之处。我们还会介绍链表与队列之间的区别。 单向链表 定义…...
封装一个 虚拟列表渲染 组件
组件代码 <template><div ref"list" class"infinite-list-container" scroll"scrollEvent($event)"><div class"infinite-list-phantom" :style"{ height: listHeight px }"></div><div class…...
Spring中@Bean标注的方法是如何创建对象呢?
Bean 标注的方法如何创建对象呢? 参考文章:https://blog.csdn.net/qq_35971258/article/details/128241353 下边只讲一下 Bean 注解标注的方法,是如何去进行创建 bean,以及流程是怎样的,如果需要看源码具体执行流程&a…...
解决Express服务器文件上传大小限制问题
在开发Web应用时,文件上传功能是常见的需求之一。然而,许多开发者在处理文件上传时会遇到文件大小限制的问题。本文将通过一个具体的案例,详细讲解如何在Express服务器上解决文件上传时遇到的文件大小限制问题。 背景 假设你正在开发一个文档管理系统,用户需要上传PDF文件…...
智能手机传感器数据建模与人类活动识别技术解析
1. 智能手机数据建模人类活动的核心价值每天早上7点15分,我的手机都会自动关闭飞行模式——这不是什么魔法,而是基于我过去三个月起床时间的机器学习模型在起作用。通过分析手机传感器数据来识别人类活动模式,这种技术正在彻底改变我们与移动…...
**基于Python语音识别的实时音频处理与情绪检测系统设计与实现**在当今人工智能飞速发展的背景下,**语音识别技术*
基于Python语音识别的实时音频处理与情绪检测系统设计与实现 在当今人工智能飞速发展的背景下,语音识别技术正从单纯的“听懂话”走向更深层次的“理解语义感知情感”。本文将围绕 Python SpeechRecognition librosa TensorFlow/Keras 构建一个完整的实时语音识…...
用MATLAB处理静息态EEG数据,从降采样到分段保存的完整代码实战(附避坑经验)
MATLAB静息态EEG数据处理实战:从降采样到分段保存的完整指南 第一次接触静息态EEG数据处理时,我被那些看似简单的参数设置搞得焦头烂额——降采样率到底设多少合适?为什么我的MATLAB在处理第11个被试时就卡死了?数据分段后怎么突然…...
【实测避坑】英文论文降AI率保姆级评测:如何保住专业词汇与完美排版?
毕业疯狂赶稿的痛苦,熬过夜敲过键盘的都懂。 好不容易拼凑出一篇英文初稿,读起来却有一股浓浓的AI味,不仅语感生硬,还容易被打回重修。群里每天都有人焦虑地寻找靠谱的英文降ai率工具。 作为去年刚从泥潭里爬出来的学姐…...
Ollama+AnythingLLM构建本地知识库问答+OpenAPI调用
机器配置:处理器:13th Gen Intel(R) Core(TM) i5-13500H(2.60 GHz) 机带 RAM:32.0 GB (31.7 GB 可用) 系统类型:64 位操作系统, 基于 x64 的处理器一、构建本地问答知识库1、下载Ollamahttps://ollama.com/download安装完成打开cm…...
http-equiv属性有哪些常用值_meta模拟HTTP头汇总【详解】
真正有用且被主流浏览器一致支持的http-equiv值仅有Content-Type、Refresh和Content-Security-Policy;其中Content-Type仅在无meta charset时降级生效,Refresh存在历史记录破坏与用户交互限制,CSP则能力弱于响应头且不支持nonce等关键特性。哪…...
别再傻傻分不清!5分钟看懂N沟道和P沟道MOS管的型号命名规律(附快速识别表)
电子工程师必备:MOS管型号识别实战手册 每次打开BOM表看到密密麻麻的MOS管型号,是不是总要在规格书和供应商网站之间来回切换?上周调试电路时,我就因为误判了一个AO3401的沟道类型,导致整个驱动电路工作异常。这种看似…...
ANSYS FLUENT新手避坑指南:从ICEM网格导入到流动传热计算的全流程实操
ANSYS FLUENT新手避坑指南:从ICEM网格导入到流动传热计算的全流程实操 第一次打开FLUENT时,面对密密麻麻的菜单和参数,大多数新手都会感到手足无措。记得我刚开始使用时,光是导入一个简单的二维网格就花了整整一天时间——不是单位…...
如何快速掌握Helixer:深度学习基因预测完整指南
如何快速掌握Helixer:深度学习基因预测完整指南 【免费下载链接】Helixer Using Deep Learning to predict gene annotations 项目地址: https://gitcode.com/gh_mirrors/he/Helixer Helixer是一款基于深度学习和隐马尔可夫模型的真核生物基因结构预测工具&a…...
