2009年2月16日星期一

《涌现》读书笔记之“西洋跳棋、神经网络和受限生成过程”

西洋跳棋
20世纪50年代塞缪尔设计出了西洋跳棋程序。这对现在的机器学习研究仍然有重要的借鉴意义。塞缪尔在建模中并不试图模拟下棋过程中选手的思维过程,而是在策略的层次上进行研究。他对使用实践经验来修正和改进策略很感兴趣。

根据作者的归纳,西洋跳棋研究中的问题有:
1)跳棋程序必须应付一系列的未知和新异的情形
2)在无法获得反馈来判断自己行为正确与否的情况下,“程序必须学习如何在对弈过程中做出正确选择,即具有一定的学习能力。
3)程序需要学会一些对棋局有利的关键的步骤
4)程序必须为对手行为建模。

而塞缪尔采取的相应的解决方案是:
1)根据棋局的共同特征进行归类,分成若干个集合。
2)程序按照以下步骤学习,先预测行为影响,如果行动后预测没有被证实,就修正所采取的行动。
3)对于关键的步骤,塞缪尔对这些走法的特征赋予一定权重,使之能够预测博弈终点的“最佳结果”
4)在对对手的建模中,塞缪尔假设对手对于优势特征和有利走法,有着和程序一样的认识,这会产生最大最小策略,是对手可能带来的最大破坏最小化。

如何通过赋予权重的方式指定策略,塞缪尔设计了“领先棋子数”(程序所拥有的棋子数减去对手的棋子数)、“领先的王数”、“双方超越中线的净突破数”、“棋子对于中心的散步程度”等组成的重要特征数组,并根据特征的重要性赋予相应的权重。特征值的加权求和就是对整个棋局的评价。这种方法也称为估价函数法。根据相应的棋局评价,程序选择能产生最大值后果的策略。程序根据不断的博弈实践,逐渐改进自己的预测和行动策略。当实际结果与估计后果不一致时,程序会调整相应棋局的预测值(比如由某个正值4变为某个负值-2)。先前越大的权重值越容易得到调整。调整的最终结果是使棋局的最终结果能够对自己有利。塞缪尔的权重改变技术是程序学习的关键所在,尽管还存在很多问题(如需要相当多的对弈经验、无法有效应对特殊情况),但是仍具有显著的启发意义。从简单的改变权重技术产生了子目标、预测对手、最大最小策略的实现、自我引导程序和对棋局的展望这5个方面的涌现后果。

作者认为西洋跳棋程序对涌现研究的启示是:
1)简单的规则和程序能够产生有组织的复杂性。在这一条中,作者强调了树的隐喻在涌现研究中的应用。比如树的分叉,各种积木(根、枝、叶、干)的组合这一些概念的启发式理解,像博弈论中的对策树。
2)未经反馈时的学习过程使得通过预测改进策略成为可能。
3)需要设计一个明确的程序来识别一些对未来棋局有很大影响的关键行动。
4)在预测其他主体行为的过程中也会产生涌现现象。

神经网络
在讨论一开始,作者举了一个神经元的蚂蚁隐喻。神经元和蚂蚁作为个体都拥有简单的规则,而它们组成的总体(大脑、蚁群)都是是一个稳定、灵活而又复杂的组织。
神经元有胞体、轴突、树突组成,通过突触传播化学递质或神经电位来彼此交流信息。神经元及其网络的特征有:
1)阈值会随时间而发生变化;
2)在一段时间兴奋后,神经元会出现疲劳现象;
3)突触权重变化符合赫布定律;
4)神经元组成的大型的复杂的网络中含有大量的环路;
5)借助环路,神经网络拥有无限期记忆的能力等。
根据以上特征,麦卡洛克、皮茨等对神经元进行建模。首先假设输入脉冲数目超过某一阈值后,神经元才会在一个时间步长结束后发射脉冲。为了完成模式识别,神经网络通过输入层、若干中间层、输出层的结构建立起来。在输入层每个神经元对环境刺激做出反应,发射脉冲,引起下一层神经元的激发,这样直至把脉冲传到输出成。神经网络中权重改变的基本原理与和塞缪尔的西洋跳棋程序相似。
通过神经网络建模,作者讨论了对涌现研究有启发性的几个观点。
1)通过相互联系的有大量回路的网络,神经元的子集有做出反射的可能性,这既可以提供长时记忆,又可以是神经元组织成为互相协作的集合,成为有组织的有序行为的积木块。
2)可变阈值、疲劳和赫布定律这三种机理推进了多神经网络产生行为的研究。
3)健全的反射神经元集合序列会通过正常的方式次级其他神经元
4)对于未曾遇到的新形式,分解成熟悉的积木块,进行新的组合

受限生成过程
根据以上两个例子的讨论,作者总结了涌现现象中几个共同要素:
1)上面两个例子都是为现实中的真实事件建模
2)每一个模型中都有一定数量的组件(如棋子、粒子或部件)
3)组件之间的组合随着时间而变化
5)相互作用受一些简单的规则的支配。

对于每个部件,作者用基于主体的模型来描述其行为(具体在《隐秩序》中讨论过),通过计算机来描述它们的行为和交互作用,进而考察整体产生的涌现现象。这里作者又一次讨论了涌现的内涵,“涌现是一种具有耦合性的前后关联的相互作用”,因为主体之间复杂的交互作用,系统呈现非线性的特性:整体大于部分之和。在建模中要注重对状态、对策树(转换函数)、规则和主体的特殊规定。在这个基础上,作者开始讨论受限生成过程普遍原理。

对于受限生成过程的理解,作者主张经过4个步骤进行
1)将规则的概念转换为机制,通过机制来来定义系统中的元素。
2)把多种机制连接并构成网络,这些网络就是所说的受限生成过程
3)在机制连接起来以后,我们会面对由带约束条件并相互作用的机制锁产生的所有可能性集合(类似对策树)
4)同时我们需要定义受限生成过程中子集合的层次,也就是积木机制。

作者举了元胞自动机的例子来简单地说明这些步骤, 如定义元胞自动机的基本机制和互相连接的机制,面对自动机生成的各种图形,作者同时观察到如形状滑翔机的简单而稳定图案(积木)。
在证明了作者总结的4个步骤的合理性后,作者试图将西洋跳棋和神经网络纳入这个受限生成过程的普遍框架中去。

对于西洋跳棋程序,作者把棋盘的32个方格看成是有同样的机制所控制。我们可以通过定义转换函数(主体机制)来决定跳棋游戏规则,然后把32个机制互相连接形成受限生成过程。对于每一个机制有至少5个输入(包括该方格棋手选择的走法和与周围四个方格的状态)。为了实施一步走法,先使用一个自由输入指明哪个方格(主体机制)是出发点,然后在用另一个自由输入指明哪个方格是目标位置。在程序中还要定义相邻方格(主体机制)之间的信号传播。

对于神经网络模型,先定义神经元(主体机制),它受至少3个输入的影响:t时刻神经元是否被激发,权重值w,现在的激发频率。转换函数根据神经元周围连接点的信息来操作。在这两个模型中,我们先定义单个主体的机制,在定义主体之间联系。考察主体间相互作用的的情形。

通过对西洋跳棋程序和神经网络模型的讨论,作者证实了自己总结的受限生成过程一般框架的有效性。

没有评论: