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,现在的激发频率。转换函数根据神经元周围连接点的信息来操作。在这两个模型中,我们先定义单个主体的机制,在定义主体之间联系。考察主体间相互作用的的情形。

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

《涌现》读书笔记之“接触涌现”

(这几篇是对约翰霍兰《涌现》一书做的读书笔记,做的比较粗略,只是记了一些要点,留作以后看得时候再思考和修正吧。寒假快要结束了,不管质量如何,也算对这段时间的终结作个纪念吧)


《涌现》是约翰霍兰继《隐秩序》之后的又一本力作。他继续复杂性系统的讨论,同时把目光从复杂性适应系统(CAS)转向了受限生成过程(CGP),即涌现现象。涌现现象是指通过少数简单的规则和定律,可以形成一个复杂多样、无法预料的系统。例如一个不起眼的种子到参天的大树,两边对齐围棋简单的规则却形成了令人眼花缭乱的博弈对局。作者企图用一种建模的方式来研究涌现现象。他把涌现现象的产生者视为主体,涌现现象就是主体交互作用的结果。而涌现现象的关键是在复杂多变的主体行为中产生可识别和重复的模式。也就是积木机制。在这里作者提及了西蒙在《人工科学》中的一个钟表匠比喻,在制作钟表的过程中先制作出几个大的零件,这样可以防止因为意外中断而全部重来,增加了工作效率。复杂系统的生成过程就好比这个制作钟表的过程。先生成大的有用的积木,然后在通过积木的组合呈现出复杂特性。作者归纳了涌现现象的特点:机制(积木、生成器、主体)、永恒的新奇(大量的未重复的生成结构)、动态性、规律性,有层次的组织(在生成器结构的基础上生成更高层次的生成器),这些都是在复杂系统建模中需要认真考虑的。作者同时对模型的内涵做了探讨,他引用词典上的定义“模型是是一种理想化的试验性的结构。”科学是在模型的基础上发展起来的。在涌现现象的研究中模型会发挥更为重要的作用。

在对涌现现象进行进一步讨论之前,作者回忆了1952年自己和赛缪尔一起设计电子计算机的经历。哪个时期的计算机是个充满新奇和挑战性的机器。计算机给作者最初的直观印象是能够严格得执行设计者的指令,以极高的强度和速度完成计算建模工作。这同时也对建模者提出了更高的要求,在事先对计算机模型的整体框架就很好的理解。当时塞缪尔对西洋跳棋的计算机模拟感兴趣,而约翰霍兰对Hebb提出的神经网络模型感兴趣,致力对神经网络模型的计算机模拟。而这两个早期的模型就成了本书重点讨论的两个例子。作者试图从与计算机的最初接触中总结了计算机建模的相关经验(那时候的计算机建模受编程语言的限制较少)。

作者从自己的经历中提取了棋类游戏、数字、积木块这几个他认为对建模有启发性的概念。棋类游戏在历史上出现的很早,是人类最早建立的抽象模型之一。逻辑推理规则与棋类游戏规则在运用上有很多相似的特点。数字是对物体具体属性的抽象化,舍去了不必要的细节。而积木块正如前面所说是一种连结个体特性与总体特性,下层模型和上层模型的中间机制,是在长期的适应演化过程中形成的。从这三个概念就引申出计算机。建模时的三个要点,规则,状态,和中间机制。

在讨论具体例子之前,作者大致勾勒了一下受限生成过程的基本研究思路。他借助谈论数字和模型的关系来归纳计算机模拟的实质。作者借地图这个例子重点说明了模型的抽象化和对应性特征,对应性可以通过函数的映射关系来体现。而抽象的规则可以用博弈论的理论体系得以说明。博弈论的基本概念包括博弈时的状态空间、博弈的策略集合和对策树。对于策略集合中的策略,作者不进行具体的定义,而是通过规则指令自动生成。在博弈重复进行的情况下,具体有效的策略可以自动生成和改进。对于定义主体的具体行动,作者不采取假设参与者根据固定策略采取行动的简化形式,而是采用更复杂的版本:在博弈中参与者都在为对手的行为建立模型。在参与者互相适应对方策略的过程中,涌现现象就逐渐产生了。理解涌现现象的关键(而不是把它当成简单的混沌现象)在于系统细节的详细程度以及决定详细程度的相关机制。模型中变化的状态类似于博弈中的结构布局。为了发现复杂性系统的规律(博弈规则),需要将静态模型扩展到动态模型的形式。在这个过程中,首先确定系统的状态空间,这一步关键是确定合适的详细程度(这也是建模的艺术)。在此基础上,借助转换函数确定系统规律。通过转换函数的预测能力,在建模和涌现之间建立了深刻的联系。这样计算机通过寄存器中数字的变化模仿被模拟对象的状态变化,也就能实现对现实中涌现现象的合理模拟。

2009年2月15日星期日

《隐秩序》读书笔记之“通向理论”

介绍完适应性主体模型和回声模型,作者开始总结复杂适应性理论的方法论内容。

