首页 > 代码库 > 什么是人工智能?

什么是人工智能?

目录

1. 概述

2. 基本问题

3. 人工智能的分支

4. 人工智能的应用

  • 概述

本文为外行人解答一些关于人工智能的基本问题,这里表达的看法并不都是AI研究者的一致意见。

  • 基本问题

Q: 什么是人工智能?

A: 人工智能是制造智能机器的科学和工程学,尤其是制作智能计算机程序。它与使用计算机来理解人类智能相似,但并不局限于生物可观察的方式方法。

Q: 什么是智能?

A: 现实世界中实现目标需要能力,而能力之中计算的部分便是智能。人类,许多动物和一些机器身上都展现出了不同类型和程度的智能。

Q: 人工智能没有一个不依赖于人类智能的严格定义吗?

A: 还没有,问题是,还不能使用通用的特性描述什么样的计算程序才能称之为智能。我们已经理解了智能的一些机制,还有一些机制没有理解。

Q: 智能是一个可以通过是与否判断的东西吗?比如“这台机器是否智能?”?

A: 不是。智能包含多种机制,AI研究已经发现了如何使计算机执行其中的一些机制,而不执行另外一些。如果执行某些任务需要的是当今理解很好的机制,计算机程序会给出令人印象深刻的表现。这样的程序应该被认为“某种程度的智能”。

Q: AI是人类智能的模拟吗?

A: 有时候是,但并非总是这样。一方面,我们可以通过观察其他人或观察我们自己的方式来了解如何让机器解决问题。另一方面,AI中的大多数工作涉及研究世界对智能提出的问题,而不是研究人类或动物本身。AI研究员可以自由的使用在人类身上没有观察到的方法,或者涉及超过人类计算能力的大量计算。

Q: IQ呢?计算机程序有IQ吗?

A: 没有。IQ是基于儿童智力发展速度的。它是这个年龄的儿童得到分数与儿童年龄的比例。这种比例可以以适当的方式扩展到成年人。IQ与生活中成功或失败的各种测量很好地相关,但是能在IQ测试中取得很高分数的计算机却与他们的有用性关系不大。举例来说,儿童记忆复述一串数字的能力与他们的智力相关,也许是因为可以测量儿童一次能够计算多少信息。然而,“数字跨度”问题哪怕对于极其有限资源的计算机来说都是微不足道的。

然而,IQ测试中的一些问题对于AI来说是有用的挑战。

Q: 人类和计算机智能之间的其他比较怎么样呢?

A: 人类智能领域的领先研究者Arthur R. Jensen [Jen98]提出了一种“启发式假设”:所有正常人都有相同的智力机制,而智力差异与“定量生化和生理条件”相关。人类智力是一种迅速,短期的记忆,以及形成准确和可检索的长期记忆的能力。

不管Jensen对于人类智力的的说法是否正确,但是当今AI的情况却是相反的。

计算机程序有快速并且大量的记忆,但是它们的能力与程序设计师理解的足以放入程序的智能机制是对应的。有些在人类进入青少年以上才拥有的能力,计算机程序已经能够做到了,但是有些两岁孩子拥有的能力,计算机程序却做不到。这个问题进一步复杂化,是由于事实上认知科学仍然没有成功地确定人类能力是什么。很可能AI智能机制的组织与人类保持差异才是更加有效的方式。

有些任务人类比计算机做的更好,计算机则需要进行大量的计算才能达到人类的的水平,这表明程序设计者缺乏对有效地完成任务所需的智能机制的理解。

Q: AI研究什么时候开始的?

A: 二战后,一些人独立开始了智能机器的研究工作。英国数学家阿兰图灵可能是第一个。他在1947年做了一个演讲。他可能是第一个提出AI研究最好的方式是使用可编程计算机,而不是通过制造机器。到20世纪50年代末,许多研究人员从事AI研究,他们大多数都是以编程计算机为基础的。

Q: AI的目的是将人类的思维放入计算机吗?

A: 一些研究人员表示他们有这一目标,但是他们可能是使用这个说法来作为一种比喻。人的意识有很多特性,我不确定当真会有谁去进行全部的模仿。

Q: 图灵测试是什么?

A: 阿兰图灵1950年的文章Computing Machinery and Intelligence [Tur50]讨论了判断机器智能与否的条件。他认为,如果机器能够成功的伪装成为人类,骗过知识渊博的观察者,那么就可以认为机器是智能的。这个测试令除了一部分哲学家以外的大部分人满意。观察者可以使用电子打字机来与机器和人类交互(为了避免要求机器模仿人的外貌或者声音)。人类将试图说服观察者他是人类,而机器将试图欺骗观察者。

图灵测试是一个单边测试。通过测试的机器应该被认为是智能的,就算机器对人类了解不足,不能够模仿人类,仍然可以看做是智能的。

Daniel Dennett的书Brainchildren [Den98]对图灵测试和已经实现的各部分的图灵测试进行了极好的讨论,即限制观察者对于AI知识和问题主题的了解。事实证明,一些人很容易相信一个相当愚蠢的程序是智能的。

Q: AI的目标是达到人类水平的智能吗?

A: 是的。最终的目标就是能让计算机程序能像人类一样好的解决问题,达成目标。但是,很多人在研究一些特定的领域,并没有如此雄心勃勃。

Q: AI离达到人类水平的智能有多远?什么时候能达到?

A: 一些人认为,通过编写大量的程序,并且用现在表达知识的语言组装大型的知识库,就可以实现人类水平的智能。

然而,大多数AI研究者相信那需要新的基本思想,因此不能预计什么时候才能实现人类水平的智能。

Q: 计算机是实现智能合适的机器吗?

A: 计算机可以编程来模仿任何类型的机器。

很多研究者发明了非计算机的机器,希望他们能够展现与计算机程序不同方式的智能。但是,他们通常在计算机上模拟他们发明的机器,并且开始怀疑新机器是否值得制造。因为为了使计算机变得越来越快已经花费了数十亿美元,即使发明另外一种机器也应该足够快,以便取得比用计算机程序模拟机器更好的性能。

Q: 在实现智能上,计算机是否已经足够快了?

A: 有些人认为和需要新思想一样,也需要更快的计算机。我个人的观点是,要是我们能够知道怎样正确的利用他们编程的话,30年前的计算机就已经足够快了。当然,撇开AI研究者的雄心不说,计算机也会越来越快。

Q: 并行机怎么样?

A: 多处理器机器比单处理器计算机要快。并行性本身并没有优势,并且并行机有不适合编程的尴尬。但是当需要极端速度的时候,就必须面对这种尴尬。

Q: 制造一种“儿童机器”怎么样,让它通过阅读和从经验中学习改进?

A: 从20世纪40年代开始,这个想法就已经被提出过很多次了。最终一定会实现。但是,AI程序还没有达到像儿童一样从实际经验中学习的水平。并且计算机程序也不能足够好的理解语言,以便其通过阅读来学习。

Q: AI系统能否通过思考AI的方式自主的改进提高自己的智能水平?

A: 我想是的,但是我们还没有达到以这个方式开始的水平。

Q: 象棋呢?

A: 一个俄罗斯AI研究员Alexander Kronrod说“象棋是AI中的果蝇”。他在用遗传学家研究果蝇类似的方式研究遗传继承。下棋需要某些智能机制,而不是其他机制。虽然象棋程序目前处于大师级的水平,但是它们只能通过有限的智能机制来运行,相比人类象棋玩家,程序在理解上花费了大量的计算代价。如果我们能更好的理解这些机制,就能编写出相当于人类水平的象棋程序,并且计算量要远小于现有的程序。

