百科问答小站 logo
百科问答小站 font logo



《失控玩家》中的游戏有可能实现出来吗? 第1页

  

user avatar   liu-ji-27-94 网友的相关建议: 
      

要实现「失控玩家」中的「自由城」,我第一时间想到康威的「生命游戏」。因为这部电影中的AI不是通过传统的基于数据集事先训练的方法实现的,它更像是一种群体协同进化,和多智体强化学习以及元胞自动机更加相关。

我们经常调侃,有多少人工就有多少智能。目前的人工智能仍然离不开大量的人工标注数据、人工网络结构设计、人工调参,尽管有半监督学习、NAS、AutoML等方法涌现,但总体上未脱离通过数据集事先调优的框架。刘云新老师在最新一期的CCF通讯中写道:「目前的模型训练和使用通常是割裂的。一个模型在事先收集好的数据集上进行训练,然后被部署到设备上进行使用。然而,模型使用的数据往往和训练时的数据集不同。」要想实现真正的智能,首先就要尽可能脱离对人工的依赖,也就是要让AI尽可能地主动持续学习,实现自我进化。

电影中有个很明显,但容易被忽视的细节,就是NPC之间可以通过对话交流思想,比如后半段的NPC大罢工就是在蓝杉小伙的演讲下形成的,这种交互和演进的模式让人联想到强化学习。当年赋予AlphaGo强大能力的强化学习通过反复实验,让智能体在和环境交互的过程中学到更有利的策略,这是目前最偏近智能体自我进化的方法。NPC每次死后重生,虽然也会按照剧本行动,但却能保留住上一轮实验的结果,参见盖和巴迪的对话(他们在设定里对于探索-利用的tradeoff不相同)。群体中的其他NPC也作为环境的一部分,和智能体进行交互,他们从竞争、协作、知识共享中学习出新的规则,比如做一杯卡布奇诺。

电影的结尾处有句话令我印象深刻,大概意思是「现在比起参与到游戏当中,人们更喜欢观察NPC的生活。」我以前玩Minecraft这类开放世界沙盒游戏的时候也经常幻想,如果村民具有更高级智能,他们会不会进化出自己的文化?那时候沙漠和草原的民居就不仅仅是建筑材料不同,而更像是沙漠中的村落依靠绿洲而建,草原出现养马场。事实上,微软在收购Mojang之后开放了Minecraft供强化学习训练的API:GitHub - microsoft/malmo,并举办了自动挖钻石和抓猪的比赛。从比赛结果来看,目前要实现这样的智能还有很大的难度。

类似地,以前也有人讨论过能不能在火星或者月球上制造完整的人工生态系统,一经启动就能够自我维持运转。这样的系统其实比想象中精密得多,几乎无法实现。但一套闭包的计算机模拟社会是否可以实现呢,我觉得比真实的生态圈更加容易,因为计算机的运算速度快、试错成本很低。

在Minecraft中挖钻石之所以困难,是因为需要漫长的撸树、挖矿、探索,还要解决体力衰减和生存危机。如果我们将环境的复杂性降低,将智能的标准放低,就会发现「生命游戏」实际上就是一种群体进化方式。元胞自动机通过规定每个粒子和周围粒子的作用规则,从某一状态开始,这个虚拟世界就会自我演化,最后稳定地在某些状态之间震荡。这些规则往往很简单,比如一个黑色像素周围有三个及以上黑色像素,它就变为白色;但结果却可以很复杂:

这就好比,规定某个NPC具有「周围出现三个人及以上他就会社死并重生」的性格,最后却演变成:有些NPC归隐山林不再见人,有些NPC组成牢固三人团,有些NPC周期性社死一样。我们的宇宙就是这样,简单的规则很可能演化出复杂的结果。

有答主提到有限状态机,元胞自动机更像是它的扩展。每个粒子有自己的一套状态机,他们根据周围粒子的状态来修改自己的状态,如果加入一些学习过程,它还可以创造出新的状态来进行记忆。元胞自动机经常用来对群体行为进行模拟,既包括无生命的分子动力学模拟,也包括生物种群的演化,甚至是新冠病毒的传播。

真的很希望尝试构建这种类型的游戏,在规则过于简单的生命游戏和智能过于困难的我的世界之间逐渐搭建一个桥梁。可能首先设定一些简单且正确的规则,就好比物理引擎中的牛顿定律。然后为每个智能体分配一个初始神经网络,并构建智能体与环境及其他智能体之间的交互规则和自我训练方式。接下来添加一些随机事件和随机行为,通过反复试验,让他们逐渐学习到更抽象复杂的规则或能够稳定复现的策略。这些新的规则又通过邻近交互的方式共享,使用持续学习的方式自主分配神经网络的模块扩大容量。

