Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1797937
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 信息化

2013-03-17 15:50:56

近两千年来,哲学家一直在尝试理解和解决宇宙的两大问题:
1、人类的思想如何工作?
2、非人类是否有思想?

有些哲学家认同机器可以做任何人类可以做的事,而另一些却持反对意见,认为比如爱、创造发现、道德选择等高级复杂的行为远超过机器可达到的境界。

如今,工程师与科学家已经创建了一些有“智能”的机器。然而,“智能”究竟是什么意思呢?在字典里,它有两个定义:
1、人的智能是他理解和学习事物的能力;
2、智能是思考和理解的能力,它不仅仅是反射或本能。
第一种定义依赖于“人”,对于非“人”的机器而言,我们取第二种定义。这时,我们需要知道“思考”是什么意思。它在字典里的定义为:
思考是使用你的大脑来考虑问题和创新的能力。

根据这个定义,要思考,则必须要一个“大脑”。换句话说,需要一个器官来提供学习、理解、解决问题以及作出决定的能力。因此,我们可以把智能定义为:
学习、理解、解决问题以及作出决定的能力

从1940年后期的人工智能的黑暗年代(dark age)开始,有一个问题一直在伴随着我们:机器是否可以有智能?换句话说,机器是否可以思考?
这个问题的答案对于这门学科来说至关重要。然而,这个答案并非简单的“是”与“否”。一些人在某些领域可能比其它人更聪明些,同样,我们可以假设,如果机器可以思考,它们也可以在某些方面比其它的更聪明些。

关于机器智能的最早且意义最重大的论文,是由图灵(Alan Turing)在1950年所写的“计算机械与智能”(Computing machinery and intelligence)。它经受住了时间的考验。图灵并没有给出机器和思考的定义,而是发明了一个游戏来避免语义上的争论。
这个游戏的名字“图灵模仿游戏”(Turing imitation game)。图灵更专注于“机器是否可以通过智能行为测试”,而非“机器是否能思考”。该游戏分为两个阶段:
1、测试者、男人、女人分别被安置在三个独立的房间中,他们三人通过电脑终端进行交流。男人和女人都尽可能地表明自己是女性。因此,男人需要想方设法地迷惑测试者。
2、将男人替代为具有编制好的程序的计算机,它同样尽可能地迷惑测试者,使之相信它是女人。期间可能会刻意犯些错误,延长响应时间等来迷惑测试者。如果测试者不能分辨谁才是女人,那么说这台计算机就通过了智能行为测试。

图灵测试有两个显著的特性,使得它非常通用:
1、使人类和机器通过终端交流,从而给了我们对智能的一个客观的标准。
2、测试本身与实验细节之间相当独立。它可以是两个阶段,也可以是一个阶段。测试者可以问任何领域上的任何问题。

图灵曾预测20世纪末可能有数字计算机参加这个模仿游戏。虽然当前的计算机仍不能通过图灵测试,但它提供了对基于知识的系统的检验衡量的基准。一个程序在很小的领域的智能,可以通过和人类专家进行比较来衡量。

我们的大脑存储了超过1018位的信息,并用每秒约1015位的速度处理信息。到2020年,大脑很可能被模型化在一个方糖大小的芯片里,到那时可能有计算机可以参加甚至赢得图灵模仿游戏。然而,我们并不想让计算机在数学计算上和人一样慢。从切实的角度上看,智能机器应该帮助人类决策、搜索信息、控制复杂的物体、并最终理解话语的意义。要构建智能计算机系统,我们就必须捕捉、组织并使用在特定领域的人类专家的知识。

人工智能(Artificial Intelligence, AI)的历史--从”暗世纪“到基于知识的系统
AI作为一门科学成立后,历经了三代人的研究。各代所发生的重大事件和贡献如下:
1、1943-1956年,暗世纪,AI的诞生。
拥有哲学和医学学位的Warren McCulloch当时是Illinois大学的精神医学部门里的基础研究实验室的负责人。他在1943年和一个年轻的数学家Walter Pitts提出了一个人工神经网络模型。在这个模型里,每个神经元都有“开”和“关”两种状态。他们证明了这个神经网络模型和图灵机等价,并证明了任何计算功能都可以由神经元组成的某种网络来完成。他们还指出简单的网络结构是可以学习的。
神经网络模型刺激了实验室里对大脑建模的理论和实验的研究。然而,实验明确地证明了神经元的二进制模型是不正确的。事实上,神经元有高度非线性的特性,不能简单地被认为只有两种状态。尽管如此,McCulloch这位继图灵后的第二位AI之父奠定了神经计算和人工神经网络(ANN)的基石。在经过上世纪七十年代的衰退期后,ANN在上世纪八十年代末期重新复苏。

