宇文博的博客

行萬裏路讀萬卷書,玩是人生的最高境界
正文

第四章 人工智能和人工生命

(2016-09-17 16:52:38) 下一個

明海禪師沉思了一會:“師弟,你說資本主義商品經濟的最基本的特征是什麽?—— 對,商品交換。從這個角度去看,法律體係就是交換係統,利益的分配和交換。法治國家的本質就是契約社會,法律類似於合同,規約統治者和被統治者的義務和權利。從統治者的角度,當然他們占有的資源越多越好。但這種模式是無法持久的。可持續的模式必然是整個社會的大部分利益集團縱橫俾闔,最終達成的動態平衡的結果形成了法律。師弟,我們可能又得務虛了 —— 理工出身的大都對量化分析和數理模型有特殊癖好。當然今天我們不可能有足夠的帶寬從事嚴謹的數量分析,但我覺著有兩個數學體係的概念可能非常有助於我們理解法律體係 —— 那就是人工智能和人工生命。“

明海禪師上大學前就對生命科學有特殊的癡迷。以後步入職場,雖難免總是為五鬥米折腰,但好在一直從事他喜歡的,在生命科學、納米技術和數理模型的交會區浮沉。人工智能和人工生命,兩個詞尤如兩把重錘,在明海禪師的心上猛撞數下。當年在矽穀的日日夜夜猶如電影回放。 盡管逝者如斯,“暗中偷負去,夜半真有力,“ 但還是歲月留痕縈繞於心。雖說現在遁入空門,但“雲空未必空“, 真正做到四大皆空六根清淨又談何容易? 明海禪師陷入了沉思 ……

人工生命和人工智能的兩位大師都是計算機科學的泰山北鬥:一個是大名鼎鼎的數學家,計算機之父,博弈論的創始人 馮• 諾依曼 (John von Neumann)。另一個是阿蘭•圖靈 (Alan Turing),英國數學家和邏輯學家,計算機邏輯的奠基者,和馮• 諾依曼一樣被稱為計算機科學之父,並被稱為人工智能之父。

人工生命和人工智能幾乎同時分別由諾依曼和圖靈在上世紀40年代末50年代初提出。1941年第一台計算機誕生。1950年,圖靈在《計算機與智能 (Computing Machinery and Intelligence)》提出的圖靈實驗 (Turing Test)奠定了人工智能的基石。如果一台機器能夠通過圖靈實驗,那它就被認為是智慧的。

另一方麵,1948年在加州理工的Hixon Symposium上馮• 諾依曼通過他著名的講座“The General and Logical Theory of Automata”催生了人工生命。此後他的經典著作《Theory of Self-Reproducing Automata》則是人工生命的裏程碑。

盡管都是由大師開先河,但以後人工智能似乎是風生水起。在機器人技術、專家係統、模式識別 …… 等諸多應用領域實現了工業化產業化。尤其是IBM的“深藍 (Deep Blue)” 在1997年5月戰勝俄國的國際象棋大師世界冠軍卡斯巴羅夫 (Garry Kimovich Kasparov),更是人工智能尤其是專家係統的刹那芳華。深藍是IBM耗資2億5千萬美元研製出來的擅長國際象棋的電腦,研製工作由美國華裔科學家許宏偉 (Feng-hsiung Hsu) 負責,數據庫方麵有美國國際象棋特級大師本傑明 (Joel Benjamin) 加盟。深藍儲存了200萬份從18世紀到現在的經典對局,1997年的深藍可搜尋及估計隨後的12步棋,而一名人類象棋好手大約可估計隨後的10步棋。

而人工生命則一直沉寂,直到最近才稍引人注意。這其實在某種程度上反應了人類在認識論上的習慣,或者說盲點和偏見。人以及和人有密切接觸的生物圈中的高等哺乳動物都是中央集權形式的等級製社會結構形態:國家有總統、首相、主席、國王……;公司有CEO或董事長;軍隊有將軍、元帥;狼群有頭狼,所謂的Alpha Male;獅群有一隻領頭的雄獅…… 所以人們自然而然的認為,沒有一個中心控製中樞,整個係統或社會必將陷入混沌完全無序狀態而失效。

人們憑直覺很難接受一些極為低等的生命形態,其腦容量也許隻有針尖那麽一點體積,通過所謂的“分布式智慧 (Distributed Intelligence)”, 可能完成人類都無法完成的極為複雜的項目,比如西非的蟻塚。另一個例子是鳥群或魚群。大概我們在小學語文裏都讀過天上一群大雁飛過,有時排成“人”字,有時排成“一”字  …… 於是老師會解釋,雁群前麵的那隻是頭雁。雁群之所以排成人字或一字,那是因為這樣它們能充分利用前麵的雁飛行時的氣流,節省體力….. 言外之意,雁群中的每隻雁都是聽從頭雁的指令,有意識有組織地排成最佳飛行隊形。