当然这样做也会面临强化学习固有的问题,比如稀疏奖励、难以监督、初始规则与reward函数难以设计。也许通过NPC对玩家的模仿学习来辅助训练?毕竟扮演上帝总是很难的,在游戏里肆意打杀NPC从不是什么真的上帝模式,要真的体验上帝,就要设计出一个NPC能够自我演化的稳定社会。与其无脑屠杀一场,不如到游戏里训练NPC吧,真·养成游戏。

参考资料:

[1] 生命游戏为何迷人?从复杂性科学看电子游戏的未来

[2] 微软Malmo协作AI挑战赛冠军详解比赛思路:我们是如何让AI在 Minecraft 里合作抓住一头小猪的

[3] 强化学习怎样在探索和利用之间找到平衡?OpenAI 推出了大型多智能体游戏环境 Neural MMO


user avatar   huangzhe 网友的相关建议: 
      

作为曾经的游戏开发主程,现在的AI公司码农,在看完《失控玩家》的过程中,我就在一直思考这个游戏应该怎么开发,NPC的AI应该怎么开发。

如果要实现电影里那种具有意识的AI,那么目前的技术水平,甚至未来几十年的技术水平,都还没能够实现出来。但如果设计那种因为某个触发条件而摆脱重复行为的AI,那还是不算难的。

电影里讲到的《自由城》这个游戏,有涉及技术的部分,甚至有涉及人工智能伦理的部分,都值得思考。

其实对于NPC相关的AI逻辑,我之前写过不少。那个时候没有机器学习,我用的是有限状态机。有限状态机FSM,Finite State Machine)表示有限个状态以及在这些状态之间的转移和动作等行为的计算模型。假设我现在设置了一个NPC,他的任务就是对路过的玩家进行攻击,那么它的FSM可以如下设计。

上面的这个FSM图,定义了玩家的状态切换的所有可能性。例如它不能之间从跳跃(Jump)状态切换到装弹(Reload)状态,也不能之间从跳跃(Jump)状态直接切换到蹲伏(Crouch)状态。你也许会问,为啥不行啊?其实也不是完全不行,但在设计这个角色的时候,设计师给它设计了一些列动作的动画,如果你在跳跃状态直接切换到蹲伏状态,动画就可能出现不流畅的情况。

为了让NPC自然些,会再加一些随机行为。如果不加随机行为,那么会出现同一批NPC走着齐刷刷的步伐,非常不自然。当然,这些随机行为都是在有限的状态内的,例如我生成了5个一样小兵,它们其中一个状态是巡逻,那么巡逻的步数可以是3~5步之间的随机数,巡逻方向可以是360度里的任意一个方向,这样就可以让它们看起来是真的在巡逻,而不是在军训。

在《自由城》游戏里,Guy作为NPC时,也是有一个FSM的,也出现在了电影里。虽然他的这个FSM太过线性了,甚至比我上面举的那个例子都简单。

当然,你也许会问,这也叫AI吗?不就是重复的几个状态吗?其实从广义上来讲,也算是一种AI,只是一种状态简单的AI罢了。但这个阶段,Guy被认为是无意识的NPC。

当然,设计者可以通过设置一个触发条件,让这个角色跳出FSM,用另一个AI控制器来控制角色。

这就带来了一个问题,要做出这样的强AI,需要包含那哪些部分呢?

  • 语音识别。女主可以开启澳洲口音和英式口音的滤镜,要求语音识别系统能识别不同口音。不过这个问题不大,目前很多公司的语音识别系统都可以,甚至印度口音都没问题。
  • 情感识别。现在有一些比赛可以让大家看到AI在情感识别方面的能力,例如EmotiW是国际计算机协会ACM ICMI举办的视频情感识别大赛。不过遗憾的是,2020年EmotiW冠军的准确率也仅仅是76.85%,如果你女朋友的情绪你只能猜到70%多,那么,嘿嘿,你有麻烦了。而且这个比赛的识别目标仅包括[Angry, Disgust, Fear, Happy, Neutral, Sad, Surprise]七种,而人类情感是非常复杂的,即使算法能识别你不同的情感状态,但也很难准确理解你的情绪。
  • ChatBot。这个大家看看手头的siri或者家里的智能音响就知道了,目前机器的对话能力太差了,要实现电影里guy那种能和女主对话,甚至能理解女主的困难,帮助女主去寻找隐藏场景,真的不容易。
  • 学习游戏规则。这个AI需要从0开始摸索游戏规则。Guy刚开始是不知道怎么玩这个游戏,女主给了他线索(做任务,抢武器),他能够按照这个方向自我升级。学习游戏规则方面,利用强化学习(Reinforcement Learning)可以实现。

