阿瑟·李·塞缪尔(1901—1990)是美国电气工程师、计算机科学家,也是人工智能和机器学习的先驱。他主要在IBM公司工作,后来任职于斯坦福大学,开发了能够通过经验提高棋力的西洋跳棋程序。这些程序提供了早期实验证据,表明计算机能够通过学习,在某项任务上表现得比编写程序的人更好。“机器学习”一词也被认为是由塞缪尔创造的,该词出现在他于1959年发表的一篇具有重要影响的研究论文标题中。(history.computer.org)
教育经历与工程职业生涯
塞缪尔出生于堪萨斯州恩波里亚,在恩波里亚学院完成本科教育。他于1926年获得麻省理工学院电气工程硕士学位,随后留校任教至1928年,之后在哥伦比亚大学攻读物理学研究生课程。1928年,他加入贝尔电话实验室,从事电子管及相关电子器件的研究。在第二次世界大战期间,他研究用于保护雷达接收机的开关器件,使其免受发射机所发出强大信号的影响。(history.computer.org)
1946年,塞缪尔成为伊利诺伊大学电气工程教授,并参与该校的电子计算机项目。在那里,他构想了一个西洋跳棋程序,用以展示电子计算所能实现的功能。1949年,他转入IBM公司的波基普西实验室。他的职责既涉及现有的真空管技术,也包括用作开关的晶体管研究,因此,他后来开展的学习程序研究与计算机制造中的实际问题紧密相连。(history.computer.org)
以西洋跳棋作为实验领域
塞缪尔采用西洋跳棋作为研究环境;这种棋类在英语中也称为 draughts,既便于处理,又具有足够的挑战性。它的规则和胜负结果都有明确定义,而要下好棋,则需要评估各种选择并预判对手的应对。因此,棋类游戏提供了一个可以直接比较计算机与人类表现的环境。带有评注的高手棋谱也为实验提供了另一种资源。(legacy.cs.stanford.edu)
他的程序最初在IBM 701上运行,随后又在后续型号的IBM计算机上运行。由于内存和处理时间有限,穷尽所有可能的后续走法并不现实。因此,程序只搜索博弈树中的选定部分,并在搜索停止的局面上使用启发式评估函数来估计局面的优劣。极小化极大算法将这些估计值反向回传,并在假定对手也会选择对自己最有利的后续走法的前提下,决定下一步棋。(ibm.com)
学习方法
塞缪尔在1959年的论文《利用西洋跳棋进行机器学习的若干研究》中区分了两种主要的学习方法。记忆式学习将遇到的棋盘局面及其计算所得的评分一并存储。重复利用这些记录可以减少重复计算,并有效扩展程序向前搜索的深度。这不仅仅是保存一份完整棋局的列表:在后续搜索中,程序可以利用有关单个局面的信息。(gwern.net)
泛化学习则改变评估函数的系数。棋盘局面的特征以数值形式表示,程序根据对弈和搜索过程中获得的证据,调整各个特征的相对贡献。这样,经验便能影响对那些此前未曾存储过的局面的评估。这一区分类似于现代方法中保留具体案例与学习可复用的函数逼近之间的区别,不过,塞缪尔提出这些术语和方法时,当代的相关表述尚未形成。(gwern.net)
这些实验包括自我对弈,即让不同版本的程序彼此交手。塞缪尔报告称,在论文所述条件下,经过约八至十小时的机器对弈,程序的棋力便能够超过其作者。这一结果说明程序超越了编程者,而不是胜过了最强的人类棋手。该系统仍然依赖预先提供的规则、改进方向,以及由人类选定的候选特征。(ieeexplore.ieee.org)
塞缪尔还研究了如何从专家评注中学习。他的程序复盘《李氏西洋跳棋指南》中的棋局,并调整走法选择标准,使其趋向专家认为较好的选择。用现代术语来说,这些带有评注的棋谱提供了训练数据,使程序在通过对弈学习之外,还能进行一种类似监督学习的学习过程。(legacy.cs.stanford.edu)
成果与后续发展
1962年,塞缪尔的程序击败了人类西洋跳棋棋手罗伯特·尼利,这场人机对弈成为展示基于学习的计算能力的一次著名演示。不过,该程序对阵人类棋手的战绩仍然有胜有负;一次广为报道的胜利并不能证明它已稳定达到大师水平。(ibm.com)
塞缪尔在1967年发表的后续论文中,介绍了改进的棋谱学习方法、特征签名表技术,以及对Alpha–Beta剪枝和其他搜索限制方法的更广泛运用。这些改进使程序能够搜索得更深,并提高了棋力。论文明确指出,该程序仍无法战胜西洋跳棋大师。论文还指出了早期线性评估方法的局限,包括依赖人工选定的特征,以及未能充分处理特征之间的相互作用。(teaching.bb-ai.net)
塞缪尔的实验成为强化学习,尤其是时序差分学习的早期基础。其历史意义部分在于:程序利用对弈和搜索过程中产生的其他估计值来更新局面评估,而不是完全依赖已结束棋局的结果。后来对时序差分方法的论述,也将他的工作列为这一方法的早期源头之一。(incompleteideas.net)
斯坦福时期与荣誉
塞缪尔于1966年从IBM公司退休,随后加入斯坦福大学,担任讲师和研究员,并于1974年成为研究教授。他继续研究西洋跳棋,开展语音识别研究,并持续参与教学工作,直至1982年。他后期在编程方面的贡献包括SAIL操作系统、多处理器软件,以及TeX排版系统。他还编写了《TeX入门》等讲解性手册,体现了他长期以来对清晰易懂的软件文档的重视。(legacy.cs.stanford.edu)
1987年,塞缪尔获得IEEE计算机学会颁发的计算机先驱奖。1990年7月29日,他在斯坦福医院逝世。(history.computer.org)