塞缪尔使用特征值的加权和V作为对手的内部模型,实在是一个突破性的创举。借助这一创举,他取得了多项进展:
1.极大地增强了V作为预测工具的能力。
2.在缺乏及时的反馈信息时,使快速复杂的学习成为可能。
3.把基于模型的预期(展望)作为学习的基础。
4.很好地实践了伯利纳的原则,即避免重大失误。
除此之外,我们有理由相信,这样做得到的结果确实局部满足“最大最小策略”的要求。
对于塞缪尔在半个多世纪前得到的这些成果,我们至今还没有多少新的突破。他的国际跳棋程序,尽管设置的范围很狭窄,但是已经足够清晰地把学习与基于预测的行动和涌现能力联系起来。它也是一个可以自我改进的样本,通过内在模型的运用实现了“自我反省”。尤为重要的是,国际跳棋程序带给我们的启示可以广泛应用于对涌现的全部研究中。这些启示可以分为如下4类:
· 产生的复杂性。国际跳棋程序清晰地表现出有组织的复杂性,这些复杂性可以由少数简单的规则和程序得出。
· 无须即时反馈的学习。基于这样的学习过程得到的预测,使持续改进成为可能,即便在缺乏仲裁者来区分“正确”和“错误”的时候也是如此。
· 支持“设局”。在复杂环境中的学习,需要定义流程来提前识别那些能够促成后续博弈优势的走法。
· 为其他主体建模。多主体环境下,在预测其他主体行动的过程中,涌现现象也常常会产生。
通过用涌现的思想验证这些启示,我们可以探讨一些更为广泛的论题。
产生的复杂性
我们知道,即使是一个像国际跳棋这样简单定义的博弈游戏,也能够产生多种多样的棋局。这种由简单规则设置产生极度复杂性的能力,着实令人叹为观止。这表明,在现实世界中,复杂性几乎无孔不入。同时,我们也有信心找到由简单规则控制的模型来解释复杂现象。产生的复杂性对于涌现必不可少,如果要理解涌现,就需要进一步研究这种复杂性。
由简单规则设置所产生的恒新性,为构建和检验模型提供了强有力的理论基础。例如在国际跳棋程序中,通过忽略部分细节,我们看到的仅仅是对同一走法的重复。通过删减细节能够获得若干重复出现的特征,这样一来,我们能够建立起一个具有如下形式的学习行为准则:如果当前情况显示出特征(s)X,则采取行动(s)Y。当然,确定哪些是重要特征,哪些是细节部分,与经验及感受紧密相关,涉及建模的艺术。
对显著特征和细节的敏感属于人类及其他哺乳动物与生俱来的一种能力:在面对复杂情景时,无论是在乡村还是城市,我们总能迅速地把周围环境分解为熟悉的元素。“那里有3棵树、1间房子、1头奶牛……”或者“街上有5幢摩天大楼、2盏街灯、1个消防栓……”这个过程几乎不需要多少有意识的思考。然而,要让计算机程序获取这种能力却是相当困难的,目前还没有可以有效执行该任务的程序。
事实上,这种“与生俱来”的分解能力非常微妙。场景被分解为可复用的积木块,而并非任意组件。虽然经常看到树,但是我们从来不会以相同的方式看到同一棵树。每次看到树时,不同的光线、不同的角度都会在视网膜上留下不同的影像。如果考虑细节因素的话,我们在各种场景下看到大量不同种类的树,会很自然地把树进一步分解为树根、树干、树枝以及树叶。这些积木块以不同的方式组合,从而使我们构建和认识不同种类的树。这有些像孩子玩的积木,它们都能够以不同的方式组合。像游戏一样,只有某些组合是合规的,除非我们想构建一棵根和叶倒置的“猴面包树”。有时,为了追求生动或者出乎意料的效果,我们会尝试不合规的布局,但那些都是例外,而不是规则。
我们可以继续用隐喻的方式使用树模型,这样就可以把对于树的理解转移到更广的领域。在讨论博弈树时,我们甚至借助了根叶的概念以加深理解。第11章将更为仔细地研究隐喻的应用以及它和模型的关系。
无须即时反馈的学习
关于在没有确切判断依据时如何做出选择,塞缪尔给出了两方面的见解。首先,他认识到失败的预测也都能如明显的反馈那样作为改进的基础。在游戏及其他大多数情况下,只有在展开一连串行动之后才可能得到比较确切的反馈信息,而且所得信息也非常有限。这些信息并不能明确指出交手过程中哪些步骤才是关键的选择。仅仅根据反馈而做出的调整,会丢失从博弈序列路径上获得的许多信息。
此外,我们还可以借助过程中的预测使用临时信息来提高博弈表现。塞缪尔把评估函数V(s)看作特征值的预测,这个值可通过由s出发通过V确定的策略获得。他把遇到的每一个棋局都看作子树的根,用V来估计子树范围内通过可能的走法序列获得的值。无论何时,只要后来的事件或者展望表明在棋局s处的预测过于乐观,国际跳棋程序就会修正那些导致V(s)值较大的特征权重。
其次,塞缪尔的见解还来自对最大最小策略的观察。如果机器棋手和对手都一致遵循最小化最大伤害的策略,那么此路径上的每个棋局都会被赋予同样的值。如果V被视作最大最小策略的一个近似表达,它也应该满足同样的标准:在博弈的每一阶段它所做的预测应该相同。相应地,应该修正V以使它的预测保持一致,通常在修正程序中给予较靠后的值优先权。这导致了局部的基于V的最大最小策略。
支持“设局”
棋类游戏中,精彩博弈常常源自那些微妙的“设局”招数,代价可能是牺牲一枚棋子。这些招数往往会使后面的局势变得明显有利,例如国际跳棋中的三连跳。由于“领先棋子数”这一特征具有易学习、权重较高的特点,因此一个权重不高的V也有助于为后面的三连跳设局。诀窍在于,为那些影响设局选择的特征赋予了适当的权重。
局势胶着时,设“陷阱”至关重要。当与胜局联系紧密的特征,如国际跳棋中的“领先棋子数”特征和“领先王数”特征具有接近零的值时,博弈出现平局。也就是说,平局时这些明显特征对于V已经没有影响:对于所有局部选择,它们都是零。然后决定权就落到了那些更为神秘的特征身上,在局部选择时,它们的值各不相同。事实上,在缺乏明显的行动方向时,跳棋程序将会寻找由这些特征确定的子目标。这些特征的权重必须有利于确定那些能够促成后续优势局面的走法。
塞缪尔的学习程序能够自动提供“设局”的选择。如果基于V的预测做出的选择导致了不利局面的出现,也就是说,如果预测没有实现,那么权重就会改变,以避免在未来再次做出同样的选择。不断重复这个过程,剩下的“幸存者”将是那些能避免选择导致不利局面的权重。如果相应的权重特征具有正值,那么它们就被选为要寻找的子目标。反之,具有负值的特征就成了应该尽量避免的灾难性局面的标志。这两种情况都证明V确实具有确定关键性选择的能力。
为其他主体建模
为了给对手建模,塞缪尔大胆假定,对手了解机器棋手知道的一切信息。机器棋手的行动建立在这样的假设基础上,即只要有可能,对手就会利用V所确定的策略。因为跳棋游戏是一个零和博弈,也就是说机器棋手得到多少,对手总会相应地失去多少,反之亦然,所以V预测到的损失将会是对手的收益。依据这一点,为V取负值就为对手的策略建立了模型。这里又涉及在讨论展望时谈到的最大最小策略的使用。从展望树的叶节点“后退”的过程中,塞缪尔假设对手在诸多选择中,挑选出能够最小化V的走法。V和“取负值”的V相结合,将会预测出可能的博弈序列。
当然,对手可能并不真正具有模仿V的策略。如果对手的策略不如V有效,这种悲观的最大最小策略只会得到一个比预测更好的结果。当这种情况发生时,权重不会改变,因为另一个对手不可能再犯同样的错误。此外,对手的策略可能在某些方面比V更出众,能够产生V无法预测的结果。对于机器棋手来说,这个结果是一个很好的学习机会。V的权重将被改变,以避免这些此前没有预料到的灾难后果。因此,V可以把更多技巧的获得归功于它的对手,并且根据最小化对手引起的最大破坏这一原则,继续改进自身的策略。
通过这个方法为对手建模,尽管存在着不少反例和缺陷,但在实践中确实有效。在涉及多个主体相互作用、相互学习或者相互适应的复杂情况下,这个简单的建模技术切实可行的功效是我们进行研究的有效起点。