AI的第三位创始人是冯诺伊曼(John von Neumann),他是图灵的同事和朋友。在他的支持下,普林斯顿的数学系的两个研究生Marvin Minsky和Dean Edmonds在1951年建造了第一台神经网络计算机。Minsky的博士学位论文是3000个真空电子管构成的人工神经网络。

Claude Shannon是另一个第一代的研究者。他承袭了图灵关于机器智能的可能性的观点。1950年,他发表了一篇关于下棋机器的论文。这篇论文指出,一盘经典棋局有大约10120种可能的移动方式。哪怕是新的冯诺依曼型计算机,每毫秒可以计算出一步,也需要花费3x10106年才能走出它的第一步。因此Shannon证明了需要启发式(heuristics)搜索来解决这个问题。

AI的另一个创始人,John McCarthy,说服了Marvin Minsky和Claude Shannon组织了一场夏季研讨会,虽然只有十位研究者参加,但这场研讨会诞生了一门新的名为“AI”的科学。在之后的20年里,AI领域基本上由这场研讨会的参与者以及他们的学生所主导。

2、1956-1960末,AI的掘起,风云时代(the era of great expectations)
最开始的几年,AI被人们认为是伟大的想法,投入了大量的热情,但取得和的成功有限。而在此更早的几年里,计算机只是被用来执行常规的数学计算,但当时AI研究者证明着计算机所能做的远不止此。

John McCarthy,术语“AI”的发明者,发明了高级语言LISP,它只比Fortran晚两年出现,非常古老,如今仍然还在使用。1958年,McCarthy发表论文“Programs with common sense”,提出一个叫做Advice Taker的程序,用于寻找解决世界的通用问题的方案。它可以在不被重新编程的情况下,接受新的知识,因此它是第一个完整的基于知识的系统,体现了知识表示和推理的核心理论。

Marvin Minsky却并不喜欢McCarthy在形式化逻辑上的专注,而是发展一种“反逻辑”(anti-logic)的知识表示和推理的观点。他1975年提出的框架(frames)理论是对知识工程的主要贡献。

McCulloch和Pitts开创的神经计算和人工神经网络的工作,仍然在进行着。“学习方法”得以进展。1962年,Frank Rosenblatt证明了“感知机收敛定理”(Perceptron Convergence Theorem),并证明了他的学习算法可以适应感应机的连接强度。

在风云时代最具野心的项目之一是通用问题解决机(General Problem Solver,GPS),由Allen Newell和Herbert Simon提出。GPS是一个模仿人类解决问题方法的程序,它很可能是第一个尝试把解决问题的技术和数据分离的程序。它是基于手段-目的分析(means-ends analysis),把要解决的问题以术语"状态"来定义。手段目的分析用来确定当前状态和目标状态的区别,并选择和应用达到目标状态的操作。如果目标状态不能从当前状态立即达到,那么建立一个与目标状态更接近的新状态,以此重复直到到达目标状态。操作集由解决计划决定。
然而,GPS无法解决复杂的问题。它基于形式化的逻辑,因此可以产生无限种可能的操作,从而非常低效。GPS解决真实问题时所需要的时间和内存,导致这个程序被遗弃。
总结说来,在上世纪六十年代,AI研究者尝试发明解决各种问题的通用方法,来模拟复杂的思考过程。这样的方法现在被称为"弱方法"(weak methods),只需关于问题域的微量信息,这导致了很差的执行效率。

这段时间,AI吸引了伟大的科学家,在多个领域引入了新的基础想法,比如知识表示、学习算法、神经计算、话语计算(computing with woeds)等。由于当时计算机能力的限制,这些想法无法实现。但四十年后,它们带来了真实应用的发展。
Lotfi Zadeh在1965年发表论文"模糊集"(Fuzzy sets)。四十年后,模糊研究者建造了上百个智能机和智能系统。
到1970年,人们对AI的狂热已经不再,多数政府AI机构都被撤销。AI仍然是新的领域,从外界看来,AI的成果不过是些玩具,不能解决真实世界的问题。

3、上世纪六十年代后期-上世纪七十年代,未满足的承诺,回归现实。
在上世纪五十年代,AI研究着作出承诺,到上世纪八十年代建造具有人类智能的计算机,到2000年创造超过人类智能的机器。然而到了七十年代,他们意识到他们过于乐观,几乎没有任何AI程序可以解决真实世界的问题。这种困境主要由以下几个原因造成:

