Visual Navigation(一):阅读三篇经典论文

news2024/9/21 19:35:39

文章目录

  • 前言
  • 一、Learning to Navigate in Cities Without a Map
  • 二、Unsupervised Predictive Memory in a Goal-Directed Agent
  • 三、Zero-Shot Imitation Learning
    • Imitation Learning:


前言

研究生不读论文还是不行的呀,在这里结合下别人的总结等下一次组会吹水。

一、Learning to Navigate in Cities Without a Map

先上网络架构:
在这里插入图片描述
输入是目标位置g和当前的视觉状态x,然后输出具体的动作和相应的价值。作者专门为目标位置g构造了一个rnn的模块,来让神经网络来感知位置信息,同时这样实现了模块化,从而可以直接实现多个城市的训练和迁移。

与此同时,文章对目标位置g做了一点特殊的改造,比如使用周围的地标距离来描述。整个网络使用IMPALA的一个分布式RL算法来进行训练,并且使用了curriculumn learning 来循序渐进地训练整个网络,让网络能够记忆各种未知导航的方式。同时,文章中说了模型使用了512个actor来分布式训练。

总的来说,这个文章的模型的创新点不多,但是效果却出奇的好。

二、Unsupervised Predictive Memory in a Goal-Directed Agent

在这里插入图片描述
该文章主要实现的是one shot navigation. 也就是走一遍就可记住路线,下次不用再进行探索。因为是one shot,意味着需要很好的记忆。所以该模型的关键在于构造了一个非常复杂的记忆模块来更好地提取记忆信息。

这里的MERLIN其实是Meta Reinforcement Learning的模型,他将之前的reward信息也一并输入进去,这是meta的一个关键点所在。

所以,该模型能够做到one shot navigation的基础是这个模型具备meta属性,其次是复杂的memory模块大幅度提升了记忆之前信息的能力。有了这些做铺垫,才可以通过一次探索构建出整个地图模型,从而能够提取信息到下一步的policy网络进行处理。

三、Zero-Shot Imitation Learning

在这里首先介绍一下imitation learning(模仿学习).

Imitation Learning:

在传统的强化学习任务中,通常通过计算累积奖赏来学习最优策略(policy),这种方式简单直接,而且在可以获得较多训练数据的情况下有较好的表现。然而在多步决策(sequential decision)中,学习器不能频繁地得到奖励,且这种基于累积奖赏及学习方式存在非常巨大的搜索空间。而模仿学习(Imitation Learning)的方法经过多年的发展,已经能够很好地解决多步决策问题,在机器人、 NLP 等领域也有很多的应用。

模仿学习是指从施教者提供的范例中进行学习,一般提供人类专家的决策数据{t1,t2,…,tm},每一个决策包含状态和动作序列ti = {s1i,a1i,s2i,a2i,…,sni,ani}. 在这里我们可以将所有【状态-动作对】抽取出来构造新的集合D = {(s1,a1),(s2,a2),(s3,a3),…}
之后我们就可以把状态作为特征,动作作为标记来进行分类(对于离散动作)或者回归(对于连续动作)的学习从而得到最优的策略模型。模型的训练目标是使的模型生成的状态-动作轨迹分布和输入的轨迹分布匹配。从某种角度来看,很像自动编码器,也和GANs很类似。
在这里插入图片描述
在简单的自动驾驶任务中,状态就是汽车摄像头观测到的画面Ot(很多强化学习任务中Ot和St也就是状态其实是可以互换的),动作有转向角度,汽车速度,汽车的相关操作等等。根据人类提供的状态动作对来习得驾驶策略。这个任务也叫做行为克隆,即监督学习范式下的模仿学习。

好了,扯了那么多,回来介绍这个论文,模型的网络结构如下图所示:
在这里插入图片描述
这个网络模型在训练的时候是没有使用任何的专家动作的,那么怎么训练呢?使用随机探索的trajectory (s1,a1,s2,a2,s3,a3…) 有这样的轨迹,我们可以把任何一点的状态s作为目标位置。它还加一个对未来state St+1的预测模块,进一步强化了其学习效果。


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

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

相关文章

大客户市场:阿里云、腾讯云、华为云“贴身肉搏”

配图来自Canva可画 近年来,随着中国逐渐进入数字化经济快车道,国内企业数字化、智能化升级已是刻不容缓。而为了帮助自身或其他企业实现数字化转型升级,阿里、腾讯、百度、京东、字节、网易、华为等众多国内知名企业早在多年以前&#xff0c…

【Git学习】Git如何Clone带有Submodule的仓库?

文章目录一、问题描述二、解决问题三、参考链接四、解决问题4.1 下载主模块4.2 查看主模块的配置4.2 子模块的添加4.3 查看子模块的配置4.4 查看子模块的检出状态4.5 检出submodule4.6 再次查看.git/config4.7 重新打开Android Studio运行代码一、问题描述 在GitHub上下载了一…

Android12 Launcher3 最近任务客制化

实现的最终效果: 目录 修改图标位置+添加应用名称 代码实现: 图标控件的边距调整:

微信小程序 button按钮怎么触发事件? bindtap语法怎么使用?

在前端网页中我们需要触发一个事件如果按钮点击后调用函数,文本、图片、链接被点击后调用一个函数一个事件,我们都知道用click,可是微信小程序中的click是不存在的,他怎么才能和网页中一样的使用click的呢? 1.bindtap语…

编程思想-0x00架构

产生架构的原因? 1、代码均摊 将不同的代码进行分块,然后简历联系,低耦合、高内聚; 原则上:合理的App架构应该是合理分配每个类、结构体、方法、变量的存在都应该遵循单一职责的原则 2、便于测试 测试确保代码质量&…

【编程基础之Python】3、创建Python虚拟环境

【编程基础之Python】3、创建Python虚拟环境创建Python虚拟环境为什么需要虚拟环境Windows上的Anaconda创建虚拟环境conda 命令conda env 命令创建虚拟环境切换虚拟环境验证虚拟环境Linux上的Anaconda创建虚拟环境创建虚拟环境切换虚拟环境验证虚拟环境总结创建Python虚拟环境 …

性能优化方向

性能怎么样就看io的应用,网络和数据库要好好设计,能一次查出来就一次。 对外接口尽量不要多创建对象, 少用bean复制 少用getbean(.class) 缓存不要频繁操作,最好异步 循环不要调用数据库,调用接口最好批量 Compon…

UG NX二次开发(C#)-UIStyler-创建长方体

文章目录 1、前言2、UG NX自动的创建长方体界面3、在块样式编辑器中创建UI界面4、创建一个工程5、在创建按钮中添加代码6、调用dll7、结论1、前言 UG NX二次开发中,UIStyler是一种非常高效的开发方式,UG NX已经为我们提供了比较完善的UIStyler开发模板,只要通过拖动的方式就…

GAN系列基础知识

原始值函数 原始GAN的值函数是 minGmaxDV(D,G)Ex∼pdata(x)[logD(x)]Ez∼pz(z)[log(1−D(G(z)))]min_Gmax_DV(D,G) E_{x \sim p_{data}(x)}[logD(x)]E_{z \sim p_{z}(z)} [log(1-D(G(z)))]minG​maxD​V(D,G)Ex∼pdata​(x)​[logD(x)]Ez∼pz​(z)​[log(1−D(G(z)))] 其中Ex…

尚医通(十二)SpringCloud相关概念介绍 | 搭建Nacos服务

目录一、什么是微服务1、微服务的由来2、为什么需要微服务3、微服务与单体架构区别4、微服务本质5、什么样的项目适合微服务6、微服务开发框架7、什么是Spring Cloud8、Spring Cloud和Spring Boot是什么关系9、Spring Cloud相关基础服务组件10、Spring Cloud的版本二、Nacos1、…

XXL-JOB 极简入门

文章目录1 概述2 特性3 架构设计3.1设计思想3.2 系统组成3.3架构图3.4 高可用3.4.1 调度中心的高可用3.4.2 执行器的高可用4 搭建调度中心4.1 克隆源码4.2 初始化 XXL-JOB 表结构修改配置文件4.4 修改日志配置文件4.5 IDEA 启动调度中心4.6 编译源码4.7 命令行启动调度中心4.8 …

D32 Vue2 + Vue3 K124-K143

D32.Vue F21.创建vue3项目(K124-K129) 该笔记是从vue2过渡到vue3的,所以不会特别详细的介绍某些vue2学过的,主要介绍vue3新增的 1.Vue3快速上手 A. Vue3简介 1)2020年9月18日,Vue.js发布3.0版本&…

高性能(一)

思维导图 一、负载均衡 1.概念 将用户请求分摊到不同服务器上处理,以提高系统整体的并发处理能力及可靠性。 如图:我们用到负载均衡,实现访问商品服务的请求的分流。 负载均衡是一种常用且简单的提高系统并发和可靠性的手段,单…

MySQL入门篇-MySQL 二进制日志binlog介绍

MySQl binlog介绍 binlog的作用 逻辑日志,记录的是数据库内部的所有变动(sql语句 行的改变) server层日志,binlog不仅仅记录innodb的变动,也记录myisam存储引擎的变动。 innodb redo 是存储引擎层,和binlog不是一层&…

spark02-内存数据分区切分原理

代码:val conf: SparkConf new SparkConf().setMaster("local[*]").setAppName("wordcount") val scnew SparkContext(conf) //[1] [2,3] [4,5] val rdd: RDD[Int] sc.makeRDD(List(1,2,3,4,5),3) //将处理的数据保存分区文件 rdd.saveAsText…

【PTA Advanced】1152 Google Recruitment(C++)

目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sample Output 2: 思路 代码 题目 In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the picture below)…

清除 git 所有历史提交记录,使其为新库

清除 git 所有历史提交记录,使其为新库需求方案需求 基于以前的仓库重新开发,这样可保留以前的配置等文件,但是需要删除全部的历史记录、tag、分支等。 方案 创建新的分支 使用 --orphan 选项,可创建1个干净的分支(无…

设置测试用例的具体方法

文章目录一、等价类分区/分块的概念等价类的划分二、边界值三、因果图(判定表)四、场景设计法五、错误猜测法总结一、等价类 用户的密码为6~18位,测试的时候使用到的测试数据是什么? 穷举法,6,7,8,9,10…18全部都测试一边,可以 但是将范围改成6~1000位,穷举法就不可取了 分区/…

从零实现高并发WebRTC服务器(五):ICE协议

文章目录零、ICE具体做些什么一、ICE协议是什么二、ICE Candidate2.1 ICE CANDIDATE TYPE2.2 收集candidate零、ICE具体做些什么 收集candidate对不同type的所有candidate pair进行排序,比如优先使用同一内网的host candidate连通性检查 一、ICE协议是什么 ICE,i…

线性杂双功能PEG试剂OPSS-PEG-Acid,OPSS-PEG-COOH,巯基吡啶聚乙二醇羧基

英文名称:OPSS-PEG-COOH,OPSS-PEG-Acid 中文名称:巯基吡啶-聚乙二醇-羧基 OPSS-PEG-COOH是一种具有OPSS和羧基的线性杂双功能PEG试剂。它是一种有用的带有PEG间隔基的交联剂。OPSS代表正吡啶基二硫化物或邻吡啶基二硫代,与硫醇、…