开天眼的一本书《复杂》读书笔记

关于书与作者

这本书被美国亚马逊评为2009年十佳科学图书,还获得过2010年英国皇家学会图书奖,美国数学学会指出对于那些第1次领略复杂系统的读者,这本书是能带你轻松入门的上乘之作。

开天眼的一本书《复杂》读书笔记

这本书的作者梅拉妮·水歇尔(Melanie Mitchell),她是美国波特兰大学的计算机科学教授,圣塔菲研究所(Santa Fe Institute)客座教授。他的研究领域包括人工智能机器学习,认知科学复杂系统等领域,他所在的研究所更是全球知名的复杂性科学研究中心,可以说作者对复杂系统有着非常深刻的理解。

开天眼的一本书《复杂》读书笔记

内容介绍

本书作者借助于圣塔菲研究所的工作经历和交叉学科方法,以清晰的思路介绍了复杂系统的研究,横跨生物、技术和社会学等领域,并探寻复杂系统的普遍规律,与此同时,她还探讨了复杂性与进化、人工智能、计算、遗传、信息处理等领域的关系。

中文版共有30万字,分为四个部分:第一部分介绍在怎样的背景下,我们开始了对复杂性问题的探讨;第二部分会讲述在没有生命的计算机科学中,比如说扫地机器人,它们蕴含着怎样的生命科学和进化原理;第三部分介绍在生物和自然界当中,小小的蚂蚁怎么样体现着和计算机程序如出一辙的算法和规律;第4部分,从网络科学的角度出发,讲述该怎么认识我们所身处的复杂网络。

目录

前言

致谢

第一部分 背景和历史

第1章 复杂性是什么

1.1 昆虫群落

1.2 大脑

1.3 免疫系统

1.4 经济

1.5 万维网

1.6 复杂系统的共性

1.7 如何度量复杂性

第2章 动力学、混沌和预测

2.1 动力系统理论的起源

2.2 对预测的重新认识

2.3 线性兔子和非线性兔子

2.4 逻辑斯蒂映射

2.5 混沌的共性

2.6 混沌思想带来的革命

第3章 信息

3.1 信息是什么

3.2 能量、功、熵

3.3 麦克斯韦妖

3.4 统计力学提要

3.5 微观态与宏观态

3.6 香农信息

第4章 计算

4.1 什么是计算?什么可以计算

4.2 希尔伯特问题和哥德尔定理

4.3 图灵机和不可计算性

4.4 定义为图灵机的明确程序

4.5 通用图灵机

4.6 图灵对判定问题的解决

4.7 哥德尔和图灵的命运

第5章 进化

5.1 达尔文之前的进化观念

5.2 达尔文理论的起源

5.3 孟德尔和遗传律

5.4 现代综合

5.5 对现代综合的挑战

第6章 遗传学概要

第7章 度量复杂性

7.1 用大小度量复杂性

7.2 用熵度量复杂性

7.3 用算法信息量度量复杂性

7.4 用逻辑深度度量复杂性

7.5 用热力学深度度量复杂性

7.6 用计算能力度量复杂性

7.7 统计复杂性

7.8 用分形维度量复杂性

7.9 用层次性度量复杂性

第二部分 计算机中和生命和进化

第8章 自我复制的计算机

8.1 生命是什么

8.2 计算机中的自我复制

8.3 自我复制程序的深层意义

8.4 DNA的自我复制

8.5 冯·诺依曼的自制自动机

8.6 冯·诺依曼

第9章 遗传算法

9.1 遗传算法菜谱

9.2 遗传算法的应用

9.3 进化的罗比,易拉罐清扫机器人

9.4 GA演化的策略是如何解决这个问题

9.5 GA是如何演化出好的技巧的

第三部分 大写的计算

第四部分 网络

第五部分 尾声


读书笔记

  • 为什么要研究复杂性