1)AI研究者一直在研究解决各种问题的通用方法,早期的程序都几乎没有问题域的知识。程序只是使用搜索策略尝试不同步骤的组合,直到找到最终结果。这种方法可以解决玩具问题,但这种指数级复杂度的算法应用到真实问题时是行不通的。只有多项式复杂度的算法才被认为是高效的。70年代发展的NP完整性(NP-completeness)理论指出,就算有更快的计算机和更大的内存,NPC问题也很难解决。
如果某个问题的解决方案可以找到多项式时间内解决它的算法,则称它为P问题(polynomial);如果能在多项式时间内猜出并验证某个解决方案,则称它为NP问题(non-deteministic polynomial);NPC问题(NP-complete)是指所有NP问题都可以约化而得到的NP问题,NPC是最复杂的问题,不存在多项式的高效算法。约化的意思是,问题A约化为问题B,则可以用问题B的解法解决问题A,比如一元一次方程可以约化为一元二次方程,将其视为二项系数为0的一元二次方程。约化更标准的概念是:对于程序A的任何输入,通过一种转化规则变为程序B的输入,两个程序的输出相同。通常说的约化是多项式约化。)

2)AI想要解决的问题太宽泛且太难。1957年开始的翻译俄文科学论文的项目在1966年取消,该年美国政府也取消了所有翻译的项目。最开始人们认为翻译只是简单的辞典替换工作,但他们马上发现翻译其实还需要对原文的理解从而选择正确的单词,所以是极其困难的。

3)英国政府也暂停了AI研究的支持,因为他们没有得到任何重大的AI的研究成果,以至于认为不需要AI这门科学。

4、70年代早期-80年代中期,专家系统技术,成功的关键。
70年代最重要的发展可能是意识到智能机需要足够的问题域的知识。之前,AI研究者一直相信可以发明聪明的搜索算法和推理技术来模拟通用的、类人的问题解决方法,只需少量的领域知识,依靠推理方法来找到最终的解决方案。

DENDRAL程序是新兴技术的典型例子,由斯坦福大学开发,用来分析化学品。这个项目由NASA资助,因为当时要把无人飞船发射到火星,需要一个程序来根据质谱数据(mass spectral data)来确定火星土壤的分子结构。Edward Feigenbaum和Bruce Buchanan与**遗传学奖得主Joshua Lederberg合作,将Lederberg的专业知识编制成程序。这类程序之后被称为“专家系统”。
在开发的过程中,Feigenbaum发现这个项目的主要挑战在于如何将人类专家的知识提取并应用到计算机,他称这个挑战为“knowledge acquisition bottleneck”。为了解决这个问题,Lederberg也不得不学习计算机的基础知识。(Feigenbaum在开发过程中,也不得不学习一些化学和光谱分析的基础,以便理解Lederberg的知识和术语。)
最终,他们成功开发出第一个的基于知识的系统。
DENDRAL的重大意义在于:
1)它标志着AI一个主要的“范式转换”(paradigm shift):从通用的、缺乏知识的、弱方法的AI,转换成领域相关的,内含知识的技术。
2)它以高品质的规则“rules-of-thumb”的形式使用了启发,从而证明了计算机可以在特定的问题域上等同于一个专家。
3)它产生了专家系统的新的方法学“知识工程”,主要研究获取、分析、和以规则形式表达专家的知识。

在DENDRAL之后,在1972年Feigenbaum再次启动了一个名为MYCIN的工程,它是一个基于规则的专家系统,包含了450条独立的IF-THEN规则,用于诊断传染性血液疾病。同时它还以便利、友好的方式向医生提供建议。
MYCIN将规则和推理机制清晰地分开,所以通过增删规则,可以很容易地操作规则。之后MYCIN的领域无关的版本EMYCIN(Empty MYCIN)面世,它除了传染性血液疾病的规则外,保留了MYCIN系统的所有特性。通过增加知识,EMYCIN可以成为另一个领域的专家。

另一个专家系统PROSPECTOR,由Stanford Research Institute开发,用于矿石勘探。该项目从1974年开始服役到1983年。有9位专家贡献了他们的专业知识。PROSPECTOR使用了规则和语义网络的组合结构,它有上千条规则表示大量的专业知识。它还有一个包含知识获取系统的支持包。
在1980年,它找到了价值超过1亿美元的矿石。
70年代后期,越来越多的专家系统的成功,证明了AI技术可以从实验室走向商业环境。这段时间,多数专家系统由专门的AI语言开发,比如LISP、PROLOG、OPS,基于强大的工作站。由于硬件的昂贵以及编程语言,只有少数的研究机构才能开发专家系统。直到80年代,随着PC的普及和易用的专家系统开发工具"shells"的出现,普通研究员和工程师才有机会开发专家系统。

