0%
第十五章 人工進化 15.3 并行實施的盲目行為

第十五章 人工進化

15.3 并行實施的盲目行為

和湯姆·雷不同,霍蘭德從性開始入手。霍蘭德的遺傳演算法選取兩組類似於DNA的計算機代碼,這兩組代碼在問題求解上都有不錯的效果,然後以交配互換的方式將它們隨機重組,看看新的代碼會不會表現得更好一點。在設計系統時,和雷一樣,霍蘭德必須克服一個懸而未決的問題:對於任何隨機生成的計算機程序來說,往往都談不上什麼好壞,而是根本就不靠譜。從統計學的意義上說,對可用代碼做隨機變異,結局註定是屢戰屢敗。
天才的馮·諾依曼從根本上改變了這種笨拙的編程系統。電子數值積分計算器的接替者——離散變數自動電子計算機——是第一台可運行存儲程序的通用計算機。馮·諾依曼24歲那年(1927年)發表了他的第一篇關於數學邏輯系統和博弈論的學術論文,自那時起,他就一直在考慮系統邏輯問題。在與離散變數自動電子計算機小組共事時,為了應付計算機編程在求解多問題時所需的複雜運算,他發明了一種方法來控制這些運算。他建議將問題分成離散的邏輯步驟,類似於長除法的求解步驟,並把求解過程的中間值臨時儲存在計算機中。這樣一來,那些中間值就可以被看成是下一部分問題的輸入值。通過這樣一個共同演化的循環(現在稱為子程序)來進行計算,並將程序邏輯儲存在計算機中以使它能與答案交互,馮·諾依曼能將任何一個問題轉化成人腦所能理解的一系列步驟。他還發明了描述這種分步線路的標記法:即現在大家所熟悉的流程圖。馮·諾依曼的串列計算架構——一次執行一條指令——其普適性令人驚嘆,並且非常適合人類編程。1946年馮·諾依曼發表了這個架構的概要,隨後所有的商用計算機都採用了這個架構,無一例外。
生物學界對此缺乏興趣尚情有可原(但也不是什麼光彩的事情);生物學家認為自然界太複雜,難以用當時的計算機來展現其真實全貌。而計算機科學對此興趣寥寥,就莫名其九九藏書妙了。我在為本書做調研時經常感到困惑,像計算進化這樣重要的方法為什麼竟無人理睬呢?現在我相信,這種視而不見的根源,在於進化所固有的看上去雜亂無章的并行性,以及它與當時盛行的計算機信條——馮·諾依曼串列程序——在根本上的抵觸。
從外表看很難判斷約翰·霍蘭德的真實年齡。他曾經擺弄過世界上最早的計算機,現在則任教於密歇根大學。他首次提出了一種數學方法,用以描述進化所具備的優化能力,並且該方法可以輕鬆地在計算機上編程實現。因其數學形式在某種程度上類似於遺傳信息,霍蘭德把它們稱為遺傳演算法
在把計算機變為進化平台的迫切願望下,霍蘭德做了唯一合理的決定:設計一台大規模并行計算機來運行他的實驗。在并行運算中,許多指令同時得到執行,而不是一次只執行一個指令。1959年,他提交了一篇論文,其內容正如其標題所概括,介紹了「能同時執行任意數量子程序的通用計算機」,這個機巧裝置後來被稱為「霍蘭德機」。而等了差不多三十年,一台這樣的計算機才終於問世。
霍蘭德寫道,進化的方法「排除了軟體設計中最大的一個障礙:預先規定問題的所有特徵。」如果你有許多相互矛盾而又彼此關聯的變數,而目標定義又很寬泛,可能有無數個解,那麼進化正是解決之道。
當赫伯特·西蒙和艾倫·紐厄爾這樣的學界泰斗把學習看作高貴和高等的成就時,霍蘭德卻把它看作光鮮外表下的低端適應。霍蘭德認為,如果我們能理解適應性尤其是進化的適應性,就可能理解甚至模仿有意識的學習。儘管其他人有可能意識到進化與學習之間的相似之處,然而在一個快速發展的領域里,進化並不太為人所關注。九-九-藏-書
1953年,霍蘭德在密歇根大學數學圖書館漫無目的地瀏覽時,偶然發現了一卷由R.A.費希爾寫於1929年的《自然選擇的遺傳理論》,頓時大受啟發。達爾https://read.99csw.com文引領了從對生物的個體研究到種群研究的轉向,而把種群思維轉變為定量科學的則是費希爾。費希爾以一個隨時間推移而進化的蝴蝶族群為對象,將其看作是一個將差別信息并行傳遍整個族群的整體系統。他提出了控制信息擴散的方程。通過駕馭自然界最強大的力量——進化,以及人類最強有力的工具——數學,費希爾單槍匹馬開創了一個人類知識的新世界。「我第一次意識到能對進化進行有意義的數學運算。」霍蘭德回憶起那次奇妙邂逅時說。「那個想法對我非常有吸引力。」霍蘭德如此醉心於將進化作為一種數學來處理,以致於(在複印機還沒有問世的當時)拚命想搞到絕版的全文。他懇求圖書館把書賣給他,但沒有成功。霍蘭德吸取了費希爾的見解,又將其升華為自己的構想:一群協處理器,在計算機內存的原野上,如蝴蝶一般翩翩起舞。
在霍蘭德關於遺傳演算法和進化的書《自然與人工系統中的適應》於1975年問世前,只有兩三個學生寫過關於遺傳演算法的論文。直到1992年再版時,這本書只賣出2500本。在1972年至1982年間,整個科學界關於遺傳演算法的文章不超過二十幾篇,更遑論有什麼對計算機進化頂禮膜拜的追隨者了。
在嘗試之初,他面臨著一個兩難處境:進化是并行的處理器,而所有可用的電子計算機卻都是馮·諾依曼式的串列處理器。
1949年,約翰·霍蘭德曾效力于離散變數自動電子計算機的後續項目「旋風計劃」。1950年,他參加了IBM「國防計算機」的邏輯設計團隊,這款機型後來演變成IBM701機,是世界第一部商用計算機。當時的計算機有房間那麼大,耗電量驚人。到了五十年代中期,霍蘭德加入了一個帶有傳奇性的圈子九_九_藏_書,裏面都是些思想深邃之人,他們開始討論人工智慧的可能性。
隱含的并行主義是進化過程確保其不單攀上高峰、而且是最高峰的魔力所在。如何找出全局最優值?通過同時考察整個地貌的每一寸土地。如何在複雜系統中對上千個相互衝突的變數做出最佳平衡?通過同時嘗試上千種組合。如何培養出能在惡劣條件下生存的生物體?通過同時投入一千個略有差異的個體。
霍蘭德認為,人工學習其本質上是適應性的一個特例。他相當確定能在計算機上實現適應性。在領悟了費希爾關於進化是一種概率的洞見后,霍蘭德著手嘗試把進化編為代碼輸入機器。
在霍蘭德的演算法中,那些「處在最高處」的代碼們彼此交配。換句話說,「地勢高」的區域,交配率就高。這便將系統的注意力集中到最有前途的區域,同時,對那些沒有希望的地區,系統則剝奪了它們所佔用的計算周期。這樣,并行主義既做到了「天網恢恢,疏而不漏」,又減少了尋找頂峰所需要的代碼數量。
早在二十世紀六十年代初理論生物學家就發現,與突變相比,交配所產生的實用個體比例更高,因而以其為基礎的計算機進化也更穩定和有生命力。但是,單靠有性|交配其結果很受局限。二十世紀六十年代中期,霍蘭德發明了遺傳演算法;遺傳演算法中起主要作用的是交配,但突變也是幕後策劃者之一。通過將交配與突變結合在一起,系統變得靈活且寬泛。
約翰·霍蘭德在二十世紀六十年代研究適應機制時發明了遺傳演算法。而直到二十世紀八十年代末,他的成果都沒有引起任何關注,除了十二個異想天開的計算機研究生。其他幾個研究者,如工程師勞倫斯·福格爾和漢斯·布雷默曼,在二十世紀六十年代獨立開展了種群的機械式進化研究;現在密歇根州韋恩州立大學工作的計算機科學家邁克爾·康拉德,在二十世紀七十年代也從對適應的https://read•99csw.com研究轉向了為種群進化建立計算機模型;他們都受到了同樣的冷落。總之,這項工作在計算機科學領域里可以說是默默無聞,而生物學界對它更是一無所知。
和其他具有系統觀念的人一樣,霍蘭德認為大自然的工作和計算機的任務是相似的。「生物體是高明的問題解決者。」霍蘭德在他的工作總結中寫道,「它們所展示出來的多才多藝使最好的計算機程序都為之汗顏。」這個論斷尤其令計算機科學家們感到難堪。他們可能經年累月地在某個演算法上絞盡腦汁,而生物體卻通過無目標的進化和自然選擇獲得了它們的能力。
正如進化需要大量的個體才能發揮效用一樣,遺傳演算法也要炮製出數量龐大的代碼群,並且這些代碼們同時進行處理數據和發生變異。遺傳演算法實際上是一大群略有差別的策略,試圖在崎嶇的地形上同時攀爬不同的峰頂。由於大量代碼并行作業,因而能同時訪問該地形的多個區域,確保它不會錯過那真正的高峰。
在此期間,霍蘭德和其他計算進化論者不得不依賴串列計算機來培育進化。他們使出渾身解數在快速串列處理器上編程模擬一個緩慢的并行過程。模擬工作卓有成效,足以揭示出真正并行過程的威力。
并行是繞過隨機變異所固有的愚蠢和盲目的途徑之一。這是生命的極大諷喻:一個接一個地重複盲目行為只能導致更深層的荒謬,而由一群個體并行執行的盲目行為,在條件適合時,卻能導出所有我們覺得有趣的東西。
人類的第一台電子計算機叫做電子數值積分計算器,是1945年為解決美軍的彈道計算問題而研發的。電子數值積分計算器是一個由1.8萬支電子管、7萬個電阻和1萬個電容構成的龐然大物。它需要6000個手動開關來設置指令,然後運行程序;各個數值的計算實際上是以并行方式同時進行的。這對編程來說是個負擔。