我想说明的是,这只是我开始初涉人工智能知识的思考日志。
一款有趣的游戏,必定需要游戏中各个环节的出色的发挥,比如人工智能模块的提现。还记得早期的电视游戏中的那些通关秘技吗?其实,当你在享受通关的快乐的时候,这款游戏可玩性也大大是缩短了。那么,如果Boss“学会”了思考呢?于是更智能的Boss出现了。
需要说明的是,其实游戏中人工智能只能算是人工智能,这个深奥的领域的一部分,它具有人工智能的一部分特性,但却又不完全的等同与人工智能。所以,也许Artificial Intelligence,这个名字更好些。
既然是人造智能,那它必然需要一个载体,比如人的智慧在人体的大脑中,而这里所说的AI的载体,当然指的是计算机了。
先来看下以往游戏的AI应用。它们大部分是以两种方式来体现的。第一种,严格意义来说并不能算是AI,因为它使用的是作弊机制,即,在判断行为之前,机器人是获取得到对方的准确数据指标的,从而根据开发者的定义来决定对拿到的这份数据做什么,这种情况下,机器人只有不想赢,没有赢不了。第二种则在Half-life中体现的非常不错,它有很好的AI机制,有些遗憾的是,它基于了大量的脚本化操作。
那如果我要撇开这两种方式,让AI更加名副其实呢?神经网络系统?或许有些宏大,但我想我可以学习其中一些概念。
首先,在我的思考里,有这样一个初步的模型。
创造机器人,将是第一步。人对事物的容载量是在脑细胞可以承载的范围内,同样,在AI机器人创建和使用的时候,就有必要对当前载体——计算机的情况做一个评估,以保证合理应用硬件资源。就好像人类先天的天赋,这将决定后面机器思考的范围和深度。
其次,赋予情感。人类对事物的判断,大致上基于两方面的信息:情感和思维判断。在这里,感觉也属于情感的系列。我们希望即便是机器人,也能有些性格,这样,或许看起来更丰富些,此外就像人一样,当自身的思维判断不足以作出动向的时候,就需要“感觉”去做,这,符合人类的习惯。
再次,是计算机最擅长的方面:思维逻辑。因为在上一条,我们已经撇开了情感这种感觉类因子,所以这里的逻辑判断,也就类似人类的纯常识性判断,即,根据存储数据,以学习到的思维模式去求解,这应该是整个AI模型中很重要的一部分内容。
情感与一些能力是人类的先天属性,AI机器人同样也需要它们,我想,或许承载它们的是一种合理的,高效的数据结构。
有了上面的思考,我的心中有了这样一个模型,或许它很初步,或许它很幼稚,或许它很不合理,但却是我了解这部分的开始,我希望它可以产生很多错误,这样我就可以不断的纠正自己。
这个模型的定义应该是分为两个方面的:AI机器的先天属性和后天处理。
先天部分,应该充分利用Script System,它有利于定义出一些诞生以后就不太需要改变的东西,就好像人一样,在这个部分应当包含一些FSM,FuSM,和Message,这其中包含了一定的自我修复能力,当然了,也可能被损坏,这应当是被允许的。同时它的极限能力,则是AI系统的运转能力。
这个过程,可能以GA的方式为统筹处理以便达到生产,自我修复,接受修复,等能力的实现。因为我们的定义是要应用于游戏中,所以在设计的时候,应该注意到GA的缺点,并做出反应。当然,它不会是这部分的核心而是一个很好的统筹辅助,比如全局数量性的问题,一些非线性,非连续的处理,GA都能够很好的胜任。而它的不足之处也是它不能作为这部分核心的主要原因:时间成本,算法的随机性(在接收到的提示出现问题的时候),此外还有因为heuristic technique,而始得得到的答案未必是最优的,此外重要的是,GA调试起来非常麻烦。还有些其他问题。所以,我们要做的应该是让GA的优点极限发挥。同它一起协作辅助的还有ACO,Coevolution,AGA等。
后天的思维模式,将会是基于NN的。它与GA看起来有些地方类似。当然它也有调试困难和学习周期等问题的存在,所以,初期只打算让它有个简单的雏形存在。除了NN,后天部分还打算具有一些Artificial Life,Planning Algorithm,Production Systems,Decision Tree,Fuzzy Logic等等。
两个部分想要以Layered Architecture的分布方式去架构,当然了,我很清楚,学习是一个过程,我的想法是在实践中掌握。
初期,就从一个机器人智能对话的程序开始吧。