尽管专家系统得到很大的成功,但我们也不能高估这种技术的能力,原因在于:
1)专家系统只有相当狭隘的专业领域的知识。比如MYCIN,如果病人患了不只一种病,则不能依赖于它。
2)由于领域狭隘,专家系统比如用户期望的那样健壮和灵活。当分析非典型问题,到达领域边界时,很可能会出错。
3)它的解释能力有限。它能给出得到解决方案所使用的规则序列,但不能把聚合的启发的知识和问题域关联起来以便更深的理解。
4)专家系统很难验证,没有通用的办法来分析它的完整性和一致性。
5)专家系统,特别是第一代的,几乎没有学习的能力。

5、1980中期至今,如何让机器学习,神经网络的复苏
80年代中期,人们发现建造一个专家系统远不只买个推理系统或专家系统的外壳再添加足够的规则那样简单。AI研究者决定重新审视神经网络。在60年代末,神经计算所需的基本概念已经形成,但直到80年代中期才有解决方案浮现。这种延迟的主要原因是技术上的:当时没有强大的工作站或PC来对人工神经网络进行建模和实验。另一个原因是心理学和经济上的:1969年Minsky和Papert在数学上证明了单层感知机(one-layer perceptrons)的计算局限性。他们还预测复杂的多层感知机也不能改善多少,结果很多AI研究者在70年代都放弃了ANN这个领域。

在80年代,由于类脑信息处理的需要,同时计算机技术的进步和神经科学的进展,神经网络又戏剧化地复活了。Grossberg建立了一门新的学科“自组织”(self-organisation)(自适应共振理论,adaptive resonance theory),它为新的一类神经网络提供了基础。Hopfield引入了具有反馈的神经网络--Hopfiled网络。它在80年代引起了大量的关注。Kohonen在1982年发表了关于自我组织地图(self-organised maps)的论文。Barto、Sutton和Anderson发表了关于强化学习(reinforcement learning)的成果。然而,真正的突破在于1986年的“反向传播学习算法”(back-propagation learning algorithm),它由Bryson和Ho在1989年提出,在1986年由Rumelhart和McClelland重新发明。在同一时期,Parker在1987年、LeCun在1988年也发现了反向传播学习。从那开始,它就成为训练多层感知机的最流行的技术。在1988年,Broomhead和Lowe找到了设计“分层前馈网络”(layered feedforward networks)的过程,作为多层感知机的替代品。
人工神经网络如今成为神经学、心理学、数学与工程的交叉学科。

6、70年代早期至今,进化计算,在做中学
自然界的智能是进化的产物,因此,通过模拟生物学的进化,我们可能可以发现事物是如何进化得到智能的。自然从做中学,生物优胜劣汰。最适应的种族存活的希望更大,因而将基因保留到下一代。
AI的进化方法是基于自然选择和基因学的计算模型。进化计算模拟一群个体,评估它们的性能,产生下一代,并多次重复该过程。
进化计算融合了三个主要的技术:遗传算法(Genetic algorithm)、进化策略(Evolutionary strategies)和遗传编程(Genetic programming)。
遗传算法的概念由John Holland在1975年提出。他开发了一套算法来操作人工"染色体"(二进制数串),使用选择、交叉和变异的基因操作。遗传算法基于Schema Theorem的坚实理论基础。
在60年代早期,Ingo Rechenberg和Hans-Paul Schwefel提出与遗传算法相互独立的"进化策略",专门用于解决过程里的参数优化问题。Rechenberg和Schwefel建议使用参数的随机改变,来模拟自然的变异。
遗传算法和进化策略都可以解决大范围的问题。它们为高度复杂、非线性的查找和优化的问题提供了健壮而可靠的解决方法,这些问题在此前完全无解。
遗传编程是学习编程的基因模型的应用。它的目标不是要进化成表达某个问题的代码形式,而是解决这个问题的计算机代码。换句话说,遗传编程会产生作为解决方案的计算机程序。
John Koza在90年代激发了大众对遗传编程的热情。他使用基因操作来操控表示LISP程序的符号化代码。遗传编程为计算机科学的主要挑战提供了解决方法,在没有显式编程的情况下,使计算机解决问题。
基因算法、进化策略和基因编程是AI发展迅速的领域,有巨大的潜力。

