開天眼的一本書《複雜》讀書筆記

關於書與作者

這本書被美國亞馬遜評為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個進行展示。再舉一個例子,傳染病的傳播網絡也是一個無尺度網絡,想要阻斷病毒的傳播,關鍵是破壞網絡中的中心節點,比方說艾滋病可能通過性傳播,但是考察所有的艾滋病患者,發現他們的性伴侶數量並不相同,那些擁有更多性伴侶的患者,就是病毒傳播網絡的中心節點,艾滋病進一步蔓延,首先要採取措施,重點治療他們,為他們普及艾滋病傳播的相關知識,從而有效避免了病毒的進一步擴散,可以各個擊破。


分享到:


相關文章: