达拉斯的西洋双陆棋比赛在AI圈和新闻界都反响平平。1997年,主流的计算机科学家还觉得神经网络(neural nets)不过是个小玩意儿。神经网络最早在20世纪40年代就被构想为“神经网”(nervous nets),那时候的实验者们用复杂的机电硬件来模仿大脑的神经元和突触。这些庞大的机器耗费了大量的电力和资金,但最后几乎什么实用成果都没搞出来。直到1969年,颇具影响力的麻省理工学院研究员马文·明斯基(Marvin Minsky) 证明了单层神经元连最简单的逻辑操作都搞不定。资金断了,大部分机器都被拆掉了。
之后的几年里,AI经历了许多次出师不利的情况,被人看作职业发展的死胡同。早期那种“符号”AI的进步在1974年的第一次AI寒冬里就停滞不前了。到了20世纪80年代,“专家系统”AI又火了起来,还搞出了个短暂的股市泡沫。日本、英国和美国的政府全部砸了大钱搞AI发展计划,但独立分析师们觉得,这些钱大部分都打了水漂。
与此同时,在20世纪70年代和80年代,还是有一群不服输的计算机科学家坚持研究神经网络。他们觉得,那些老机器可以用软件来重现,而且多层的神经元或许能突破单层的限制。大多数AI研究人员都觉得这群人走错路了,甚至可能是疯了。但1986年的时候,认知心理学家大卫·鲁梅尔哈特(David Rumelhart)与加州大学圣迭戈分校的计算机科学家杰弗里·辛顿(Geoffrey Hinton)和罗纳德·威廉姆斯(Ronald Williams)合作,发表了一种叫“反向传播” [1] 的多层神经网络数学程序。这个方法能让研究人员根据新信息来调整计算机的人工神经元,就像人脑在接到新信息时会形成新的突触连接一样。
当某个任务被掌握后,反向传播技术便重新激活了沉寂的神经网络,为计算机操作开辟了新途径。反向传播技术使计算机软件不再需要明确的编程,使计算机系统能自我设定规则,甚至实现自我进化。
20世纪80年代后期,研究员杰拉尔德·特索罗(Gerald Tesauro)在IBM任职时,选择离开公司热门的国际象棋研究小组,转而投身较为冷门的西洋双陆棋研究。这个游戏虽缺乏国际象棋的声望或扑克的神秘感,但更具竞技性。玩家在24点的棋盘上向相反方向移动棋子,试图击中对方棋子,同时受两颗骰子的掷骰结果影响。其不可预测性对赌徒颇具吸引力,而对特索罗而言,西洋双陆棋则有着别样的魅力。通过模拟掷骰子的方式,他迅速生成了数十万局人工西洋双陆棋游戏,这些游戏数据成了神经网络学习的训练资料。
特索罗几乎是单枪匹马地进行这项小众研究。与神经网络相似,很少AI研究者会认真对待西洋双陆棋。他最初训练神经网络去模仿顶尖的人类玩家,但这种方法几乎没有带来什么有价值的结果。大约1990年,特索罗决定尝试一种全新的方法。他从神经网络中剔除了所有关于西洋双陆棋的战略建议,仅保留了游戏规则和一组初始的随机加权神经元。接着,他让计算机自己与自己进行数十万局的对弈。
这种技术被称作“强化学习”(reinforcement learning),而特索罗是首位成功运用此技术的人。刚开始时,程序的表现毫无章法,移动棋子显得随心所欲。然而,在历经数千局对弈后,神经网络学会了单独留下一个棋子是不利的,而将两个棋子堆叠起来则是有利的——这使得它的水平提升到一个有能力的初学者层次。经过数万局的对弈后,神经网络开始运用更为高级的概念,例如利用多层棋子来构建屏障。当对弈次数达到20万局时,特索罗所称作TD-Gammon的神经网络已经达到了强劲的中级水平。在随后的几年里,特索罗让TD-Gammon接触到了数百万场模拟棋局,而到了1995年时,TD-Gammon已经能够采用人类从未见过的策略。此时的神经网络不再仅仅是学习,而是在创新。
TD-Gammon未受传统智慧的限制,发现了一种全新的西洋双陆棋策略。它察觉到,人类玩家为了在游戏刚开始建立优势,往往会过度冒险,而实际上,保守的开局策略更为稳妥。同时,在游戏的残局阶段,它常常见到人类玩家放弃那些能确保胜利的机会,反而贪婪地试图将得分翻倍,这种策略在多数人类玩家眼中显得过于鲁莽。而在游戏的中局阶段,TD-Gammon展现出了一些更为精妙的招式,这些招式之深奥,唯有经过人类专家深入推敲后方能领悟。1995年,西洋双陆棋教练基特·伍尔西(Kit Woolsey)在与TD-Gammon对弈之后,致信特索罗,表达了自己的赞赏之情:
我发现,将TD-Gammon与那些高水平的国际象棋计算机进行比较,真是令人着迷。国际象棋计算机能够精确计算出棋局的变化,且表现卓越。然而,它们的软肋是,在面对那些局面模糊、难以一眼洞穿的棋局时举棋不定。TD-Gammon却恰恰相反。它在局面模糊、需要依靠判断而非精确计算的棋局中展现出了强大的实力……你创造的不是一个像国际象棋计算机那样,只是能比人类更快进行计算的笨拙机器,相反,你创造了一台聪明的机器,它能够通过经验来学习。这几乎与人类的学习方式如出一辙。
然而,IBM未能将特索罗的这一项目商业化。试问,一家商业服务器供应商又怎么会有动力去向数百位客户推销西洋双陆棋软件呢?这的确是个问题。
而这个小众领域在1994年由挪威研究员弗雷德里克·达尔(Fredrik Dahl)成功填补。达尔是个非比寻常的人,他热爱玩西洋双陆棋、国际象棋、模拟坦克战、柔术,还爱在树林里找能吃的蘑菇。他以前在挪威的国防部门上班,模拟假设的敌人入侵的情景。他的工作启发来自1983年马修·布罗德里克(Matthew Broderick)主演的电影《战争游戏》( WarGames )。在这部电影里,人工智能企图发动核战争。
达尔跟我说,他可没这野心,但他确实对军事挺感兴趣——但后来,他的研究经费就没了。“那段时间可不好过。”他这么说(我猜他可能在开玩笑)。写博士论文的时候,达尔弄了个神经网络,让计算机自己跟自己进行了几百万次模拟战斗,并预测战斗结果。这套框架也能轻松用到西洋双陆棋上,达尔很快就超越了特索罗的成绩。
1994年,达尔推出了“水母”,这是第一个卖给大众的商业神经网络。 “水母”是玩了几百万场西洋双陆棋而训练出来的,虽然训练过程计算量很大,但最后的产品小巧到能装进3.5英寸的软盘,达尔就在他自己的网站上卖。这样一来,这个领域很早就明确了AI领域“训练”阶段和“推理”阶段的区别:训练是计算机学习的过程,推理是计算机运用知识的过程。比起人类那颗大约1.5公斤重、负责推理的大脑,还有为其训练提供条件的数亿年进化相比,推理的成本要低得多。
达尔很喜欢生物学的比喻。他给产品取名“水母”,就是为了向那些古老的水生刺胞动物致敬,它们的神经网络掌控着刺激和反应系统。他说,他的程序“只有大约100个脑细胞,这和海蜇差不多”。 这就是神经结构的威力:无论是攻克西洋双陆棋,还是在危机四伏的海洋生态系统中存活5亿年,甚至抵御敌人,都只需百来个小小的细胞。
[1] 从技术上来说,反向传播就是用多变量微积分和线性代数的知识在一层层的网格里分配新发现的信息。它先确定现有的神经网络输出有多大的误差,然后用这个误差值来计算一组叫“梯度”的偏导数,主要就是想看看哪些神经元“错”得最离谱。一旦确定了梯度,反向传播就会沿着相反方向调整神经元。此过程可按需重复多次。反向传播技术最早由芬兰数学家塞波·林纳因马(Seppo Linnainmaa)在1970年发现,尽管他并未将其明确应用于神经网络。1974年,美国计算机科学家保罗·韦尔博斯(Paul Werbos)独立地重新发现了这项技术,并试图将其作为解决明斯基在《感知器》( Percetrons )一书中所指出问题的替代方案,向明斯基推介这个技术。但据韦尔博斯所述,他几乎是被明斯基赶出办公室,并被劝阻不要使用该技术。韦尔博斯后来猜测,明斯基可能是因自己未发现反向传播技术而感到不悦。1986年,鲁梅尔哈特、威廉姆斯和辛顿再次将反向传播引入作为神经网络训练法,使该技术广为人知。