不幸的是,计算机下棋的竞争以及商业方面已经优先于使用象棋作为一个科学领域了。这就好像1910年以后,遗传学家组织了果蝇比赛,并集中精力培育可以赢得比赛的的果蝇一样。

Q: 围棋呢?

A: 中国和日本的围棋也是一种玩家轮流移动的棋盘游戏。围棋暴露了我们目前对人类玩游戏所涉及的智能机制理解的弱点。围棋程序是个非常失败的玩家,尽管它相当努力(没有达到国际象棋的程度)。问题是,围棋的位置需要在心里划分成一些列子位置,首先对子位置分别进行分析,然后再分析他们之间的相互作用。在象棋中人类也使用这样的方法,但是象棋程序是把位置当做一个整体。象棋程序为弥补这些智能机制上的不足要做成千上万次计算,就Deep Blue来说,要进行数百万次的计算。

早晚,AI研究会克服这个可耻的弱点。

Q: 没有人觉得AI是个坏主意吗?

A: 哲学家John Searle说让非生物机器智能化的想法是不和逻辑的。他提出了Chinese Room问题。哲学家 Hubert Dreyfus说AI是不可能的事情。计算机科学家Joseph Weizenbaum说这种想法是淫秽的,反人类的,不道德的。有人说,因为人工智能现在还没有达到人类的水平,所以它是不可能的。还有其他人失望,因为他们投资的公司破产了。

Q: 可计算理论和计算复杂性是AI的关键吗?[给外行和计算机初学者的注释:这些是数理逻辑和计算机科学的技术分支,所以问题的答案也有些技术性]

A: 不是。这些理论是相关的,但是不能解决AI的根本问题。

在20世纪30年代,数学逻辑学家,特别是Kurt Gödel 和Alan Turing确定,并没有保证解决某些重要数学领域中所有问题的算法。一阶逻辑是否是一个定理是一个例子,含有多个变量的多项式是否有整数解是另外一个例子。人类一直在解决这些领域中的问题,而这已经被作为一个论点(通常有一些装饰)提出来,计算机本质上不能做人类做的事情。Roger Penrose声称这一点。然而,人类也不能保证解决这些领域中的任意问题。

在20实际60年代,计算机科学家,特别是Steve Cook 和 Richard Karp 提出了NP完全问题领域的理论。这个领域的问题得到了解决,但是看起来要花费的时间随问题规模呈指数级增长。命题逻辑可满足性是NP完全问题领域的一个例子。通常人类解决NP完全问题需要的时间比通用算法保证的时间短的多,但是也不能保证很快速的解决。

对AI来说,重要的是使算法能够向人类一样解决问题。对于良好算法存在的子域的识别是非常重要的,但是很多AI解决的问题不容易确定子域。

通用问题难度的理论被称为计算复杂度。到目前问题,这个理论还没有像期望的那样大量用于AI。人类和AI程序成功的解决问题,看起来是基于问题的属性和解决问题的方法,而复杂度研究者和AI社区都还没能够准确的鉴别这些方法。

由Solomonoff, Kolmogorov 和 Chaitin提出的算法复杂度理论也与这相关。它将符号对象的复杂度定义为将生成它最短程序的长度。证明候选程序是最短的或接近最短的是一个不可解决的问题,虽然有时候不能证明该程序是最短的,但通过生成的短程序来表示对象仍然是有启发的。

  • 人工智能的分支

Q: 人工智能有哪些分支?

A: 这里有一个列表,但是肯定有些分支是缺失的,因为还没有人发现他们。列表中的一些可以认为是概念或者主题,而不是完整的分支。

逻辑AI:

程序对于世界,一般知道自己执行任务的具体情况的事实,其目标全部由一些数学逻辑语言的句子表示。程序通过推断哪些行动适合实现其目标来决定做什么。提出这一点的第一篇文章是[McC59]。 [McC89]是一个更新的摘要。 [McC96b]列出了逻辑AI中涉及的一些概念。 [Sha97]是一个重要的文本。

搜索:

AI程序经常检查大量的可能性,例如,在象棋游戏中移动,或由定理证明程序推断结论。如何在不同领域更有效地做到这一点需要不断的发现。

模式识别:

当程序进行某种观察时,通常被编程来将它看到的事物和模式之间进行对比。例如,视觉程序可以尝试匹配场景中的眼睛和鼻子的模式,以便找到面部。更复杂的模式,例如,自然语言文本中的模式,象棋位置中的模式,或在研究某些事件的历史中的模式。这些更复杂模式的方法需要完全不同于已经研究最多的简单模式。

表示:

关于世界的事实必须以某种方式表现。通常使用数学逻辑语言。

推理:

从已知的一些事实中,可以推断出其他事实。数学逻辑推理足以满足某些目的,但是自20世纪70年代以来,非单调推理的新方法已经被添加到逻辑学中。最简单的非单调推理是缺省推理,其中使用缺省条件推断出结论,但如果有相反的证据,则撤销结论。例如,当听到一只鸟,我们推测出它可以飞,但这个结论可以反转,比如当我们进一步听到它是一只企鹅的时候。撤消构成推理的非单调性质的结论是可能的。普通逻辑推理是单调的,因为从一组前提集合得出的结论集是前提集合的单调递增函数。限制逻辑是另一种形式的非单调推理。

常识及推理:

这是AI距离人类水平最遥远的领域,尽管自从二十世纪五十年代以来它一直是一个活跃的研究领域。虽然已经取得了相当大的进展,比如在开发非单调推理和行动理论的系统中,但是还需要更多的新想法。Cyc系统包含大量但是多样的常识事实的集合。

从经验中学习:

程序这样做。基于连接主义和神经网络的AI的方法专攻于此。还有学习逻辑表达的规律。 [Mit97]是一本全面的本科生机器学习文本。程序只能学习它们的形式可以表示的事实和行为,不幸的是,学习系统几乎都是基于非常有限的能力来表示信息。

规划:

规划程序从关于世界的一般事实(特别是关于行动的影响的事实),关于特定情况的事实和目标的声明开始。根据这些,它们产生一个实现目标的策略。在最常见的情况下,策略只是一系列行为。

认知论:

这是对解决世界上的问题所需的各种知识的研究。

本体论:

本体论是对存在的事物的研究。 在AI中,程序和句子处理各种对象,我们研究这些类型以及它们的基本属性是什么。 强调本体始于20世纪90年代。

启发式:

启发式是试图发现某事或嵌入在程序中的想法的一种方式。 该术语在AI中被不同地使用。 启发式函数在一些方法中用于搜索,以测量搜索树中的节点距离目标有多远。 启发式谓词,比较搜索树中的两个节点,以查看一个是否比另一个更好,即构成朝向目标的前进,可能更有用。 [我的想法]。

遗传编程:

遗传编程是一种通过组合随机Lisp程序和选择数百万代中最适合的程序来完成任务的技术。它正由John Koza小组开发,这里是一个教程。

人工智能的应用:

Q: 人工智能有哪些应用?

A: 这有一些例子:

游戏:

你可以花几百美元买一些达到大师级棋艺水平的机器。它们就使用了AI,但是它们对抗人类主要是通过暴力计算-看成千上万的位置。要通过暴力计算和可靠的启发式击败一个世界冠军,需要每秒钟看2亿个位置。

语音识别:

在20世纪90年代,计算机语音识别达到了有限的目的的实用水平。因此,美国航空公司替换掉了原有的键盘树,转而使用航班号码和城市名称的语音识别系统来提供航班信息。这是相当方便的。另一方面,虽然可以指示一些计算机使用语音,但是大多数用户还是转回到键盘和鼠标,因为更方便。

自然语言理解:

只把一些单词放入电脑是不够的。解析句子也不够。

计算机视觉:

 

专家系统:

 

启发式分类:

 

什么是人工智能?