首先我们要提到的背景是还原论的失败。还原论就是把复杂的问题不断的拆分,只要你能找到好的方法把小问题解决掉,再一步一步反推回去,逐渐上升就能解决复杂的问题。从17世纪牛顿笛卡尔的时代一直到20世纪初,科学解释现象用的都是这一套方法:先拆解再还原,所以叫还原论。有一些复杂问题用还原论来处理,还是挺管用的,最典型的例子就是西医,从人体器官组织到细胞再到分子和原子层面去分析病症,释放药物,从而治疗疾病,这其中就有还原论的思想在起的作用。直到今天,西医也是世界上应用最为广泛的医学体系,这是还原论有效的一面。

进入20世纪以后,随着科学的不断发展,人们逐渐发现还原论并不是百试百灵的万能药方,只能解决一些线性的问题,实际上我们会遇到很多非线性的复杂问题,比方说天气预测没法还原,宏观经济的很多问题也没法还原,一群蚂蚁聚到一起为什么会表现出和单个蚂蚁不同的行为?也没法解释,可以说在还原论者的眼中,世界是座高楼大厦,可以拆成一砖一瓦,整体等于所有部分之和,但是反对还原论的世界就像贝多芬的欢乐颂,知道哆瑞咪发嗦啦的人很多,写出欢乐颂的只有他一个,整体大于部分之和,听得懂单个的音符,也未必知道整首乐曲。这种想法变得越来越普遍,人们越来越迫切的意识到,需要新的科学来解释复杂现象背后的规律,于是到了20世纪的下半叶出现了复杂系统科学。

复杂系统分为两类,一类是有生命的复杂系统,比如动物。另一类是没有生命的复杂系统,比如计算机网络、天气、经济等。

  • 复杂系统的特点

在大多数人眼中,世界都是非常遵循牛顿世界观的,认为所有事物都可准确预测。牛顿世界观认为宇宙其实是一种 “钟表宇宙 ” ,可预测、可规划。数学家拉普拉斯认为,其中蕴含了如钟表般精准预测的观念。他曾在 1814 年断言,根据牛顿定律,只要知道宇宙中所有粒子的当前位置和速度,原则上就有可能预测任何时刻的情况。

相反,复杂系统则是一种 “混沌系统”,是“ 非线性系统 ” ,是不可预测。如果系统是混沌的,在测量初始位置时,即使只有极其微小误差,当预测其未来的运动时,也会产生巨大的误差。对于这样的系统,一点点误差,不管多小,也会导致长期预测不精确。这是一个非常深刻的负面结论。它与量子力学一起,摧毁了 19 世纪以来的乐观心态 —— 认为牛顿式的宇宙,会像钟表一样沿着可预测的路径运行。

当然,看似混沌的行为,也有可能来自确定性系统。然而,一些简单的、确定性系统的长期变化,由于对初始条件的敏感依赖性,原则上却无法预测。尽管复杂系统的具体变化,无法预测。可大量复杂系统的普适共性中,却有一些 “ 混沌中的秩序 ” 。例如,通往混沌的倍周期之路,以及费根鲍姆常数。因此,细节上,预测变得不可能,但在更高的层面上,混沌系统却是可以预测的。它要求人们 放弃确定性的直觉期待,用概率论的思维看待世界。

  • 计算机中的生命和进化

计算机科学中蕴含着怎样的生命科学和进化原理?在20世纪40年代,一些科学家就提出计算机和动物有很强的相似性,能不能用计算机来模拟智慧的生命,虽然生命是一个复杂系统,但是我们可以把生命过程抽象化机械化,然后用计算机来实现,用计算机来模拟生命的一些要素,比如新陈代谢,自我复制,进化,适应环境等。

举个例子,清扫机器人罗比。它是一个可简单而详细阐述遗传算法思想的例子。我们看到下图的罗比,身处一个 10 * 10 的二维世界,同时周边随机散布着待清扫的罐子。罗比只能看到五个方向( 东南西北中 ),只能有七个动作( 向东移动、向南移动、向西移动、向北移动、随机移动、不动和清扫罐子 )。移动并清扫一个罐子得 10 分,移动但没扫到罐子扣 1 分,撞墙扣 5 分,每次清扫,罗比会进行 200 个动作,这样总分会是 500 分。我们用传统策略( 有罐子就清扫,然后就往有罐子的方向上移动并清扫,否则就随机移动 )测试 10000 次后,得到的平均分是 346 。

