前言

在此记录我学习World Models的相关知识以及加强自己的写作技巧

Recurrent World Models Facilitate Policy Evolution这个文章是world models 的经典之作,希望由此文章作为切入点学习world models的相关知识,让学习变得有趣

在阅读这个文章之前,我作为新的学习者,脑子中有以下几个问题:

1、什么是世界模型?

回答:智能体可以在虚拟环境中完成对下一个状态的预测,并且能够在真实环境中做出正确的执行,但是关键在于如何迁移到真实环境中,并且做出符合物理规律的模型。

我会加入自己的思考,去理解此文章

文章来源:Ha D, Schmidhuber J. Recurrent world models facilitate policy evolution[J]. Advances in neural information processing systems, 2018, 31.

摘要

生成递归神经网络(RNN网络)以无监督的方式快速训练,通过压缩的时空表征来模拟流行的强化学习环境。 世界模型提取的特征被输入到通过进化训练的紧凑和简单的策略中,在各种环境中获得最先进的结果。 我们还完全在由其内部世界模型生成的环境中训练我们的代理,并将此策略转移回实际环境中。 论文互动版:https://worldmodels.github.io

思考:摘要将了两个事情,第一个事情是RNN网络如何进行强化学习;第二个事情,世界模型的总体运行规则(世界模型提取的特征通过压缩,使用一个策略,在不同的环境中得到结果)。

1、引言

人类以有限的感官所能感知的事物为基础,发展出一种对世界的心理模型,学习对感官输入的空间和时间方面的抽象表征。 例如,我们能够观察一个场景并记住其抽象描述[7,67]。 我们的决定和行动受到我们内部预测模型的影响。 例如,我们在任何给定时刻的感知似乎都受我们对未来的预测所支配[59,52]。 理解我们大脑内部预测模型的一种方法是,它可能不仅仅是预测未来,而是根据我们当前的运动动作预测未来的感觉数据[38,48]。 当我们面对危险时,我们能够本能地根据这个预测模型采取行动,并表现出快速的反射性行为,而不需要有意识地制定行动计划。

对于许多强化学习(RL)问题[37,96,106],RL也可能受益于未来的预测模型(M)[104,95](基于模型的RL)。 反向传播算法[50,39,103]可用于以神经网络(NN)的形式训练大M。 在部分可观测环境中,我们可以通过循环神经网络(RNN)实现M[74,75,78,49],以便基于先前观测序列的记忆进行更好的预测。(介绍了将要使用的网络是RNN

事实上,我们的M将是一个大的RNN,它学习以一种无监督的方式预测过去的未来 M对过去观察和行为的记忆的内部表征被另一个称为控制器(C)的神经网络感知和利用,控制器(C)通过RL学习在没有老师的情况下执行某些任务。 一个小而简单的C将C的信用分配问题限制在一个相对较小的搜索空间内,而不牺牲大而复杂的M的容量和表达能力。

我们将1990-2015年关于基于rnn的世界模型和控制器的一系列论文中的几个关键概念与来自概率建模的最新工具相结合,并提出了一种简化的方法来测试现代RL环境中的一些关键概念[5]。 实验表明,该方法可用于解决传统方法无法解决的具有挑战性的赛车像素导航任务。

大多数现有的基于模型的强化学习方法学习强化学习环境的模型,但仍然在实际环境上进行训练。 在这里,我们还探索用生成的环境完全取代实际的RL环境仅在其自己的内部世界模型M生成的环境中训练我们的代理的控制器C,并将此策略转移回实际环境中

为了克服智能体利用生成环境的缺陷的问题,我们调整了一个温度参数M来控制生成环境的不确定性。 我们在其生成的环境的更嘈杂和更不确定的版本中训练C,并证明这种方法有助于防止C利用m的不完善之处。我们还将讨论基于模型的强化学习文献中的其他相关作品,这些作品分享了学习动态模型和使用该模型训练代理的类似想法。

思考:这一段介绍了为什么人类可以预测未来,是因为人类自身内部有个预测模型,我们根据当前的动作,预测未来发生的事情。之后引出了RNN网络将作为世界模型的M。接着介绍了RNN网络是大体如何工作:过去观察和行为的记忆的内部表征输入控制器,之后控制C通过强化学习的的策略,在无监督的情况下执行任务。同时C的策略是比较简单的,可以吸收M给的信息

2、智能模型

这个简单模型的灵感来自于我们自己的认知系统。 我们的智能体有一个视觉感知组件V,它将看到的东西压缩成一个小的代表性代码。 它还有一个内存组件M,可以根据历史信息预测未来的代码。 最后,我们的智能体有一个决策组件C,它只根据它的视觉和记忆组件创建的表示来决定采取什么行动。

将智能体的寿命定义为一系列时间步长,t = 1,2,…。 , tdone。 设Nz Na Nh为正整数常数。 环境在每个时间步t为我们的智能体提供高维输入观察。该输入通常是一个2D图像帧,是视频序列的一部分。 V的作用是学习在每个时间步长的每个观察到的输入的抽象压缩表示。 在这里,我们使用变分自编码器(VAE)[42,71]作为V,将时间步长t观测到的图像压缩成潜在向量zt∈RNz,其中Nz是一个超参数。 虽然V的作用是压缩代理在每个时间步看到的内容,但我们也希望压缩随时间发生的内容。 RNN M作为V预期产生的未来zt向量的预测模型。 由于许多复杂环境在本质上是随机的,我们训练我们的RNN输出概率密度函数p(zt),而不是zt的确定性预测。

agent在时刻t在∈RNa处采取动作,其中Na为动作空间的维数。 在我们的方法中,我们将p(zt)近似为高斯分布的混合物,并训练M在给定当前和过去可用信息的情况下输出下一个潜在向量zt+1的概率分布。 更具体地说,具有Nh隐藏单元的RNN将对P(zt+1 | at, zt, ht)建模,其中ht∈RNh是RNN在时间步长t时的隐藏状态。在采样期间,我们可以调整实值温度参数τ来控制模型的不确定性,正如之前的工作[28]所做的那样。 我们会发现调整τ对训练我们的控制器是有用的。 这种方法被称为混合密度网络[3]结合RNN (MDN-RNN)[24],过去已经应用于序列生成问题,如生成笔迹[24,6]和草图[28]。

C负责确定要采取的行动过程,以便在环境推出期间最大化代理的预期累积奖励。 在我们的实验中,我们故意使C尽可能简单小巧,V和M分开训练它,这样我们的代理的大部分复杂性驻留在V和M . C是一个简单的单层线性模型,zt型和ht直接映射到在每个时间步行动:,在和bc∈RNa的参数连接输入映射到输出行动。

这种针对 C 的极简设计也带来了重要的实际益处。深度学习的进展为我们提供了高效训练大型复杂模型的工具,前提是我们能够定义一个表现良好、可微的损失函数。V 和 M被设计为可以使用现代 GPU加速器通过反向传播算法进行高效训练,因此我们希望模型的大部分复杂度和模型参数都存在于 V 和 M中。相比之下,线性模型 C 的参数数量极少。这一选择使我们能够探索更多非传统的方法来训练 C,例如,甚至可以使用进化策略(ES)来应对更具挑战性的强化学习任务,在这些任务中,信用分配问题较为棘手。

为了优化 $C$ 的参数,我们选择协方差矩阵自适应进化策略(CMA - ES)[29,30]作为优化算法,因为已知该算法在参数数量达数千个的解空间中能良好运行。我们在一台具有多个 CPU核心的机器上对 $C$ 的参数进行进化,该机器可并行运行环境的多次滚动操作。有关模型、训练过程和实验配置的更多信息,请参阅补充材料。

思考:对于V的输入是一帧图像,图像通过V(变分编码器)变为潜在空间的编码(这种潜在编码能够节省大量的计算,并帮助我们保留关键特征),之后M来预测图像下一帧的内容(从后面的演示可以看出,这并不是一个特定的输出,而是一种多可能性的输出)。M的输入有三个,一个是上一个状态,当前观察的图像,当前执行的动作,M的输出是有两个,一个是下一帧的可能性,一个是当前的状态,对于C的设计是相对简单,作者通过C在环境中的表现来得到强化学习的目标。

整体的训练流程是:图像通过V被压缩为潜在变量Z,之后Z和上一个状态h(记忆)输入到C,得到执行的a,之后,将得到的执行的a和Z,上一个状态H一起输入到M,得到更新的H

3、赛车实验:用于特征提取的世界模型

在本节中,我们将描述如何训练前文所述的智能体模型来解决赛车任务。据我们所知,我们的智能体是已知首个能解决该任务的智能体。

帧压缩器 V 和预测模型 M可以帮助我们提取有用的空间和时间表征。通过将这些特征作为 C 的输入,我们可以训练一个紧凑的 C来执行连续控制任务,例如在一个名为 CarRacing-v0 [44] 的俯视视角赛车环境中,从像素输入中学习驾驶。在这个环境中,每次试验的赛道都是随机生成的,我们的智能体若能在最短时间内访问尽可能多的方块,就会获得奖励。智能体控制三个连续动作:向左/右转向、加速和刹车。

为了训练 V,我们首先收集一个包含环境10000次随机滚动的数据集。首先,我们让一个智能体随机行动,多次探索环境,并记录所采取的随机动作以及从环境中得到的观测结果。我们使用这个数据集来训练我们的变分自编码器(VAE),通过最小化给定帧与解码器根据低维潜在向量z 重建的帧之间的差异,将每一帧编码为低维潜在向量 z(如何训练V,)。现在,我们可以使用训练好的 V对时间 t 的每一帧进行预处理,得到 z_t,以训练我们的 M。利用这些预处理后的数据,以及记录的随机动作 a_t,我们现在可以训练我们的混合密度网络 -循环神经网络(MDN - RNN),将 P(z_{t +1}| a_t, z_t, h_t)建模为高斯混合分布。

在这个实验中,V和M并不了解来自环境的实际奖励信号。它们的任务仅仅是对观察到的图像帧序列进行压缩和预测。只有C能够获取来自环境的奖励信息。由于线性C内部仅有867个参数,像协方差矩阵自适应进化策略(CMA - ES)这样的进化算法非常适合这项优化任务。

思考:需要注意的细节是,正如文章所说的那样,V和M并不知道最终优化的目标是什么,他们只知道将观察到的图像帧数输出一个复杂的状态h,之后再赛车游戏的环境中,小车根据复杂状态h以及观察的图像z做出反应,训练C得到高分,这是在一个真实环境中去训练C。

3.1实验结果

无 M 的 V:如果我们能很好地对观测信息进行表征,训练一个智能体进行驾驶并不是一项困难的任务。以往的研究表明,利用一组关于观测的人工设计的优质信息,如激光雷达信息、角度、位置和速度等,就可以轻松训练一个小型前馈网络,使其接收这些人工设计的输入并输出令人满意的导航策略。出于这个原因,我们首先想通过限制 C只能访问 V而不能访问 M来测试我们的智能体,因此我们将控制器定义为 $a_t = W_c z_t + b_c$。

尽管智能体在这种设置下仍能在赛道上导航,但我们注意到它会左右摇摆,并且在更急的弯道处会偏离赛道,例如,见图1(右)。这个受限的智能体取得了632 ±251 的平均得分,这与 OpenAI Gym排行榜上其他智能体的表现 [44]以及诸如 A3C [41,36]等传统深度强化学习方法的表现相符。为 C 的策略网络添加一个隐藏层有助于将结果提升至788 ±141,但仍不足以解决这个环境任务。

思考:在没有M这种可以预测未来和承载过去记忆的模块时,效果并不好

全世界模型(V 和 M)

V提供的表示 $z_t$仅捕捉了某一时刻的表示,且预测能力不强。相比之下,M经过训练专注于一件事,并且能做得非常好,即预测 $z_{t+1}$。由于 M对 $z_{t+1}$ 的预测是由时间 $t$时循环神经网络(RNN)的隐藏状态 $h_t$生成的,所以 $h_t$是我们可以提供给智能体的特征向量的理想选择。将 $z_t$与 $h_t$相结合,能让 C很好地表示当前观测值以及对未来的预期。

我们发现,允许智能体同时访问 $z_t$ 和 $h_t$极大地提升了其驾驶能力。驾驶过程更加稳定,并且智能体似乎能够有效地应对急转弯。此外,我们还发现,在赛车比赛中做出这些快速的反射性驾驶决策时,智能体无需提前规划并推演未来的假设情景。由于 $h_t$包含了关于未来概率分布的信息,智能体可以本能地复用循环神经网络(RNN)的内部表征来指导其行动决策。就像一级方程式赛车手或击打快球的棒球运动员 [52]一样,智能体可以在激烈的比赛时刻本能地预测何时以及向何处行驶。        

我们的智能体能够取得906 ±21 的分数,有效地解决了该任务并取得了新的最优结果。之前使用深度强化学习方法的尝试获得的平均分数在591 -652范围内,排行榜上报告的最佳解决方案获得的平均分数为838 ±11。传统的深度强化学习方法除了将最近的几帧堆叠到输入中外,通常还需要对每一帧进行预处理,例如采用边缘检测。相比之下,我们智能体的 V 和 M接收原始 RGB像素图像流,并直接学习时空表征。据我们所知,我们的方法是首个被报道的解决该任务的方案。

由于我们的智能体的世界模型能够对未来进行建模,我们可以利用它自行生成假设的赛车场景。我们可以利用它在给定当前状态的情况下,得出 $z_{t +1}$ 的概率分布,对 $z_{t +1}$进行采样,并将这个样本作为真实观测值。我们可以将训练好的 C放回这个生成的环境中。图1(左)展示了生成的赛车环境的截图。这项工作的交互式版本包含生成环境的演示。

思考:上述的实验大大说明,在真实世界中训练得到C,与V和M结合之后,在M生成的虚拟环境中依旧可以得到不错的结果,这个时候就是利用到了M生成的z_t+1和h两个了

4、毁灭战士可视化实验:在生成环境中学习

我们刚刚看到,在真实环境中学习到的策略似乎能在生成环境中发挥一定作用。这就引出了一个问题——我们能否训练智能体在其自身生成的环境中学习然后将该策略迁移回实际环境呢

如果我们的世界模型对于其目标而言足够准确,并且针对当前问题足够完备,我们就应该能够用这个世界模型替代实际环境。毕竟,我们的智能体并非直接观察现实,而只是看到世界模型让它看到的内容。在这个实验中,我们在由经过训练以模拟VizDoom环境的世界模型所生成的环境中训练一个智能体。在DoomTakeCover-v0中,智能体必须学会躲避房间另一侧怪物发射的火球,这些怪物的唯一目的就是杀死智能体。累积奖励定义为智能体在一次回合中成功存活的时间步数。环境的每次回合最多运行2100个时间步,如果连续100次回合的平均存活时间超过750个时间步,则认为该任务已解决。

4.1实验设置

我们的VizDoom实验设置与赛车任务大体相同,只是有一些关键差异。在赛车任务中,M仅被训练来对下一时刻的 $z_t$进行建模。由于我们想构建一个可以在其中训练智能体的世界模型,因此这里的M模型除了预测下一帧的 $z_t$之外,还将预测智能体是否会在下一帧死亡(作为一个二元事件 $d_{one}$)。

由于 M除了能预测下一个观测值外,还能预测完成状态,我们现在具备了创建一个完整的强化学习(RL)环境以模拟 DoomTakeCover-v0所需的所有要素。我们首先通过将 gym.Env接口封装在 M之上,构建一个 OpenAI Gym环境接口,就好像 M是一个真实的 Gym环境一样,然后在这个虚拟环境中训练我们的智能体,而不是使用实际环境。因此,在我们的模拟中,在生成过程中不需要 V模型对任何真实的像素帧进行编码,所以我们的智能体将完全在一个更高效的潜在空间环境中进行训练。虚拟环境和实际环境具有相同的接口,因此,当智能体在虚拟环境中学习到一个令人满意的策略后,我们可以轻松地将该策略部署回实际环境中,以观察该策略的迁移效果如何

在这里,我们基于循环神经网络(RNN)的世界模型经过训练,以模拟人类程序员设计的完整游戏环境。仅通过从随机游戏片段中收集的原始图像数据进行学习,该模型就能学会如何模拟游戏的关键方面,如游戏逻辑、敌人行为、物理机制以及3D图形渲染。我们甚至可以在这个生成的环境中进行游戏。

然而,与实际游戏环境不同的是,我们注意到可以在虚拟环境中增加额外的不确定性,从而使生成环境中的游戏更具挑战性。我们可以通过在 $z_{t+1}$ 的采样过程中增大温度 $\tau$ 参数来实现这一点。通过增加不确定性,与实际环境相比,我们生成的环境变得更具难度。与实际游戏相比,火球可能会以更难预测的路径更随机地移动。有时,智能体甚至可能仅仅因为运气不佳而毫无缘由地死亡。

训练后,我们的控制器学会了在虚拟环境中导航,并躲避由M生成的怪物发射的致命火球。我们的智能体在虚拟环境中取得了平均918个时间步的成绩。然后,我们将在虚拟环境中训练好的智能体拿到原始的VizDoom环境中测试其性能。该智能体获得了平均1092个时间步的成绩,远远超过了所需的750个时间步的成绩,也比在更具挑战性的虚拟环境中获得的成绩高得多。完整结果列于表2。

我们发现,尽管虚拟环境 V无法正确捕捉每一帧的所有细节,例如准确识别怪物的数量,但控制器 C仍然能够学会在真实环境中导航。由于虚拟环境一开始就无法精确记录怪物的数量,因此,一个能够在噪声更大、不确定性更强的生成环境中存活下来的智能体,也能够在原始的、更纯净的环境中蓬勃发展。我们还发现,在较高温度设置下表现良好的智能体,通常在正常设置下也会有更好的表现。事实上,增加 $\tau$有助于防止我们的控制器利用世界模型的缺陷。我们将在下一节深入讨论这一点。

思考:所有到底什么时候会用到z_t+1的变量,什么时候用h变量呢

  • 在任何时候、任何环境(无论是真实还是虚拟)下,控制器 C 做决策时都会使用ht

  • 在真实环境中,智能体不需要预测下一帧,因为它直接可以通过 VAE (V) 编码真实游戏引擎给出的下一帧画面来得到 z_t+1;在虚拟环境中,由于没有真实的游戏引擎,模型 M 必须扮演这个角色。它会生成一个 z_t+1,这个生成的 z_t+1 就被当作是下一时间步的“真实观察”

4.2 Cheating the World Mode

在我们的童年时期,我们可能曾发现过一些利用电子游戏漏洞的方法,而这些方法并非游戏原设计者的本意。玩家会找到收集无限生命或生命值的方法,通过利用这些漏洞,他们可以轻松通关原本难度较大的游戏。然而,在这个过程中,他们可能失去了学习游戏设计者所期望的掌握游戏所需技能的机会。在我们最初的实验中,我们注意到我们的智能体发现了一种对抗策略,以某种方式移动,使得在由 $M$控制的这个虚拟环境中的怪物在某些回合中一颗火球都不发射。即使有火球即将形成的迹象,智能体也会以某种方式移动来消除火球。

由于M只是环境的一个近似概率模型,它偶尔会生成不遵循实际环境规律的轨迹。正如我们之前指出的,即使是实际环境中房间另一侧的怪物数量,M也无法精确再现。因此,即使在实际环境中不存在此类可利用的情况,我们的世界模型仍可能被C利用。

由于使用 M为我们的智能体生成虚拟环境,我们也让控制器能够访问 M 的所有隐藏状态。这本质上是让我们的智能体能够访问游戏引擎的所有内部状态和内存,而不仅仅是玩家能看到的游戏观测信息。因此,我们的智能体可以在追求最大化其预期累积奖励的过程中,高效地探索直接操纵游戏引擎隐藏状态的方法。在学习到的动态模型中学习策略这种方法的缺点在于,我们的智能体很容易找到一种对抗性策略来欺骗我们的动态模型——它会找到一种在我们的动态模型下看起来不错,但在实际环境中会失败的策略,这通常是因为它访问了模型预测错误的状态,这些状态偏离了训练分布。

这种缺陷可能是许多先前学习强化学习(RL)环境动态模型的研究实际上并未使用这些模型完全替代真实环境的原因。例如,在相关研究提出的M模型中,动态模型是确定性的,如果模型并不完美,那么智能体很容易利用其漏洞。像PILCO那样使用贝叶斯模型,在一定程度上可以通过不确定性估计来解决这个问题,但它们并不能完全解决该问题。近期的研究将基于模型的方法与传统的无模型强化学习训练相结合,首先用学习到的策略初始化策略网络,但随后必须依靠无模型方法在真实环境中对该策略进行微调。

为了让我们的智能体 C更难利用模型 M 的缺陷,我们选择使用混合密度网络循环神经网络(MDN - RNN)作为实际环境中可能结果分布的动力学模型,而不是仅仅预测一个确定性的未来。即使实际环境是确定性的,MDN - RNN实际上也会将其近似为一个随机环境。这样做的好处是,我们可以在任何环境的更具随机性的版本中训练智能体 C ——我们只需调整温度参数 $\tau$来控制模型 M中的随机程度,从而控制真实性和可利用性之间的权衡。

考虑到用变分自编码器(VAE)模型编码的潜在空间只是一个单对角高斯分布,使用高斯混合模型似乎有些过度了。然而,混合密度模型中的离散模式对于存在随机离散事件的环境很有用,例如怪物是决定发射火球还是原地不动。虽然单个对角高斯分布可能足以对单个帧进行编码,但具有混合密度输出层的循环神经网络(RNN)能更轻松地对具有离散随机状态的更复杂环境背后的逻辑进行建模。

例如,如果我们将温度参数设置为一个非常小的值 $τ =0.1$,实际上就是用一个几乎等同于确定性长短期记忆网络(LSTM)的 $M$来训练我们的 $C$,由于模式崩溃,在这个生成环境中的怪物无论智能体做什么都无法发射火球。在高斯混合模型中,$M$无法过渡到能形成并发射火球的另一种模式。在这个生成环境中学习到的任何策略大多数时候都能获得2100 的完美分数,但当应用到现实世界的严峻环境中时,显然会失败,其表现甚至不如随机策略。

通过将温度 $τ$设为 $M$ 的一个可调参数,我们可以观察在不同不确定性水平的虚拟环境中训练 $C$ 的效果,以及它们在实际环境中的迁移能力。我们对虚拟环境的不同 $τ$ 值进行实验,在该虚拟环境中训练一个智能体,并观察其在实际环境中的表现。

在表2中,我们发现增加M的 $\tau$ 值会使C更难找到对抗策略,但如果 $\tau$ 值增加过多,虚拟环境会变得过于复杂,导致智能体无法学习到任何有效信息。因此,在实践中,$\tau$是一个可以调整的超参数。温度也会影响智能体所发现的策略类型。例如,虽然在 $\tau =1.15$时获得的最佳分数为 $1092 \pm556$,但将 $\tau$提高到1.30时,分数会降低,但同时会产生一种风险更低、回报方差更小的策略。作为对比,文献[62]报告的最佳分数为 $820 \pm58$。

5、相关工作

关于学习动态模型并使用该模型来训练策略,已有大量文献。20世纪80年代针对前馈神经网络(FNN)首次探索的许多基本概念,以及20世纪90年代针对循环神经网络(RNN)探索的许多基本概念,为“学会思考”奠定了一些基础。较新的PILCO是一种基于概率模型的搜索策略方法,旨在解决复杂的控制问题。PILCO利用从环境中收集的数据,使用高斯过程(GP)模型来学习系统动态,并利用该模型对许多轨迹进行采样,以训练控制器执行所需任务,例如使摆锤摆动起来。

虽然高斯过程(GPs)在处理少量低维数据时表现良好,但其计算复杂度使得它们难以扩展到对大量高维观测历史进行建模。其他近期的研究使用贝叶斯神经网络而非高斯过程来学习动力学模型。这些方法在具有挑战性的控制任务中取得了有前景的结果,在这些任务中,状态定义明确,且观测维度相对较低。在这里,我们感兴趣的是对从高维视觉数据(即一系列原始像素帧)中观测到的动力学进行建模。

在机器人控制应用中,仅通过基于摄像头的视频输入来学习系统动态特性的能力是一个具有挑战性但又十分重要的问题。早期关于主动视觉强化学习(RL)的工作训练了一个前馈神经网络(FNN),使其能够根据视频序列的当前图像帧来预测下一帧,并利用这个预测模型训练一个中央凹移动控制网络,以尝试在视觉场景中寻找目标。为了克服直接从高维像素图像中训练动态模型的困难,研究人员探索使用神经网络先学习视频帧的压缩表示。沿着这一思路的近期工作能够利用自编码器的瓶颈隐藏层作为低维特征向量,从像素输入来控制一个摆锤。从压缩的潜在空间中学习动态模型,能使强化学习算法在数据利用上更加高效。

电子游戏环境在基于模型的强化学习研究中也很受欢迎,常被用作新想法的试验场。以往的工作 [51] 使用前馈卷积神经网络(CNN)来学习电子游戏的前向模拟模型。学会预测不同动作如何影响环境中的未来状态,对游戏玩家代理很有用,因为如果我们的代理能够根据其当前状态和动作预测未来会发生什么,它就可以简单地选择最符合其目标的动作。这不仅在早期的工作 [58,85](当时的计算成本比现在高一百万倍)中得到了证明,而且在近期关于几个竞争性《毁灭战士》(VizDoom)游戏环境的研究 [13]中也得到了证实。

上述工作使用前馈神经网络(FNNs)来预测下一视频帧。我们可能希望使用能够捕捉更长期时间依赖关系的模型。循环神经网络(RNNs)是适用于序列建模的强大模型。早在1990年就有人探索使用RNN开发内部模型来对未来进行推理,之后也有相关进一步探索。最近的一项工作提出了一个基于RNN构建通用问题求解器的统一框架,该求解器可以学习其环境的世界模型,并使用该模型对未来进行推理。后续工作使用基于RNN的模型来生成未来的多帧画面,也将其作为内部模型来对未来进行推理。

在这项工作中,我们使用进化策略(ES)来训练我们的控制器,因为这有很多好处。例如,我们只需向优化器提供最终的累积奖励,而不是整个奖励历史。ES也易于并行化 ——我们可以向多个工作进程分发具有不同解的多次轨迹展开实例,并迅速并行计算一组累积奖励。近期的研究已经证明,在许多强大的基线模型上,ES是传统深度强化学习方法的一种可行替代方案。在深度强化学习方法流行之前,基于进化的算法已被证明能有效解决强化学习任务。基于进化的算法甚至能够处理来自高维像素输入的复杂强化学习任务。

6、讨论

我们已经证明了训练一个智能体在其模拟的潜在空间世界中完全执行任务的可能性。这种方法具有许多实际益处。例如,视频游戏引擎通常需要大量计算资源才能将游戏状态渲染成图像帧,或者进行与游戏并非直接相关的物理计算。我们可能不想在实际环境中浪费计算周期来训练智能体,而是可以在其模拟环境中根据需要多次训练该智能体。经过逐步训练以模拟现实的智能体可能会被证明有助于将策略迁移回现实世界。我们的方法可能会对先前工作中概述的从模拟到现实(sim2real)的方法起到补充作用。

将 V实现为变分自编码器(VAE)并将其作为独立模型进行训练的选择也有其局限性,因为它可能会对与任务无关的部分观测数据进行编码。毕竟,从定义上讲,无监督学习无法知晓哪些内容对当前任务有用。例如,我们的变分自编码器能够重现《毁灭战士》(Doom)环境中侧壁上无关紧要的详细砖块图案,但在《赛车》(Car Racing)环境中却无法重现与任务相关的道路瓷砖。通过与一个预测奖励的 M一起训练,变分自编码器可能会学会关注图像中与任务相关的区域,但这样做的代价是,如果不重新训练,我们可能无法有效地将该变分自编码器用于新任务。学习与任务相关的特征也与神经科学有关。当接收到奖励时,初级感觉神经元会解除抑制,这表明至少在成年阶段,它们通常会学习与任务相关的特征,而非任意特征 [65]。

在我们的实验中,任务相对简单,因此可以使用从随机策略收集的数据集来训练出合理的世界模型。但如果我们的环境变得更加复杂,会怎样呢?在任何困难的环境中,智能体只有在学会如何策略性地在其所处世界中导航之后,才能接触到世界的某些部分。对于更复杂的任务,需要采用迭代训练过程。我们需要智能体能够探索其所处的世界,并持续收集新的观测数据,以便其世界模型能够随着时间的推移得到改进和完善。未来的工作将纳入迭代训练过程,在此过程中,我们的控制器将主动探索环境中有利于改进其世界模型的部分。一个令人兴奋的研究方向是探寻在智能体中融入人工好奇心

另一个担忧是我们的世界模型容量有限。虽然现代存储设备可以存储通过迭代训练过程生成的大量历史数据,但我们基于长短期记忆网络(LSTM)的世界模型可能无法将所有记录的信息存储在其权重连接中。人类大脑在一定分辨率下可以保存数十年甚至数百年的记忆,但我们通过反向传播训练的神经网络容量更为有限,并且会受到灾难性遗忘等问题的困扰。如果我们希望我们的智能体学会探索更复杂的世界,未来的工作将探索用更高容量的模型替换变分自编码器(VAE)和混合密度网络 -循环神经网络(MDN - RNN),或者引入外部记忆模块。

与早期基于循环神经网络(RNN)的 C - M系统一样,我们的系统逐时间步模拟可能的未来,没有利用类似人类的分层规划或抽象推理,而这些方法通常会忽略无关的时空细节。然而,更通用的“学会思考”方法并不局限于这种相当幼稚的方法。相反,它允许循环组件 C学习处理循环组件 M 的子例程,并以任意可计算的方式重用它们来解决问题,例如通过分层规划或其他利用 M 的类程序权重矩阵部分的方式。最近对 C - M方法的“一网打尽”扩展将 C 和 M合并为一个单一网络,并使用类似 PowerPlay 的行为回放(即将教师网络的行为压缩到学生网络中),以避免在学习新的预测和控制技能时遗忘旧技能。使用这些更通用方法的实验留待未来工作进行。

思考:

  • 实践优势

    • 在模型生成的潜在空间中训练智能体,比在需要大量计算资源(用于渲染、物理计算等)的真实游戏引擎中训练更高效 。
    • 这种方法可以作为对“从模拟到现实 (sim2real)”方法的补充,有助于将模拟环境中训练的策略迁移到现实世界 。
  • 视觉模型 (VAE) 的局限性

    • 由于 VAE 是以无监督方式训练的,它无法知道哪些特征对特定任务是重要的 。
    • 这导致它可能会编码不相关的细节(如毁灭战士环境中的墙壁砖块纹理),同时又可能忽略掉任务相关的关键特征(如赛车环境中的路面瓦片)。
    • 未来的一个方向是将 VAE 与能够预测奖励的 M 模型一起训练,这或许能让 VAE 专注于与任务相关的图像区域 。
  • 对更复杂环境的挑战与迭代训练

    • 当前的方法是基于一个由随机策略收集的数据集进行训练的,这对于简单的任务是可行的 
    • 对于更复杂的环境,智能体需要策略性地探索世界才能接触到新的部分 。
    • 因此,未来需要一个迭代训练程序:智能体主动探索世界 -> 收集新数据 -> 改进其世界模型 -> 循环往复 。

    • 为了实现这一点,可以引入人工好奇心、内在动机和信息寻求等机制来鼓励智能体进行探索 。
  • 世界模型的容量限制

    • 作者担心,当前基于 LSTM 的世界模型可能没有足够的能力来存储长期迭代训练中收集到的所有信息 。
    • 它可能会面临“灾难性遗忘”的问题,即在学习新知识时忘记旧的技能 。
    • 未来的工作将探索使用更高容量的模型或外部记忆模块,以使智能体能够学习更复杂的世界 。
  • 缺乏分层规划能力

    • 当前系统只是简单地一步一步地模拟未来,缺乏人类那样的分层规划或抽象推理能力 。
    • 未来的研究方向是让控制器 C 能够以更灵活的方式(如分层规划)来调用和重组世界模型 M 的知识,而不是简单的逐步模拟

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