曾经看到过网络上的一些文章打着人工智能的旗号,大谈深度优先搜索、广度优先搜索、Alpha-Beta剪枝等等搜索算法,然后就什么都没有了,给人的感觉,仿佛人工智能就是搜索,能用到人工智能的就是电脑博弈。另外一些文章呢,则脱离实际天马行空自由想象,一不留神就谈到哲学上去了。按我的理解,这样谈人工智能的人要么就是大牛,目光已经超越了现在人工智能的发展,要么就是对人工智能实在缺乏了解,不知道人工智能都研究什么,也不知道领域内的困难在哪里,因此也就只能凭空想象了。
那么,人工智能究竟是什么呢?说到人工智能首先要提到智能代理(intelligent agent)。智能代理是一种抽象的实体,可以把它想象成一个存在于系统中、程序中的机器人,它接受外部环境给它的讯息,同时也对环境做出动作,并影响环境。所谓外部环境,就是系统中不受智能代理控制的部分。比如,你如果把一个排序程序看成一个智能代理,那么输入的数据就可以看作外部环境,而你的程序对数据的排序就可以看成一种动作。而人工智能就是研究如何让智能代理更“智能”。所谓的“智能”,包括让它像人一样合理的思考,像人一样做出合理的动作。历史上有一些学者提出了一些关于人工智能的定义,这里摘抄几个:
1. "The study of how to make computers do things at which, at the moment, people are better." (Rich and Knight, 1991)
2. "The study of the computations that make it possible to perceive, reason, and act." (Winston, 1992)
3. "Computational Intelligence is the study of the design of intelligent agents." (Poole et al. 1998)
4. "AI ... is concerned with intelligent behavior in artifacts." (Nilsson, 1998)
人工智能的定义比较抽象,再看看它都具体研究什么吧。首先它研究问题解决(Problem-solving)。这里就包括很多人所了解的那些搜索算法。事实上搜索算法不止深度优先广度优先这些最简单的搜索策略,还有很多种很有效的方法,比如广为人知的爬山法、模拟退火、遗传算法等。其次它还研究知识表示和推理。这里面包括一阶逻辑的推理和定理自动证明。还有各种知识如何在计算机中表示出来。再次,它还研究机器学习。它包括的范围很广,有统计学习算法如经典的EM算法、贝叶斯模型、支持向量机,还包括人工神经网络、强化学习(reinforcement learning)等等。不要怪我不具体谈这些东东,这里面每一个东东都是一个很广阔的领域,三言五语是讲不清楚的。在今后的文章中我将重点讨论人工神经网络和强化学习。因为这是我正在研究的领域。