开天眼的一本书《复杂》读书笔记

遗传算法采取的完全是另一套策略:它把每次编码看成一个生命体,由这些完全随机产生的生命体自己去完成动作,不定义策略好坏,彻底随机。

怎么生成初始群体呢?最简单的办法就是随机生产大量个体。在这里,个体就是程序( 字符串 )。比如,初始群体有 200 个随机个体,这是策略之一。然后,计算当前群体中各个个体的适应度,选择一定数量适应度最高的个体作为下一代父母,将选出的父母进行配对,如此,再重复。

运行数代之后,比如得分比较高的 A 和 B ,注意比较高即可,我们就截取 A 的前半部分 A1 与 B 的后半部分 B2 ,得到 A1B2 ,再加上 A2B1 作为下一代,继续跑,同时设置一个很小的突变概率。

如此演化了 1000 代以后,我们得到了下面这张惊人的曲线。1000 代的时候,平均得分是 480 几分( 满分 500 )。我们发现,第 1 代非常差,只有负 80 几分,还不停撞墙。但就是这么一个起点非常差的清扫机器人罗比,通过拿出无数个体去观察,不断迭代之后,它甚至超出预料,产生了自己的策略 —— 不是见地就扫,而是清扫完一片之后,再去清扫下一片。

开天眼的一本书《复杂》读书笔记

遗传算法演化策略过程中,各代群体的最佳适应度(得分表现)

书中得出结论:显然,效率更高的策略,完全是自动进化来的,人类甚至都没能发现。这就是遗传算法。虽然运算量极大,但它自己完成了从简单的规则进化成为非常复杂的策略的过程。得到的结果,比人类精心打磨出来的策略,可能还要好。

  • 生物和自然界背后运行的计算机原理

本书的第三部分主要说明生物和自然界背后运行的原理,怎么会和计算机的程序算法如出一辙。首先我们把视野放到一群不起眼的小动物身上,就是蚂蚁,一个一群可以有几百万只蚂蚁组成,别看一只蚂蚁没什么了不起,这几百万只蚂蚁凑在一起,简直都可以和人类最精锐的部队相媲美,每一只蚂蚁都有着非常细致的分工,彼此之间高度协作有条不紊,有的找吃的,有的挖洞穴,有的去巡逻,有的会倒垃圾,更神奇的是如果几百万个人凑在一起,得有个市长或者将军统率大家,给大家分工,但是这几百万只蚂蚁可是没有指挥的,没有哪只蚂蚁告诉同伴你应该做什么,他们到底是怎么做到这些的呢?答案就是去中心化的群体协作,每一只蚂蚁会根据洞穴的周围环境变化作出响应。和周围少数的蚂蚁相互交流,比方说一只无所事事的蚂蚁,如果他看到很多出去找食物的蚂蚁,扛着吃的返回洞穴,那么他会去帮助找食物的概率就会增加,如果他看到很多同伴在挖洞穴,那他一起帮着挖的概率就会增加,蚂蚁之间通过触须和同伴交流,知道对方在做什么,这样即便没有指挥,没有国王,他们也能随时发动大范围的协作,共同完成各种任务。

科学家受此启发,发明了一个理想化的复杂系统,给它取名叫元胞自动机。举个例子,你可以想象,有很多格子,每个格子根据周围的格子,决定自己亮还是不亮( 见下图 )。具体发光规则,可以自己制定。就这么简单的规则,随着时间序列一点点走下来,完成了极为复杂的演化,走出了一个极其复杂的图形。

开天眼的一本书《复杂》读书笔记

开天眼的一本书《复杂》读书笔记

这就是元胞自动机。由冯 · 诺依曼发明,他甚至证明过,元胞自动机等价于通用图灵机。他在通用计算机上很牛,但具有讽刺意味的是,这种结构被称为非冯·诺依曼结构。同自然界的复杂系统一样,元胞自动机也是由大量简单个体( 元胞 )组成,不存在中央控制。每个个体都只与少量其他个体交互。元胞自动机也能表现出非常复杂的行为,它们的行为,很难甚至不可能通过其更新规则来预测。

