这是纯纯的数学游戏,跟什么劳什子读心术没有半毛钱关系。
“嘁,太不懂生活情趣了,早知道找山姆秀这招了。”
林立新撇撇嘴,威尔这个家伙哪里都好,就是太木了,
“算了算了,总之就是这样没错,咱们用决策树开发一款猜谜游戏。”
“就像刚才猜水果那样?”
“对!只不过它能猜任何东西,而且是让全世界的人一起猜!”
第315章 短发男装健身女(3k)
这下子威尔总算是明白为什么林立新这次单独找他开小灶了。
就这个项目而言,他还真是专业对口。
脱胎于JAZZ系统的决策树,天生就是为了这种玩法而生的。
说白了,游戏中的AI逻辑,NPC的各种行为,本质上就是这样一个猜谜游戏。
“我懂了!我懂了!”
想通这一点之后,林立新到底打算做什么那就非常清楚了。
怪不得林立新会提起什么‘读心术’。
某种意义上来说,当他们真的成功构筑出这样一个庞大的数据库,那它的的确确就像是一个会读心的‘网络天才’。
确定了项目方向,接下来的事情便顺理成章了起来。
面对这种涉及到模糊决策的决策树结构,威尔的项目经验反而比卡马克都还要丰富的多。
一天的时间,他便将核心的决策引擎给开发了出来。
但也就是到了这一步,威尔才真正发现这里面似乎存在着不少他们根本没有意识到的严重问题。
……
“Akinator会猜错?”
林立新听到威尔的汇报,有些疑惑。
“嗯……确切地说是咱们没有办法做到真正覆盖一切选项的数据库。”
威尔想了想,给出一个更加精确的回答。
刚才在测试的时候,他就注意到了这个问题。
Akinator不是真正的人工智能,它只不过是一串严格遵守代码工作的程序。
这也就导致了它是不可能无中生有地创造出自己数据集里不存在的结果的。
威尔在测试用的数据库内加入了林立新,那Akinator就能猜到林立新,而他还没来得及加入小岛秀夫,那小岛秀夫就无法被猜出来。
“简单来说就是,如果咱们想要实现让所有人都能得到自己满意的结果的话,那么需要输入到数据库里的条目会是海量!”
仅凭开发部的这么点人,哪怕是日夜不停地添加,那也终究是效率有限的。
光是遍历完全部的历史名人,那就够开发个把年的了。
这让威尔回忆起了他们当初开发《文明》的时候。
为了在游戏里做出奇观,他们是真的去翻阅了数不清的典籍。
“如果咱们数据量不够多,那它的猜测会有一大半都是错的!”
这种东西显然是无法满足林立新的需求的,
“我觉得咱们可以跟各地的高校图书馆合作,先搞个只能猜历史伟人的版本。”
这是威尔在深思熟虑后找到的最合适的解决方案。
这部分的数据集是绝对精确且足够完备的。
“呃……”
林立新挠了挠脸,
“谁说它必须猜对了?”
“?”
林立新停下笔,看着那个已经初现端倪的灯神形象,满意地点了点头。
将草图摆在一边,他这才看向威尔继续道:
“哪怕我们投入再多的人力、再多的资料储备,也不可能做到真正尽善尽美,不可能覆盖所有的答案。”
“更何况它要猜测的东西可不止是人而已,各种物件,甚至是抽象的概念,都应该能被猜测出来。”
“如果真的让我们一条一条地录入,那累死咱也不可能做到。”
“从一开始,Akinator就不可能永远是对的。”
威尔听到林立新的话,眉头微微皱起。
作为一名理工出身的硬核极客,这种不完美让他从直觉上就非常不舒服。
“别急嘛,虽然Akinator的确不是一个全知全能的神明,但我们可以让它成为一个……无限进步的‘准神’。”
“Akinator并不是一个单纯的决策树,那样太过低效,也不够‘聪明’。”
林立新伸手在自己太阳穴上点了点,
“我们可以把它看作是……一颗大脑。”
“大脑?”
威尔一愣。
难不成林立新悄眯眯地把人工智能给搓出来了??
“对,不过不是真正的脑子,而是‘贝叶斯大脑’。”
贝叶斯脑假说,脱胎于贝叶斯推理的假说。
所谓贝叶斯推理,其实简单点来说就是一个字——猜!
“这么说吧,假如你的不远处站着一个人,在你不认识他的情况下你要如何判断出他的性别?”
“呃?”
这并不是什么复杂的问题,威尔短暂的迟疑后便脱口而出:
“长发是女,短发是男;肩窄是女,肩宽是男;女装是女,男装是男之类的?”
“对,这就是Akinator的工作原理。”
林立新点点头,
“通过经验和已有的证据,去推测答案。”
说罢,林立新忽然话锋一转,
“不过你刚才的推断却存在着问题。长发的有可能是玩摇滚朋克的男人,肩宽的有可能是健身很猛的女侠,男装也有可能是时尚先驱。”
“呃……”
威尔挠挠头,这种话完全就是在抬杠了,
“照这么说,那岂不是永远都不可能百分百正确了?”
哪怕是跑过去给人家裤衩子扒了,那也有可能是去东南亚做过医疗的,验DNA也有可能是仪器出了问题。
这要是折腾起来那可就没完没了了。
然而林立新压根就没有反驳这句话,反而是乐呵呵地点点头。
“对呀,本来我们也只需要让对的概率足够大就行了。”
“?”
这叫什么事?
合着叽里咕噜了这么老半天,就是为了安慰他不需要考虑百分百正确?
“不过呢……贝叶斯推理在纯靠经验猜之上还有一个纠正环节。”
“虽然我们做不到能让它绝对正确,但我们可以让它不会犯同样的错误。”
威尔呼吸一滞。
有的时候思路就是这个样子。
一切东西都已经准备就绪,就差那个临门一脚。
随后便是海阔天空。
“这就是你执着于做成网络游戏的原因!”
威尔突然把一切都想明白了。
是了,Akinator或许会犯错,但它是个绝对理性的程序,只要把错误纠正,那么下一次它或许还会错,但绝不会再犯同一种错误。
每当猜不出答案时,就将这个新的实体加入到数据库中。
每当猜错的时候,就想办法增加概率的维度,让它猜的更准确!
林立新说的没错。
它是一个……无限进步的准神。
总有一天,它会变成真正的全知全能。
而为了这个目标,它需要让全体玩家,甚至是全体网民去主动使用它,主动去完善它的数据库。
看到威尔的神色变化,林立新笑得很灿烂。
看样子他已经明白自己的意思了。
到这一步就已经足够了。
尽管未来那个真正的Akinator还结合了机器学习和大数据的协同过滤,不过那些东西就不是现在的科技水平能做到的了。
林立新伸手把身旁还在埋头苦干的卡马克像提溜小猫似的薅起来,往威尔的方向一推。
“不过你说的对,涉及到复杂的概率学和算法优化,最好还是人多一点比较好。”
……
说到底这其实也不是什么复杂的项目,三个人合力开发,一周的时间也算是把该做的都做完了。
这是一款纯粹的后端项目。
也就是说它的本体实际上是挂载在网络服务器上的。
玩家所使用的‘软件’,不管是NX端还是NB、PC,都只不过是类似浏览器那样的用于访问的端口罢了。
这就让它的多平台移植非常的好做。
打从项目一落地,它就是字面意义上的全平台。