塞缪尔跳棋程序:机器学习的真正起点

被遗忘的里程碑
当我们谈论深度学习、大语言模型和强化学习时,很少有人会回想起这一切的起点。早在1950年代,IBM研究员亚瑟·塞缪尔(Arthur Samuel)就编写了一个能够下跳棋(Checkers)的程序,而正是这个程序,第一次向世界展示了机器可以"学习"——而不仅仅是执行预先写好的指令。
要理解这项工作的开创性,我们需要回到当时的技术语境。塞缪尔最初在IBM 701计算机上开发这个程序——这是IBM第一台商用科学计算机,于1952年发布,整机仅有约4KB的主存(威廉姆斯管存储器),运算速度大约每秒执行14000次浮点运算。IBM 701(又称"Defense Calculator")是冷战背景下为科学计算需求而生的产物,主要服务于核武器研究、天气预报和航空设计等领域。它使用的威廉姆斯管(Williams tube)是一种利用阴极射线管表面静电荷来存储二进制位的技术,每个管只能存储1024位,整机共使用72个威廉姆斯管,总计约4096字(每字36位)的存储容量。这种存储器不仅容量极小,而且需要周期性刷新以防止电荷衰减,在这样的条件下编程,程序员必须精心管理每一个存储位置,代码必须极度紧凑。后来程序迁移到IBM 704上,内存虽然提升到了32KB左右(采用了更可靠的磁芯存储器),但与今天任何一部智能手机相比都微不足道。在这样的硬件约束下实现"学习"能力,其工程智慧和算法设计的精妙程度令人叹服。
塞缪尔本人也因此被视为机器学习领域的奠基人之一。他在1959年发表的论文中首次使用了"machine learning"(机器学习)这一术语,将其定义为"让计算机在没有被明确编程的情况下获得学习能力的研究领域"。这个定义在半个多世纪后的今天依然被广泛引用。值得注意的是,这个定义隐含了一个深刻的哲学转向:计算机不再是纯粹的"指令执行器",而是具备了某种自主获取知识的潜力。这一观念在当时引发了广泛的学术讨论,甚至遭到部分数学家和逻辑学家的质疑——他们认为"学习"是一个具有主观性的概念,不应被赋予机械过程。这场争论实际上预示了后来关于"强AI"与"弱AI"的哲学辩论,以及约翰·塞尔(John Searle)著名的"中文房间"思想实验所探讨的问题。

一个会自我进化的程序
塞缪尔的跳棋程序之所以具有革命性,在于它并不是简单地枚举所有可能的走法。在1950年代那种以KB计算内存的硬件条件下,穷举跳棋的所有可能局面是不现实的。
这里需要理解跳棋的博弈复杂度。英式跳棋(8×8棋盘)的合法局面总数约为5×10²⁰,博弈树复杂度约为10³¹。虽然这比国际象棋(约10⁴⁷)和围棋(约10¹⁷⁰)要小得多,但对于1950年代的计算机而言仍是天文数字。在1950-60年代的AI研究界,棋类博弈被普遍认为是智能的试金石——这种观点被称为"棋类即智能"假说。Claude Shannon早在1950年就发表了关于国际象棋编程的理论框架,将博弈搜索分为A类策略(全宽度搜索)和B类策略(选择性搜索),为后续所有棋类AI研究奠定了理论基础。正因为跳棋的复杂度"恰到好处"——既不像井字棋那样简单到可以完全穷举,又不像国际象棋那样复杂到完全无法处理(国际象棋的分支因子约35,在当时的硬件条件下使得有意义的搜索深度几乎不可能实现)——它成为了早期AI研究的理想试验田。直到2007年,加拿大阿尔伯塔大学的Jonathan Schaeffer团队才最终"解决"了跳棋,证明在双方最优策略下结果是平局。这项工作耗时18年,使用了超过200台计算机,搜索了超过10¹⁴个局面。
塞缪尔采用了一系列在今天看来依然经典的技术手段。
评估函数与参数自动调整
程序的核心是一个"评估函数",用来判断某个棋局对自己是否有利。这个函数由多个特征加权组合而成,包括棋子数量、棋子位置、中心控制等因素。关键的创新在于——这些权重不是固定的,而是随着程序不断对弈而自动调整。
具体来说,塞缪尔的评估函数形如 V(s) = w₁·f₁(s) + w₂·f₂(s) + ... + wₙ·fₙ(s),其中 f_i 是手工设计的特征(如己方棋子与对方棋子的数量差、王棋数量、前进棋子的行数等),w_i 是对应权重。塞缪尔设计了多达38个特征,并让程序在对弈中自动调整这些权重的大小和符号。这种线性评估函数的形式虽然简单,但在数学上具有良好的性质:它在参数空间中是凸的,意味着梯度下降类方法能够找到全局最优解。更重要的是,这种"特征工程+参数学习"的范式,在后来的几十年中一直是机器学习的主流方法——从1990年代的支持向量机(SVM)到2000年代的梯度提升树(GBDT),核心思路都是人工设计特征、算法优化参数。直到深度学习的出现才被"端到端学习"(即让神经网络同时学习特征提取和决策)所部分取代。从手工特征设计到自动特征学习,是机器学习发展史上最重要的范式转移之一,而这个转移的故事,恰恰始于塞缪尔的38个手工特征。
换句话说,程序通过大量对局逐渐"学会"哪些局面特征更重要,从而不断优化自己的判断能力。这本质上就是今天监督学习和参数优化的雏形。
记忆机制与前瞻搜索
塞缪尔还引入了两种学习机制。一种是"死记硬背"式的学习(rote learning),程序会记住之前遇到过的局面及其评估结果,避免重复计算。这种方法实质上是建立了一个经验数据库——类似于今天所说的"转置表"(transposition table)或更广义上的缓存机制。转置表在现代棋类程序中仍然是核心组件之一:由于不同的走法序列可能达到相同的局面(即"转置"),记录已分析局面的结果可以避免大量重复搜索。现代国际象棋引擎如Stockfish通常会分配数百MB甚至数GB的内存用于转置表。塞缪尔在仅有几KB内存的条件下实现类似功能,必须采用极其精巧的数据压缩和替换策略。随着对弈局数的增加,程序积累的"记忆"越来越丰富,搜索效率也随之提升,因为许多已经分析过的局面可以直接查表获得结果。
另一种更为深刻——程序会通过极小化极大(minimax)搜索向前预测若干步,并用未来局面的评估结果来修正当前局面的判断。极小化极大算法是博弈论在计算机科学中的经典应用:在双人零和博弈中,一方试图最大化收益(MAX层),另一方试图最小化对手收益(MIN层),算法通过递归地交替展开博弈树来寻找最优策略。这一算法的理论基础可追溯到冯·诺伊曼(John von Neumann)1928年的极小化极大定理,该定理证明了在有限的双人零和博弈中,必然存在一个均衡策略。塞缪尔还采用了Alpha-Beta剪枝的早期形式来减少搜索空间——这一优化技术可以在不影响最终结果的情况下,将搜索的分支数量从 b^d 降低到接近 b^(d/2)(其中 b 是分支因子,d 是搜索深度),等效于在相同计算资源下将搜索深度几乎翻倍。Alpha-Beta剪枝的完整理论分析直到1975年才由Donald Knuth和Ronald Moore正式完成,但塞缪尔在1950年代就已经在实践中使用了这一思想。
这种"用未来预测校正当前估计"的思路,实际上预示了后来强化学习中的时序差分(Temporal Difference, TD)学习方法。TD学习的核心思想可以用一个简洁的更新公式表示:V(s) ← V(s) + α[r + γV(s') - V(s)],其中 α 是学习率,r 是即时奖励,γ 是折扣因子,V(s') 是下一个状态的估计价值。这个公式的精髓在于:它不需要等到最终结果揭晓,就可以利用相邻状态之间的估计差异来更新价值判断——这种技术被称为"自举"(bootstrapping),即用当前的估计值来更新估计值本身。TD学习之所以被视为强化学习的核心方法之一,是因为它巧妙地融合了蒙特卡洛方法(需要完整对局才能更新)和动态规划(需要完整环境模型)的优点,在两者之间找到了一个实用的平衡点。塞缪尔的程序虽然没有使用这个精确的数学形式,但其"用深层搜索的结果来修正浅层估计"的做法,在思想上与TD学习高度一致。
理查德·萨顿(Richard Sutton)等人在建立现代强化学习理论时,也多次将塞缪尔的工作视为重要的思想源头。萨顿在其经典教材《Reinforcement Learning: An Introduction》中明确指出,塞缪尔的跳棋程序是TD学习思想的最早实践之一,比TD(λ)的正式理论化早了近30年。值得一提的是,1992年Gerald Tesauro开发的TD-Gammon程序——用TD(λ)算法结合三层神经网络训练出了世界级的西洋双陆棋(Backgammon)程序——被广泛视为塞缪尔思想的直接继承者。TD-Gammon通过150万局自我对弈达到了世界顶级水平,验证了"价值函数逼近+自我对弈+时序差分学习"这一组合的强大潜力,也为后来AlphaGo的技术路线提供了重要的历史先例。
从跳棋到AlphaGo的技术传承
塞缪尔的跳棋程序不仅是一个技术成就,更是一次观念上的突破。在那个年代,计算机被普遍认为只能做人类明确告诉它做的事情。而塞缪尔证明了,机器可以通过经验自我改进,甚至下得比编写它的程序员更好。据记载,到1960年代初期,塞缪尔的程序已经能够击败康涅狄格州跳棋锦标赛的冠军选手,这在当时引起了巨大的社会轰动。IBM甚至利用这一成就进行商业宣传,在电视上演示程序下棋的过程,这可能是历史上最早的"AI营销"案例之一。
如果我们把时间线拉长,会发现从塞缪尔的跳棋程序,到1997年击败卡斯帕罗夫的深蓝,再到2016年战胜李世石的AlphaGo,其中贯穿着一条清晰的技术脉络:
- 用评估函数量化局面价值
- 用搜索算法向前预测
- 用自我对弈生成训练数据
然而,这三个里程碑之间也存在重要的技术断层和路线分歧。深蓝(Deep Blue)在很大程度上走了一条"暴力搜索"的路线:它依靠480颗专用VLSI棋弈芯片实现每秒2亿个局面的搜索速度,评估函数由人类国际象棋大师手工调优约8000个特征参数,学习成分相对较少。深蓝团队的核心人物许峰雄(Feng-hsiung Hsu)在其著作《Behind Deep Blue》中坦言,深蓝的成功更多证明了硬件算力的力量和工程优化的极致,而非学习能力的进步。这代表了AI研究中的"知识工程"路线——通过人类专家的知识编码来实现智能行为。
相比之下,AlphaGo则回归了塞缪尔的"学习"路线,但将其推向了全新的高度:它用包含数百万参数的深度卷积神经网络替代了手工评估函数,用蒙特卡洛树搜索(MCTS)替代了传统的极小化极大搜索。MCTS与传统minimax的关键区别在于:它不追求在固定深度内的完美搜索,而是通过随机模拟(rollout)来统计估计各分支的期望价值,利用上限置信区间(UCB)公式在"探索"新分支和"利用"已知好分支之间取得平衡。这使得MCTS天然适合处理围棋这种分支因子极高(约250,而国际象棋约35)的博弈。更关键的是,AlphaGo通过强化学习中的自我对弈(self-play)从零开始训练,完全摆脱了对人类专家知识的依赖。AlphaGo Zero的训练过程中产生了约490万局自我对弈数据,每一局都为神经网络提供了新的训练样本。后续的AlphaZero更是将同一框架推广到国际象棋和日本将棋,仅用4小时的自我对弈训练就超越了Stockfish(当时最强的传统国际象棋引擎),证明了"学习"路线的通用性。
AlphaGo的自我对弈训练,与塞缪尔让程序"左右手互搏"来积累经验的思路,本质上是相通的。塞缪尔在1950年代就意识到了一个关键问题:如果程序只与固定水平的对手对弈,它的能力会很快达到天花板。为了解决这个问题,他让程序的两个副本互相对弈——一个使用当前最优策略,另一个使用稍早版本的策略——通过这种"内部竞争"不断推高水平上限。这与AlphaGo Zero的训练策略如出一辙,只不过前者用深度神经网络替代了手工设计的评估函数,用海量的算力替代了当年捉襟见肘的计算资源。从几KB内存到数千个TPU(张量处理单元,Google专为机器学习设计的定制芯片,单个TPU v2的峰值性能约为180 TFLOPS)的计算集群,硬件能力提升了数十亿倍,但驱动进步的核心算法思想——自我对弈、价值估计、经验学习——在根本上并没有改变。
重新审视经典工作的价值
在AI热潮席卷全球、新概念层出不穷的当下,重新审视塞缪尔的跳棋程序有着特别的意义。
它告诉我们,许多今天看起来"新"的想法,其内核往往可以追溯到几十年前。理解这些经典工作,不仅是对历史的尊重,更能帮助我们看清技术演进的本质规律——真正推动进步的,往往是那些朴素而深刻的核心思想,而非表面的概念包装。
这种现象在AI领域尤为普遍。反向传播算法的核心思想可以追溯到1960年代的控制论研究——Henry J. Kelley在1960年和Arthur E. Bryson在1961年就在最优控制领域推导出了类似的梯度计算方法,Paul Werbos在1974年的博士论文中首次将其应用于神经网络,但直到1986年Rumelhart、Hinton和Williams在Nature发表论文后才引发广泛关注,中间跨越了二十多年。注意力机制的灵感源于1990年代的神经科学发现——Desimone和Duncan提出的"偏向竞争"理论解释了大脑如何在多个刺激中选择性地分配处理资源,这一思想在2014年被Bahdanau等人引入机器翻译领域。甚至当前大语言模型所依赖的Transformer架构中的自注意力机制,也能在更早的记忆网络(Memory Networks, 2014)、神经图灵机(Neural Turing Machines, 2014)和关联模型中找到思想先驱——它们都试图解决同一个问题:如何让网络动态地访问和组合存储的信息。
技术发展并非线性的突破堆积,而更像是一场螺旋式上升——老思想在新条件(更大的数据、更强的算力、更好的工程实现)下被重新激活,焕发出前所未有的力量。AI研究的历史充满了这样的"冬天与春天"的交替:连接主义(神经网络)在1960年代因感知机的局限性被打入冷宫,在1980年代因反向传播而复兴,在2000年代再次因训练困难而沉寂,最终在2012年因深度学习的突破(特别是AlexNet在ImageNet竞赛中的胜利)而迎来了当前的黄金时代。每一次复兴,核心思想并没有根本改变,改变的是支撑这些思想的基础条件。塞缪尔的跳棋程序是这种规律的完美例证:它在1950年代以极其有限的资源实现了"学习"的概念验证,而同样的核心思想在六十年后结合深度学习和现代算力,催生了AlphaGo这样改变世界认知的系统。
对于任何想深入理解机器学习的人来说,回到塞缪尔的跳棋程序这个原点,都是一次值得的思想旅行。它提醒我们:在追逐最新论文和最大模型的同时,不要忘记那些奠基性的思想。正是这些思想,构成了我们今天所站立的智识地基。
核心要点
核心要点
相关推荐

Claude自主设计蛋白质成功率35%,远超人类专家水平
Anthropic的Claude模型在自主设计靶向疾病蛋白质任务中取得35%实验成功率,远超人类专家10%-15%的平均水平。本文深入解析这一湿实验验证成果对生物医药行业的潜在影响。

Perplexity Discover多语言支持突然消失,国际用户为何不满?
Perplexity Discover新闻资讯功能突然取消多语言支持,仅保留英文内容,引发国际用户强烈不满。本文分析功能回退的可能原因,探讨AI产品国际化面临的资源权衡与用户信任挑战。