这种极为简单的元胞自动机规则,究竟是如何产生出如此复杂的图样呢?沃尔夫勒姆曾说,这是他在科学中所遇到的最让人惊异的事物,并认为,这幅图包含了所有科学长久以来的一个谜团的线索 —— 自然界的复杂性到底从何而来。在他看来,自然界的很多东西,也能支持类似元胞自动机的通用计算,简单到不能再简单的蚂蚁和最终繁衍到全世界的蚁群,以及同样基于简单规则而产生强大计算能力的免疫系统。

  • 复杂网络科学

在这本书的最后一部分,作者为我们引入了一个更加宏观更加完整的角度,但我们在空中俯视整个人类社会的整体结构,这个角度就是复杂网络。

一说起网络,可能首先想到的是互联网,网络一词的含义非常广泛,一个班级是一个网络,一家公司是一个网络,一个国家是一个网络,整个地球乃至整个宇宙都是一个复杂网络。一个具备了网络科学思维的人,不会再把一只蚂蚁和整个蚁群看成是两个东西,而是把每一只蚂蚁都看作网络上的一个节点,他和周围的小伙伴抱团组成一个个小世界,就像一所学校里的每一个班集体,有许多小世界组成,在小世界内部,也就是班级内部,成员之间的关系很紧密,但是出了这个小世界,可能一个人跟外面的人就不太熟了,可是没有关系,只要这个小世界里有一个善于交际的人,他认识一些其他班级的人,这样把这个社交达人看成是桥梁,就搭建起了两个班级之间所有人的关系链,也就是少数几个节点,把两个小世界连了起来。从中我们可以看到,对于整个网络来说,不同节点的地位是不平等的:社交达人他们是网络中的明星,是中心节点,很多关系要靠他们来牵线搭桥。而一些朋友很少的人,他们对于整个关系网络来说就没那么重要,这样有少数的中心节点连接起来的网络,就叫做无尺度网络。无尺度的意思就是少数节点很重要,多数节点没那么重要。一个复杂的网络,如果它是无尺度网络,那么想要了解它的结构,你只要了解其中的中心节点,就能把握住整体的概貌。

了解无尺度网络这样一种结构有什么用呢?我们来举两个现实当中的例子。首先一个例子就是搜索引擎的排序,像百度谷歌这样的网站,如果你搜了一个关键词,比如高考,那么肯定会出来成千上万的搜索结果,搜索引擎怎么知道你最想看的是什么呢?换句话说搜出来这么多结果,谁应该排在前面,你想看的是高考分数线是高考志愿填报还是高考复习攻略呢?每个人的需求都不一样,要猜每一个用户心里想的是什么,这个太困难了,有没有特别高效的排序方法?能大概率的猜中,你想搜什么呢?这就要用到无尺度网络的思想了,谷歌发明的网页排序法考查的是一个网页的重要性,怎么看一个网页的重要性呢?类似于一个评分系统,我们会看有多少其他的网页都把链接指向了他,有越多的网页指向他,那么它的分数就越高,排序越靠前。比方说今年的高考分数线公布了,那么很多培训机构第一时间就会把官方公告网址放在自家网站上,方便家长和考生查分,这个时候你搜索高考二字,很有可能排名第一的,就是这个公布分数线的官方网址,在所有跟高考相关的网站所组成的无尺度网络当中,这个分数线网站就成为了中心节点,被搜索引擎抓取到第1个进行展示。再举一个例子,传染病的传播网络也是一个无尺度网络,想要阻断病毒的传播,关键是破坏网络中的中心节点,比方说艾滋病可能通过性传播,但是考察所有的艾滋病患者,发现他们的性伴侣数量并不相同,那些拥有更多性伴侣的患者,就是病毒传播网络的中心节点,艾滋病进一步蔓延,首先要采取措施,重点治疗他们,为他们普及艾滋病传播的相关知识,从而有效避免了病毒的进一步扩散,可以各个击破。


分享到:


相關文章: