主頁 類別 科普學習 複雜

第25章 建設磚塊

複雜 米歇尔·沃尔德罗普 12143 2018-03-20
建設磚塊 荷蘭德說,現在回想起來,希伯的理論和他自己基於這個理論之上的神經網絡模擬對他產生的最大影響,是形成了他後來三十年的思想,而不是在某一單個方面使他受益。但當時,最直接的結果就是導致他離開了IBM公司。 問題在於,計算機模擬有一些確鑿無疑的局限性,特別是701計算機。真正神經系統的細胞集合有一萬個神經元分佈在大腦的大部分區域,而每個神經元又有一萬個突觸。但荷蘭德和他的伙伴們在701計算機上運行的最大規模的模擬神經網絡也只能有一千個神經元,每個神經元只有十六個結合點,還是他們竭盡他們能夠加速運轉的所有編程技巧才達到這個速度的。荷蘭德說:“越往下做我越覺得我們真正能夠進行試驗的與我所想看到的結果之間的距離實在太大了。”

唯一的選擇就是用數學方法來分析神經網絡。 “但這樣做實在太困難了。”他的每項嘗試都撞上了南牆。靠他在麻省理工學院學到的數學功底來全面展開希伯式的網絡實在太不夠了。而他還比大多數物理系畢業生多學了不少數學課程呢。 “當時對我來說,彷彿要想更多地了解神經網絡,關鍵在於更好地掌握數學工具。”他說。所以在1952年秋季,他帶著IBM公司的祝福和繼續為IBM公司的宏偉藍圖做一百個小時顧問工作的允諾,來到安·阿泊,開始在密西根大學攻讀數學博士學位。 他又一次成為幸運者。當然,不管在任何情況下密西根大學都不是個糟糕的選擇。不僅是因為當時那裡的數學係是全美國最好的數學系之一,而且還因為荷蘭德還有一個主要的考慮:那兒有一個足球隊。 “在周末與十強進行足球比賽,有十萬觀眾湧入城內來觀戰,對此我至今還覺得回味無窮。”

但對荷蘭德來說,真正的好運是他在密西根大學碰到了阿瑟·勃克斯(Arthur Burks)這位非同尋常的哲學家。勃克斯是查爾斯·皮爾斯(Charles Peirce)實用主義哲學的專家,於1941年獲得博士學位。由於當時在他的學科領域根本無法覓到一個教職,所以他在畢業後的第二年在賓州大學的摩爾學院又讀了10週的課程,變成了一個戰時工程師。後來證明了這是一個很好的選擇。 1943年,他畢業不久就受僱於摩爾學院,從事屬於最高機密的第一台電子計算機ENIAC的研究。在那裡他遇到了傳說中的人物、匈牙利數學家約翰·馮·諾意曼。當時馮諾曼作為顧問,經常從普林斯頓的高級研究所來這兒為這個項目工作。勃克斯在馮諾曼的指導下還參與了ENIAC的下一代計算機EDVAC的研製工作。這是第一台能運用程序這種電子化形式儲存信息的計算機。確實,馮·諾意曼、勃克斯和數學家荷曼·哥斯廷(Herman Goldstine)1946年發表的論文,《電子計算儀器邏輯設計初探》,一直到今天仍然被認為是現代計算機科學的基石。在這篇論文中,這三位撰寫人用精確的邏輯形式規定了編程的概念,同時還描述了一個普通功能的計算機如何通過從計算機記憶系統提取指示,然後再把結果存儲到記憶系統這樣一種不斷循環的方式來執行程序。這個“馮·諾意曼式建築設計”仍然是今天幾乎所有計算機的基礎。