直覺有時是靠不住的。

有研究動物行為的野外生物學家用高速攝影拍下鳥群和魚群的運動過程,然後對錄像逐幅分析,結果是魚群和鳥群並沒有一個領頭的。它們的群體行為是通過其中的單個鳥或魚對周邊其他同類行為的反應,最終結果是群體的協調行為。這種群體行為和我們熟悉的高等哺乳動物的群體行為的最根本的區別,在於不存在整個群體層次上的規則和協調。高等哺乳動物群中有一個元首,比如頭狼。其群體行為是由元首通過讓群體成員執行它的指令來實現的。而鳥類和魚類的群體行為中的協調行為是在群體的最低的層次上實現的:個體之間基於一些極簡單的規則,比如 “盡力靠近你旁邊最近的那隻鳥 (或魚),但不要撞上它”…… 等。鳥群和魚群不存在元首。不存在整個群體係統層次上的協調和統一指揮。
這也反映了盡管人工智能和人工生命有許多交疊重合,但歸根結底到哲學層麵,到認識論和方法論的層麵,兩者其實是完全不同的。人工智能是所謂的“自上而下 (Top-Down)”的方法:人工智能的仿真的基礎是在係統的層次上製定規則,整個係統將按這些規則運作。比如阿西莫夫的“機器人三原則”。

但在現實世界裏,上麵那些簡單的原則性的規則根本不足以應對五光十色的社會現象。尤其一些人們習以為常的日常生活常識,比如說“如果一個顧客在商店裏拿了東西,他必須付款才能離開”。。。之類的,人類習以為常的簡單知識,卻恰恰是計算機最難以描述的,也就是所謂的“常識知識表示的困難”。對這些簡單常識的判別應用,計算機卻非常容易出錯。於是人們就必須規定更多更加細致周密的規則,然後出錯的幾率更大。。。如此循環往複,最後的控製操作程序多達成億上兆行,程序的debug變得幾乎不可能,係統僅僅因為其過度複雜而當機。歸根結底,簡單的一句話就是,人工智能的“自上而下”和“基於規則” (Top-Down, Rule-based) 的方法,想要仿真極端複雜高度多樣化的生物,可能無法實現。

拍攝於1984年的《終極戰士 (The Terminator)》和1991年的《終極戰士二 (The Terminator II Judgment Day)》正是反映了八十年代到九十年代人工智能的狀況以及從傳媒反映出來大眾對人工智能和機器人的理解。而象“Terminator”這樣的機器人也確實在一定人工智能的威力和局限性並存的狀況。比如《終極戰士》裏有個鏡頭,“終極戰士”經過一場槍戰,遍體鱗傷的回到下榻的Motel。此時服務員來送水,“終極戰士”從它的數據庫經過一輪掃描,才找到應對的粗話 “Fuck you Asshole!” ——— 如此簡單的生活場景,也必須“自上而下”設定規則建立數據庫,通過數據庫搜索才能給出答案。難怪等到《終極戰士二》結尾,機器人的“終極戰士”遇到了它的程序中沒有答案的形勢,它無法應對,隻好以自沉火海自我毀滅的方式解決。可能也許這些原因,可能也許是根植於人類心底的恐懼,《終極戰士》裏突出反映的一個媒體和大眾的焦慮,就是人類製造的機器人的智慧會不會超過人類。套用《侏羅紀公園 (Jurassic Park)》裏的一段台詞:

Ian Malcohm: “God creates dinosaurs. God destroys dinosaurs. God creates man. Man destroys God. Man creates dinosaurs.”
Ellie Sattler: “Dinosaurs eat man…woman inherits the earth.”

那就是 ”…… 上帝創造了人,人毀壞了上帝,人創造了機器人,機器人毀滅了人 ……”

這其實反映了人類自遠古以來對未知不確定事物的集體焦慮和集體恐懼。除了對機器智慧超過人類,另一個典型的在大眾傳媒中反複出現的就是外星生物的入侵。而人工智能的困境,似乎給人類的集體焦慮暫時一個舒緩。尤其是上世紀八十年代,似乎是人類自我感覺最為良好的時候。而特別有意思的是,宣告機器智慧永遠不能挑戰人類智慧的,竟然是英語教授們,而不是計算機科學家和工程師們。

而正在人工智能似乎走到瓶頸之際,人工生命悄然崛起。當我們進一步仔細研究人類智慧的物質載體 ——— 人腦時,我們就會發現,從自上而下的觀點看,人腦毫無疑問是中樞,是控製中心。人腦製定整個人體在係統層次上的所有規則,可以說是人體中級別最高的元首。但當人們把組成人腦的個體 ——— 神經元 ——— 放到顯微鏡下麵觀察,人們忽然發現,神經元世界完全是一個真正“眾生平等”的世界。從解剖解構的角度,神經元 (Neuron)確是多種多樣。胞體小的直徑隻有5~6微米,大的可達100微米以上。神經元本身的功能也是有差別的,比方視神經一定要和眼睛的一些結構相關,否則就沒有可能達到視覺功能,若換別的神經和眼睛相關也不可能達到視覺功能,它是比較專一的。另外人還有些自律細胞,比方心肌細胞,它的運動是不需要神經支配的。呼吸活動則又是更複雜的,神經可以通過調整肌肉運動影響到呼吸,而這種神經的調整又可分為交感和副交感兩種神經來完成。但重要的是,神經元總的來說功能是有類似性的,負責傳輸或發出某種信號。而在這個層次上,所有的神經元都是平等的。神經元之間不存在某種類似於組織或器官那樣的金字塔式結構。隻有當成億上兆的神經元組成神經網絡,再由神經網絡組成人腦,才使得人腦成了整個人體是係統控製中樞。

神經網絡 (Neural Networks)的強大功能還在於,實際應用中網絡並不需要象人腦那樣複雜包含極大數量神經元的網絡。一個相對簡單的,包含神經元的數量是目前計算機技術能實現的網絡就可以發揮巨大的威力。最根本的原因是,由於每個神經元都和其周圍若幹個神經元互相通信,這種非線性的相互作用使得整個網絡的功能遠遠超出了網絡裏神經元功能的簡單線性疊加。基於神經網絡的人工生命算法已經成功的應用於工業。分布式智慧,或分布式數據處理 (Distributed Processing),正是人工生命的基礎。最近“雲計算 (Cloud Computing)的產業化,人工生命似乎有和人工智能分庭抗禮之勢。

分布式數據處理的基本原理說起來很簡單,那就是將一項任務分配給一個處理器集團 (Cluster)處理。除了上麵的神經網絡算法,另一個人類從簡單低等生物那裏學來的智慧就是所謂的“群體智慧”,也就是所謂的 “Swarm Intelligence (SI)。” 上麵提到的蟻塚就是一個典型的 SI 例子。將之變成計算機算法,那就是產生大量功能簡單相對比較愚蠢的個體(agents)。盡管單個agent的功能非常簡單,但其整體卻能完成一些極為複雜的計算,就如簡單的螞蟻可以造出極為複雜的蟻塚。

全世界會建造蟻塚的螞蟻種類頗為不少,比如中國北京京郊就有所謂白草畔山下八景之蟻塚千丘。那是是一種紅螞蟻,它們的窩也就是所謂蟻塚的高約30厘米到1米左右,丘底直徑一般為1 到2米。 最為壯觀則是西非的蟻塚。遙想Safari天蒼蒼野茫茫,風吹草低見獅象,突兀間一座“摩天大樓”拔地而起,高達數丈(約20英尺),徑廣百尺有餘。其中五步一樓,十步一閣;廊腰縵回,簷牙高啄;各抱地勢,鉤心鬥角。如果你把其中的蟻放大到人的尺寸,那是真正的前無古人的摩天大樓:高達1600米,直徑近10公裏! 

麵對比七大奇跡更雄奇的大自然的傑作,除了青塚向黃昏感慨,大概會覺著造物主的偉大,人類的渺小吧? 

這樣的傑作,既沒有建築師設計師,也無需複雜的項目管理。沒有藍圖,沒有計劃。所有一切,都是由一個個簡單的生命,其腦容量不足人類的幾百萬分之一,遵循一些非常簡單的法則建起來的。這裏不光是宏偉的建築矗不知其幾千萬落,勘比阿房宮的長橋臥波未雲何龍,複道行空不霽何虹, 而且所有起居的條件,諸如通風,采光,排氣,排熱 …… 等都幾臻完美,真正是歌台暖響,春光融融;舞殿冷袖,風雨淒淒, 一日之內,一宮之間,而氣候不齊。

人工生命的還有一種方式是所謂的遺傳算法 (Genetic Algorithms, GA), 那是用計算機產生虛擬基因 (Virtual Genes),然後讓這些虛擬基因通過進化,解決現實世界裏的複雜計算問題。

所有這些人工生命的概念和方法,和人工智能比較,最基礎的分別就是沒有整體係統層次上的規則。在人工智能的範疇裏,整個係統的行為是通過在係統層次定義的規則實現的。對定義了規則的係統,給出確定的初始條件和邊界條件,係統的輸出結果是確定的,可預測的。這就是所謂的自上而下的基於規則的方法。

而人工生命隻對群體中的單個個體或網絡中的單個神經元之間的相互作用定義最低層次最簡單的規則。整個係統的規則是沒有加以定義,而是由個體之間通過相互作用後產生的,也是是所謂的 “突現行為 (Emerging Behavior)”。正是由於這種突現行為,使得如群體智慧,神經網絡或基因算法等具備了類似於生命的一些特征,比如

·    自組織功能:群體中的個體通過信息交換與處理,實現個體與個體之間以及個體與周邊外界環境之間的信息交換,實現模擬的社會係統。
·    自我複製 (繁殖) 功能:繁殖可以通過數據結構在可判定條件下的自我複製實現。同樣有生必有死。個體的死亡可以通過數據結構在可判定條件下的刪除實現。所謂的“有性繁殖”則通過組合兩個個體的數據結構特性的數據結構生成的方式實現。
·    自我改良,學習,和進化功能:人工生命有所謂的“記憶”功能;早先的經曆可以被用來改進以後的行為。比如 神經網絡的特定能力就是可以通過訓練 (Training),不斷完善網絡的功能。在此基礎上可以實現決策功能,也就是經過學習,不斷適應外界環境,最終達成最佳的解決方案。

國際象棋和圍棋可能是最複雜的人類對抗性的博弈形式。深藍戰勝卡斯巴羅夫那是人工智能整體規則的一次完美表現。如果說人工智能的自上而下方法是象棋大師的克星的話,那圍棋似乎就和人工生命有某種天然的聯係。圍棋每一顆棋子都是完全相同的,不象象棋,小卒子和車的威力有著數量級的差別。圍棋子的作用完全取決於在某一時刻它所處的空間位置以及它和周邊棋子的關係。這和群體中的個體或神經網絡中的神經元頗為相似。圍棋的規則相對於象棋要簡單,而且也是定義在最低的個體層次上的:活棋的要求很簡單,要有兩口氣。但由棋子之間的相互關係展開,形成群體以後的變化卻遠比象棋複雜。比如邊角和中腹的高下優劣,俗話說的是“金角銀邊狗肚裏”;但《棋經十三篇》裏卻有“高者在腹,下者在邊,中者在角,此棋家之常法”之說。不管國手庸手,起手大致都先占四角。現代棋枰,落星位 (4 x 4) 的大概很稀罕的了。起手落小目 (3 x 4 或 4 x 3)的蠻多的。有走實地穩健路子的,可能會退一步下在“三三” (3 x 3)上。喜外勢的,也許會下到高目 (4 x 5 或 5 x 4),或甚至進一步,下到目外 (6 x 6)上。有棋手偶而走邊鋒,會左手下三三,右手下目外,左低右高,取“右背山陵,前左水澤”之意。但這些也隻是”棋家之常法”,而不是硬性的規則。記得某位國手曾有第一子下在“天元” (棋盤中央)的,號稱“起手落天元”。

除了打劫,圍棋中頗有興味的是倒撲。金庸在《天龍八部》中寫虛竹誤打誤撞,用“倒脫靴 (也就是倒撲)”破了“珍瓏” 棋局。老金玩筆玩得爐火純青,寫起來高潮迭出,極具戲劇性。這種將欲取之,必先予之的下法,要用人工智能實現,可能又會碰上“常識知識表示的困難”。

人工生命的這種所謂“突現行為”從技術上來說,那就是有種群體中的個體並不存在的行為,但當個體形成群體後,個體之間的相互作用導致了群體行為的發生。這種行為可以在任何群體中發生,比如說所謂的計算機集團 (computer cluster),或機器人群體,或狼群,獅群,甚至示威遊行的人群。這種“突現行為”因為不是在整體係統層次上有意識規定的,個體相互作用引發的結果就有著完全的隨機性。如果說群體智慧有著類似生命的行為 (Life-like),這種行為也可以說非常的孩子氣,有著不可預期 (Unpredictable),並且非常容易分散注意偏離目標 (Easily Distracted)——— 就象我們在小學一年級學過的《小貓釣魚》。你如果給一個六歲的孩子十塊錢,讓他去打醬油。他也許在路上看到有人做俯臥撐,覺著賊好玩,壓根就忘了打醬油這碼事,包不準連回家的路都摸不著了。

對於這種孩子氣的不可預期和偏離目標的一個解決方案是所謂的 “Goal-Attainment”。太陽底下沒新鮮事,所謂的 ”Goal-Attainment” 算法其實是很成熟的優化算法, 並非人工生命的獨創。不過人工生命的Goal-Attainment,由於其類似生命的特點,有其特殊性。比如人工生命的Goal-Attainment算法中一種是基於動物世界捕食動物和獵物 (Predator-Prey)之間的關係實現的。對一隻饑餓的獅子,你很難用其他東西把它的注意力從一群羚羊或角馬那兒引開。

[ 打印 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.