7、80年代至今,知识过程新纪元,对单词进行计算
神经网络技术比基于符号化推理的系统提供了更多的和真实世界的自然交互。神经网络可以学习、适应问题环境的变化、在规则不明确的情况下建立模式、处理模糊和不完整的信息。然而,它们缺少解释机制,通常表现成一个黑盒。使用当前技术训练神经网络很慢,而且重新训练特别困难。
ANN与专家系统没有竞争关系,而是互补。典型的专家系统擅长精确输入和逻辑输出的闭合系统,以规则的形式使用专业知识,在需要时和用户交互建立特殊的事实知识。它主要的缺陷在于人类专家不能总是以规则的形式表达他们的知识,或者清楚地解释他们的推理过程。为了克服这种限制,神经计算可用来在大量数据集里找到隐藏知识来得到规则。ANN也可以用来更正传统基于规则的a专家系统里的规则。
另一种非常重要的处理不精确和不确定的知识和数据的技术是模糊逻辑(fuzzy logic)。在典型的专家系统里,多数处理非精确情况的方法都是基于概率的概念。然而,专家通常都不使用概率值,而是诸如“经常”、“通常”、“有时”、“偶尔”、和“几乎没有”这样的术语。模糊逻辑就是研究模糊值的使用。这些模糊值用来获取话语的含义,人类推理和决策。作为一种以精确反映专家对困难复杂的问题的理解的形式来编码和应用人类知识的方法,模糊逻辑为打破传统专家系统的计算瓶颈找到了出路。
模糊逻辑的核心在于语言变量的概念。语言变化的值班是单词,而不是数字。和专家系统一样,模糊系统也使用IF-THEN规则来表达人类知识,但这些规则很模糊,比如:
IF speed is high THEN stopping_distance is long
IF speed is low THEN stopping_distance is short
模糊逻辑由Lotfi Zadeh教授在1965年提出,也称为“模糊集理论”(fuzzy set theory)。它提供了一种对单词进行计算的方法。然而,技术社区对模糊集理论的接受过程却是漫长和艰辛的。部分原因在于这刺激人的名字“模糊”,看上去过于随意,而不被人认真看待。最终,模糊理论被西方忽视,而被东方(日本)重视。从1987年开始,它在日本设计的洗碗机、空调、电视、复印机甚至是汽车里被成功使用。

模糊产品的出现,使得人们对这门30年前提出的“新”技术热情大增。现在已经有数百本书和数千个技术论文是关于这个主题的。经典的有:Fuzzy Sets、Neural Networks and Soft Computing (Yager and Zadeh, eds, 1994)、The Fuzzy Systems Handbook (Cox, 1999)、Fuzzy Engineering (Kosko, 1997)、Expert Systems and Fuzzy Systems (Negoita, 1985)、还有卖得最好的科学书Fuzzy Thinking (Kosko, 1993)。

在基于知识的系统和决策支持系统里模糊逻辑模型应用带来的好处有:
1、更强大的计算能力。模糊的基于规则的系统比传统专家系统更快且需要更少的规则。模糊专家系统将规则融合,使其更加强大。
2、更好的认知模型(cognitive modelling)。模糊系统里,知识的编码形式反映了专家考虑复杂问题的方式。他们通常使用不精确的术语,比如“高”和“低”,“经常”和“几乎没有”等。
3、能够表达多个专家的知识。传统专家系统基于狭小领域里的特定的专家来建造的,它的质量完全取决于专家的选择。多个专家可以扩展领域,而且可以避免对世界级的专家的需求。模糊专家系统在多个专家持相反意见时,帮助表达专业知识。

尽管模糊系统可以用更自然的方式表达专业知识,但它仍然依赖于从专家那提取出的规则,因而可以很聪明,也可以很蠢。有些专家提供很聪明的模糊规则,而某些可能只是猜测甚至给出错误的知识。因此,所有的规则必须测试并调整,这个过程比较麻烦。我们可以通过模糊逻辑开发工具很容易地构建一个简单的模糊系统,但是之后可能需要数天、数周、甚至是数月来试验新的规则并调整系统。

在近几年,基于神经元网络技术的几种方法被用来为模糊规则寻找数值数据。神经元模糊系统可以找到新的模糊规则,或者基于提供的数据来调整已有的规则。

如今,专家系统、神经元系统、和模糊系统不再竞争,而是彼此互补。现在基于已有的理论来构建智能系统是很普遍的,而不再提出新的理论。

阅读(4232) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~