首先他强调了数学在复杂性理论中的重要位置。数学的优势在于它可以进行严格的推广。因为它本身就是形式上的定理。这一点是物理学实验和计算机实验所无法比拟的。只有在数学上设计良好的模型才能进行更好的推广。

作者根据回声模型,提出了更为普遍和抽象的双层模型。双层模型有两个假设:主体可以聚集成物种或种类;同一种类的主体之间的资源可以快速地交换混合。这两个假设都是CAS能够轻易实现的。底层的主体相互作用的机制,类似于台球之间相互撞击。我们通过规则计算每个主体相应的反应率和资源比例。我们于是在下层结构中建立了一个流随时间变化的数学模型(比如Lotka-Volterra模型),呈现着快速、动态的特性。而上层“物种”呈现出缓慢的适应和进化过程。如何使上层模型和下层模型耦合起来,作者指出有用的方法就是将关键的“积木”进行有条件的复制,逐步形成一个类似主体组成的聚集体。上层模型应用这遗传算法或隐式适应度的模式定理作为它的的数学基础。而积木机制和生物体的趋同现象使得下层的快速流动网络呈现出一种规律性。

作者的双层模型中,底层的动力学模型应该是最为成熟和讨论最充分的,上层模型在生态学、宏观经济学、热力学和社会学中也有相应的理论。关键是如何找到连结上层模型和下层模型的机制。作者提出了积木机制这个中间层次,通过拥有相似积木之间的主体的聚集,把下层因为快速流动而抹消的差异性通过积累而逐渐放大并显著化。作者采用了生物学作为自己思考的源对象,从单个生物体(主体),再到物种(聚集),再到整个生物圈,贯穿了从下层模型到上层模型的整个过程。这是一个比较好的类比方式。其实从物理学的角度考察微观层次到宏观层次的联系,也是一种很有启发的形式。 最初,物理学家从分子运动论开始,应用统计学规律,得出了热力学规律,形成了统计物理学这门学科。然而传统统计物理学处理的是平衡状态下的物理现象,无法解释现实中形形色色的非平衡状态。于是产生了如普里高津的耗散结构论之类的非平衡统计物理学。然而生命作为一种更高一级的非平衡模式,需要在宏观上用更强有力的方法进行模拟。这个发展过程中积累了很多微观和宏观机制的数学模型。

正如开头所说,作者在描述双层模型理论框架的时候,试图寻找复杂性适应系统理论的数学框架。对此作者显得比较谨慎,没有给出绝对的答案,只是给出了一些建议。他认为两种数学模型对复杂性理论有帮助。一种是“基于方程组的组织化的动力学理论”,可以描述下层流的特性。一种是“发生策略(积木机制)与层次结构(如缺省层次)、策略(对策中的移动类别)和策略对应的值(对策得分)关联的一种理论”,也许可以用博弈论的观点进行考虑。用数学术语总结,作者希望找到“把生成函数、‘自动机’群和改进的马尔可夫过程结合起来的方法”。

最后作者提出了自己认为的复杂性理论的几个基本要求:学科交叉性、基于计算机的思想实验、对应原理、用于重组竞争过程的数学。这几点正是作者在本书中重点强调的。多学科视角的思维方式,能够最大化的激活人的想象力,而计算机模拟可以让自己的创意相对容易地转化为实际可以操作的模型,对其中的内涵进行更充分的检验和挖掘。对应原理(见附)要求我们能够最大限度地容纳相关领域旧成果的基础上建立新的模型。这可以尽可能避免模拟过程和原有现象这件的擦会议。而用于重组竞争过程的数学,是建立一个完备的数学模型所必需的。鉴于下层的动力学模型和上层的统计学模型已经有了深入的研究,作为中间层次的重组竞争过程需要更为成熟的数学。

