余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

从教科书看人工智能学科演化

xiyangw 2023-09-17 16:32 8 浏览 0 评论


最早的关于人工智能的系统性教科书的作者可能是尼尔斯·尼尔森(Nils Nilsson)。他在20世纪60年代初已经意识到不太可能把人工智能的两条路线整合在一起,于是先写了Learning Machines: Foundations of Trainable Pattern-Classifying Systems(学习机:可训练模式分类系统的基础),1965年出版。这本书也是神经网络最早的教科书之一;1971年他又写了符号派的Problem-Solving Methods in Artificial Intelligence(人工智能中的问题求解方法)一书。有意思的是,这两本书出版之间的那几年恰好是人工智能抛弃神经网络走向启发式程序的转折点。他后来陆续写的几本书都属于符号派。其中1980年出版的Principles of Artificial Intelligence,影响最大,是标准的教科书,书中只字不提机器学习。此书在1983年由清华大学石纯一教授译为中文(《人工智能原理》,1984,科学出版社),大概是我国最早引进的人工智能教材之一。1998年出版的Artificial Intelligence: A New Synthesis(人工智能:一种新的综合)可视为上一本书的修订版,共12章,其中有4章讲定理证明,其实就是归结方法及其变种;4章讲智能体(agents);剩下4章讲搜索;各方面都照顾到了,算是中庸。

