错觉:AI 如何通过数据挖掘误导我们
上QQ阅读APP看书,第一时间看更新

井字游戏

在玩井字游戏时,两个玩家在3×3网格上轮流画×和 〇(如图1.1所示)。无论是在水平方向、垂直方向还是在对角线上,只要三个方格连成一条线,该玩家即赢得比赛。

通过分析所有可能的移动序列,软件工程师可以编写出靠蛮力计算的程序来掌握井字游戏。玩家甲有9个方格可选择,在他走出第一步后,玩家乙有8个方格可选择,前两步共有72种组合方式。走完前两步,玩家甲剩7个方格可选择。整局游戏玩下来,计算机程序必须处理的选择序列共有9×8×7×6×5×4×3×2×1 = 362 880种。

图1.1 井字游戏

也有更简便的分析方法,但重点是,井字游戏程序看待游戏的方式与人类不同。人类看到3×3的网格会思考选择哪些方块能完成三格连线,以及选择哪些方块会阻挡对手完成连线。但计算机程序无法对这些方格进行可视化,而是为每个方格分配一个1~9的数字(如图1.2所示),并识别获胜组合(例如1、2、3和1、5、9)。

图1.2 匹配数字后的井字游戏

计算机程序会算出1~9的可能序列,识别各玩家的最佳策略,并假设对手会选择的最佳策略。一旦软件编写调试完成,就会立即显示出最佳策略。

假设玩家乙采用最佳策略,如果玩家甲从中心格或任一边角格起步,玩家乙就选择相反的方式——如果玩家甲选择中心格,玩家乙则选择边角格;如果玩家甲选择边角格,玩家乙则选择中心格。采用最佳策略的游戏总会以平局结束。

这就是蛮力计算,不涉及逻辑推理,只是无意识地枚举数字1~9的排列和识别获胜排列。

在井字游戏和其他游戏中,人类通常会避免对所有可能的移动序列进行蛮力计算,因为这样一来移动序列的可能性就会暴增。相反,我们使用逻辑推理,并将注意力集中在有意义的走法上。与蛮力计算程序不同,人类不会浪费时间思考明显错误的步骤。而没有逻辑和常识的计算机却还是会分析愚蠢的策略。

玩井字游戏时,人类玩家可能会研究3×3网格,而计算机玩的是1~9的数字。人类会采用可视化的方法,将注意力集中到中心格上,意识到这一格蕴含四个获胜排列,而每个边角格蕴含三个,每个边格蕴含两个。

中心格也是极佳的防守走法,因为接下来玩家乙无论选择哪一格,最多只蕴含两个获胜排列。相反,若玩家甲先选边角格或边格,就会让对方占据中心格,减少了自己的一个获胜排列,同时为对方创造了三个获胜机会。

从逻辑上讲,似乎起步最好选中心格,最后选边格。人类对棋盘的这种可视化认知和对中心格战略价值的判断,完全不同于软件程序对数字1~9所有排列的无意识识别。

人类也能发现游戏的对称性,即四个边角格任选其一开盘都同样可取(或不可取)。因此,人类只需思考选择其一的后果,选择其他三个边角格的后果就同理可得。游戏的对称性让人类每走一步都能减少需要考虑的移动步数。最后,人类会发现某些走法能迫使对手选择对其不利的方格,从而阻止对手完成三格连线。

人类能够运用战略性思维找出最佳策略,并发现采用最佳策略总会打成平局。有经验的人还会发现,同孩子玩游戏时不按常规出牌有时也能够获胜,例如开局选择边角格,甚至边格。

具有讽刺意味的是,尽管人类可以运用逻辑找出最佳策略,但人类编写的计算机软件程序还是有可能击败人类的,因为计算机无须考虑自己的走法。井字游戏的计算机程序只要遵守编程规则即可。相比之下,人类每走一步都必须思考,最后会疲惫不堪导致犯错。

计算机相比于人类的优势跟“智能”的一般含义毫无关联。正是人类编写出能识别最佳策略并存储于计算机内存中的软件,计算机才有规律可循。

尽管井字游戏这款儿童游戏会越玩越无聊,但它是很好的例子,凸显了计算机软件的威力和局限性。计算机程序对于烦琐的计算用处极大,编程软件每次的答案都完全一致,还能不厌其烦地完成已编程好的任务。与人类相比,计算机的处理速度更快、保存的信息更多。

人类怎能奢望在以信息记忆和处理速度为胜的活动上与计算机竞争呢?也许真正的奇迹不是计算机的强大,而是人类还在很多方面比计算机更胜一筹。遵循规则与人类毕生所获得的智慧,两者天差地别。

人类的智慧使我们能够识别出含义模糊的语言和扭曲的图像,对问题追根溯源,应对异常情况以及很多虽遵循规则却无法处理的事情。