以上就是作者试图向我们传达的复杂性适应系统的理论框架。虽然还不是完全成熟,但是充满了启发性。以简单个体之间的互动为基础,在整体上生成复杂多样的形态。作者模拟了简单生物之间交流、聚集、繁殖。我想能否用复杂性适应系统的理论来模拟心理现象,最近已经有一篇试图复杂性适应系统探讨意识层次的文章 ( http://www.santafe.edu/research/publications/workingpapers/08-12-048.pdf )。 对于日常生活中记忆现象,能否可以用CAS等复杂性理论的方式来建立模型。比如先用实验的方式考察情绪、人际交互方式、目标、语言对记忆的影响,然后根据实验中的结论建立主体的规则(IF/THEN形式),然后让主体之间相互交互作用,完成信用分派,并用输入刺激信息的稳定模式作为积木组块,通过多次模拟来考察最终形成的记忆模式及特征。鉴于原有记忆研究中比较强的计算机范式,这种适应性主体模型的方法,应该是相对可以实现。这或许就是我读完《隐秩序》一书比较简单的感受。希望自己以后能有机会进一步的思考和发展。

附:对应原理
是波尔在建立氢原子的量子力学模型,所提出的一种推理方式。他认为:“在一点上……我们可以指望和普通观念的一种联系,那就是,在经典电动力学的基础上来计算【低的光学频率】将是可能的。”(转引自派斯著《尼尔斯波尔传》P221,商务印书馆,2000),波尔通过这一个思想,从量子理论和经典理论各得出一个公式,然后通过比较两者的差异,考察将量子理论模型转化为经典理论模型所需要的限制条件(具体的阐述可以看戈革教授的相应文章和卢昌海纪念戈革的文章,http://hps.phil.pku.edu.cn/viewarticle.php?sid=2567&st=0)。
后来对应原理就用来指新发展的理论在特定条件下可以等同于旧理论的情况,比如狭义相对论和牛顿经典力学、统计力学与热力学或染色体遗传理论和孟德尔遗传三定律之间的关系(参考维基百科http://en.wikipedia.org/wiki/Correspondence_principle)。

《隐秩序》读书笔记之“回声模型”

第二章重点介绍了了单个适应性主体的模型,第三章开始讨论多个主体之间的相互作用——回声模型。

为了寻找建立一个统一的CAS理论模型的方案,作者讨论了科学研究的基本方式:先获取研究对象的完备数据,然后根据数据建立模型。他举了一个不知被多少人举烂的例子:从第谷的天文观测到开普勒发现行星运行三定律的历史(虽然如此,这个故事还是有令人激动的魅力,神圣而梦幻的星空、庞杂的数据、不懈的努力、流逝的光阴、简洁而丰富的定理和神意的启示,可以说科学的成功的精髓都包括在其中)。在把科学研究基本方式应用到CAS理论时,作者强调了计算机模拟的好处。计算机模型的定义明确性和可操作性使我们能够清晰地灵活地考察CAS理论的各个细节。特别是计算机模型作为思想实验工具发挥着重要的作用。为此研究者必须要有从特殊而多样的研究对象中抽出共同而简明的特征。他提出了回声模型的6个判据:

1.回声模型要尽可能简单,并与其他判据相容。
2.回声模型解释的行为应比较广泛。
3回声模型应有助于进行适应性进化的实验。
4.回声模型的理论构念应该在现实中有相似的对应物
5.回声模型应该尽可能包括著名的CAS特定模型(如军备竞赛模型、囚徒困境模型和抗原-抗体模型)。
6.回声模型在数学上应该尽可能严密。

在这六个判据的指导下,作者由浅入深提出了6个回声模型。我准备从作者在第六个模型后进行的小结开始,先总体上理解回声模型的基本要素,再顺着作者的思路理解六个模型。

作为考察主体交互关系的回声模型,首先要确定一个“工作环境”,也就是作者说的“由位置网络表示的地理环境”,作为主体活动的空间。每个位置含有资源和一系列主体。资源由一连串字母表示,可以随着时间而变动、更新。主体也用一系列字母串表示,可以简单地比拟为“染色体”。每个“染色体”有一个“仓库”用来存放资源。主体之间通过交换资源来生存、繁殖。“染色体”包括“标识段”和“控制端”。标识段包括三种标识进攻标志、防御标识和粘着标识。交互作用时主体将自身的进攻标识和对方的防御标识进行匹配,然后决定交换资源的数量。粘着标识决定主体间的粘着程度。控制端包括条件、资源变换和活动标记。条件有交换条件、交配条件和复制条件。在主体交互作用时条件会先检查对方染色体进攻标识,然后决定交换资源是否继续。交换资源每次指定一个源资源和目标资源,交换次数任意。一个主体的标记用来反映在多主体模型中该主体是否会被注意。如果标记是1,多主体会使用该主体的标识调节交互活动,否则就会被忽视。

了解了以上基本要素,我们可以看看作者介绍的6个模型

模型1进攻、防御和仓库

模型1中,主体只含有存放资源的仓库和由代表资源的字母组成的“染色体”字符串两个组成部分。“染色体”含有进攻标识和防御标识。两个主体相遇时进攻标识和防御标识相匹配,决定资源的交换。这里之所以用两个标识而不是一个标识代表主体,是为了防止单个标识所造成的交互活动的传递性。因为A影响B,B影响C,但A不一定影响C。

模型1是最基本的模型,模型2-6都是对模型1一步步的扩展,增加了一系列新的机制。

模型2条件交换

模型2相比于模型1,增加了选择性交互作用的机制。“染色体”被分成了两个部分——控制片段和标识片段。控制片段提供交换条件,用来检查另一个交互主体染色体的进攻标识

模型3资源变换

模型3增加了资源变换的机制。通过对控制片段的功能进行扩展,使之具有变换子片段的功能,来完成资源变换。资源变换的代价是主体通过收集足够多的资源(字母),来定义子片段酶,促进资源变换,通过其他资源生成主体所缺乏的资源。同时要考虑“变换速率”的问题,如能获得多少缺乏资源的副本和变换时间是否短于主体的寿命。这些都影响着资源变换的效率。

模型4粘着

模型4增加了主体之间互相粘着的机制。在标识片段加入一个粘着标识,每个主体的粘着标识与另一个主体的进攻标识匹配,计算粘着匹配分数。粘着同时形成了边界,边界又可以分成内边界和外边界,一个外边界内可以含多个内边界。边界由粘着匹配分数决定,两者匹配分数低,不会发生粘着。两者匹配分数接近且不接近于零,放入所选主体的边界内。一个主体的匹配分数远远高于另一个时,匹配分数低的主体放入匹配分数高的主体边界的边界内,即形成内边界。

模型5选择性交配
模型5增加了选择性交配的机制。在控制片段内加上交配条件。交配条件和资源交换条件相似,都与潜在配偶主体的进攻标识进行匹配。交配的选择性取决于交配条件的专一性。主体选择和它发生交配条件的主体的范围。选择性交配后为了控制主体数目,作者设置了随机死亡率,是出生率和死亡率互相平衡。

模型6条件复制

模型6增加了条件复制的机制。对于形态发生模型,作者强调用计算机模型直接描述,而不是传统偏微分方程的形式。这样能够更好的理解形态发生的动态过程。在多主体每一个区室的控制片段加上复制条件,考察其他区室的进攻标识,根据其是否满足复制条件,决定进行复制。模型6蕴含了作者小结中的各个要素。

回声模型是类比于生物中的细胞体建立的,但同时在很多方面也有了必要的简化:忽略了生物体新陈代谢机制的细节;用字符串直接表示的内部结构,类似于主体的基因型(genotype).同时主体的表型(phenotype)用标识来表示;因此,相比于适应性主体模型,并没有复杂的内部模型,而是广泛使用了标识,显得更为简单。

作者对回声模型进行计算机模拟,看它是否能够生成像生物界中那样多样性的形态。作者讨论了计算机模拟的本质:把要模拟的过程与计算机的计算过程一一对应起来。先把模拟的过程分成一个个状态,然后把状态和计算机程序中的数字对应起来。那么模拟的过程就等同于计算机的计算进程。作者重点指出任何规律都可以通过IF/THEN规则和恰当的算术计算都能在逻辑上得到精确的定义。

在回声模型的计算机模拟中,作者假定各个主体同时交互作用。主体之间的接触分为两种:交换接触和交配接触。所检验的条件如上面所述。作者为计算机模拟写了一个流程图:


(引自约翰霍兰《隐秩序》P143,上海科技教育出版社,2000)

回声模型计算机模拟的检验:
在检验中作者再次采用了囚徒困境的例子。主体之间互相接触,接触时进行囚徒困境的博弈行动。标识的作用在模拟过程中显现出来。在检验过程中使用标识的主体,对行为的选择更有倾向性,能够逐渐发展出有利于交互作用的标识和条件。它们更容易发展出“针锋相对”策略。

对于回声模型的意义,作者看来有两点:思想实验和飞行器实验。这两者是逐步递进的关系。先像伽利略那样设计出一系列思想实验,再像瓦特一样设计出一个“蒸汽机”的草图。而计算机就把这两段过程给巧妙的结合起来,并大大缩短了进程。总而言之计算机模拟既可以为我们提供洞见,又可以为我们设计蓝图。计算机在复杂性系统的作用是十分精妙和丰富的。

这部分令我印象深刻的几点,一是他对生物学模型的大量借鉴和巧妙而合理的简化,更重要的是他对科学研究方法以及计算机在科学研究中角色的讨论。从数据到模型再到应用,这是科学研究的基本流程。这一个流程在计算机模拟中得到缩短和简化。计算机模型作为一个直观化的模型,能够以动态的进程模拟各种可能情形。这使我们能够更加深入地理解模型的本质。对于模型的现实应用,计算机模型也可以以更形象化、更有针对性的方式进行转化。可以说计算机模型的潜力是无法估计的。我想对于计算机模拟的细节,自己还需要在以后多加学习、实践和体会。

2009年2月7日星期六

《隐秩序》读书笔记之“适应性主体”

(《隐秩序》这本书买的挺早了,但是只是最初浅读了一遍,对其中的一些概念和要素有了大概的了解,具体细节并不清楚。这个寒假准备把这本书和他的姐妹篇好好读一下,做一些笔记增加自己的收获)

在第一章作者详细介绍了复杂性系统的七种基本元素(聚集、标识、流、非线性、多样性、积木机制,内部模型),第二章开始采用这些基本要素组建适应性主体。

作者一开始用纽约市的例子对七种要素进行了简单的归纳,简而言之:在纽约市这个复杂系统以各种各样的公司为主体(聚集),公司外部有各种各样的广告商标(标识)。公司内部有不同部门组成(积木机制),充满了形形色色、花样翻新的交易方式(内部模型)。公司之间互相交易,之间充满串行不息的物流和贸易(流), 使得城市这个系统既丰富多彩(多样性)又复杂不可预测(非线性)。

通过上面的例子我们可以看到作者描述的复杂性系统的一般特性,其中主体是系统中的关键环节。对于细胞、公司、神经元这些形形色色的主体,能否为所有主体找到一个统一的CAS(complex adaptive systems)方法。这是这一章作者试图做到的。
作者提出了探索可能性的3个步骤:
1. 找到一个统一的方式来描述主体的性能(执行系统),
2. 根据主体在环境中的成功(和失败)分配相应的信用(信用分派),
3. 在信用分派的基础上,调整主体性能和执行规则(规则发现)

作者根据这三个步骤讨论来他建立的适应性主体的计算机模型。

执行系统:

在一个缤纷复杂的环境中,主体如何处理周围的信息?作者利用计算机的输入-中央处理-输出系统进行类比。对应于计算机系统的输入输出,他设计一个探测器让主体感知周围的环境特征,然后用效应器来表现它的行为。对于执行系统的规则,作者没有采用人工智能比较盛行的复杂的规则体系,而是采用相对简单的因果性的IF-THEN规则,具体说是IF(有合适的信息)THEN(产生指令)。在规则的条件部分,作者设计语法时采用了二进制0,1以及#之类的符号,如二进制形式####…..###0#1,表示对倒数第1位是1和倒数第3位是0的任何消息作出反应,#表示不在乎该位置上的信息。作者设计一个message list作为“仓库”存储所有信息。规则之间是并行的关系,在执行系统的探测器获取信息时,所有规则同时激活,无论它们之间是否存在矛盾。这与计算机串行性处理方式和传统人工智能的处理相差甚大,这也是该模型相比于从前的优势所在,它可以强化主体面对新环境时的灵活性和适应性。

信用分派:

作者把规则看成一个正在进行检验和确认的假设,目标是为了寻找矛盾,即规则提供了一系列竞争性假设。这和前面的并行性一样,是模型的精髓所在。

但是面对各种竞争性的假设,系统如何裁决它们之间的优劣?作者由此提出了信用分派规则。根据规则的有用性(在环境中的功能和适应性),为每一个规则分派一个强度。在执行系统中多个规则同时起作用时,信用分派变的很复杂。作者在这里采用了买卖中生产商、供应商、顾客交易的比喻:供应商从生产商方面进货(消耗信用币),再卖给顾客(获得信用币)。系统(供应商)从大量的规则原件(生产商)中获取可能有用的规则(货物),然后在环境(顾客)中进行检验,将检验结果进行回馈。信用币就类似与分派强度,通过多次“交易”使有用的规则获得更高的强度。通过这种作者称为传递水桶算法(bucket brigade algorithm)的方法,系统最终对规则完成合理的信用分派。

随后作者将这个进价比喻稍微修改,建构出主体的内部模型。他又加入了具体性这一个指标。语法中#的数量与信息的数量成反比,信息的数量与具体性成正比。让出价数目(即分派强度)正比于强度和具体性的乘积。这样作者可以使系统在一般规则基础上生成特殊规则(具体性高),并设计出一系列规则的共生现象。需要指出的是,用现有语法形成内部模型时,检验一般的规则比特殊的规则要容易(因为特殊规则信息量更大)

规则发现

因为建立一般的规则比较容易,所以作者建立主体的行为模式,是缺省层次(一般规则)开始的。那么如何确定缺省层次的规则(一般规则)就成了作者要解决的首要问题。首先作者先探讨如何确定候选规则,他采用“貌似真实性”法则(根据过去经验没有明显错误)。对于规则的积木(候选规则)的选择,最直接的是用规则串选定位置上的值作为潜在的积木。

在这里作者又提出了等位基因的比喻,他把规则串看成染色体,把积木(规则串选定位置上的值)看成等位基因。这就把两者的行为模式类比起来。那么我们就可以借鉴遗传学上综合适应度(overall fitness)和平均适应度(average fitness)的概念。在借鉴的过程中,为了解决非线性(因为等位基因的交互作用,适应度是等位基因的非线性函数)的困难,作者引进了一个新的忽略符号★区别于#(#属于条件集合{1,0,#},★属于模式集合{1,0,#,★},因为条件等同于接收的消息集合,模式等同于接收的条件集合,所以#定义了不同的消息,)★定义了不同的条件。也就是说★作为模式中定义的符号,处在比条件定义符号#更高一级的位置),来定义多个位置组成的积木。

在此比喻的基础上,作者全面借鉴遗传机制,先定义所有主体规则的平均强度A和某个模式规则的平均强度S, 再将S与A比较,决定该规则的适应度。在比较规则中作者提出了地貌比喻,把模式规则的平均强度看成山的高度(考夫曼的n-k地貌),用在在计算机上进行可视化的数学分析。

为了解决计算模式平均数S(b)的巨大工程量,作者创造性地提出了遗传算法这个方法。 简单的讲包括以下三个步骤:
1.规则串(染色体)根据适应度繁殖:用模式平均数计算作为启发式计算依据,高于平均数的模式有更多实例,低于平均数的模式有更少实例
2.重组:父母串通过配对、交换、突变,产生后代串。在交换中更多使用高于平均数的短模式,但可能打乱长模式。交换中的组合效应用模式定理的进行总结(数学形式是M(b,t+1)=[1-L(b)/(L-1)][1-Pmut(b)]S(b,t)M(b,t),其中 L(b)/(L-1)表示交换点落在模式b外边界的概率, Pmut(b)是突变修改模式b的概率, S(b,t)是模式b在时刻t的实例的强度, M(b,t)是模式b在时刻t的实例数,M(b,t+1)是模式b在时刻t+1的实例数)。
3.取代:后代随机取代原有的串。并引入了死亡率这个概念,使群体规模保持稳定。

以上3个步骤多次循环,使得适应度高的“积木”( 候选规则)在总体的比重越来越大,从而强化了整体的适应度。

关于遗传算法,网上有一篇约翰霍兰的文章http://www.econ.iastate.edu/tesfatsi/holland.GAIntro.htm 进行了介绍

例子

作者在叙述完建立适应性主体的规则后,举了两个经济学中的例子来说明适应性主体的巨大威力。

囚徒困境中的适应性主体

囚徒困境是博弈论中一个经典的案例,两个囚犯被隔离关押,面临审讯,如果他们都拒绝招供(双双合作),那么他们将无罪释放,如果他们有一人招供(背叛),一人拒绝招供(合作),那么背叛者会释放并得到奖励,合作者被判重刑。如果两人都招供(双双背叛),那么都会判较轻的刑。

当进行多次囚徒困境对策时,何种策略是最好的。作者应用适应性主体技术,将合作(H)和背叛(B)看成字符,将个体的策略看成字符串(如HBHBHBHBBBH………..)根据博弈结果对每个策略进行打分,然后用高分策略取代低分策略,这样就能发现更好的策略。事实经过计算机模拟实验,研究者很快发现了针锋相对策略,甚至还发现了更好的策略(考虑到受骗的情况)。

适应性主体与股票市场模拟

适应性主体还可以用于股票市场模拟。根据IF(价格A) THEN(买入)和IF(价格



以上算是把作者的本章的内容和思路做了一个完整的笔记。虽然只是一本薄书中的一章,其中的信息量还是很大的。下面谈谈作者建立模型的方法给我的不少启示。

首先是在建立规则时从一般到特殊,遵循由易到难的原则。在最低层次上的单元及规则尽可能简单,但同时要有充分的灵活性,如IF-THEN规则的应用,备选积木的选择上考虑了貌似真实性的原则。这些原则虽然简单,但是可塑性很强,在更高层次能出现更丰富的复杂模式,也有利于作者更好地考虑自己的理论前提。

第二个是比喻在建立模型中的大量应用。像经济学中的买卖交易模型,生物学中的等位基因比喻和染色体交换复制比喻,以及计算平均适应度时关于地貌的比喻。由此可以看出比喻在复杂性研究中旺盛的生命力,复杂性研究注重跨学科性,各个学科建立的经典模式,都可以产生启发性的观点,然后应用数学进行必要的转换。在约翰霍兰的理论中比喻被放在了一个非常重要的位置上,以致于他在《涌现》一书专门一章来探讨这个主题。

竞争性假设同时竞争,这或许就是复杂性研究区别与传统人工智能的地方。并行性处理既增加了处理的效率,也增加了容错性,可以根据环境进行更为丰富的调整。

积木的选择,积木是对主体系统有重要影响的有效模式。作为系统的中间机制,积木连结这上层总体特性和下层个体行为,也是系统呈现出复杂多样性和简化复分析计算的重要条件。所以积木的选择就成了主体能够发挥更大作用的关键所在。作者采用染色体交换复制的类比,试图运用进化的原理使重要积木能够自动的筛选出来,并逐渐固定化。这种充满新意的方法叫做遗传算法,在90年代成了很热门的学科。网上能搜到不少书。也许有机会可以抱着学习的态度看一看。


附:第一章主体的七个基本元素


聚集(特性):有两层含义,第一层指简化复杂系统的一种标准方法,把相似的东西聚成类。第二层是指这些较为简单的主体通过聚集相互作用,出现复杂的大尺度行为。

标识(机制):为了聚集和边界生成而普遍存在的一种机制,如如旗帜、消息标题、信息素等。

非线性(特性):整体非个体的简单的线性求和。如生态学中的捕食者-被捕食者模型÷Lotka-Volterra模型、三体模型。非线性特性会干扰用于聚集的线性方法。


流(特性):在拥有众多节点和连接的网络中资源的流动。随着时间,流和网络表现出对变化的适应性。在经济学中流有两个效应:乘数效应和再循环效应(recycling effect)

多样性(特性):一种动态的适应性的模式,从生物进化论的角度会对多样性有更深的理解。


内部模型(机制):主体用于预测未来和行为决策的关键机制,含有隐式(对一些期望的未来状态的隐式预测,指明当前行为)和显式(作为一个基础用于作为其他选择时明显的但是内部的探索,即前瞻过程)两种。

积木(机制):对一些有效和关键性的模式的重复使用,如数学中的公理,音乐中的音符,生物学中的细胞。较高层次的规律是从较低层次积木的规律中推导出来的

2009年1月24日星期六

应用多元统计笔记之统计距离

(最近在看图书馆借的《实用多元统计分析》(A约翰逊,迪安 W威克恩),觉得其用线性代数的方式解释统计的方式很受启发,再加上是借的书,所以希望作些笔记,算是总结以下自己读书的收获,准备用专题的方式把书中的一些概念记下来,同时参考一些其他资料。这也利于以后查阅)

统计距离(statistical distance)是多元统计的基础概念。它是为了解释变异差异和引入相关概念而发展起来的。试想我们测量两个变量,得到一系列数值对,每个变量的数值均值为0。两个变量的测量相互独立。而我们假定变量X1的变异量比变量X2要大。那么在以二维坐标图上(X1为x 轴,X2为y轴)表现为一个形状类似扁长椭圆的散点图。因为x轴的变异量大于y轴(因为X1变异量大于X2),所以在统计上认为将两个坐标赋予相同的权重并不合适。因此我们引进了一个标准化后的坐标 \inline$x_{1}^{*}=x_{1}/\sqrt{s_{11}}$ 和 \inline$x_{2}^{*}=x_{2}/\sqrt{s_{22}}$ 从而定义了统计距离为:
\inline$d(O,P)=\sqrt{(x_{1}^{*})^{2}+(x_{1}^{*})^{2}}$ $=\sqrt{\frac{x_{1}^{2}}{s_{11}}+\frac{x_{2}^{2}}{s_{22}}}$
(引自理查德 A约翰逊,迪安 W威克恩(2008),实用多元统计分析(影印版),清华大学出版社,以下同上)

因此统计距离是对欧式距离的推广(二维是 \inline$d(O,P)=\sqrt{(x_{1})^{2}+(x_{2})^{2}}$ ),当变量间变异量一致时,我们用欧式距离来计算距离,当变异量不一致时我们考虑统计距离。
当统计距离为常量c时, 有以下方程
\frac{x_{1}^{2}}{s_{11}}+\frac{x_{2}^{2}}{s_{22}}=c^{2}$

该方程是一个中心在原点的椭圆方程,与x轴的交点为 \inline$-c\sqrt{s_{11}}$和\inline$c\sqrt{s_{11}}$与y轴的交点为\inline$-c\sqrt{s_{22}}$和 \inline$c\sqrt{s_{22}}$

如果对统计距离在进行推广对任何一个点P(X1,X2)到固定点Y(Y1,Y2)的统计距离是:
\inline$d(O,P)=\sqrt{\frac{(x_{1}-y_{1})^{2}}{s_{11}}+\frac{(x_{2}-y_{2})^{2}}{s_{22}}}$
统计距离还可以推广到啊更高的维度

以上的统计距离公式考虑的是变量之间相互独立的情形,因此有必要考虑变量之间相关的情形,所以引进了旋转角度的方法,如果把相关变量的散点图的坐标轴旋转至符合独立变量的情形那么可以得出
\inline$d(O,P)=\sqrt{\frac{(x_{1}^{'})^{2}}{s_{11}^{'}}+\frac{(x_{2}^{'})^{2}}{s_{22}^{1}}}$
x1’和x2’分别为 \inline$x_{1}^{'}=x_{1}cos(\theta)+x_{2}sin(\theta)$ 和 \inline$x_{2}^{'}=-x_{1}sin(\theta)+x_{2}cos(\theta)$

最终我们得出:
\inline$d(O,P)=\sqrt{a_{11}x_{1}^{2}+2a_{12}x_{1}x_{2}+a_{22}x_{2}^{2}}$

其中a11,a12,a22是由角度θ决定的

同样对于P(X1,X2)到固定点Y(Y1,Y2)统计距离为
\inline$d(O,P)=\sqrt{a_{11}(x_{1}-y_{2})^{2}+2a_{12}(x_{1}-y_{1})(x_{2}-y_{2})+a_{22}(x_{2}-y_{2})^{2}}$
同时可以把统计距离推广到更高维的地方。

要指出的是k距离并不只是和椭圆或圆联系在一起,任何距离测量只需符合以下特征:
d(P,Q)=d(Q,P)
d(P,Q)>0 如果P!=Q
d(P,Q)=0,如果P=Q
d(P,Q)<=d(P,R)+d(R,Q) (三角不等式)

对于统计距离的解释可以根据以下定理: \inline$(x-\mu)\sum^{-1}(x-\mu)$ 为 \inline$\chi_{p}^{2}$ 分布,其中 \inline$\chi_{p}^{2}$ 为自由度为p的卡方分布,\inline$(x-\mu)\sum^{-1}(x-\mu)$ 为多元正态分布的形式

根据卡方分布的定义我们可以得出
\inline$(x-\mu)\sum^{-1}(x-\mu)$$=Z_{1}^{2}+Z_{2}^{2}+........+Z_{P}^{2}$

其中 \inline$Z=\sum^{-\frac{1}{2}}(X-\mu)$$是\inline$N_{p}(0,I_{p})$ 的正态分布

所以统计距离平方可以转化为p个 独立的标准正态分布变量的平方和,即把标准正态分布变量数值看成坐标值。其中 \inline$(x-\mu)\sum^{-1}(x-\mu)$ 也称作Mahalanobis距离(由P. C. Mahalanobisi在1936年提出)。Mahalanobis距离可以检测线性回归模型中的异常值。

统计距离在聚类分析中有着更广泛的应用,聚类分析有通过距离测度来获得相似性测度的方法,即通过统计距离的远近来判断案例(在坐标系中视作点)是否相似,属于同一类别(这也是统计距离的初衷所在)。所用的距离测度有:

欧式距离


(引自郭志刚《社会统计分析方法——SPSS软件应用》p122)


绝对值距离


(引自郭志刚《社会统计分析方法——SPSS软件应用》p122)

Minkowski距离

(引自郭志刚《社会统计分析方法——SPSS软件应用》p122)

Mahalanobis距离

(引自郭志刚《社会统计分析方法——SPSS软件应用》p122)


统计距离此外还有Cook距离 (http://en.wikipedia.org/wiki/Cook%27s_distance) 、Hellinger 距离 (http://en.wikipedia.org/wiki/Hellinger_distance)和Bhatta charyya距离 (http://en.wikipedia.org/wiki/Bhattacharyya_distance)等

参考文献
1.郭志刚(1999)郭志刚《社会统计分析方法——SPSS软件应用》,人民大学出版社
2.理查德 A约翰逊,迪安 W威克恩(2008),实用多元统计分析(影印版),清华大学出版社
3.维基有关statistical distance的相关条目

2009年1月15日星期四

chernoff face

今天读《实用多元统计分析》(“applied multivariate statistical analysis”)时,读到有关 chernoff face的介绍,觉得挺有意思。Chernoff face是一种有趣的数据呈现方法。它把多元数据用二维的人脸的方式整体表现出来。各类数据变量经过编码后,转变为脸型,眉毛,眼睛,鼻子,嘴,下巴等面部特征来,数据整体就是一张表情各异的人脸。Chernoff在70年代提出了chernoff face的技术。他认为chernoff face可以用来表示最多为18种变量的数据。Bernhard Flury和Hans Riedwy(1981)认为,保持chernoff face脸对称并没有意义,因此他们主张用另外18个不同的数据点来表示另外半张脸(在我看来这为数据的分半信度提供了很好的方法)。所以chernof face可以表示36个数据点。

Chernoff face是一个需要计算机才能实现的技术,很多软件提供了此类服务,比如有专门制作chernoff face的软件Faces 2.1(下载地址为http://bradandkathy.com/files/Faces2.zip)R中也有相应的代码,具体代码和使用可以看http://rss.acs.unt.edu/Rdoc/library/TeachingDemos/html/faces.html。

利用人对人脸识别的天生能力来鉴别数据的整体特征。这是一个有意思的创意。但是转化后的人脸意味着什么?我们如何把多元数据真正合理地类比为人脸,这不是一个容易回答的问题。最初的chernoff face中,变量编码为哪一个面部特征是随意的,这就使得数据呈现无法利用面部识别的特点(整体性),而且也很容易对数据的真正意义产生误解。Morris, Ebert和Rheingans等人(1999)对chernoff face的实际效果进行了实验研究,发现对被试chernoff face的识别是序列搜索任务,而不是发生在平行搜索的前注意阶段。chernoff faced的眼部表情在识别作用最大。但总体上chernoff face并不见得比其他数据呈现图形效果更好。同时chernoff face虽然有助于知觉,但是不同的面部特征之间可能会出现交互作用,因此对面部特征的知觉空间可能是非线性的。(http://eagereyes.org/VisCrit/ChernoffFaces.html)

最近有人提出了EVA(empathic visualization algorithm)的方法(http://www.cs.ucl.ac.uk/staff/a.loizides/218.pdf),对chernoff face进行了修正和扩展。EVA方法将语义上重要的数据变量编码为情绪上重要的面部特征(如脸的表情,肌肉紧张度等)。EVA强调数据的特征对面部特征起着决定作用,整体值对整体特征,缺失值对缺失特征,两者严格对应,这样的话chernoff face的面部特征就是数据的真实体现。然而要做到这一点,必须对数据进行预先的严格分析,这就要耗费比较大的精力。也许chernoff face只是一个说服别人的工具,而不是一个探索问题的工具。Chernoff face最重要的功能就是分类和校准。我们可以通过chernoff face很轻易地把一个不同于其他的数据样本挑出来。

对面部的精确识别,这是人的一个很奇妙的能力,也是心理学家试图探索而没有完整解决的问题。chernoff face应用的得与失,也许只有随着面部识别的研究进展才能更好的回答了。现在还是欣赏一下我找到的chernoff face吧:)

R中 关于chernoff face 的例子:


真人版chernoff face:
(引自http://alexreisner.com/baseball/stats/chernoff)


参考文献
1.Wiki: chernoff face http://en.wikipedia.org/wiki/Chernoff_face
2.理查德 A约翰逊,迪安 W威克恩(2008),实用多元统计分析(影印版),清华大学出版社
3.Morris CJ, Ebert DS, Rheingans(1999) "An Experimental Analysis of the Pre-Attentiveness of Features in Chernoff Faces", published by the conference "Applied Imagery Pattern Recognition: 3D Visualization for Data Exploration and Decision Making".
4.Social Science Statistics Blog: Chernoff face:
http://www.iq.harvard.edu/blog/sss/archives/2006/11/chernoff_faces_1.shtml