热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过细胞自动机,AI在「我的世界」学会了盖房子

子豪发自凹非寺量子位报道|公众号QbitAI了解游戏「我的世界(MineCraft)」的读者,一定很熟悉这样的画面。△图源:
子豪 发自 凹非寺
量子位 报道 | 公众号 QbitAI

了解游戏「我的世界(MineCraft)」的读者,一定很熟悉这样的画面。

图源:Science Magazine

但是,如果盖房子的不是人,而是AI呢?

这是来自哥本哈根信息技术大学、约克大学和上海大学的学者,利用3D神经元细胞自动机(NCA)完成的新研究。

不仅能生成静态结构,当然不仅是公寓,树木、城堡也可以:

图源:Science Magazine

还能生成功能性机器,比如爬行的毛毛虫:

图源:Science Magazine

把它一切两段,还会玩再生术,成功分身……


(咦~有画面感了)

这是怎么做到的?

神经元细胞自动机的应用

研究者其实是受到「生命游戏」中元胞自动机(CA) 的启发,在2D基础上开发了3D神经元细胞自动机(NCA)

「生命游戏」就是基于元胞自动机的原理制作的,也可以说是元胞自动机的一个展示。

它是由英国数学家约翰·康威在1970年发明的。在网格中,每个方格居住着一个细胞,其状态由其周围的8个细胞决定,以黑色代表细胞存活。

之后,许多研究采用了更为复杂的神经网络规则,被称为神经元细胞自动机(NCA)。但是其应用大多局限于2D结构,或是只能生成简单的3D结构。

为了提高NCA在实际应用中的通用性,研究团队开发了3D NCA

它利用3D卷积捕捉周围更多的细胞,以生成复杂的3D结构,并且具有更多类型的建造单元。

3D神经元细胞自动机更新规则

研究人员试图利用NCA从单个活细胞生成目标实体,利用监督学习对重建损失进行优化。

并且,将「我的世界」中的实体作为3D网格中的细胞,其状态向量包含:块类型、存活状态、隐藏状态。

但是,由于每个单元是单一的块类型,于是他们将结构重建任务视为一个多类分类问题,预测给定单元的类型。

利用Pytorch提供的LogSoftmax和NLLLoss方法组合,以实现是在目标与预测的细胞结构之间,最小的交叉熵损失

这种损失导致性能不稳定**,并且模型展现出对“空气”块的偏好。

在训练中,“空气”块通常占据了所选结构的大部分,因此,训练数据不平衡可能会导致模型过度预测。

为解决这一问题,研究人员根据是否归类为“空气 ”块,将损失计算划分为两部分,并且增加了一个交叉重叠(IOU)成本,测量非“空气”块与实体之间的绝对差,以此提升精度。

效果如何?

针对模型在静态结构和动态功能机器的重构性能,研究人员进行了评估,并记录了各项参数。

结果显示,NCA的重构能力具有鲁棒性:

归一化IOU/结构性损失

归一化总损失

不过,NCA对于构建较大的实体(比如:教堂)仍具有挑战性,因为模型经常陷入局部极小值,需要更长的时间来训练。

尽管大教堂模型比一些实体的损失更低,但有许多随机生成的结构,因此没有其他实体自然。目标结构与生成效果的对比:

此外,在生成自然界中更随机的实体(比如:橡树)时,也更加困难。

正如前文提到的,NCA能生成静态结构,并且可以很好地增加单个块类型的数量,生成多样化和复杂的内饰,比如公寓楼内部:

令人意外的是,在丛林神庙中,NCA甚至生成了一个箭陷阱。

在生成功能性机器时,研究人员发现,不同结构的生成模式也不同:

一些结构是从小细胞渐渐扩大到最终形态;而毛毛虫则是先快速生成,然后再淘汰细胞形成最终的结构。

图源:Science Magazine

此外,NCA的再生特性也是一大亮点,除了从单个细胞中生长出复杂的结构外,这些局部更新规则还允许再生或修复损伤

即使未经训练,它仍然能恢复某些受损的结构,比如树:

不过,研究人员在对比测试后发现:

在未经过再生训练时,模型的再生率仅有30%;而进行再生训练后,生成率能达到99%。

3D NCA引起了网友的广泛关注,reddit上还有网友提到:

NCA在物理学上的应用也值得探索,比如:它可以用来模拟晶体形成。

参考链接:
[1]https://arxiv.org/abs/2103.08737
[2]https://www.sciencemag.org/news/2021/03/watch-artificial-intelligence-grow-walking-caterpillar-minecraft
[3]https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
[4]https://twitter.com/risi1979/status/1372158321256456198
[5]https://www.reddit.com/r/MachineLearning/comments/m70b2p/r_growing_3d_artefacts_and_functional_machines/

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

加入AI社群,拓展你的AI行业人脉

量子位「AI社群」招募中!欢迎AI从业者、关注AI行业的小伙伴们扫码加入,与50000+名好友共同关注人工智能行业发展&技术进展:



推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
author-avatar
smile
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有