阿瑟·李·塞缪尔
关键点:
- 阿瑟·李·塞缪尔被认为是第一个软件哈希表的发明者,并对ibm在计算机上使用晶体管的早期研究产生了影响。
- 他在伊利诺伊大学发起了illiac项目,该项目致力于一系列超级计算机的研制。
- 塞缪尔致力于开发一个能够电子化玩跳棋的程序。
阿瑟·塞缪尔
自1928年以来,贝尔实验室的工作,阿瑟·李·塞缪尔(1901-1990)一直从事真空管等方面的工作,包括在二战期间改进雷达。他后来成为伊利诺伊大学香槟分校的电气工程教授,并发起了illiac项目。illiac(伊利诺伊自动计算机)是一系列在不同地点建造的超级计算机。1949年,塞缪尔在伊利诺伊大学的第一台计算机完成之前离开了该校,并加入了位于纽约的ibm poughkeepsie实验室,他在那里构思并完成了他最成功的工作。塞缪尔被认为是第一个软件哈希表的发明者,并对ibm在计算机上使用晶体管的早期研究产生了影响。他在那里还继续进行了他的机器学习的开创性研究。
在伊利诺伊州继续从事illiac项目的工作期间,塞缪尔和他的团队遇到了一个问题,即到1948年底,项目的资金用尽。有人建议为了吸引关注,他们应该建造一台简化的机器,并以此做一些“引人注目”的事情。塞缪尔听说过克劳德·香农关于编程让计算机下国际象棋的工作,他认为应该让机器编程下跳棋(国际跳棋),因为这相对简单,但有深度的策略。他推测,如果香农已经为国际象棋做到了这一点:编程让计算机下跳棋应该是非常简单的。塞缪尔的想法在一定程度上是受到了世界锦标赛将在附近城镇举行的事实的推动。这个想法可能是他们想制造一台能够获胜的计算机。
于是,塞缪尔开始编写程序,他坚信这一切都已经被人做过了,但实际上并没有。克劳德·香农只是在最一般的概念上讨论过,并没有接近计算机的实际操作。1949年初,塞缪尔去芝加哥与香农交谈,他发现了可怕的事实。然而,他毫不畏惧,坚定地认为选择下跳棋是个好主意,并开始进行编程:我开始为一台不存在的机器编写程序,使用我在需要时虚构的一组计算机指令
塞缪尔很快意识到,这台小型演示机的复杂程度将与真正的机器一样,资金耗尽是不可避免的。此外,无法继续研究计算机驱使他寻求一份薪水更好的新工作。因此,在1949年春季,他搬到了ibm的普拉基普西分部。
在poughkeepsie,当他在ibm的第一台存储程序计算机701上工作时,samuel发现自己正在与计算机的首席设计师之一讨论应该使用多大的字长-32位还是36位。然后他开始思考哪个对他的跳棋程序更好,并开始使用未完成的701的指令集重新编写它,以找出答案。后来,samuel意识到教计算机玩游戏对于开发适用于一般问题的战术非常有成果-我对编写一个看起来能展现智能的程序的这个一般性问题非常着迷,它几乎占据了我在ibm工作期间的每一个空闲时刻,而且在之后的一些年里也是如此。该计算机的主要驱动程序是从当前状态可达的棋盘位置的搜索树。
samuel是第一个在701上进行任何严肃编程的人,因此没有系统工具可供调用。特别是,他没有汇编器,必须使用操作码和地址来编写所有东西。由于他只有非常有限的计算机内存可用,他实现了现在称为alpha-beta剪枝的技术。samuel并不是搜索每条路径直到游戏结束,而是开发了一个基于给定时间棋盘位置的得分函数,该函数试图衡量每一方在给定位置上获胜的机会。该函数考虑了每一方的棋子数量,国王的数量以及棋子离被升为国王的位置的距离。
该程序根据极小极大策略选择移动,这意味着它进行的移动可以优化该函数的值,假设对手也在试图从其角度优化相同函数的值。
arthur samuel在纽约poughkeepsie与ibm 704计算机下棋
拥有极高的创造力并基本上独立工作,自己编写程序的arthur samuel还设计了各种机制,使他的程序能够提高自己的技能。在他所称的机械记忆(或泛化学习)中,程序记住了每个已经遇到的位置,以及奖励函数的终值。这种技术有效地扩展了每个位置的搜索深度。他还使用了一些底层技术,如可变评估函数、山峰爬升和签名表。
最终,701被建造出来,并且它融入了samuel在跳棋上的工作中提出的一些指令集的改变。作为第一个真正大型的非数值程序,它影响了所有随后ibm机器的指令集。由于samuel担心机器可能永远无法完成或可能发生根本性的改变,他将跳棋程序编写为一组由中央模块加载的小型独立模块-一种原始的操作系统。他让它在第一个实验型的701模型上运行。
后来的程序根据职业玩家的意见重新评估了奖励函数。塞缪尔还让它与自己进行了数千场比赛,作为另一种学习方式。通过这些工作,他的程序达到了一个可观的业余水平,并且是第一个在这个高水平下玩任何棋盘游戏的程序。1966年,塞缪尔从ibm退休后,继续研究跳棋,直到70年代中期,他的程序达到了足够的技能,可以挑战一个可观的业余选手。
阿瑟·塞缪尔与ibm计算机下跳棋
塞缪尔在ibm 701上完成了他的第一个跳棋程序,当即将进行演示时,ibm的创始人兼总裁托马斯·沃森先生曾表示,这次演示将使ibm股票价格上涨15个点。确实如此。塞缪尔最终负责一个纯研究项目,因为他成功地说服沃森家族ibm需要进行纯研究,而不仅仅是产品开发。