當荷蘭德五十年代中期在密西根大學遇見勃克斯的時候,勃克斯是一個身材勻稱、舉止優雅的人,酷似荷蘭德想像中的傳教士的形象(迄今為止,勃克斯從來沒有不打領帶、不著外衣地出現在以不在乎穿著著稱的密西根大學的校園裡)。但勃克斯同時也是一個熱情友善的良師益友,他很快就把荷蘭德帶入了他的計算機邏輯設計小組,這是一個理論學家的圈子,這個圈子的人致力於計算機語言研究和開關網絡定理論證,總之是力圖從最嚴格、最根本的層面上掌握計算機這個新機器。 勃克斯還邀請荷蘭德加入了一個新的博士學位項目。這是一個致力於在盡可能廣泛的領域裡探索計算機和信息處理意義的項目,勃克斯本人正在幫助組織這個項目。這個很快就以通訊科學變得眾所周知的項目到了1967年終於發展成了一個完整的計算機系,叫做計算機與通訊科學。但在當時,勃克斯感到他只是在為1954年死於癌症的馮·諾意曼填補空白。 “馮·諾意曼希望把計算機應用在兩個方面。”他說。一方面是一般性功能的計算機設計,這種功能的計算機他們已經發明了。 “另一方面是基於自動機理論。自然和人工智能知識的計算機。”勃克斯同時還感到,研製這樣一種程序會符合這些學生的需要,而荷蘭德是其中傑出的一位,他的頭腦拒絕隨波逐流。

荷蘭德喜歡上了他所聽到的消息。 “這就是說要開設生物學、語言學、心理學這類非常艱難的課程和信息理論這樣的常規性課程。這些課程是由來自那一個學科領域的教授來上,這樣學生們就能將所學知識和他們的計算機模型聯繫起來。通過學習這些課程,學生們就會非常深刻地理解這個領域的根本——其難點和問題,為什麼這些問題如此難以解決,計算機在解決這些問題上能起到什麼作用,等等。他們就不會對事物僅僅只是流於表面的了解。” 荷蘭德喜歡這個主意更因為他已經對數學完全失去了興趣。密西根大學數學係就像二次世界大戰之後的所有數學組織一樣,被法國波巴科學派(Bourbaki school)所控制,這個學派鼓吹數學非人的純潔性和抽象性。按照波巴科的標準,就連闡述你的原理後面的概念、用實在的圖式解釋你的定理,也會被認為是粗俗不堪。荷蘭德說:“這一派的理念就是要讓人們知道數學是可以不用任何解釋的。”但這完全不是荷蘭德來這兒攻讀博士學位的目的。他希望用數學來理解這個世界。

所以當勃克斯建議荷蘭德轉入通訊科學研究項目時,他毫不猶豫地同意了。他放棄了他幾近完成的數學博士論文,再次從頭開始。 “這意味著,我可以在一個與我希望從事的研究非常接近的領域做我的博士論文。”他說。這個領域,大致上說,就是神經網絡(具有諷刺意味的是,他最終決定做的博士論文題目,“邏輯網中的循環”,是對網絡開關內部情形的分析。在這篇論文中,他證明的許多定理,與四年以後柏克萊大學一位名叫斯圖亞特·考夫曼的年輕的醫學院學生獨自努力證明的定理如出一轍)。荷蘭德於1959年獲得博士學位,這是通訊科學項目授予的第一個博士學位。 所有這些都沒有改變荷蘭德對更為廣泛的問題的關注,正是這種關注把荷蘭德帶到了密西根大學。恰好相反,勃克斯的通訊科學項目正好提供了一個能使這種問題滋生的環境。什麼是湧現?什麼是思考?思想是如何進行的?什麼是思想的法則?一個系統的適應究竟意味著什麼?荷蘭德記下了對這些問題的一些思考,然後把它們系統地歸類為Glasperlenspiel 1號、Glasperlenspiel 2號、等等。

Glas 什麼? “Das Glasperlenspiel”是赫爾曼·黑塞(Herman Hesse)的最後一本小說,出版於1943年,當時作者正流亡瑞士。一天荷蘭德在同屋從圖書館借來的一堆書中發現了這本書。在德語中,書名的書面意義是“玻璃珠遊戲”,但在英文譯文中,這本書通常被稱為“遊戲高手”,在意大利譯文中也是相同的意思。故事以很久以後的未來為背景,小說描述了一個起初是音樂家玩的遊戲。這個遊戲是先在玻璃珠算盤上設定一個主旋律,然後通過來回撥弄玻璃珠,把這個主旋律的所有多聲部和變奏編在一起。隨著時間的延續,這個遊戲從最初簡單的旋律演變成一種極其複雜的樂器,被一群權力強大的牧師知識分子所控制。 “最妙的是你能夠獲得主旋律的組合。”荷蘭德說。 “有一點兒星相學、有一點兒中國歷史、還有一點兒數學。然後力圖把它們發展成一種音樂主旋律。”

他說,當然,黑塞並沒有十分清晰地說明這些究竟是怎麼弄出來的。但荷蘭德並不介意這一點。玻璃珠遊戲比他所看見和聽到過的任何事物都能抓住他的心,就像國際象棋、科學、計算機和大腦一樣令他著迷。形像地說,這個遊戲正是他一生的追求:“我就是希望能夠抓住世界萬物的主旋律,然後把它們揉合在一起,看它們會發生什麼情況。”他說。 存儲在Glasperlenspiel檔案庫中的思想的一個特別豐富的源泉是另一本書。有一天荷蘭德在數學系圖書館創覽群書時,發現了費舍爾(R.A.Fisher)1929年出版的里程碑式的巨著《自然選擇之基因理論》。 起初荷蘭德根為之著迷。 “從中學時代起我就一直很喜歡閱讀基因和進化方面的書,”他說。每一代人都會重組父母遺傳的基因,他對這個思想非常讚賞。你可以計算像藍眼睛、黑頭髮這樣的特性出現在下一代身上有多麼經常。 “我總是想,哇,這個計算真是乾淨利落。但讀了費舍爾的書後我第一次認識到,在這個領域裡,除了用平常的代數學以外還可以嘗試別的東西。”確實,費舍爾就用了許多更加複雜的概念,從微分、積分到概率理論。他的書用真正嚴謹細緻的數學方法對自然選擇如何改變了基因分佈做了分析。對生物學家來說,這樣的書是第一本。這同時也給當代“新達爾文”的進化理論奠定了基石。二十五年之後,這一理論仍然代表了進化動力學理論的最高標準。

所以荷蘭德一口氣讀完了這本書。 “我可以把我在數學課上學的積分、微分方程和其他方法都用於動力基因學的這場革命了。這真是一本令人大開眼界的書。我一讀到這本書就知道,我不會放過這書裡的思想。我知道我必須用這本書裡的思想做點什麼,我腦子裡一直轉著這些想法,不斷地做著筆記。” 但儘管荷蘭德非常崇拜費舍爾的數學,但費舍爾運用數學的某種方法卻使他感到困惑。而且他越是深思,越是感到困惑。 首先,費舍爾對自然選擇的整個分析著重於一次一個基因的進化,彷彿每一個單個基因對生物體生存的作用是可以完全脫離其他基因而獨立存在的。大致地說,費舍爾假設基因的行動完全是線性的。 “我知道這肯定是錯的。”荷蘭德說。對綠眼睛來說,沒有幾十個、或幾百個基因形成綠眼睛的特別結構,單個的綠眼睛基因是微不足道的。荷蘭德認識到,每一個基因必須作為一部分才能發揮作用。任何理論如果不把這個事實包括進去,就缺少了進化這個故事中最關鍵的一部分。對這個問題的思考,正是希伯在精神領域研究中一直強調的。從思想的最基本的單位這一點來說,希伯的細胞集合有點兒像基因。一種聲調、一束光線、一簇肌肉的抽動,所有這些能具有意義的唯一方式是把彼此組合成更大的概念和更複雜的行為。

另外,費舍爾一直在談論進化能達到穩定的均衡,這也使荷蘭德感到不解。在這種穩定的均衡狀態中,物種的大小達到了理想化、牙齒的銳利程度達到了理想化、生存和繁衍能力也達到了理想化。費舍爾的觀點和經濟學家的經濟均衡的定義基本上是一致的:他說,當一個物種的狀況達到了最佳程度之後,任何變化都會降低這種最佳化程度。所以自然選擇就無法對變化形成進一步的壓力。 “費舍爾理論中的大部分內容在強調這樣一種觀點:'好吧,由於下述進程,這個系統會走入哈迪-溫伯格(Hardy-Weinberg)的均衡狀態……'但這在我聽起來不像是進化論。” 他又重讀了達爾文和赫伯。不,費舍爾關於均衡的概念與進化論毫不相干。費舍爾似乎在談論某種原始而永恆的完美境界的實現。 “但在達爾文那裡,事物隨著時間的推移越變越寬廣,越變越多樣化。但費舍爾的數學並不觸及這一點。而赫伯說的是學習,不是進化,其道理卻是同樣的:人的頭腦隨著不斷從外界吸取經驗,越變越豐富、越變越靈巧、越變越令人驚異。”