以上仅仅是冰山一角。除此之外,还有很多隐藏的技术细节,在实现的过程中,会以意想不到的方式出现。例如,这个玩家在场景A学习的规则,到了场景B,还能否继续使用?修改游戏场景和关卡,是否让这人工智能突然变成人工智障?这些都是需要考虑但很难完全考虑周全的问题。

现在假设我们把上面的技术部分都做到了足够好,那么这个AI将会是怎么样的呢?会不会像电影里的这么浪漫?一百年后不好说,现在的话,其实也有公司做过一些AI能力很强的NPC,例如加拿大游戏工作室Alientra 开发的 Modbox 就能让玩家体验了一把 AI NPC。下面是玩家和NPC的对话[1],感觉这个NPC还是有点水平的。

测试人:你好,Bobby。
Bobby:你想干嘛?(英文回答选择了What do you want?可以明显听出来有点不耐烦)
测试人:你要去哪?
Bobby:我要去上班,马上要迟到了,如果到公司晚了会被老板罚的。请走开吧,我现在没法帮忙。
测试人:你在哪上班?
Bobby:我在市政厅上班,位于城中心的一座政府大楼里,那是一座很大很漂亮的建筑,不容错过。
测试人:它在哪条街道上?
Bobby:你简直太聪明了,我喜欢你这样的!市政厅不就在市政路上(可能是在嘲笑测试者明知故问)。
测试人:好吧,再见。
Bobby:再见!

这个对话甚至有点像巴迪的感觉(Buddy,也就是Guy的保安朋友)。测试者还测试了另一个NPC,是一个卖热狗的NPC。[2]

玩家:你好,热狗男
NPC:您要点儿什么?
你这里都有什么类型的热狗?
我们有三种热狗,普通的,甜的还有非常辣的。
能卖给我三合一口味的吗?
不好意思,我们不能做这样的口味,客户不会喜欢的。
好吧,一个热狗多少钱?
一个常规热狗6金币,甜热狗10金币,辣热狗9金币一个。
是什么让它这么辣?
上面加了辣酱,所以非常辣。

如果结合视频看,会更有那种真正在对话的感觉。

这个对话系统采用的是GPT-3,一个1750亿参数的语言模型。回话的内容和语音合成挺自然,不过推理过程太慢了,从视频里可以看到,测试者问完几秒钟了,NPC才能回答,毕竟运行GPT-3实在是太费性能了。

当然,这也仅仅还是NPC,并没有跳出有限的状态。更没有带来意识,离电影里的guy的AI能力差得远。而且GPT-3并没有媒体宣传的那么智能。没有说GPT-3不强的意思,GPT-3在业界来说真的强,而且用法多,我只是说GPT-3并没有媒体吹的那样恐怖。但你看到的展示结果,都是cherry-picking的结果。更多信息可以看看我之前关于GPT-3的回答。

让我们再想远一点。假设若干年后,随着AI技术进步,游戏里的AI实现了人类同等的智能(以下称为强AI),那么就带来一个伦理问题。强AI算是生命吗?算是人工生命吗?怎么去定义人工生命?强AI算有意识吗?毁灭一个AI程序算犯法吗?这都是是目前很难研究明白的问题。


当然,除了AI的部分,其他游戏的部分也能让游戏开发者会心一笑。在游戏世界里,能看到一些不停卡bug的角色,在墙上重复撞;场景有边界,让我想起了我以前开发时,逻辑有bug,导致NPC直接在界外生成的bug。安托万下令破坏场景时,往地下看也是天空,让我想起在unity开发游戏时放置的天空盒(skybox)。用过Unity的应该会会心一笑。


不过看到还想从开发者的角度吐槽下。一个当下最火的,玩家遍布全球的游戏,技术都达到这个水平了,服务器异地备份和容灾竟然做的这么差,服务器竟然全放在一个地方,一个人就轻易破坏掉所有服务器,最重要的是,为啥机房里常备一把斧头???

参考

  1. ^ http://www.gamelook.com.cn/2021/03/434604
  2. ^ https://www.36kr.com/p/1380588000198019



  

相关话题

  怎样算是「风骚」的代码? 
  在菜鸟教程工作是什么体验? 
  如果用机器学习的理论来理解人的行为,会有什么发现? 
  程序员都有过哪些崩溃的瞬间? 
  请问程序员行业高薪会持续下去吗?现在开始准备入行计算机晚吗? 
  IT技术岗,上班自带电脑还是用公司的电脑? 
  机器全面代替人工劳动力的那一天,你能如何生存下去? 
  如何看待博客园的整改公告? 
  USC 大学教授、Pinscreen CEO Hao Li 是否存在论文造假、产品虚假宣传等问题? 
  如何看待 Uber 发生全球首例自动驾驶致死事件? 

前一个讨论
SIMD指令和SIMT指令有什么区别?
下一个讨论
如何使用 python 写一个简单的表达式解释器?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利