在策略复杂的一些游戏中,人们试图将这种策略编码成计算机程序;最早的此类棋盘游戏是国际象棋,但实践证明更难攻克的是围棋。在看似简单的围棋游戏中,棋手轮流将白色或黑色的棋子放在矩形格子的交叉点上,迫使这些棋子完全包围的对手棋子——概率组合性爆炸。
例如,在国际象棋中,白方棋手有20个初始走法可供选择(兵的16个棋步,马的4个棋步);每一种“开局走法”均经过详细分析。而标准的围棋棋盘有361个交叉点可供棋手开始走棋,另外几步内的走法数量螺旋式攀升。据估计,围棋大约有10 170 种可能的走法,而国际象棋大约有10 50 种可能的走法。 [1]
有一些已知的游戏策略可以立即规划出击败随机放置棋子的新手的路线。这些策略通常涉及保持棋手自己的棋子连接,同时试图切断对手的棋子——因此,角成为特别有吸引力的起点。然而,基于游戏理论开发能下围棋的计算机程序的早期尝试却以失败告终。围棋形式简单,但组合极其复杂,因此,需要另辟蹊径。当最终开发出经证明能够击败冠军的AlphaGo软件程序时,采用的是摒弃传统策略开发的方法论。
AlphaGo利用神经网络——在一定程度上模拟大脑部分结构的计算机结构,机制是AlphaGo可以在不知道它在做什么的情况下做出决定,更不用说知道可用的策略了。事实上,打败世界冠军的第一个AlphaGo版本结合了人类专家的训练和自我学习——因此涉及了策略。不过,2017年,该团队开发了新版本,并在《自然》( Nature )期刊上发表:
在本文中,我们介绍完全基于强化学习而不需要人类数据、指导或者游戏规则领域知识的一种算法。AlphaGo成为自己的老师:将神经网络训练得可以预测AlphaGo自己的棋步选择……从一张白纸开始,我们的新程序AlphaGo Zero实现了超人的表现,以100:0击败了之前发布的、击败冠军的AlphaGo。
确实,这个版本需要遵循的只是游戏规则,没有策略概念。在与自己对弈近500万次(初期随机走棋)之后,AlphaGo Zero超越了以往可能的表现。在强化学习中,不是告诉软件要做什么——在根据从当前位置获胜的估计概率判断进展顺利时,它就会获得奖励。这导致AlphaGo Zero的棋步选择往往是围棋专家认为毫无意义的决定——事实上,它的部分优势就在于它的棋法会出人意料。
从某种意义上说,AlphaGo确实运用策略——但它没有运用任何理论来制订这些策略,也没有关于为什么运用特定策略的任何理解。这一切都归结于试错学习——AlphaGo对博弈论一无所知。
这种方法的成功指出博弈论的一个局限。围棋根本不是可以用理论来合理解释的游戏,因为它有太多可能的走法和对应走法,这导致用博弈论来下围棋的行为类似于测算一盒气体中分子的物理行为。虽然原则上我们可以算出每个气体分子的牛顿行为(暂时抛开量子物理学的古怪之处),但是,任何合理大小的盒子中的万亿个分子的牛顿行为实际上无法计算出来,而是需要使用统计方法进行统计。