Ollin Boer Bohan ## 基于神经网络的世界模拟(World Emulation via Neural Network) 2025年4月25日 我将我家附近的一条森林小径变成了一个可玩的神经世界。 你可以在你的网页浏览器中探索这个世界 点击这里: 我所说的 "神经世界",是指整个东西是一个神经网络,根据之前的图像 + 控制来生成新的图像。 没有关卡几何体,没有光照或阴影的代码,没有脚本动画。 只有一个循环中的神经网络。 一个图表,说明了一个神经网络,它消耗噪声、控制和内存,并产生视频帧和内存。 我所说的 "在你的网页浏览器中",是指这个世界在本地,在_你的_网页浏览器中运行。 一旦世界加载完毕,即使在飞行模式下,你也可以继续探索。 那么,为什么要费力用这种方式创建一个世界呢? 有一些有趣的理论原因(我稍后会讲到),但我的主要目标只是超越之前的帖子。 你看,三年前,我通过训练一个神经网络来模仿来自 YouTube 的游戏视频,让一个简单的二维视频游戏世界在浏览器中运行。 模仿一个2D视频游戏世界很可爱,但最终有点毫无意义;现有的视频游戏已经存在,而且我们可以很好地模拟它们。 神经世界的美妙、独特、令人兴奋的特性是,它们可以从任何视频文件构建,而不仅仅是旧视频游戏的屏幕录像。 我之前的帖子并没有真正表达出这一点。 因此,为了这篇文章,为了展示神经网络真正特别的地方,我想训练一个神经网络来模拟真实世界的游戏视频。

记录数据

为了开始这个项目,我走过一条森林小径,用我的手机录制视频,使用一个定制的相机应用程序,它也记录了我手机的运动。 我收集了约 15 分钟的视频和运动记录。 我将运动可视化为一个 "行走" 控制杆(在左边)和一个 "观看" 控制杆(在右边)。 回到家后,我将录音传输到我的笔记本电脑上,并将它们洗牌成一个 (前一帧, 控制下一帧) 对的列表,就像我之前的游戏模拟数据集一样。 来自数据集的两个示例的屏幕截图,显示了内存和控制输入以及相应的视频帧输出。 现在,我所需要做的就是训练一个神经网络来模仿这些输入→输出对的行为。 我已经有了来自我之前的游戏模拟项目的可用代码,所以我尝试重新运行该代码以建立基线。

训练基线

将我之前的通过神经网络进行游戏模拟的配方应用于这个新数据集,遗憾的是,产生了一种交互式的森林风味汤。 我的神经网络无法准确地预测实际的下一帧,而且它无法足够快地弥补新的细节,因此即使我通过从真实的视频帧初始化来给它一个良好的开端,由此产生的世界也会崩溃: 毫不气馁,我开始开发新版本的神经世界训练代码。

升级训练配方

为了帮助我的网络理解真实世界的视频,我做了以下升级:

  1. 添加更多的控制信息。 我将 "控制" 网络输入从简单的 2D 控制升级为更具信息的 3D (6DoF) 控制。
  2. 添加更多的内存。 我将 "内存" 网络输入从单个帧升级到 32 帧(对较旧的帧使用较低的分辨率)。
  3. 添加多个尺度。 我重构了网络以处理跨多个分辨率的所有输入,而不是固定的 1/8 分辨率。

神经网络架构的前/后图。 这些升级让我避免了足够多的 soupification,从而获得了一个半成品演示: 这是一个重要的进展。 不幸的是,这个世界仍然很融化,所以我开始进行第二批改进(这次更令人沮丧)。

更多地升级训练配方

这一次,我将输入/输出保持不变,并专注于寻找对训练过程的增量改进。 这是一个经过优化的蒙太奇: 质量的最大飞跃来自:

  1. 使网络更大:我添加了更多的神经网络处理层,同时努力维持一个可以在一定程度上进行游戏的 FPS。
  2. 选择更好的训练目标:我调整了训练,以减少对细节预测的重视,而更多地强调细节生成
  3. 训练更长时间:我在选定的视频帧子集上训练了网络更长时间,以尝试获得最高质量的结果。

以下是最终森林世界配方的摘要:

呼。 那么,让我们回到最初的问题:为什么要费力呢? 为什么要付出这么多努力来获得一条森林小径的低分辨率神经世界? 为什么不使用传统的视频游戏技术制作更稳定、更高分辨率的演示呢?

创建世界的两种方式

传统的游戏世界就像绘画一样制作。 你坐在一个空白的画布前,一层一层地 敲击键盘,直到得到一些美丽的东西。 传统游戏中每一个栩栩如生的细节都只是因为 一些艺术家把它画进去。 神经世界的制作方式截然不同。 为了创建一个森林的神经世界,我走进一个真实的森林,然后按下我手中设备的 "记录" 按钮。 最终世界中每一个栩栩如生的细节都只是因为我的手机记录了它。 因此,如果传统的游戏世界是绘画,那么神经世界就是照片。 信息从传感器流向屏幕,而无需经过人手。 一张涂鸦,显示了绘画式世界与照片式世界中信息的流动方式。 诚然,截至这篇文章发布时,神经世界类似于_非常早期的_照片。 早期的相机 几乎无法工作,而且它们拍摄的照片根本就不逼真。 一张早期的银版照片。 令人兴奋的是,相机将创建真实图像从一个艺术问题简化为一个技术问题。 随着技术的进步,相机也随之改进,照片变得越来越忠实于现实,而绘画却没有。 一张现代 iPhone 拍摄的照片。 我认为神经世界的保真度会像照片一样得到提高。 随着时间的推移,神经世界将拥有在风中摇曳的树木、在雨中漂浮的睡莲、互相唱歌的鸟儿。 自动地,因为现实世界有这些东西,而且一个工具可以记录它们。 而不是因为艺术家把它们画进去。 我认为创建神经世界的工具最终也可以像今天的相机一样方便。 正如现代数码相机只需按下一个按钮即可创建图像或视频一样,我们可以拥有一个创建世界的工具。 如果神经世界变得像今天的照片一样逼真、廉价和可组合,那么神经世界的叙事安排可能会成为一种独特的创意媒介,就像照片与绘画的区别一样。 我认为那将是非常令人兴奋的! 对世界进行建模的神经网络通常被称为 "世界模型",许多聪明的人都在研究它们;一个经典的例子是 Comma 的 "Learning a Driving Simulator",最近的一些例子是 OpenDriveLabs 的 Vista 或 Wayve 的 GAIA-2。 如果你是一名对训练自己的世界模型感兴趣的程序员,我建议你看看 DIAMONDDiffusion Forcing。 与拥有数十亿个参数的严肃的 "Foundation World Models" 相比,本文中介绍的基于 GAN 的 WM 只是一个玩具(而且是一个相当脆弱的玩具)。 尽管如此,进一步改进配方并制作更多世界会很有趣。 如果你知道西雅图附近有什么有趣的地方可以拍摄,LMKGitHub / Mastodon / Twitter / Email