尼尔森在1985年离开他服务了二十多年的斯坦福研究院(SRI),加入斯坦福大学成为计算机系主任。1988年他和斯坦福大学的吉内塞雷斯(Genesereth)合作过另一本更加窄门的教科书Logical Foundations of Artificial Intelligence(人工智能的逻辑基础),聚焦和逻辑相关的话题。吉内塞雷斯一直在人工智能领域里努力推动逻辑,但他毕竟是一位资深的工程师而不是专业的逻辑学家,他的兴趣是把知识交换格式(Knowledge Interchange Format,KIF)推成标准,书中专有一章“元知识和元推理”(Meta-knowledge & Meta-reasoning),这是KIF的理论基础,也为后来的知识图谱的标准化工作积累了一些经验。此书是一本不严格和不完全的一阶逻辑和定理证明的教科书,质量和影响都不如Chin-Liang Chang和Richard Char-Tung Lee(李家同)的那本Symbolic Logic and Mechanical Theorem Proving(符号逻辑与机器定理证明),可惜后者第七章有些错误,而两位作者之后也远离机器定理证明领域,一直没有出版非常有价值的修订版。随后,人工智能的风向变了,尼尔森生前一直在写一本名为“Introduction to Machine Learning”(机器学习引论)的书,很遗憾没有写完,他边写边在他斯坦福大学的个人主页上更新书稿,最后一次更新是2005年,其中两章讲“强化学习”。这几本书既反映了他的职业生涯,也见证了人工智能学科的变迁:从机器学习起,到机器学习终。他2009年的人工智能历史专著The Quest for Artificial Intelligence: A History of Ideas and Achievements(对人工智能的探索:思想和成就的历史)是他对整个人工智能学科几十年发展的反思,人工智能的几起几落,他都是参与者。马文·明斯基(Marvin Minsky)是人工智能的先驱之一,他不喜事务管理,很早就退出了麻省理工学院人工智能实验室主任的任职,交班给他的学生温斯顿(Patrick Winston)。温斯顿年纪轻轻就凭着出色的行政能力执掌有大量经费的人工智能实验室。温斯顿的Artificial Intelligence(中译本《人工智能》,1983,科学出版社)曾经是标准教科书,1977年第一版出版,1992年出版了第三版。期间历经20年,但这正是神经网络派不得意的年代,此书自然属于符号派,虽然内容不断充实,但思想路线无本质变化。瑞奇(Elaine Rich)的Artificial Intelligence(中译本《人工智能》,1993,晓园出版社)1983年出版了第一版后一直是美国最流行的教科书之一。1991年第二版和2009年第三版分别增加了新作者。瑞奇自卡内基梅隆大学毕业后就加入了德克萨斯大学奥斯汀分校任教。90年代初,美国在奥斯汀成立微电子与计算机联盟(Microelectronics and Computer Consortium,MCC),以应对日本在半导体和人工智能领域的崛起,瑞奇加入MCC作为人工智能项目的负责人。1998年MCC解散后,瑞奇又作为高级讲师重返奥斯汀分校任教。Artificial Intelligence第三版的最后一章居然是Prolog,并且副标题是“人工智能的自然语言”。MCC的使命之一就是对抗日本的第五代计算机,而Prolog就是五代机的基础,从中可以看出时代留下的印迹。头两版基本属于传统符号派;但第三版有两章专讲神经网络,有一章讲遗传算法,尚算平衡。布朗大学的查尔尼克(Eugene Charniak)和耶鲁大学的麦克德莫特(Drew McDermott)在麻省理工学院读博时是同学,他们合著的Introduction to Artificial Intelligence(人工智能引论),出版于1985年,也是符号派的标准教科书。查尔尼克的研究兴趣是自然语言处理,曾经深耕统计解析(parser)。2019年,他与时俱进,自己单独出了本Introduction to Deep Learning(中译本《深度学习导论》,2020,人民邮电出版社),此书是项目驱动型,除了第一章,每章都要求用Python做一个项目,其中有一章专讲如何使用TensorFlow。这本书虽然偏应用,但并非不严谨,用到的数学都交待得清清楚楚,有一定编程基础的可作为入门书,理论和实践兼顾。金斯伯格(Matt Ginsberg)写的Essentials of Artificial Intelligence(人工智能指要)也颇有影响,出版于1993年。有点奇怪的是第七章名为“谓词逻辑”,第八章名为“一阶逻辑”。在逻辑学家的词典里,谓词逻辑就是一阶逻辑。但金斯伯格用“谓词逻辑”特指Prolog类型的句法,即量词已经消掉的一阶逻辑,或者用Prolog的说法叫“子句逻辑”。另外,此书专有一章讲“非单调推理”,这是一个现在不太有人关注的领域。认知科学和人工智能的交集很大,尽管术语有所不同。平克(Steven Pinker)不仅是认知心理学家,还是一位公共知识分子。他有本畅销书《心智探奇》(How the Mind Works),内容就是把人工智能教材里的公式和算法翻译成心理学的文字描述和比喻。此书中文译本的章节标题也都翻译为了人工智能的术语,如果只看中文标题,它和标准的人工智能教科书没有太大区别。罗素(Russell)和诺维格(Norvig)的书Artificial Intelligence: A Modern Approach(人工智能:现代方法)是最全面最“现代”的标准教材,被全球1300多所学校采用。第二作者诺维格后来长期负责谷歌的搜索项目,但从没有离开教学,他自称用这本书至少教了16万名学生。此书也是同类里最厚的,共1100多页,比瑞奇的最新版足足厚了一倍多。如果按照页数分,书中的传统内容大约有600页,概率推理不到200页,而深度学习和强化学习相关的内容大约有220页,另外有哲学和未来展望两章40页。这本书第一版出版于1992年,里面几乎没有神经网络的内容。1995年出第二版时,虽没有神经网络,却有一章讲强化学习,并对强化学习有独到的评价,这反映了作者的品味。书中有言:“可以认为强化学习包含了所有人工智能。”2021年第四版出版,距第一版问世几近30年了。与2012年出版的第三版相比,第四版增加了“深度学习”一章,在“自然语言处理”一章之后增加了“自然语言处理中的深度学习”一章,专讲大模型相关的基础内容。在“机器人学”一章中加入了强化学习一节。“对抗搜索”(Adversarial Search)一章中加了蒙特卡洛树一节,很明显受到AlphaGo的影响。原来有两章关于规划(planning)的内容,现在合并为一章,而概率推理原来有两章,现在有三章。总体看,第四版与第三版相隔9年,结构并没有大改动,毕竟第三版出版时深度学习已经遍地开花了。另外,像第20章“学习中的知识”(Knowledge in Learning)虽然说的是机器学习,但聚焦基于解释的学习(explanation-based learning),早年间这也称为归纳(induction),更多是逻辑的内容,和当下的深度学习和强化学习关系不大。表1总结人工智能子学科、活跃年代,及相关教科书的版本。 图片教科书是不是越厚越全面就越好?《费曼物理学讲义》出了几个不同版本,以千禧年版为例,一共1500多页,但分印成三册,每册内容侧重不同,分别讲力学、电磁学和量子力学。物理学最流行的教科书是哈里德(David Halliday)和瑞思尼克(Robert Resnick)的《物理学基础》(Fundamentals of Physics),第一版出版于1960年,到2017年已经出到第十一版,两位作者长寿,分别在2010年(94岁)和2014年(91岁)过世。后几版都是由比他们年轻的沃尔克(Jearl Walker)完成,而沃尔克今年(2023年)也已78岁了。第十一版接近1500页,可谓“不可承受之轻”。2021年出第十二版时,也被分为上下两卷,上卷覆盖力学和热力学,下卷则包含电磁学、相对论和量子物理。计算机科学的另一本畅销教科书《计算机体系结构》(Computer Architecture: A Quantitative Approach)2017年出第六版时,也近1000页了。罗素和诺维格两位作者正值壮年,也许他们的著作也可以出到第十版,届时恐怕要超过2000页了。以物理学教科书的经验看,要想成为经典,首先学科要已成稳态;其次,书被广泛采用。人工智能教科书最有望成为经典的就是罗素和诺维格的这本了,不过人工智能作为学科还在发展,我们甚至不敢肯定现在书中的内容将来会同处一门学科。另外,一门成熟的学科,将一线研究的内容写到教科书里,需要更长的时间;相比于当下的物理学,人工智能是快速发展的学科,其教科书也更及时地反映了前沿研究,即便如此,一个重要的进展最快也需要三到五年时间才能出现在教科书里。每个作者都有自己的品味。全面如罗素和诺维格的书,也对选材有所取舍。他们只字不提语义网(semantic Web)——2006年的AAAI会上,诺维格曾经不满语义网的进展,和倡导者蒂姆·伯纳斯-李(Tim Berners-Lee)不睦。逻辑派内部也不统一。人工智能的板块之间并没有逻辑的关系,把所有内容丢到一个大桶里是不是一个好的教科书组织方式,值得探讨。人工智能是否也会像物理学一样,在教科书变得太厚之前,会一分为二或三?ACM图灵奖获得者本吉奥(Yoshua Bengio)作为作者之一的《深度学习》(Deep Learning)算是深度学习的标准教科书了。巴托(Barto)和萨顿(Sutton)师徒俩的经典著作《强化学习》(Reinforcement Learning)在1998年初版20年后又出了第二版。值得指出的是,强化学习作为独立的领域,是在2016年AlphaGo出名后才逐渐火起来的,两位作者不屈不挠的坚持使得强化学习免成绝学。人工智能教科书的编写体例需要新的思维,可能需要加些理论基础作为粘合剂。图灵1950年的人工智能开创性文章《计算机器与智能》(Computing Machinery and Intelligence)提出的问题是基于他1936年的计算理论开创性工作。无论外行还是内行,最常问的问题就是智能等价于计算吗?对此,符号派和深度学习派都没有答案,甚至没有回答的框架。深度学习和强化学习的从业者中,电子工程背景(包括控制工程、系统工程等)的人不少于计算机科学背景的人,而前者几乎都不熟悉计算理论,甚至不知道丘奇-图灵论题,这肯定无助于提供一个系统性的理论基础。罗素和诺维格的书在最后一章借用了经济学词汇。新古典经济学假设“完美理性”(perfect rationality),书中有对应物“计算理性”(calculative rationality);经济学中有司马贺(Herbert A. Simon)的“边界理性”(bounded rationality),书中有对应物“有界优化”(bounded optimality)。从计算理论的角度看,所谓“计算理性”,可以参照计算理论里的可计算性;而“有界优化”,可参照计算复杂性。对应经济学里的“理性人”,人工智能里的智能体可以有根据地参照图灵机。美国学界有编手册的传统。中国的手册多是工具书,例如《数学手册》,而美国手册多是长篇综述文章的文集,例如Handbook of Mathematical Logic(数学逻辑手册,出版于1977年),Handbook of Automated Reasoning(自动定理证明手册,出版于2001年)等。80年代初,人工智能的领袖人物之一费根鲍姆(Feigenbaum)牵头编辑三卷《人工智能手册》,1989年又补充了第四卷,共2000多页。书中没有系统地讲神经网络,只是在第三卷第九章“学习与归纳推理”的D2一节中用了4页,作为历史回顾,提了一下罗森布拉特(Rosenblatt)和他的感知机,以及明斯基和派珀特(Papert)1969年的《感知机》一书,并说这本书给出了神经网络的“理论局限”(theoretical limitations)。今天看,这套手册至少有一半以上的内容已经过时。以更成熟的学科视角看,人工智能教科书的转折是不可思议的,不能想象一本物理学教科书会对相对论或者量子力学,时而聚焦时而回避。最近,人工智能的两条路线也开始出现交集。例如用强化学习的方法解决逻辑的问题,为已经几乎停滞的定理证明带来些许光明。同时理论家们开始探索各种学习问题的边界。

教科书不仅是学术进步的跟随者,同时也应是后者的知识梳理者,为学生提供系统且经济的学习路径。教科书的作者最好是资深的一线研究者,或者是丘成桐所谓“刚退休的一线研究者”,他们的宏观品味可以帮助后学者看到学科的无死角的风景。

相关推荐

数控系统常见术语详解,机加工人士必备资料
数控系统常见术语详解,机加工人士必备资料

增量编码器(Incrementpulsecoder)回转式位置测量元件,装于电动机轴或滚珠丝杠上,回转时发出等间隔脉冲表示位移量。由于没有记忆元件,故不能准...

2023-09-24 17:42 xiyangw

功、功率、扭矩的关系

功=功率×时间work=power×timeW=P×T功=力×距离work=force×lengthW=F×LP×T=F×LP=F×L/T=F×V(velocity)具体到电机输出轴上,圆...

Wi-Fi协议(802.11 )常见专业术语汇总
Wi-Fi协议(802.11 )常见专业术语汇总

Wi-Fi协议(802.11)常见专业术语汇总AP(Accesspoint的简称,即访问点,接入点):是一个无线网络中的特殊节点,通过这个节点,无线网络中的...

2023-09-24 17:41 xiyangw

不需要策略模式也能避免满屏if/else
不需要策略模式也能避免满屏if/else

满屏if/elsejava复制代码publicstaticvoidmain(String[]args){inta=1;if...

2023-09-24 17:41 xiyangw

喜极而泣,我终于干掉了该死的 if-else
喜极而泣,我终于干掉了该死的 if-else

推荐阅读:面试淘宝被Tomcat面到“自闭”,学习这份文档之后“吊打”面试官刷完spring+redis+负载均衡+netty+kafka面试题,再去面试BAT...

2023-09-24 17:40 xiyangw

Python中使用三元运算符简化if-else语句
Python中使用三元运算符简化if-else语句

Python是一种极简主义的编程语言,相比其他编程语言,在多个地方简化了代码的写法,可以让我们用更少的时间更简洁地完成工作。以赋值运算符为例:a=a+b简化...

2023-09-24 17:40 xiyangw

雅思课堂 | 雅思口语写作句型第二讲
雅思课堂 | 雅思口语写作句型第二讲

纯干货,无废话用最少的时间学最制胜的内容!泡图书馆泡不过学霸?碎片时间也能弯道超车!向着雅思8分行动起来吧!雅思口语写作句型1.Ipreferseeing...

2023-09-24 17:39 xiyangw

设计模式(三)——简单的状态模式代替if-else
设计模式(三)——简单的状态模式代替if-else

博主将会针对Java面试题写一组文章,包括J2ee,SQL,主流Web框架,中间件等面试过程中面试官经常问的问题,欢迎大家关注。一起学习,一起成长。前言大多数开...

2023-09-24 17:38 xiyangw

如何优化代码中大量的if/else,switch/case?

前言随着项目的迭代,代码中存在的分支判断可能会越来越多,当里面涉及到的逻辑比较复杂或者分支数量实在是多的难以维护的时候,我们就要考虑下,有办法能让这些代码变得更优雅吗?正文使用枚举这里我们简单的定义一...

优秀程序员早就学会用“状态模式”代替if-else了
优秀程序员早就学会用“状态模式”代替if-else了

2020年已经进入倒计时了,大家立好的flag完成了吗?2020实“鼠”不易,希望2021可以“牛”转乾坤。简介状态模式是行为型设计模式的一种。其设计理念是当对...

2023-09-24 17:37 xiyangw

用Select Case语句对执行多条件进行控制
用Select Case语句对执行多条件进行控制

今日的内容是"VBA之EXCEL应用"的第六章"条件判断语句(If...Then...Else)在VBA中的利用"。这讲是第三节...

2023-09-24 17:37 xiyangw

c#入门教程(四)条件判断if else

条件判断,是编程里常用的判断语句,比如某个代码如果满足条件就执行a代码块否则就执行b代码块。案例1:inti=2*5;if(a>0){执行a代码块}elseif(a<0){执行b代码块...

每日学编程之JAVA(十一)—条件语句(if……else)

一个if语句包含一个布尔表达式和一条或多条语句。如果布尔表达式的值为true,则执行if语句中的代码块,否则执行if语句块后面的代码。if语句后面可以跟else语句,当if语句...

不需要策略模式也能避免满屏if/else

除了使用策略模式以外,还可以使用其他设计模式来避免满屏if/else的问题。以下是一些可能的解决方案:工厂模式:将if/else语句移到工厂类中,由工厂类负责创建对象。这样可以将if/else语句从客...

围绕ifelse与业务逻辑的那些梗
围绕ifelse与业务逻辑的那些梗

ifelse很重要,几乎是程序员编程核心,业务逻辑与规则也通过ifelse体现出来,语句简单但是背后文章很大,先看几则幽默图:1.也许默认使用returnf...

2023-09-24 17:36 xiyangw

取消回复欢迎 发表评论: