向自然学习:从遗传算法到强化学习

发布于: Android转发:0回复:0喜欢:1

文/尼克

Natural selection is a mechanism for generating an exceedingly high degree of improbability.

自然选择就是能生成极不可能之事的机制。

——Ronald Fisher(费舍)

从生物学里找计算的模型,一直是人工智能的研究方向之一,学术上大致有两条传承的脉络:一条源自麦卡洛克和皮茨的神经网络,演化到今天成了深度学习;另一条则源自冯诺伊曼的细胞自动机,历经遗传算法、遗传编程,其中一条支线最后演变成了今天的强化学习。

1. 霍兰德和遗传算法

霍兰德(John Holland)本科在麻省理工学院学物理,毕业后在IBM工作了一年半,老板是达特茅斯会议的策划者之一罗切斯特(Nathaniel Rochester)。他后来到密执安大学读研究生,一直给IBM干活,所以4年学费也都是IBM付的。霍兰德在麻省理工学院读书时曾见过维纳,但维纳对他没什么影响,倒是他上过的一门当时称为“数值分析”的课,为他后来转入计算机领域埋下了种子,那时的“数值分析”就是现在的“算法分析”,和现在“数值分析”不尽相同。霍兰德研究生的专业一开始是数学,那时密执安的数学系教授中有好几个布尔巴基学派的成员及其徒子徒孙,他们和逻辑与代数的关系密切,这也是霍兰德的兴趣所在。

霍兰德在IBM做夏季实习生时认识了麦卡锡,是麦卡锡教会他下围棋。后来在DARPA位高权重的利克莱德(Joseph Licklider)教会他神经网络。他们还多次到加拿大麦吉尔大学(McGill)拜访在那里任教的赫布(Donald Hebb),现在深度学习的原创思想很多可以溯源到他。

霍兰德准备动手写关于代数和逻辑的博士论文时,遇见了在哲学系任教的伯克斯(Authur Burks)。伯克斯是密执安大学的哲学博士,1941年25岁时博士毕业去了宾夕法尼亚大学的摩尔学院,加入美国最早的计算机之一ENIAC的研制。冯诺伊曼当时想把整个ENIAC团队招安到普林斯顿高等研究院,ENIAC团队的头儿工程师毛彻里(John Mauchly)被老冯所不喜,老冯看中的是ENIAC的工程骨干埃克特(John Presper Eckert),但埃克特不愿背叛毛彻里。于是冯诺伊曼挖到了ENIAC项目早期真正的灵魂人物数学家、逻辑学家古德斯丁(Herman Goldstine),伯克斯随着古德斯丁加入到普林斯顿高等研究院团队,先是做老冯的助手,后来参与了美国最早几台计算机的研发。

战后,伯克斯又回到母校密执安大学教哲学。20世纪50年代中期,王浩曾经到密执安大学访问伯克斯,两人还合作了一篇细胞自动机的文章发表在1957年的JACM上。霍兰德碰见伯克斯的时候,他刚刚创立了通信科学计划(Communication Sciences Program),这是个哲学、数学、心理学和语言学的跨学科计划,后来演变成密执安大学的计算机和通信科学系,这个名字直到20世纪90年代初才改成更常规的“计算机科学系”。这个跨学科计划恰是霍兰德的兴趣所在,于是他变成了伯克斯的学生。他所在的小组叫“计算机逻辑组”(Logic of Computers Group)。霍兰德由此成为有史以来计算机科学的第一个博士。和霍兰德在密执安一起在这个跨学科计划待过的还有华裔语言学家王士元(William Wang),霍、王二人后来成为好友。不太为人知的是,王士元后来也参与过IBM组织的乔治敦机器翻译的工作。

霍兰德比麦卡锡和明斯基小几岁,但基本还算是同一代人。麦卡锡离开麻省理工学院去了斯坦福大学,霍兰德在晚年接受采访时如此评论麦卡锡和明斯基:美国西部的人工智能由麦卡锡代表,他们干净(neat),一切讲究逻辑;东部的领袖自然是明斯基,他们邋遢(scruffy),做事比较随意(adhoc)。但他们的共性是都对机器学习不太感兴趣。尤其是明斯基对罗森布拉特“感知机”的批判导致了神经网络的衰落,从某种意义上也是人工智能第一次低潮的起因,所谓搬起石头砸了自己的脚。霍兰德没有提及人工智能的另一重镇——卡内基梅隆大学,那里的旗帜不那么鲜明。

霍兰德的博士论文题目是Cycles in Logical Nets。伯克斯也写过本小册子《逻辑网络理论》(Theory of Logical Nets)。所谓“逻辑网络”,当时是个模糊的概念。麦卡洛克和皮茨的神经网络模型也称为逻辑网络,因为皮茨本人是逻辑学票友。冯诺伊曼的细胞自动机也是逻辑网络。伯克斯是老冯细胞自动机遗著的编者,霍兰德受老师伯克斯的影响也是自然的。他们学生的博士论文多少都和细胞自动机有关。20世纪50年代是逻辑学逐渐离开哲学,向其他学科渗透的时代,逻辑是一股风气,什么人都喜欢和逻辑沾点边,就像当下的人工智能或深度学习。

有意思的是,在麦卡锡执笔的达特茅斯会议的计划书里,有一节“神经网络”。其中,霍兰德的名字和麦卡洛克、皮茨、明斯基和罗切斯特等人的名字并列。晚年他回忆说当时确实收到了达特茅斯会议的邀请,但那个夏季他要在密执安教课,就没去,读研究生时找到份夏季工作不容易。估计当时谁也没觉得那个会后来变得如此重要。霍兰德为未能参会颇为遗憾,认为是他个人的重大损失。可不是嘛,那个会的参会者都可自居AI的创始人。

霍兰德认为达特茅斯会后AI基本就是符号派一统天下了。学习,或者用霍兰德的话说“可适应”(adaptation)作为人工智能的一个重要分支,要到好多年后才翻过盘来。霍兰德说他自己的思想被学界逐渐接受,是在他的学生都出了名之后。美国的师生关系和中国确有不同,美国是学生毕业后,自立门户,大部分还是接着原来的东西继续做,也可以跨越式发展;但在中国,大部分是等着接老师的班儿,老师是院士,就扶持学生当院士,老师是校长,学生接着做校长,一旦一个“重点实验室”建立,小佬坐等大佬死后接班升大佬。

霍兰德在回顾自己的研究生涯时说,如果一个人在早期过深地进入一个领域,可能会不利于吸收新的思想。对于霍兰德来说,进化论和遗传学是新思想,幸运的是他的老师伯克斯也是跨界人才,鼓励交叉学科的研究。对霍兰德影响最大的一本书是英国统计学家费舍(Ronald Fisher)的《自然选择的遗传理论》(The Genetical Theory of Natural Selection)。无神论者道金斯(Richard Dawkins)称费舍是达尔文之后最伟大的生物学家。费舍把孟德尔的遗传理论和达尔文的自然选择结合起来。霍兰德由此得到启发:进化和遗传是族群学习的过程,机器学习可以此为模型。

早在1958年,IBM的弗雷德伯格(R. M. Friedberg)就研究过“进化程序”,还在一台IBM 704机器上做过模拟。但他的同事马上就指出他的“进化程序”其实比随机搜索还要慢。无论如何,弗雷德伯格的工作给了霍兰德启发,可算是遗传算法的先兆。

染色体(chromesome)是遗传的基本单位。以人为例,人有两性,男性第23对染色体呈X-Y,而女性只有X。两性交配导致人类染色体的交叉(crossover)。在进化过程中,部分基因还会变异(mutation)。环境会保留某类基因的族群,而淘汰掉其他的。

遗传算法就是模拟种群(population)的进化过程。其结构大致如下所示。

(1) 随机生成初始群体。

(2) 主循环(停机的标准可以是迭代次数,或者适应度达到某种要求)。

a) 执行策略,计算当前群体中所有个体的适应度;

b) 从当前群体中,选择精英作为下一代的父母;

c) 将选出的精英父母配对;

d) 以极小概率将子代变异;

e) 将子代个体添加到新群体中。

从以上过程中,我们可以理解进化中“优胜劣汰”的算法含义。伴随20世纪80年代后期神经网络的复兴,遗传算法也作为一种受生物学启发(biology-inspired)的算法,得到更多的认可,同时也有更多的实际应用。1985年第一次遗传算法国际会议召开,这个学科算是有了自己的共同体。1997年IEEE开办了《进化计算杂志》(IEEE Transactionson Evolutionary Computation),遗传算法也算是进入主流了吧。

2. 遗传编程

在遗传算法中,种群是数据,更进一步的想法是:如果种群变成程序的话,进化是不是仍然可行呢?霍兰德的学生寇扎(John Koza)在1987年给出了一个思路,并把它命名为“遗传编程”(Genetic Programming)。

物理学家多依奇(David Deutsch)用生物进化来类比知识的进化,他是哲学家波普尔(Karl Popper)的粉丝,并常常套用波普尔的科学哲学术语。他说猜想就像变异,批评和实验就像选择,而交叉学科就是配对了。从这个意义上说,知识的增长更像是遗传编程。

遗传编程的结构和遗传算法差不多,一组程序就一个特定的问题给出解答,按照执行结果的好坏给所有程序排序。程序本身也是数据,自然也可以修改。在遗传编程里,变异就是对程序做微小调整。交叉和配对就是将两个表现优异的程序互相嫁接。寇扎后来还引入了“基因重复”(duplication)和“基因删除”(deletion)等生物学概念,以提升遗传编程的效率。

遗传算法本身就需要大量的数据,遗传编程需要的数据量自然更大,这对计算能力提出了新的需求。并行计算机公司Thinking Machines在20世纪90年代初曾经尝试用超级计算实现大规模的遗传编程,公司创始人希利斯(Danny Hillis,明斯基的学生)在1994年的TED会议上演讲的题目是“Back to the Future”,他颇为自得地谈起用遗传编程自动学会排序算法。但没过多久,Thinking Machines就倒闭了。1999年时,寇扎搭建了一个1000个节点的集群,每个节点是Pentium-II(奔腾-2),那时搭建集群的软硬件技术统称Beowulf,是当下Hadoop和Spark的先驱。

遗传算法的稳定性一直就是研究课题,遗传编程的数学性质自然更加复杂。寇扎等人给国际机器学习大会的投稿多次被拒,理由是遗传编程的性能常常还不如一些简单的搜索算法,在大规模的实际问题上无法实用。现在看,这一点也不惊人,其实如果没有算力的大幅提升,眼下红得发紫的各种深度学习也无法实用。寇扎联合遗传算法的人马开办了“遗传与进化计算会议”(Genetic and Evolutionary Computing Conference)。

1995年,寇扎利用遗传编程做布尔电路优化,取得成功,算是遗传编程可实用的一个里程碑。寇扎1999年创业,公司名就叫“遗传编程”。公司是研究型公司,主要为政府和企业提供关于遗传编程的咨询服务。

寇扎说遗传编程是“发明机器”(inventing machines),有了遗传编程就不需要其他人工智能了,他的理由是人工智能的目的是生产有智能的程序,这不正是遗传编程干的吗?听起来有道理,但遗传编程的理论基础一直欠缺。

遗传算法和遗传编程这一脉,在神经网络处于低谷时,虽然也受到波及,但并没有像神经网络那样备受打击。而神经网络咸鱼翻身后,也没有爬得那么高。

3. 强化学习

巴托(Andy Barto)在霍兰德手下得了博士后就被阿比卜(Michael Arbib)招到麻省大学计算机系,此时的麻省大学正在阿比卜领导下成为人工智能的重镇。计算机系开始分为理论、系统(包括软件和硬件)和控制论三个方向,而控制论后来成为人工智能。这种分法后来也是所有计算机系的标配。阿比卜一开始坚持“控制论”而拒绝用“人工智能”,有两方面原因:其一,他是维纳最后的学生,并且他终身的学术兴趣是为大脑建模(brain modeling);其二,“人工智能”这个词儿的流行是在20世纪70年代中期,按照阿比卜的一家之言,人工智能是控制论的替代品。至少从时间轴上看,这不算错。巴托到麻省大学之后先是做博士后,很快转成助理教授。

老鼠的孩子会打洞,和他的老师一样,巴托的博士论文研究的也是细胞自动机。巴托到麻省大学任教时,正赶上神经网络的低潮,于是他学老师,把自己的实验室命名为“可适应系统”(Adaptive Systems),听起来要和神经网络保持一定距离。20世纪80年代末的某一学期,麻省大学的人工智能课程由计算机系的所有教授联合开,每人负责一个章节,主讲机器学习的是《人工智能手册》的编辑之一寇恩(Paul Cohen),巴托只是讲讲神经网络。当时很奇怪,他给的参考书是一本名为Brain的脑科学教科书,课堂里讲的都是生物学,和当时已经开始复兴的神经网络没啥直接关系,学生都颇为不解。

巴托在麻省大学的第一个博士生就是萨顿(Richard Sutton),萨顿本科在斯坦福大学学的是心理学,研究动物怎么适应环境一直是他的兴趣。和老师霍兰德不同,巴托和萨顿关心更原始但也更抽象的可适应性。比如,一个刚出生的孩子,怎么学会对环境的适应。在监督式学习中,目标是清楚的。但婴儿不知道目标是什么,不知道自己要什么。通过与外部世界的不断交互,婴儿受到奖励或惩罚,由此强化对外部世界的认知。

强化学习的理论基础之一是马尔可夫决策过程。强化学习的主体是Agent,Agent和环境互动。在一个时间点t,环境的表示是当前的状态S_{t},Agent对环境实施动作A_{t},环境回馈给Agent奖赏R_{t+1},并导致环境进入一个新状态S_{t+1}。Agent的策略用π来表示,时间点t的策略π_{t}(a|s)就是在状态s=S_{t}时,Agent采用动作a=A_{t}的概率。强化学习就是Agent根据经验改变策略以期达到长期最大奖赏的过程。

强化学习的另一个理论基础是动态规划。贝尔曼(Richard E. Bellman)在20世纪50年代就发明了动态规划。萨顿和巴托也承认在强化学习早期,受到动态规划的启发。巴托一度在他的强化学习讨论班上让研究生分工研读贝尔曼的经典著作《动态规划》(Dynamic Programming)(Bellman,1957)。班上数学好的学生不知所云,算法课里不都有一章讲动态规划嘛,如果强化学习就是动态规划,那还有啥意思?近30年后,当强化学习被用来解决围棋这样复杂的问题之后,当年班上的学生们才体会到巴托的初衷。但“三十年太久,只争朝夕”,这几乎是一个人学术生涯的全部。巴托几年前就已经退休了,学生们也到了人生的强弩之末。愚公移山,现在是当时学生们的孩子们的天下,他们赶上好时候了。

在计算能力的约束下,强化学习的环境不宜太复杂。萌芽期的强化学习的例子都是游戏,如贝尔曼的“老虎机”和塞缪尔(Arthur Samuel)的跳棋。游戏的环境相对容易定义,在棋类比赛中,环境就是对手和规则。强化学习被用来下围棋不是偶然的。

如果整个世界是完全随机的,那么强化学习就要失效。学还是不学对结果没有什么影响。巴托和萨顿有时也把强化学习称为“享乐主义”(hedonistic),也即学习系统想最大化环境对自己的某种反馈。“享乐主义”这个说法来自于另一位先行者克劳福(Harry Klopf)的一本书名《享乐主义的神经元》(Hedonistic Neuron)。“享乐主义”和道金斯的“自私的基因”异曲同工,目的是为类生物(biology-inspired)系统建立基本公理。

强化学习中有所谓“抬头看路”(探索,exploration)和“低头拉车”(苦干,exploitation)之分。探索就是看看有没有别的选择,苦干就是专注于当前的选择。在强化学习中,用希腊字母ε表示学习率(learning rate),值越小,能用于探索的时间就越少,绝大部分时间是在苦干。这就像我们的人生,大部分时间在被压榨,极少时间可以探索“诗和远方”。如果我们再套用那个戴森的“大鸟”和“青蛙”的比喻:“大鸟”是那些高瞻远瞩的科学家,例如希尔伯特、爱因斯坦、杨振宁等,而“青蛙”是那些埋头苦干解决问题的科学家,例如冯诺伊曼、费曼等。估计“大鸟”们探索的时间比较多,也就是学习率较高。

遗传算法和强化学习有一个共同点:效果要等到多步以后才能看到,这是和监督式学习的主要不同。这就需要尽可能多地访问所有的状态,这样效率就会受到影响。蒙特卡洛模拟是一种减少状态空间搜索的有效办法。最近也有人利用深度学习来压缩需要表示的状态空间数目。这还有点意思,本来强化学习初衷是探索生物体学习的模型,现在神经网络又成了强化学习的工具。当状态空间很大时,强化学习可以和蒙特卡洛方法或深度神经网络结合。

强化学习作为机器学习的一个分支,长期没有得到重视。在谷歌的AlphaGo赢了李世石之后,强化学习作为AlphaGo的核心算法,一夜之间成为显学。这当然要归功于萨顿和巴托多年的坚持。萨顿在麻省大学博士毕业后去了不远处的GTE实验室,GTE是当年除了贝尔系统之外最大的电话公司。贝尔有个实验室,GTE当然也得有。萨顿待在GTE实验室的主要原因是方便和老师巴托合作。

巴托的“可适应系统”实验室,在神经网络不景气时,曾经收留过一批无家可归的学术“浪人”,其中就有吴恩达的老师乔丹。事实上,吴恩达的成名作就是用强化学习来控制无人直升机。为了和巴托合作写他们那本强化学习的经典教科书,萨顿一度回到母校担任“研究科学家”(一种没有终身教职的研究性职位)。后来他去了加拿大阿尔伯塔大学(Alberta)计算机系,迅速把那里建成了强化学习的大本营。谷歌收购的DeepMind团队中最核心的几个人都是萨顿的学生,席尔瓦(David Silver)就是萨顿的大弟子,而自称“AlphaGo之手”的黄士杰也曾在萨顿手下做过两年博士后。

2017年7月7日,DeepMind宣布将在萨顿的“新巢”加拿大阿尔伯塔大学开办联合实验室,这是DeepMind第一次在英国以外设立研究机构。经过多年耕耘,萨顿已经把阿尔伯塔大学建成了强化学习的基地,和计算机系里崇尚游戏的几个教授天作之合,使强化学习在围棋、德州扑克、电玩等领域势不可挡。萨顿的阿尔伯塔之于强化学习,就像辛顿的多伦多之于深度学习,杨立昆(Yann LeCun)的纽约大学之于卷积神经网络。可惜巴托已经退休,强化学习在其发源地美国麻省大学已经无人继承。

萨顿1979年到麻省大学跟随巴托和阿比卜,由此开创强化学习。他一直认为强化学习是理解智能的关键。维纳的控制论自问世从没进入过主流,现在更无人问津了。在整个人工智能的各个分支里,大概只有强化学习还留有点儿控制论的影子。

一旦一个算法被天才发明,并成功地在一个领域里得到应用,自然会有二流人才前赴后继把这个算法在其他领域发扬光大。20世纪80年代的神经网络如此,当下的强化学习也如此。谷歌2017年用强化学习来寻求NP-hard问题的近似解(Mirhoseini et al.,2017)。还有人把强化学习和符号方法结合做因果推理(Garnelo,2016)。当然arxiv上面的文章从发表到证实,还需要段时间。早年有人质疑遗传算法算不算机器学习,他们认为遗传算法是一种近似优化算法,不能算机器学习。但从某种意义上,任何机器学习算法都是一种优化算法。现在强化学习都被用来求解优化问题了。

如果从写作的角度看,强化学习更像是第一人称叙述,Agent就是“我”,外部世界(包括他人)都是“环境”。监督式学习更像是第三人称叙述,作者在用一只上帝的眼睛洞察世界,对错分明。第一人称的学习要比第三人称的学习更本质。罗素(Stuart Russell)和诺维格(Peter Norvig)在他们那本权威且无所不包的人工智能大部头教科书《人工智能:一种现代方法》里说“可以认为强化学习包含了全部人工智能”(Reinforcement learning might be considered to encompass all of AI)。这不无道理。

4. 计算向自然学习还是自然向计算学习

以色列海法大学的进化生物学家利夫纳特(Adi Livnat)和加州大学伯克利分校的理论计算机科学家帕帕季米特里乌(Christos Papadimitriou)在2016年11月的《美国计算机学会通讯》(CACM)上发表了一篇封面文章《性作为算法》(“Sex as an Algorithm”),引起轰动。喜欢的人认为这为进化论找到了新视角,而不喜欢的人则批评杂志的编者和作者是为了博眼球。这篇文章质疑了性在进化中的作用。

哈佛大学的理论计算机科学家、图灵奖获得者瓦连特(Leslie Valiant)曾经从计算的角度研究过机器学习和进化,他把进化当作学习的特例。利夫纳特和帕帕季米特里乌认为有性繁殖不太容易达到最优点,而无性繁殖才更像是优化算法,他们把遗传算法比作有性繁殖,模拟退火算法比作无性繁殖。

关于性的作用,达尔文没有解释,当代的进化生物学家也没有给出满意的答案。这篇文章的作者认为,尽管性并不是从群体中挑选最优选手的算法,但却可以提高种群的平均水平。性所优化的不是个体,而是混合程度(mixability)。这不仅解释了遗传算法的表现,也引发了人们从计算的角度思考生物学的问题。单从这个意义上,这个讨论就是有意义的。

如果说遗传算法是微观地向生物内部机制学习的话,强化学习则是更为宏观地向自然学习。瓦连特的方法企图把微观和宏观整合起来,为学习提供一个更为基础的数学框架。

5. 计算理论与生物学

无论是遗传算法、深度学习还是强化学习,都缺乏计算理论的基础。生物学激发的学科都是模拟自然,它们都不需要解释,不需要了解内部原理,只要能查看输出结果,就够了。数学大概是所有学科中离生物学最远的学科。

数学家蔡汀(Gregory Chaitin)是IBM顶峰期培养的一堆理论家之一。他就读于纽约出名的布朗克斯科学高中,那里曾经毕业过8个诺贝尔奖得主。他在纽约城市学院读数学本科时,独立发明了柯尔「莫哥洛夫复杂性,最后演化成有他自己特色的“算法信息论”(AIT,Algorithmic Information Theory)。他从IBM退休后,回到老家阿根廷,在布宜诺斯艾利斯大学教书,这时他的兴趣转向哲学和生物学。他企图用算法信息论解释进化论,他的成果被他写成了一本科普小册子《证明达尔文》。

蔡汀用数学定义了进化论的几个核心概念。他的数学定义更接近遗传编程而不是遗传算法。首先,他用算法来定义变异,假设M是算法,A是有机体,那么变异的有机体A' = M(A)。适应度和进化可以用算法信息论的三个不同复杂问题定义如下。

模型A:说出最大的自然数;

模型B:定义快速增长的函数;

模型C:说出康托序数(Cantor ordinal numbers)。

在模型A中,如果有机体能够说出一个更大的数,那么适应度就提升,有机体就得到进化。算法信息论中的一个核心问题就是怎么用最少的资源说出最复杂的数。如果读者此时觉得有点晕,就到此为止。但如果读者此时好奇心旺盛,倒是可以看看相关参考文献。

蔡汀把自己的新理论称为“元生物学”(metabiology)。目前元生物学还比较原始,进化论里的很多概念还没有被解释,比如帕帕季米特里乌关心的“性”。但有蔡汀这样的数学家关注生物学,会让我们更加放心。

参考文献指南

Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence(Holland,1975)是遗传算法的原创著作。Genetic Algorithms in Search, Optimization and Machine Learning(Goldberg,1989)是教科书体例,容易上手,尽管出版日期较早,但仍有参考价值。Genetic Programming: A Paradigm for Genetically Breeding Populations of Computer Programs to Solve Problems(Koza,1990)是遗传编程的原创著作,是斯坦福大学计算机系的内部技术报告,可免费获取。Genetic Programming: On the Programming of Computers by Means of Natural Selection(Koza,1992)是基1990年报告的正式出版物,后来分别在1994年、1999年和2003年出版了第二卷、第三卷和第四卷,每卷都主打某一类应用问题。

霍兰德曾经写过几本科普读物,如Emergence: From Chaos to Order(Holland,1999)和Complexity: A Very Short Introduction(Holland,2014)。但大科学家未必是好的科普作家,他的著作涉及的方面太多、问题太杂,给专家看看可以,但不适合完全的门外汉。另外,他的哲学观点是整体论的,而不是被大部分科学家所接受的还原论。他认为整体大于局部之和,大量的“局部”凑到一起,可以形成“涌现”(emergence)现象。从霍兰德的研究领域,如细胞自动机和遗传算法,也可看出他为什么这么说。这是他喜欢圣塔菲研究所(Santa Fe Institute)的原因,那里是研究复杂性现象的基地之一。在那儿,他可以和同道们同病相怜。霍兰德在接受采访时把圣塔菲研究所比作早年的华沙逻辑学派,一开始不被众人接受,但时间长了,自然会有影响力。米歇尔(Melanie Mitchell)是霍兰德的学生,她的科普著作《复杂》(Complexity)里也有对细胞自动机和遗传算法的科普介绍,她的书比她老师的卖得更好。

Reinforcement Learning: An Introduction(Sutton et al.,1998)是强化学习的原创著作,也可作为教科书,该书2017年出了第二版,第一版和第二版的初稿在网上可免费获取。强化学习的教科书里最爱用的Q-Learning,是Chris Watkins 1989年在他的剑桥博士论文里提出的。

Introduction to Machine Learning(Kubat,2015)是一本非常可读的机器学习导论,并且有中译本,最后一章是“强化学习”。周志华的《机器学习》最后一章也是“强化学习”。罗素(Stuart Russell)和诺维格(Peter Norvig)合著的人工智能经典大部头教科书,全书由7篇组成,“强化学习”是“学习”一篇里的最后一章。这大概说明强化学习比较“新”,或者“火”得比较晚吧。

蔡汀的《证明达尔文》是科普读物,但要是想了解蔡汀思想的全貌,必须要懂他的算法信息论,那就得有基本计算理论和数学的知识。理论计算机科学家阿伦森(Scott Aaronson)曾经写过一篇非常有意思的科普文章《谁能说出更大的数》(“Who Can Name the Bigger Number”),这可以是算法信息论的入门。

和蔡汀类似,瓦连特(Leslie Valiant)也出过一本科普读物Probably Approximately Correct: Nature's Algorithms for Learning and Prospering in a Complex World(Valiant,2013),语言通俗,尤其头两章非常可读,但后面的核心内容却不易懂,因为他有个所谓由该书书名几个单词的首字母命名的PAC“可学习理论”,那个理论需要点计算理论的知识。一个有意思的观察是几位理论计算机科学家开始关注机器学习,而且多从生物学的角度切入。瓦连特甚至说,计算机科学关注人比关注计算机更多(more about human than about computers)。其实,瓦连特的几项重要贡献都是因为人工智能引发的,除了PAC,他还提出过并行计算模型BSP、Robust Logics以及他自己独创的神经网络neuroidal model。他更早期还有本高级科普著作,书名就叫《大脑的电路》(Circuits of Mind)。他在2011年接受CACM采访(Hoffman,2011)时说,恰是他理论计算机科学的背景,让他有机会隔着一段距离观察人工智能的发展,发现其中的问题,然后用数学手段帮助人工智能从业者更精准地定义概念、解决问题。从这个意义上说,人工智能确实为计算机科学的其他专业甚至其他学科提供了素材。