论文阅读_世界模型

1
2
3
4
5
6
7
8
英文名称: World Models
中文名称: 世界模型
链接: https://arxiv.org/abs/1803.10122
示例: https://worldmodels.github.io/
作者: David Ha, J¨urgen Schmidhuber
机构: Google Brain, NNAISENSE, Swiss AI Lab, IDSIA (USI & SUPSI)
日期: 27 Mar 2018
引用次数: 1033

1 读后感

不同于之前简单的强化学习方法,这篇论文将模型分为三部分:视觉 V、记忆 M 和控制 C。视觉部分 V 将视觉信息压缩到潜空间,记忆部分 M 学习物理空间的变化规律,控制部分 C 则使用强化学习模型来学习智能体的最佳动作。

这相当于将模型拆分为大脑的不同功能区域。复杂的世界信息保留在 V 和 M 中,同时确保强化学习部分 C 足够小,以便快速训练。V 和 M 可以分别看作对空间和时间的建模。

文中还讨论了梦境和海马回放。由于有了时序预测模型 M,我们可以在没有现实输入的情况下通过 M 计算出后续状态,从而生成一个想象中的环境。还可以利用梦中产生的数据来训练控制模型,并通过调节梦的真实程度来构造更复杂的训练环境,以提升模型的性能。

文章发表于 2018 年,当时还没有太多可用的深度强化学习库。现在,我们可以利用更新的强化学习库和硬件以更快、更精确的方式建模。然而,我认为 V+M+C 的结构仍然适用。如果将智能体(Agent)视为一个人,他们的视觉能力 V 和对时间变化的预测能力 M 是通用的;而强化学习控制器 C 则针对具体目标,如赛车或打球。因此,在实际应用中,可能会采用一个 V、一个 M 和多个 C 的结构。这也要求 C 足够小,同时将通用知识提取到 V 和 M 中。

事实上,真实世界(模型输入)与我们理解的世界(M 输出)之间存在很大差异。

图 4:代理由三个紧密协作的组件组成:视觉(V)、内存(M)和控制器(C)

2 摘要

目标:建立世界模型,学习压缩空间内的时空表示。通过使用从世界模型中提取的特征作为智能体的输入,训练智能体完成具体任务。

方法:以无监督的方式快速训练一个非常紧凑和简单的策略,可以解决具体问题。甚至可以完全在它自己的幻觉梦境中训练智能体,并将其中产生的世界模型,应用到实际环境中。

结论:通过训练代理,表明使用文中的世界模型可以提高对世界的表征能力。

3 Agent 模型

文中提出了一个受自身认知系统启发的简单模型。该模型包括视觉感知组件 V,能够将所见内容压缩为较小的表征空间;记忆组件 M,能够根据历史信息预测未来行为;以及决策组件 C,根据视觉和记忆组件的表示来确定行动。这个模型通过将输入信息处理和决策制定进行分离,可以实现更高效的智能体行为。

3.1 VAE (V) 模型

变分自编码器 VAE 将每个时间步的视觉层面将图像压缩到隐空间 z。

图 5:变分自编码器(VAE)的流程图。

3.2 MDN-RNN (M) 模型

在时序层面使用 RNN 来预测未来。由于许多复杂环境本质上是随机的,因此训练 RNN 输出概率密度函数 p(z),而不是确定性预测 z。简而言之,即预测下一步潜向量 z 的概率分布。

图 6:具有混合密度网络输出层的 RNN。MDN 输出高斯分布混合的参数 p(z),用于对下一个潜在向量的预测进行采样 z 。

P(zt+1|at,zt,ℎt) ,其中 at 是 time t 采取的动作, ℎt 是 RNN 在 time t 的隐藏状态。根据温度参数来控制模型的不确定性。

3.3 控制器 (C) 模型

控制器(C)模型负责确定在环境推进过程中代理能够获得的预期累积奖励最大化的行动过程。为了使 C 更简单且更小,它与 V 和 M 分开训练,因此智能体的大部分复杂性留在世界模型(V 和 M)中。

C 是一个简单的单层线性模型,它将 z 映射到每个时间步的操作 a。

3.4 结合 V、M 和 C

图 8:Agent 模型流程图。原始观测值经过 V 处理得到潜在向量 z。C 的输入是这个潜在向量 z,与 M 的隐藏状态 ℎ 在每个时间步长上连接。然后,C 使用输出 a 控制动作向量,并对环境产生影响。接着,M 使用当前的状态 z 和动作 a 更新自己的隐藏状态,生成下一个时间步 t+1 上要使用的 ℎ。

V 和 M 使用深度学习方法进行训练;并选择了协方差矩阵适应进化策略(CMA-ES)来优化 C 的参数,它适用于解空间中具有多达几千个参数的情况。通过在一台拥有多个 CPU 核心的单机上并行运行多个环境实例来训练模型 C 的参数。

4 赛车实验

4.1 用于特征提取的世界模型

预测世界模型可以帮助我们提取有用的空间和时间表示。通过将这些功能作为控制器的输入使用。

为了训练我们的 V 模型,首先收集了一个包含 10,000 个随机推出的环境的数据集。让一个智能体随机行动多次来探索环境,并记录所采取的随机行动 a 和由此产生的环境观察结果。使用这个数据集来训练 V 以学习每一帧观察到的潜在空间。

使用经过训练的 V 模型对每一帧进行预处理,生成 z,以便训练时序记忆 M 模型。

世界模型(V 和 M)任务的目标是压缩和预测观察到的图像帧序列,但并不了解来自环境的实际奖励信号。只有控制器(C)模型能够获取来自环境的奖励信息。线性控制器模型只有 867 个参数,因此 CMA-ES 等进化算法非常适合用于优化任务。

4.2 程序

具体步骤如下:

  • 从随机策略中收集 10,000 轮数据。
  • 使用 VAE(V)训练模型,用于将帧编码为 z。
  • 使用 MDN-RNN(M)训练模型,对概率 P(z) 进行建模。
  • 将控制器(C)定义为 a。
  • 使用 CMA-ES 求解参数 w 和 b,以最大化预期的累积奖励。

模型参数量如下:

4.3 结果

首先测试使只能访问 V 而不能访问 M 时,控制器的效果。实验证明,这会导致摇晃和不稳定的驾驶,并在更陡峭的弯道上错过赛道。在 100 次随机试验中,它获得了平均分数 632 ± 251。

M 用于预测环境的变化,因为ℎ包含有关未来概率分布的信息,所以 Agent 可以查询 RNN 以指导其行动决策。加入 M 后,在 100 次随机试验中获得了 906 ± 21 分。报告排行榜上最佳解决方案在 100 次随机试验中获得了平均分数 838 ± 11。

4.4 赛车之梦

世界模型可以用来对未来进行建模,因此我们可以让它自己计算假设的赛车场景。可以要求它生成给定当前状态的 zt+1 概率分布,并采样 a,zt+1 作为实际观察值。训练过的 C 可以应用于由 M 产生的虚拟环境中。

5 VizDoom 实验

5.1 在梦中学习

本部分研究了能否通过训练智能体在梦境中学习,并将其学到的策略应用于实际环境。

智能体并不直接观察现实,而只是通过世界模型看到世界的映像。在这个实验中训练了一个智能体,在由世界模型生成的幻觉中进行训练。

在这个游戏中,特工必须学会避开怪物从房间另一侧射出的火球。在这种环境中没有明确的奖励,累积奖励可以定义为代理保持存活的时间步数。环境的每次最多运行 2100 个时间步长,如果连续 100 轮的平均生存时间大于 750 个时间步长,则认为任务完成。

5.2 程序

在这个任务中,M 模型除了预测下一步的 z 外,还将预测智能体是否在下一帧中死亡。

在梦境模拟中,不需要 V 模型对任何真实像素帧进行编码,因此智能体将完全在潜在空间环境中进行训练。

  • 收集 10,000 轮数据的随机策略。
  • 使用 VAE(V)将每一帧编码为潜在向量 z,并使用 V 将从第一步收集的图像转换为潜在空间表示。
  • 训练 MDN-RNN(M)进行时序建模。
  • 定义控制器(C)生成动作 a。
  • 使用 CMA-ES 求解生成动作 a 的参数 W,以最大化虚拟环境中的预期生存时间。
  • 在实际环境中使用从虚拟环境中学到的策略。

5.3 在梦中训练

这里的 RNN 学习了完整的游戏环境,包括游戏逻辑、敌人行为、物理和 3D 图形渲染。

与实际游戏环境不同的是,虚拟环境中可能增加额外的不确定性,使得梦境环境中的游戏更加具有挑战性。

通过增加温度参数来增加不确定性,使得梦境变得更加困难。火球可能会在难以预测的路径上更随机地移动,代理可能因为纯粹的不幸而死亡。实验发现,在较高温度设置下表现良好的 Agent 通常在正常设置下也表现更好。

5.4 将策略转移到实际环境中

让代理在虚拟环境中接受训练,并在原始的 VizDoom 场景中测试其性能。经过超过 100 次随机连续试验,分数达到了约 1100 个时间步长,远远超出了要求分数 750 个时间步长,并且远高于在更困难的虚拟环境中获得的分数。

5.5 欺骗世界模式

在游戏过程中,智能体也会寻找游戏中的漏洞以进行作弊,以最大化其预期的累积奖励。然而,如果学习的虚拟环境存在问题(即 M 模型有缺陷),代理就会找到在虚拟环境中看起来不错但在实际环境中会失败的策略。

为了解决这个问题,可以通过调整温度参数来控制 M 模型中的随机性。实验结果显示训练 C 模型对具有不同不确定性水平的幻觉虚拟环境有影响。表 -2 展示了在给定温度下训练代理后,在实际环境中进行 100 次随机推演所得到的平均分数。

OpenAI Gym 排行榜(Paquette,2016 年)的最佳成绩是 820 ± 58。加大温度会增加难度,从而使模型的分数更高。但是如果难度过高,反而会产生相反的效果。

6 迭代训练程序

对于更复杂的任务,需要进行迭代训练过程。

  1. 使用随机模型参数初始化 M 和 C。
  2. 在实际环境中进行 N 次推演。将期间的所有操作 a 和观察结果 x 保存到存储器中。
  3. 训练模型 M 来建模 P(x),同时通过优化 C 来改进 M 的内部预期奖励。
  4. 如果任务尚未完成,返回第 2 步继续进行。

这类似于神经科学中的海马体回放,即:动物在休息或睡眠时如何回放最近的经历。回放最近的经历在记忆巩固中起着重要作用,它更像是思考而不是做梦。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++项目--高并发内存池

目录 一、项目介绍二、内存池介绍2.1 池化技术2.2 内存池2.3 内存池主要解决的问题2.4 malloc 三、定长内存池的实现3.1 定长内存池概念3.2 内存池管理释放对象3.3 内存池申请对象3.4 定长内存池整体代码3.5 性能对比 四、高并发内存池整体框架设计4.1 该项目解决的问题4.2 整体…

销冠MPV增配不增价,2024款腾势D9正式上市

3月6日,2024款腾势D9正式上市,官方指导价33.98万元起。销冠MPV增配不增价,并推出2000元定金抵扣车辆尾款10000元等上市权益。针对老用户也推出了30000元置换补贴等感恩回馈。 作为腾势汽车破局豪华MPV全品类冠军的扛鼎之作,腾势D9…

VUE3 显示Echarts百度地图

本次实现最终效果 技术基础以及环境要求 vue3 echarts 百度地图API 要求1: VUE3 环境搭建:https://blog.csdn.net/LQ_001/article/details/136293795 要求2: VUE3 echatrs 环境搭建:https://blog.csdn.net/LQ_001/article/details/1363…

Matter环境下GD32编译环境的搭建

1、Matter介绍 Matter由CSA(连接标准联盟)发起,由巨头公司联合推出,旨在解决通信协议纷繁复杂的碎片化问题,打破多生态系统间的监护壁垒,实现智能设备的无缝通信与写作。 Matter开发环境安装 2、环境配置…

书籍强烈推荐:“计算机界三大神书”之一 ——SICP

文章目录 1. 书籍推荐2. 粉丝福利3. 自主购买 1. 书籍推荐 《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,简记为 SICP)是MIT的基础课教材,出版后引起计算机教育界的广泛关注,对推动…

1. Gin框架入门

文章目录 一、Gin框架介绍二、RESTful API三、Gin渲染1. HTML渲染2. 自定义模板函数3. 静态文件处理4. 使用模板继承5. 补充文件路径处理6. JSON渲染7. XML渲染8. YMAL渲染9. protobuf渲染 四、Gin获取各种方式传递过来的参数1、获取querystring参数2、获取form参数3、获取path…

Vue 使用@别名

1. 安装 types/node types/node 包允许您在TypeScript项目中使用Node.js的核心模块和API,并提供了对它们的类型检查和智能提示的支持。 npm install types/node --save-dev 比如安装之后,就可以导入nodejs的 path模块,在下面代码 import pat…

【海贼王的数据航海:利用数据结构成为数据海洋的霸主】栈和队列

目录 1 -> 栈 1.1 -> 栈的概念及结构 1.2 -> 栈的实现 1.2.1 -> Stack.h 1.2.2 -> Stack.c 1.2.3 -> Test.c 2 -> 队列 2.1 -> 队列的概念及结构 2.2 -> 队列的实现 2.2.1 -> Queue.h 2.2.2 -> Queue.c 1 -> 栈 1.1 -> 栈的…

C#开源且免费的Windows桌面快速预览神器 - QuickLook

前言 今天给大家推荐一款由C#开源且免费的Windows桌面快速预览神器:QuickLook。 工具介绍 QuickLook是一款在Windows操作系统上的实用工具,它提供了一种快速预览文件内容的方式。通过使用QuickLook,用户可以在不打开文件的情况下&#xff…

Linux系统编程(六)高级IO

目录 1. 阻塞和非阻塞 IO 2. IO 多路转接(select、poll、epoll) 3. 存储映射 IO(mmap) 4. 文件锁(fcntl、lockf、flock) 5. 管道实例 - 池类算法 1. 阻塞和非阻塞 IO 阻塞 IO:会等待操作的…

1. C++ 编译期多态与运行期多态

C 编译期多态与运行期多态 今日的C不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C发展中最为出彩的那部分。在面向对象C编程中,多态是OO三大特性之一,这种多态称为运…

澳大利亚昆士兰大学博士后—成瘾和青少年药物使用

澳大利亚昆士兰大学博士后—成瘾和青少年药物使用 昆士兰大学(The University of Queensland),简称“昆大”“UQ”,该校始建于1909年,是一所位于澳大利亚昆士兰州的公立综合性大学。同时还是六所砂岩学府之一&#xff…

Linux ubuntu 写c语言Hello world

文章目录 创建hello.c 文件进入hello.c 文件使用vim 编辑器进行编辑下载gcc 编辑器调用gcc 进行编译hello.c 创建hello.c 文件 touch hello.c进入hello.c 文件 vi hello.c使用vim 编辑器进行编辑 下载gcc 编辑器 sudo apt update sudo apt install gcc第一个语句是更新&am…

7.2 支付模块 - 付费课程选课、支付

支付模块 - 付费课程选课、支付模型 文章目录 支付模块 - 付费课程选课、支付模型一、需求分析1.1 执行流程1.2 订单服务设计1.3 创建订单服务1.4 支付宝接口 说明1.5 支付宝下单执行流程 二、支付 准备2.1 Maven 坐标2.2 支付宝配置参数2.3 生成二维码2.3.1 Maven坐标2.3.2 工…

英伟达板子4----存储满了系统黑屏

记录一个bug,因为最近在做边缘端视频处理的内容,就把视频存储在边端设备,但是发现由于边缘端设备的存储太小了,导致把ubuntu端的存储(只有28个Gib)给吃满了。 然后搜了一篇博客说重启就能释放一些空间&…

任务调度新境界:探秘ScheduledExecutorService的异步魔力

欢迎来到我的博客,代码的世界里,每一行都是一个故事 任务调度新境界:探秘ScheduledExecutorService的异步魔力 前言ScheduledExecutorService的基本概念基本概念:为何它是 Java 中任务调度的首选工具:基本用法&#xf…

使用mapbox navigation搭建一个安卓导航 示例

一.代码示例地址: https://github.com/mapbox/mapbox-navigation-android-examples/tree/main 二. 具体步骤: git clone gitgithub.com:mapbox/mapbox-navigation-android-examples.git Go to app/src/main/res/values Look for mapbox_access_token.…

力扣每日一题 找出字符串的可整除数组 数论

Problem: 2575. 找出字符串的可整除数组 文章目录 思路复杂度Code 思路 👨‍🏫 灵神题解 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public int[] divisibilityArray(String word, int m){in…

多层菜单的实现方案(含HierarchicalDataTemplate使用)

1、递归 下面是Winform的递归添加菜单栏数据,数据设置好父子id方便递归使用 在TreeView的控件窗口加载时,调用递归加载菜单 private void LoadTvMenu(){this.nodeList objService.GetAllMenu(); // 通过Service得到全部数据// 创建一个根节点this.t…

Salesforce 2024财年爆发式增长!第一次现金分红

对于Salesforce来说,这是非凡的转型之年,所有的关键指标都表现强劲,现金流和利润增长创下了纪录。截至第四季度末,Salesforce的剩余履约价值(RPO)总额为569亿美元,同比增长17%。 Marc Benioff …