對荷蘭德來說,進化和學習似乎與遊戲非常相似。他認為,在這兩種情況中,都有一個作用者在與自己的環境對抗,為自己的繼續發展爭取足夠的條件。在進化中,所獲報酬就是生存,一個讓作用者將基因遺傳給下一代的機會。在學習中,所獲是某種獎賞,比如食物、愉悅的感覺或情感的滿足。在這兩種情況下,所獲(或所缺)都是給予作用者的一種反饋,以利於它們改進自我表現:如果作用者想獲得使自己“適應”的能力,就不得不採取能夠獲得豐厚報酬的策略,放棄其它策略。 荷蘭德不禁想起塞繆爾的跳棋下法程序,這個程序正是利用了這種反饋:它可以隨著不斷吸取經驗和更多地了解對方而經常改變戰術。但現在荷蘭德開始認識到塞繆爾將注意力放在遊戲上是多麼具有先見之明了。遊戲的這一相似性似乎可以解釋任何適應性系統。在經濟中,所獲是金錢,在政治中,所獲是選票,等等。在某種程度上,所有這些適應性系統在根本上都是一樣的,這反過來又意味著,所有這些系統從根本上就像下跳棋或像棋一樣:可能性的空間大得難以想像。一個作用者不斷改進下棋技術,這便是適應。但要想尋找到這場遊戲的最佳化和穩定的均衡點,就好比下國際象棋一樣,你根本就無法窮盡其無限的可能性。 毫不奇怪,對荷蘭德來說,“均衡”並不是進化,甚至不像是他們三個十四歲的男孩一起在地下室玩的那種戰爭遊戲。均衡意味著結束。但對荷蘭德來說,進化的實質是旅程,是無窮無盡地展現出來的驚異。 “我越來越清楚地認識到,我所想了解、所好奇、所為之發現而歡欣鼓舞的是什麼。均衡並非其中的一部分。” 荷蘭德在撰寫博士論文的時候,暫時把這些想法擱置一旁。但1959年他剛剛畢業——那時勃克斯已經邀請他繼續留在計算機邏輯小組做博士後——就決定將自己的這些想法變為完整而嚴謹的適應性理論。他說:“我相信如果我將基因的適應性當作最長久的適應性來觀察,把神經系統當作最短期的適應性來觀察,那麼,這兩者之間的總體性理論框架將是相同的。”為了將他腦子裡的這些初步想法陳述清楚,他甚至就這個研究課題寫了一個宣言,這份他於1961年7月發表的長達四十八頁的技術報告的題目是:《適應性系統邏輯理論之非正式描述》。 他在計算機邏輯小組發現了許多緊皺的眉頭。但這並不是一種敵意,而是有些人認為他的這個一般性的適應性理論聽起來太稀奇古怪了。難道荷蘭德不能把時間花在更富有成果的研究上? “但問題在於,這是一個古怪的想法嗎?”荷蘭德回憶此事時愉快地承認,如果他在他同事的位置上,他也會對此持懷疑態度。 “我所從事的研究不屬於既完善又為人熟知的學科範疇。它既不能算硬件,也不能算軟件。而那時它當然也不屬於人工智能。所以你無法用任何常規標準來對它做出判斷。” 勃克斯卻並不需要他來說服。 “我支持荷蘭德,”勃克斯說。 “有一些邏輯學家們認為荷蘭德的研究並不屬於'計算機邏輯'範疇之內。他們的思想更為傳統,但我告訴他們,這正是我們需要做的,為這個項目爭取經費的重要性和其他項目等同。”結果勃克斯贏了:作為這個項目的創始人和帶頭人,他的話有相當大的分量。漸漸地,對荷蘭德研究的懷疑消失了。 1964年,在勃克斯的大力推薦下,荷蘭德獲得了終身教職。他說:“那些年,在很大程度上我全靠勃克斯為我做擋箭牌。” 確實,勃克斯的支持所給予荷蘭德的安全感使他能夠力爭獲取適應性理論的研究成果。到1962年,他放下了他的所有其它研究項目,基本上全力投入了對適應性理論的研究。特別是他下決心解決基於多基因的選擇的難題——這不僅僅是因為費舍爾在書中對單體基因的假設最使他感到困惑,同時也是因為對多基因的研究也是擺脫均衡的困惑的關鍵。 荷蘭德說,公平地評價費舍爾,均衡的概念就每個單獨的基因而言不無意義。比如,假設某個物種有一千個基因,大致上與海藻一樣複雜。為了使事情簡單明了,再假定每個基因只含有兩種信息,綠色的或棕色的,葉片皺摺的或葉片平滑的,等等。自然選擇要經過多少次嘗試才能發現使海藻發展到最強壯的那組基因搭配呢? 荷蘭德說,如果假設所有基因都是相互獨立的,那麼,你只需要兩次選擇就能確定哪種基因信息更好。這就需要對一千個基因各做兩次嘗試,總共兩千次,這不算太多。事實上,相對而言這個數目實在是太小了,如果是這樣的話,海藻很快就會達到最強健的狀況,而物種確實就能達到進化的均衡點。 但當我們假設基因並不是相互獨立的,讓我們來看看含有一千個基因的海藻會發生什麼樣的情形。如果是為達到最強壯狀態,自然選擇就會檢驗每一個可能的基因組合。因為每個基因組合都有其不同的強健性。當你計算基因組合的總數,就不是二乘以一千,而是二自乘一千次了,即二的一千次方,或大約為十的三百次方——這個數目大得甚至使跳棋的步數都顯得微不足道。荷蘭德說:“進化甚至根本就不可能做這麼多次數的嘗試。而且無論我們把計算機發展到多先進也做不到。”確實,就算在可觀察到的宇宙中所有的基本粒子都變成超級計算機,從大爆炸就開始不停地運算,也遠不能完成運算。另外必須記住,這還只是就海藻而言。人類和其它哺乳類動物含有的基因數大概是海藻含有基因數的一百倍,而且大多數基因都含有不止兩條信息。 所以再次出現了這種情形:這是一個向著無窮無盡的可能性的空間探索的系統,不存在哪怕為一個基因找到“最佳”點的現實希望。進化所能達到的是不斷改進,而絕非盡善盡美。但這當然正是他1962年就已經決意要找到回答的問題。但如何尋找答案呢?了解多種基因進化的問題顯然不只是用多變量方程式來替代費舍爾的單一變量方程式這麼簡單的事。荷蘭德想知道的是,進化是怎樣於無窮無盡的可能性的探索中找到有用的基因組合,而不需要搜遍整個領域。 當時,相似的“可能性爆炸”概念已經為主流人工智能研究人員所熟知。比如,在匹茲堡卡內基理工學院(即現在的卡內基麥倫大學),愛倫·妞威爾(Allem Newell)和赫伯特·西蒙(Herbert Simon)自五十年代中期開始就在進行一項里程碑式的研究,即,研究人類如何解決問題。紐威爾和西蒙讓被試驗對象猜各種謎語和玩各種遊戲,包括下國際象棋,並讓被實驗對象陳述在這個過程中自己的思想。他們通過這種方法發現,人類解決問題總是會涉及腦力對廣闊的可能性“問題空間”的逐步搜索,而每一步都以實際經驗為導向:“如果情況是這樣的話,那麼就該採取那個步驟。”紐威爾和西蒙通過將他們的理論編入“一般問題解決法”(General Problem Solver)程序和將這個程序應用於解那些謎語和遊戲,表明“問題-空間”角度能夠出色地反映人類的推理風格。確實,他們的經驗性檢索概念早已成為人工智能領域的金科玉律。一般問題解決法至今仍然是新興的人工智能發展史上最有影響的程序之一。 但荷蘭德仍然對此半信半疑。這並不是因為他認為紐威爾和西蒙對問題空間和經驗導向的概念有什麼錯誤。事實上,他取得博士學位不久就特意邀請他們兩位來密西根大學講授人工智能的主課。從此他和紐威爾成了朋友和知識上的伙伴。但紐威爾-西蒙的理論不能在生物進化研究上有助於他。進化論的整個慨念中沒有任何經驗可循,也沒有任何導向。一代代的物種是通過突變和兩性基因的隨機重組,簡言之,是通過嘗試和錯誤,探索於可能性的空間。而且,這一代代物種並不採取逐步逐步的方式搜索於基因組合的可能性之中,而是採取齊頭並進的搜索方式:物群中的每一個成員的基因組合都略有不同,所搜索的空間也略有不同。但儘管有這些不同之處,儘管進化的時間更為長久,但它所產生的創意和奇蹟恰如腦力活動。對荷蘭德本說,這意味著,適應性的真正的統一規律隱藏在更深的層次之中。但到底隱藏在哪兒呢? 起初,只有直覺告訴他,某些基因組之間能夠很好地相互作用,形成統一而自我強化的整體。比如像能夠告訴細胞如何從葡萄糖分子裡吸取能量的基因群,或能夠控制細胞分裂的基因群,或能夠指導細胞如何與其它細胞組合成某種生理組織的基因群。荷蘭德也能從希伯的大腦理論中看到某種相似之處。在這個理論中,一組相互共鳴的細胞集合能夠形成一個統一的概念,比如“汽車”,或者一個像舉起胳臂這樣協調的動作。 但是,荷蘭德越是思考統一而自我加強的基因群這個概念,整樁事就越顯得微妙。首先,到處都有類似的例子,比如計算機程序中的子程序、官僚體系中的部門。以及國際象棋棋局中的布棋法。而且,這樣的例子存在於組織的每一層。如果一個基因群有足夠的統一性和穩定性,那麼這個基因群通常就可以作為更大的基因群的建設磚塊。細胞的結合形成生理組織、生理組織的結合形成器官、器官的組合形成生物體、生物體的組合形成生態系統,等等。荷蘭德想,確實,這就是“湧現”的全部意義:一個層次上的建設磚塊組合成更高層次上的建設磚塊。這似乎是這個世界最根本的規律之一。這一規律當然也表現在所有復雜的適應性系統之中。 但為什麼會是這樣的呢?事物的這個等級分明的。建設磚塊結構的特性就像空氣一樣司空見慣。它因無所不在而被我們視而不見。但當你認真思考這個問題時,就會發現它急需解釋:為什麼這個世界會形成這種結構呢? 其實對此已有許多解釋。計算機程序員們會把問題分解成許多於程序,因為較小、較簡單的問題比較大、較繁雜的問題易於解開。這就是分而治之的古老法則。鯨魚和紅杉這樣的龐然大物是由無數個微小的細胞組成的,因為總是先要有細胞,才可能形成龐然大物。當五億七千萬年前巨大的動植物開始出現在地球上時,對自然選擇法來說,較之於從一片混亂無序中重新開始形成大團新的原生質,顯然不如將現存的單一細胞形成生物體要容易得多。通用汽車公司將自己分為無數個部門和子部門,是因為通用汽車公司的主管不希望公司的五十萬名僱員都直接來向他報告。他一天根本沒這麼多的時間。事實上,在四十年代和五十年代,西蒙在他的商業組織的研究中就已經指出過,設計優良的等級制度是在避免讓任何一個人疲於應付會議和備忘錄的前提下實施實際工作的最佳方式。 但當荷蘭德思考這個問題時,他越來越覺得,更為重要的理由還基於更深的層次,因為這個等級分明的建設磚塊結構能夠徹底改變系統的學習、進化和適應能力。想一下我們的認知建設磚塊,這包含了像紅色、汽車和道路這類的概念。一旦這組類別的建設磚塊隨著經驗的積累而被扭轉、精煉和調整,那麼,這組概念就會被整個改編和重組成許多新的慨念,比如像“路邊的一輛紅色Saab轎車”。當然,較之完全從頭開始,這是一個有效得多的創新的途徑,而這反過來又在總體上意味著適應性的一個全新的機制。適應性系統能夠重組它的建設磚塊,從而產生巨大的飛躍,而不需要總是要逐步逐步地在可能性的無限空間中緩慢進展。 在這個方面,荷蘭德最喜歡舉的例子是計算機出現之前警方根據目擊者的描述來繪出嫌疑犯的畫像的辦法,即,把嫌疑犯的面孔分為十個基本區域:髮際線、前額、眼睛、鼻子,一直到下顎。然後繪像師在許多紙片上對各個部位做不同形狀的繪畫,比如說,十種鼻子、十種髮際線、等等。這加起來就是一百張紙的給像。有了這些之後,繪像師就可以通過目擊者的描述,把合適的部分湊在一起,很快得出嫌疑犯的肖像圖。當然,繪像師無法用這種辦法畫出所有可能想像出來的面孔。但他或她總是能夠得到近似的肖像:繪像師通過重組這一百張紙片可以得出一百億張不同的面孔,足夠從廣大的可能性空間中找到相似的相貌。 “所以如果我能夠發現形成建設磚塊的過程,這些組合就能為我所用,而不會成為我的障礙。我就能夠用相對少的建設磚塊描述出許許多多的複雜事物。” 他認識到,這就是解開多基因之謎的關鍵之所在。 “進化過程中的放棄和嘗試並不只是為形成一個優良的動物,而是在於發現優良的建設磚塊,並將這些建設磚塊結合在一起,從而產生許多優良的動物。”他現在面臨的挑戰是要精確而嚴謹地表明這一切是如何發生的。他決定,第一步是要做一個計算機模擬,一個既能夠陳述過程、又能夠幫助他澄清腦子裡的問題的“基因算法”。 密西根大學計算機科學圈子裡的人都看慣了荷蘭德拿著折扇狀的計算機打印結果跑過來。 “看看這個!”他會急煎煎地指著一張整頁都是密密麻麻的十六進位的數據符號的紙說。 “哦,CCB1095E。太棒了,約翰。” “不!不!你知道這是什麼意思嗎!?” 事實上,在六十年代初,有相當多的人並不知道,也想不出那些數據表示什麼意思。對荷蘭德持懷疑態度的同事們對於荷蘭德所從事的研究的懷疑,至少在一點是對的:荷蘭德最終推出的基因算法是個稀奇古怪的東西。除非從最為書面的意義而論。否則這根本不能算是計算機程序。就它的內部機製而言,它更像是一個模擬生態系統,其中所有的程序都可以相互競爭、相互交配、一代接一代地繁衍,一直朝著程序員設置的任何問題的解答方向不斷演化。 說得輕一點,這不是程序的通常編寫法。所以荷蘭德發現,要向同事們解釋為什麼這具有意義,最好用非常實際的語言來告訴他們他正在做什麼。他通常會告訴他們,我們把計算機編程當作一個由FORTRAN或LISP這樣的特殊編程語言寫成的一系列指令。確實,編程的全部技藝就在於確保准確無誤地按照正確的指示和順序來編寫程序。這顯然是編程的最有效的方法——如果你早就知道你想讓計算機幹什麼的話。但假設你並不知道你想讓計算機幹什麼,比如假設你想找到某種複雜的數學功能的最大價值。功能可以表示利潤、或工廠的產量。或任何其它東西。這個世界到處都有希望價值被最大化的東西。確實,計算機程序員已經為此設計出先進的計算機算法來了。但即使是其中最優秀的算法都無法保證在任何情況下都能提供正確的最大化價值。在某種層次上,這些算法總是不得不依賴傳統的嘗試/錯誤法,也就是猜測法。 荷蘭德對他的同事們說,如果情況真是這樣的話,如果你反正總是要依賴嘗試/錯誤法的話,也許就值得試試利用大自然的嘗試/錯誤法則,也就是自然選擇法。與其編一個程序來執行你自己都不知道該如何定義的任務,還不如讓它們通過進化自然產生。 基因算法便是這樣的一個方法。荷蘭德說,如果想看它怎樣發生作用,那就忘記FORTRAN編碼,深入到計算機的內核裡去。計算機程序在計算機上是以一列1或0的二進制來表示的:11010011110001100100010100111011……在這種形式下,計算機程序看上去像是一大片染色體。每一個二進制數字都是一個單獨的“基因”。一旦你用生物學眼光來思考二進制編碼,你就可以用類似的生物方法使之進化。 荷蘭德說,首先,讓計算機產生一群數量約為100個數字的染色體,其中包含大量的隨機變量。假設每一個染色體都相對應一群斑馬中的一匹(這是為使事情簡化之故。因為荷蘭德試圖把握進化的最基本的本質,所以在基因算法中捨棄了諸如馬蹄、胃和腦這樣的細節,而把個體當作單個的純DNA來模擬。而且,為了使之更便於操作,他把二進制的染色體限制在長度不超過幾十個二進制數字之內,所以這些染色體實際上並不是完整的程序,而只是程序的片斷。事實上,在他最初的實驗中,這些染色體只代表單一的變量。但這並不能改編這個算法的基本原則)。 第二,把現有的問題當作每一單個的染色體,把問題當作計算機程序來運作,用這種方法來進行測試。然後,評價它的運行好壞,給它打個分。從生物學的角度來看,這個分數將評判出個體的“強健”程度,也就是它繁殖成功的概率。個體的強健程度越高,被基因算法選擇出來,得以將自己的基因遺傳給下一代的機會就越大。 第三,將你所選擇的個體當作具有足夠繁殖能力的染色體,使它們相互交配,從而繁衍新的一代。讓剩餘的染色體自行消亡。當然,在實際操作時,基因算法捨棄了兩性的差異、求偶禮儀、性愛動作、精子和卵子的結合,以及兩性繁衍的所有復雜細節,而只是通過赤裸裸的基因材料的交換繁衍下一代。如果用圖解來表示的話,基因算法選擇了有ABCDEFG的染色體和有abcdefg染色體的一對個體,隨意在中間切斷它們的染色體序列,然後將雙方染色體相互交換,形成對它們的一對後代的染色體: ABCDefg和abCdEFG(真正的染色體經常會發生這種交換,或交叉,荷蘭德從中得到啟發)。 最後,通過這種基因交換繁衍出來的下一代之間又會繼續相互競爭,同時在新一代的循環中,與它們的父母也發生競爭。這無論是對基因算法來說,還是對達爾文的自然選擇法來說,都是最關鍵的一環。沒有兩性之間的基因交換,新的一代就會完全像他們的父母一樣,物種的發展就會進入停滯狀態。低劣的物種會自然消亡,但優良的物種也決不會發生任何改良。但有了兩性之間的基因交換,新一代就會相似於它們的父母,但又有所不同,有時會比它們的父母強些。當發生這種情形的時候,被改良的物種就會獲得普及的大好機會,從而顯著地改良自己所屬的整個物種群。自然選擇法提供了一種向上進取的機制。 當然,在真正的生物體中,相當大一部分的變量是由於突變、遺傳密碼的排版錯誤所致。事實上,基因算法確實也允許通過故意將1改變為0,或把0改為1而產生一些偶然的突變。但對荷蘭德來說,基因算法的核心是兩性交換。不僅僅是因為兩性的基因交換給物種提供了變量,而且這同時也是一個極好的機制,通過這個機制可以尋索到能夠相互密切配合,產生高於一般水平的強健的基因群,也就是建設磚塊。 比如,你將基因算法用於解其中一個最佳化的問題。這是個為某種複雜功能尋找最大價值的方式的問題。假設當基因算法的內在數群中的數字染色體達到二進制基因的某種模型時,比如像11####11#10###10,或##1001###11101##,獲得了很高的分數(荷蘭德用#來表示“沒有關係”。數字處於這個位置可以是0,也可以是1)。他說,這種模型就具有建設磚塊的功能。也許它們湊巧表示的是變量的範圍,在這些範圍中,其功能確實具有超常的高價值。但不管是什麼原因,含有這種建設磚塊的染色體都會繁榮發展,並普及於整個物種,從而取代那些不含有這類建設磚塊的染色體。 另外,既然兩性繁衍使數字染色體能夠在每一代都重組它們的基因材料,那麼物種就會經常產生新的建設磚塊和現有建設磚塊的新組合,這樣基因算法就會很快產生具有雙倍和三倍優勢的建設磚塊。而如果這些建設磚塊的組合又產生出更大的優勢,那麼具有這些優秀建設磚塊的個體特色就會比以往更快地普及於整個物種。結果就是,這個基因算法會很快指向現有問題的答案,即使事先並不知道從哪兒尋找答案。 荷蘭德記得當他在六十年代初剛發現這一點時感到非常激動。但他的聽眾卻從未為此而歡欣鼓舞。那時候,在尚屬新興的計算機科學領域裡,大多數計算機科學家都感到,在常規性編程方面尚有大量的基礎研究要做。從純粹實際的角度來說,演化一個程序的概念顯得不著邊際。但荷蘭德不在乎這些。這正是他自決心要發展費舍爾的獨立基因假設以來一直苦苦探索所獲得的成果。繁殖和交叉為基因的建設磚塊提供了湧現和共同演化的機制,同時又是物種個體高效率地探索於可能性空間的機制。事實上,到六十年代中期,荷蘭德已經證明了基因算法的基本定理,他稱其為圖解定理:在繁衍、交叉和突變之中,幾乎所有具有超常強健性的緊密基因群都能夠在物種中成指數比例地發展。 (荷蘭德所說的“圖解”,是指任何特定的基因模型。) 他說:“當我最終將圖示定理髮展到令我滿意的地步後,我才開始著手寫書。”
按“左鍵←”返回上一章節; 按“右鍵→”進入下一章節; 按“空格鍵”向下滾動。
章節數
章節數
設置
設置
添加
返回