图灵,蔡汀,达尔文:计算中的上帝
幾天前把剛買的《證明達爾文》看完了。
沒有即可就寫書評,主要是因為手頭上的事太多了,各種各樣的事情。
今天在外面忙完,終于可以寫點東西了。
本文是關于《證明達爾文》的。內容雖然圍繞這本書,但基本都不在這本書里,所以,其實你可以認為這篇東西和這本書一點關系沒有……
先來說下這本書吧。
實話實說,這本書不咋地。
這本書最大的毛病,就是前面一半給人的感覺是帶球在對方門前盤帶,盤帶了45分鐘,球就是不被你搶走,但我就是不射,就不射呀就不射,氣死你!
尼瑪,這段話說得讓我想到了某些很不好的東西。。。
可以說,第四章后半部分之前的所有內容都可以幾句話交代清楚,但作者——著名數學家,可計算理論開創者,蔡汀常數的發現者,格雷戈里·蔡汀——愣是用了三章半的篇幅來反反復復。
好吧,可能是因為我個人因為比較忙所以希望可以快速看完這本書的緣故所以這部分沒有耐下心,如果你打算看這本書的話,可以不用理會我上面這段的吐槽。
就核心思想來說,這本書的內容可以歸納為以下這幾點:
馮·諾依曼提出DNA就是代碼;
蔡汀提出了基于代碼的DNA演化模型,并利用蔡汀停機概率與忙海貍問題證明了
累積演化過程遠優于隨機選擇,且足夠接近神創論。
第一點到第二點似乎很跳躍哦。
本文從下面開始的內容,就是圍繞上述兩點展開的——然后基本就開始脫離那本書了。
有一個問題是曾經困擾我很久的,那就是,如何證明遺傳算法為代表的高級算法的確“足夠優秀”?
和這個問題相關的另一個問題是這樣的:高級算法在多大程度上能找到全局最優解而非局部最優解?
雖然我并沒有學過計算理論,對遺傳算法等高級算法的認識也有限,但憑借著多年常開不閉的腦洞,我還是鼓搗出了一個解決這些問題的思路。
讓我們來構思一個態空間C,或者說是構型空間Configuration Space(物理上也稱為模空間,反正就是個名字),它是離散的。
這個空間是D維的,每個維度都可以分為N個格子,于是這總共ND個格子就是整個空間的所有可能狀態。
每個狀態或者說是格子就代表了一種參數配置,在遺傳算法中可以近似地看作是基因配型。
因此,我們可以說,這個空間的每一個格點,就對應了算法所要解決問題的一個“解”,只不過顯然其中絕大部分的解都不是最優解,無論是全局最優還是局部最優。
接著,所有遺傳算法或者退火算法或者蟻群算法,等等等等,所做的事可以分解為以下幾步:
為該構型空間建立可控勢函數V(q∈C, t),其中q是空間中格點,t是全局時間,可通過調節t來調節整個勢,并要求問題的局部最優解或者全局最優解是勢V的極小值點;
對空間中給定點集{q_i},構造依賴勢V的步進函數S,使q_(i+1) = S({q_i})滿足某個泛函不等式:F[q_(i+1),{q_i},V]≤0。
根據上面兩個基本構造,我們可以證明,上述點集序列{q_i}最后肯定會停在某個確定的q上,使得泛函不等式取到=0這個停止條件(但=0并不必然代表點集序列停止在某個確定的q上)。
用直觀的方式來說,這就等于在D維空間上增加了一維,形成一個D+1維空間,而V構成了這個空間上的一個曲面,這個曲面對應了原本所求問題對各可能解的匹配程度,從而真正好的解都是這張曲面上的“谷”——其中,絕大部分的谷是局部最優解,而那個最低的谷是全局最優解。
接著,第二條就是構造在這張曲面上從給定點出發,下一步怎么走,才能更接近我們所要的谷。
這么說太抽象了,我們以經典的最短路徑問題來看一下一些常見的高級算法是如何實現上述兩步的吧。
所謂最短路徑問題,是指,如果存在N個點,有M條線段連接著N個點,求從指定的點A到指定的點B的最短路徑。
這是學習高級算法的入門問題。
在利用電腦構造的高級算法解決這個問題之前,我們先來看一下物理上是如何解決這個問題的:
建造一個固定比例的模型,用N個圓環代表那N個點,然后用一跟線連接點i和點j對應的圓環i和圓環j,線的長度等比于問題中點i和點j的距離。模型全部制作完成后,你一手拿點A對應的圓環A,一手拿點B對應的圓環B,然后兩手張開,當A和B之間的線都繃直不能再拉的時候,你就得到了從A到B的最短路徑。
搞算法的人是不是被嚇尿了?
曾經某次學習算法的時候看到這個著名的問題,我第一個反應就是動手做這么一套模型,然后一起學算法的同學直接說我離經叛道這輩子都當不了軟件工程師。
為什么我們的高級算法不能像上面的動手做模型一樣簡單明了?
為了分析這個問題,我們先要理清上述動手做模型中,當你最后將A和B左后拉開的時候到底發生了什么——
這里實際發生的,是每個圓環,每條線段,實際上都在你拉開的過程中進行著自適應的調整與改變——也就是說,我們這里有總共N+M個作出應急反應的計算單元,所以在你拉開的時候,整個模型其實正在進行一場高效的并行計算。
而作為比較,我們的計算機,無論算法多牛逼,計算機的芯片有多少核,是否采用超線程技術,本質上還是串行計算,而非并行的。
現在回到算法上來。
如果我們用遺傳算法或者退火算法來解決這個問題,是一個怎么樣的過程?
首先,退火和遺傳,或者別的什么算法,解的形式肯定是開頭為A結尾是B的一個字符串或者說是點集,而算法所需的適應函數的最合適選擇,就是這個點集對應的折線的長度。
用我的模型來說,此時構型空間總共有N-2維,每個維度都有N-2個獨立格點,整個構型空間的勢能函數V就是一個給定點q=(q_1,q_2...q_{N-2})就是這個序列對應的折線的長度——很顯然,此時勢V的最低點就是我們這個問題的解——這個格點對應的序列給出的就是連接A和B的最短路徑。
PS:這里需要注意,優于連接N個點的路徑只有M條,而M可能不是N(N-1)/2,所以可能有些點之間沒有路徑連接,此時如果在構型空間中出現一個格點代表的點集序列要求這樣的點相連,那么就給出一個無窮大勢,表示斷開。
因此,現在的一條基因的長度是N,其中開頭是A,結尾是B。如果一條實際路徑不需要通過所有N個節點,那么可以認為在某一位開始都是B,或者在某一位之前都是A。
接著,退火算法給出了一個從一個點擴散出一群點的(燃燒)策略:
對一個點集序列做隨機的改變——這里的改變就是改變(除了起點和終點)某一點的值——并將改變后的點記錄下來,每一輪產生V個點,接著將這V個新點和老點一起排序,根據時間來決定保留多少,留下的點進行下一輪擴散。
遺傳算法在這方面其實本質上是相同的,但對于什么是改變則略有不同。
遺傳算法中的基因改變分為變異和交換兩部分。而在通常情況下,變異又分為點突變和段交換及段反序,這都發生在一條基因上,不與別的基因交互。而交換過程則是兩條基因之間交換彼此的(對位或非對位)基因段。
在最短路徑問題中,遺傳算法的變異中的點突變等于退火算法的燃燒。段交換和段反序顧名思義,不需要太多解是。基因交換則是遺傳算法所特有的,兩條基因G1和G2交換一段等長的點序列。
現在,從我的構型空間的角度來復述一下上述過程。
退火算法可以看作是在已知點的鄰域內隨機選擇V個點,然后選擇包括舊點在內的V+1個點中勢最小的前P(t)個保留,進入下一代繼續燃燒。從而是一個在鄰域內通過隨機行走找到勢更小位置的算法,類似蒙特卡羅(好吧,也不是那么類似)。
而遺傳算法的行為則有四類:
鄰域內的隨機行走(對應點變異);
旋轉(對應段交換);
反射(對應段反序);
兩個點之間取一個中點(對應基因交換,當然,并不真的是中點,而是“中間區域內的某個點”)。
可以看到,遺傳算法中點擴散的手段明顯多了很多。
好了,現在如果來演化這兩個算法,我們實際上看到的就是這樣的——
退火算法看上去就是在一座山上,一群人靠著隨機行走,不斷地往谷底走去,最后走到了谷底。
而遺傳算法,是一群人,不斷通過隨機行走、乾坤大挪移(旋轉與反射)以及和朝著別的人的瞬間移動(基因交換)來走向谷底。。。
這么說很抽象,而且,就一般的最短路徑來說,第一種隨機行走就足夠走到谷底了。但是,如果現在整個構型空間中除開存在一個全局最低點,還存在很多局部最低點的話,隨機行走就不是好主意了——隨機行走很容易走近了某個局部最低點,然后就走不出來了,因為它的行為邏輯就是隨機行走,然后保留走向勢能低的那些點,從而如果一個局部最低點距離全局最低點以及該點所影響的開始下落的坡區足夠遠,那么通過局部的隨機行走是很難走出的。
當然,退火算法中點變異的范圍可以不是“鄰域”,這在一定程度上緩解了這個問題,但這導致的副作用是當足夠靠近最低點的時候,往往會由于步子邁得太大而錯過——所以退火才有一個降溫函數,來逐漸縮小變異或者說燃燒范圍,最后凝結到最優點。這種前期高溫后期降溫的方法,就是希望前期廣撒網,將點散布到所有局部最優點的坡區,然后通過降溫來凍結在每個局部最優點上,從而通過比較來找出全局最優點。不得不說這個想法很好,但降溫函數或者說熄火函數需要選擇得好,不然還沒找到所有局部最優點的坡區就降溫的話,那就可能漏掉解。
而遺傳算法由于不單單是隨機行走,還存在別的方法來“繞出”局部谷底,所以相對退火算法來說就有了更多的離開局部最優解陷阱的途徑——也所以遺傳算法不需要退火。
可以看到,退火算法的高溫期的作用就是為了避免局部谷陷阱,低溫期的作用是凝結到谷底。而遺傳算法點變異的作用是為了凝結到谷底,段交換、段反序和基因交換的作用是為了避免局部谷陷阱——特別是基因交換,只要初始基因足夠多樣性,那么最后就可能行為包圍全局最優點的局面,然后通過基因交換來尋找中間區域,便有可能找到全局最優點。
通過分析,我們知道,對于這類算法所處理的問題,往往具有如下難點:
構型空間龐大,且不存在解析手段;
存在多個局部最優解,從而存在局部谷陷阱;
有可能難以精確找到谷底。
所有遺傳算法這樣的高級算法都是通過各種方式來繞開上述三個問題——事實上,這些算法的誕生本身就是因為第一個問題,否則就可以使用暴力窮舉了。
面對第二和第三個問題,歸根到底,其實可以總結為兩點:
如何更好地評價一個解“有多接近最優解”,另一個就是“如何從一個解生成另一個解”。
而,第一個問題就是構型空間中的勢能V的選擇問題,第二個問題則是點生成函數S的選擇問題。因此,所有問題歸根到底都是V和S的選擇問題。
OK,關于如何選擇V和S更好,這個問題這里不談,讓我們回到本文最開始的目的——如何評價一般而言的V和S下,遺傳算法等算法在結局問題方面的優秀程度?
好了,現在讓我們先看兩個極端。
在最短路徑問題中,最快的方法,就是我所提到的“物理方法”,或者說是“動手做模型法”。
這里,你只需要一次操作:拉開A和B(前期準備不算)。
由于物理模型的并行性,直接上的運算量是N+M,或者說就是O(N)的計算量。
而,如果使用暴力窮舉破解,由于構型空間總共有(N-2)^(N-2)個狀態,所以計算量就是O(NN)。
那么,遺傳算法和退火算法等的計算量是多少呢?
如果只考慮隨機行走,那么從一個點出發,隨機行走到谷底,所需要的計算量差不多為O(N log(N))。
哈,可以看到,雖然高級算法找到最優解(不考慮是否是全局最優解)所用的計算量比物理手段多,但明顯遠優于暴力窮舉(廢話,不然還要這些“高級”算法干嘛?)。
而且,更有意思的是,比較這兩個手法的計算量,我們發現,這些高級算法的計算量“足夠接近”物理手段。
而這個,就是蔡汀所力圖證明的東西。
在繼續下一個篇章的東西前,讓我們回頭來看看遺傳算法與退火算法。
重溫一下我們所面臨的三個問題:
構型空間龐大,且不存在解析手段;
存在多個局部最優解,從而存在局部谷陷阱;
有可能難以精確找到谷底。
第一個問題是高級算法的使命,我們不談。
為了解決第二與第三個問題,退火算法采用的是高溫燃燒與退火凝結,分別應對這兩個問題。而遺傳算法的手段是利用點變異來解決第三個問題,而通過基因段的反序、基因內交換以及基因間交換這些手段來解決第二個問題。
但,除了上述這些內容,有一個很有趣的特色我們都沒有提及,那就是——每次都保留一組基因,而不是只選擇唯一的最優基——無論是遺傳算法的基因池還是退火算法的燃點集。
這個基本特點為什么一定要存在——當然了,對于遺傳算法,必須要有超過一個基因才能實施基因間片段交換,這個理由我們不考慮。
讓我們構思一個充滿局部谷陷阱的問題的構型空間,如果我們每次只保留一個最優點,那么如果我們一開始不在局部最優解所在的坡區,那么下一步通過隨機行走可以走到最優解所在坡區的概率,等于最優解坡區中比當前所在位置低的區域的“面積”S(q)與隨機步行范圍Q(t)的交集S(q)∩Q(t)與Q(t)的比。而如果已經在最優解的坡區,那么下一次通過隨機行走離開的概率就是局部非全局最優解坡區地獄當前點位置的“面積”O(q)∩Q(t)與Q(t)的比。
可見,如果問題足夠特殊或者V選擇不佳,導致S(q)很小的話,那么只保留一次最優點就很可能導致錯過全局最優解。
因此,之所以不只保留一個最優點,而是保留一批較優點,其根本原因就是為了避免一個點落入坑里爬不出來的情況發生。
也就是說,所有那些非最優的備胎點的存在,就是為了避免最優的高富帥出家當和尚——所以,女生們,知道了不?多備點備胎總是沒錯的!【哎?似乎什么不對的東西混進來了……】
如果將最優點視為“正確”的,那么這種保留一堆非最優的“錯誤”點的容錯手段,也可以看作是將未來的希望寄托在不夠完美的“錯誤”之中——因此,從這點我們回過頭來看上個世紀的經典科幻阿西莫夫的《永恒的終結》,我們可以發現,修正錯誤從某種程度上來說也可以看作是扼殺未來。
這點非但在遺傳算法之類的高級算法中很重要,在描述和解決和演化相關的問題時,也很重要。
信息空間中的演化
上面所描述的構型空間作為解決問題,特別是數學問題或者工程問題,是很好的。
但,構型空間本身也有很大的局限性。
比如,構型空間中的每個構型都是表現性,因而,所有無表現的基因就無法在構型空間中被體現出來——這也就是說,構型空間無法合理體現基因中“備而不用”的那些預備信息。
其次,構型空間是固定的,不具備“創造性”——而這就是蔡汀利用圖靈機在證明進化論的過程中所構造出來的東西。
上述這兩個問題,歸根到底都表示一個意思:構型所能蘊含的信息量太低。
為此,我們就必須使用比構型空間更優的對象,那就是:信息空間。
按照蔡汀的思路,我們更應該使用“圖靈機空間”或者“代碼空間”,但我個人認為使用信息空間這個名詞就足夠了。
先來說一下什么是信息。
對于信息的定義,其實還是存在著一些模糊性的。
比如,物理上的信息最初被看作“熵”的對立面,也就是無序的對立面:有序。
數學家兼信息論創始人香農在題為“通訊的數學理論”的論文中指出:“信息是用來消除隨機不定性的東西”。
控制論創始人維納認為“信息是人們在適應外部世界,并使這種適應反作用于外部世界的過程中,同外部世界進行互相交換的內容和名稱”,它也被作為經典性定義加以引用。
向量分析方法創始人美國著名物理化學家吉布斯則認為“熵”是一個關于物理系統信息不足的量度。
有序即信息,負熵即信息,這是信息論創立初期在物理上的反映。
對于最新的現代信息論中的信息為何,這個定義就太豐繁復雜了,流派繁多。
當然,雖然我們說不清信息的具體定義,但這倒并不妨礙數學家物理學家信息論學家堅信信息是世界的基礎——著名物理學家約翰·惠勒(也就是費曼的老師,多宇宙理論創始人Everett的老師,《星際穿越》科學顧問、《黑洞與時間彎曲》的作者、廣義相對論圣經MTW的作者基普·索恩的老師,當然,他本身也是MTW的作者之一)在晚年提出的“It From Bit”也可以被認為是現代信息物理流的前身(當然了,IFB所提出的位宇宙還不完全等同于信息宇宙),進而現代很多人甚至認為信息是萬事萬物的基礎,物理的本質就是研究信息。
就個人來看,信息的意義有兩層:一層,信息反應了對象的結構以及對象間的聯系;另一層,信息體現了創造的可能性。
而,無論是描述性的信息,還是創造性的信息,最能合理體現信息的,便是圖靈機。
我們構造一個信息空間,其中每個格點都代表一個圖靈機。
但并非任意的圖靈機,而是一種特殊的通用圖靈機,其中包含了各種可以生成的別的圖靈機——無論能否停機。
事實上,這種圖靈機可以根據基因來實現各種任務,包括生成多臺別的圖靈機(Y算子,當然了)。
這么一來,我們也可以說信息空間的每個格點都是一段基因,然后這臺通用圖靈機根據基因完成各種任務,包括生成可以完成特定任務的圖靈機——哪怕是預期要完成某個人物但當前還沒完成故而不會停機或者以錯誤停機的圖靈機。
這就是信息空間中基因的創造性的體現。
現在,信息空間的基因已經可以很好地解決之前提出的第一個任務了——蘊含非表現型的基因片段,從而使得備而不用備戰未來的基因成為可能。
另一方面,由于圖靈機本身的強大,現在的信息空間可以說容納了一切可計算的問題,這個空間已經足夠龐大與強大,當然,如果要考慮的是生物的演化的話,這個可計算看空間顯然還不夠強大與龐大——當然,站在It From Bit的位宇宙的角度,也許已經足夠了。
從而,第二個問題雖然不能算是很完美地解決,但至少現在的信息空間已經蘊含了“創造性”。
演化
描述完了作為背景的空間,現在來回過頭來看看我們的問題。
在態空間中,遺傳算法等算法要研究的問題往往都具有若干個全局最優解,以及更多的局部最優解。但這個提法在描述實際的生物演化時卻變得不可行——生物的演化并不存在最優解。
所以,如果我們要考慮的是信息空間中的演化的話,我們就不能繼續認為還存在全局最優解,從而演化的目的不似之前是找到全局最優解,而是能找到局部最優解就足夠了。
而,現在信息空間中的勢V,也不再簡單的是關于空間中位置的函數了。
現在信息空間中存在一系列特定的任務{T},每個任務都需要圖靈機來完成。因此,現在信息空間中的每個點所對應的基因都將生成圖靈機來完成各任務,并根據完成的情況來確定勢能V——這就是現在的勢能的定義。
而,各種不同的演化方案,就和此前的遺傳算法或者退火算法一樣,所要做的就是不斷利用已有的點來生成或者說到達新的點,從而盡力到達一個“安全”的區域,不被淘汰(是否被淘汰以每個點的勢V及其構成的集合{V}決定)。
因此,其實問題本身沒有變——在一個空間中,存在勢V與演化函數S,然后來查看S是否可以確保“演化”持續進行,并能以多快的速度實現某個預定的目標——比如“演化出眼睛”或者“征服宇宙”。
而真正發生改變的,只不過是我們現在是在信息空間中完成這項任務,而每個點都依靠生成的圖靈機來解決問題。
因此,本質上來說,生命的演化(在這個理論中)就可以被描繪成信息空間中的通過已知的點來獲得下一點點群的過程——事實上,蔡汀第四章的標題就是:軟件空間中的隨機行走。
讓我們回到《證明達爾文》這本書。
這本書中的內容,其實就是上面所提出的這個范疇中的一個問題——現在在信息空間中我們要解決的問題是“獲得更精一位的忙海貍問題的解”。
因此,可以說,蔡汀所證明的就是在上述大背景下的一個特例中,累進式演化足夠接近神創——而這點其實就類似在最短路徑問題中我們所證明了的遺傳算法與退火算法的“演化”速度足夠接近物理模型方法。
雖然對上述模型我們不能給出足夠精確的證明——事實上我們所能做的也不過是和蔡汀所作的一樣,針對某個特定的問題來給出準確且精確的證明——但并不妨礙我們去相信,在信息空間中的這個演化問題,應該可以獲得和構型空間中的演算問題一樣的
結論:
神創和物理模型法一樣,所需的演化步驟為O(N);
暴力窮舉法需要的演化步驟為O(整個空間的大小);
累進式演化所需要的演化步驟為O(N log(N))(當然,這個結論和蔡汀所給出的N log(N)2已經明顯不同了)。
從而,我們差不多可以認為,累進式演化在單位時間里具有差不多可以匹敵神創的威力(好吧,其實差距還是很大的。。。因為N本身超級大。。。),至少也比暴力窮舉高效了很多很多(這句是廢話)。
上面的討論基本完全是脫離了蔡汀的那本《證明達爾文》而作的,所以,其實和我看不看這本書沒啥關系。。。看這本書只不過是給了我寫這篇文章一個借口而已。
這里有幾個概念是最核心的:
1. 數學本身蘊含了無窮的創造性
這點是蔡汀在前三章里不斷強調的,也是一個和我們日常生活的經驗相近又相遠的一個概念。
從那個著名的數學不可思議的有效性的哲學論題中,我們已經可以感受到數學本身所蘊含的無窮創造性,但同時另一方面,數學作為一門學科給人的感覺是在不斷構造數學概念解決數學問題,但似乎并不具備創造力——具有創造力的是數學家,而不是數學。
這種觀念(也許存在,也許不,反正我個人認為數學本就具備無窮的創造性潛力)在圖靈與馮·諾依曼等人所建立的杰出的開創性工作后其實就已經被終結了。
事實上,圖靈機本質上可以歸結為數學上的函數——對,圖靈機最早被提出時就是一個七元函數——從而圖靈機的創造性與創造力本質上也只不過是數學的創造性與創造力的一部分而已。
2. 基因蘊含了創造的可能性
就如在構型空間中的演算的末尾所提及的,非最優解的保留就是為了提供不一樣的演化可能,從而為獲取別的局部或者全局最優解保留可能性。
在信息空間中,這種保留更體現為這么一種保留——如果一個基因所蘊含的所能生成的圖靈機中,有些還沒有演化完畢,從而是要么不可停機的要么能停機但不能解決任務的,那么這顯然是非最優解。但如果我們將這些非最優解都剔除,那么還沒演化到能解決問題的圖靈機就永遠不可能演化到能解決問題的那一天——這就是累進式演化的本質,將暫時的錯誤保留下來,只要剩下的部分能正常工作,留下的錯誤在未來就有可能演化出更好的結果。
真實生物的基因中有很多是無效基因,垃圾基因,要么不產生可表達的基因序列,要么就是產生了也沒用。
但,這些基因難道就應該被剔除么?顯然未必如此——其中很多現在無用的基因段,未來完全就有可能在偶然意外的激發下,從中出現有用的基因。
留著現在看來是錯誤的東西,就是為了將來能獲得更好的回報。
雖然這種思想在人類社會中屬于投機倒把,但,你瞧,奇貨可居其實也就是一種投機倒把,而它的結果是成就了呂不韋與秦嬴政這兩代雄霸。
因此,如果演化要保持創造力,那么演化就不能對不夠適應的基因趕盡殺絕。
3. 生命的本質,就是V與S
站在死硬理性派的角度,生命與演化的本質與神創一點關系都沒有,其強大的來源完全是前面所提到的勢能函數V與演化函數S——V決定了演化的方向,S決定了如何前往這些方向。而生命,不過是V和S在恰當調配下所得到的結果。
這個結論當然是充滿了冷冰冰的GEEK感的,想來大家看著也不舒服,特別如果你信教的話——不管拜的是哪位神仙大神。
從這個角度來說,所謂上帝,很有可能不過是為了計算一個超級復雜的問題而設立的超高級計算機程序;而所謂生命,也不過是這段程序跑出來的一個結果。
這讓我想到多年前我寫的科幻小說了。。。。。。
生命的演化
前面所得到的結果,當然不是無懈可擊的。
如果你要站在有神論的角度來反駁攻擊的話,其實也容易得很。
首先,信息空間本身只蘊含所有可計算的可能性,從而其創造力是可計算的——于是,第一個反駁點就是:莎士比亞是可計算的么?那你給我算一部《哈姆雷特》出來。
這個說法當然是糙了點,但問題的本質卻是一樣的:上述模型僅僅給出了可計算的創造力,而人類世界的大量行為大量成果是不可計算的,甚至很多僅僅只是一種感覺,連可靠定義都沒有,這樣的東西顯然是超出了這個模型的可論述范圍——從而可能是神創的。
而,站在進化論的角度,神創者的這種反駁也不是完全沒有反擊的余地——生物分子或者生物官能團之間的行為并不單純的是圖靈機,所以上述模型僅僅是一種類比來給出累進式進化的強大,并不是說生物就是圖靈機。既然如此,生物的演化就不會受到所用模型中圖靈機只具有可計算創造力的限制,從而可以實現不可計算的創造力。
對此,神創論者的進一步反駁可以從既然模型并不全然相等因此說生物演化的累進式所獲得的創造力完全有可能不足以形成當下的人類社會。
這個問題就瞬間上升到形而上的信仰層面了,因為除非你能回到過去瀏覽時間,否則就算理論再完美你依然可以用理論和現實不是完全匹配的來反駁,于是就成了從一個不可知來推論另一個不可知,純粹的信仰問題,不用繼續爭辯下去了,你信就信,我不信就不信,這事就這么簡單,沒有爭的必要。
第二個攻擊點比上一個溫和,那就是累進式的O(N log(N))的進化步驟所需要消耗的時間是否能被人類當下歷史所容納?
這個問題也是演化支持者很難回答的,因為N被預設為很大,但是多大算很大呢?完全有可能發生N log(N)遠超人類歷史的情況,這么一來,要么歸功于純粹的僥幸,要么歸功于神來之筆的幫助,這事就瞎了。
對此,如何估算一個合理的N是一個很直面問題但幾乎不可能成功的方案。于是,說到底又成了信仰問題。。。
這么看來,既然無論如何都是信仰問題的話,我只能說,現階段其實這套模型這套理論依然無法說是完全證明了進化論或者說是證明了達爾文,只能說是提供了一套看上去很不錯的理論模型框架。
而,如果我們糾結一下蔡汀本人的態度的話,他的態度是既說自己不算無神論,又各種暗示他的上帝是數學。
這個其實蠻呵呵的。
這里岔開一下。多年以前和北京的集智俱樂部的成員有過一次爭論。他們認為圖靈機尤其是Y算子體現了某個(上位)觀測者的存在;而我的觀點是:這不過就是數學。站在蔡汀的角度,這個爭論倒是沒有必要了,我們在討論的恰好在他看來是同一樣東西。
當然,我所關注的倒不是這貨對神創論者有多大沖擊——不管你是告訴我我是從猴子累進演化而來的還是告訴我我是克蘇魯捏出來的,反正我都沒差,我還是我。
我所關心的是另一個層面的問題——生命是什么,生命的演化會如何走下去。
人擇演化,與,進一步演化
從前面的分析我們可以看到,生命不過是V與S的結果,僅此而已。
這個命題其實蘊含了很多可以討論的東西,比如,人擇原理就冒了出來,進一步演化的方向也冒了出來。
人擇原理
人擇原理有很多版本,最常見的幾個版本人擇原理是這樣的:
弱人擇原理:宇宙偏愛演化出碳基智慧生物的狀態。
強人擇原理:宇宙的演化必然允許人類的出現。
最終人擇原理:宇宙的演化必然導致人類出現,且一旦出現就不會消失。
當然,個人比較喜歡的人擇原理的版本是這樣的:
我們所在的宇宙為什么允許我們這樣的生物被演化出來?因為如果不允許的話,就不會有人在這里提這個問題了。
這個問題非但在宇宙學與粒子物理中存在,對生物進化也一樣適用——為何人類能在地球上演化出來?
我們都知道,人類的演化是充滿隨機性的,比如如果當年恐龍不被一塊板磚砸死,說不定就沒人類鳥事了。
而,這樣的事實如果我們沿用人擇原理的話,就成了要么恐龍偏愛被一塊板磚砸死,要么恐龍必然會被一塊板磚砸死。而人的出現則如上帝的選民一般充滿了必然性或者偏愛情。
這樣沒節操的自戀我是無法接受的。
讓我們來對比一下。
宇宙可以進化出人類,與生物可以進化出人類,其實是兩件非常類似的事情——一樣都充滿了各種僥幸與隨機。
如果說人類在地球上被進化出是一個隨機事件,那么宇宙中物理參數可以組合出人類的存在,也是一個隨機事件——反之,如果宇宙人擇,那么恐龍必須被一塊板磚拍死,這是上帝的質疑,物理的規律,不可避免——哦,這是瞎扯淡。當然,站在神創的角度,這倒的確是必然。
因此,人擇原理所反映出的,其實就是人的一種“選民心態”,或者說是“人類中心論”。
宇宙為何一定要有人類出現?就如地球上為何一定要進化出人類一樣,僅僅是一個概率問題。
那么,讓我們更進一步——我們已經知道,進化并不是單線程的,而是多線程的——多路并進,且每一路都充滿了備而無用的垃圾基因,而恰恰就是這些垃圾基因,其中有些在漫長的時間出恰好進化出了人所需要的那些生物特征,最后產生了人類。
這里的核心有兩點:多線程,攜錯。
那么,宇宙是否如此呢?
要說宇宙的多線程,這事倒是很好理解——多宇宙。
讓我們試想,如果宇宙只有一個,那么一旦演化錯了,那也就不存在人類了——當然,現在的你不會遇到這個問題,因為如果遇到,也就不存在現在的你了,而一個不存在之人當然不可能思考“我為何不存在”這個問題了。
而,如果宇宙不是單一的,而是復數的,甚至是不可數的,那么這事就有趣了——終將有一個宇宙的參數“恰好”合適,誕生出人類。
這就和此前的演化模型一樣,多路并進,總有一款適合你。
而且,從物理上來說,兩者的確足夠相似——信息空間對應希爾伯特空間,圖靈機對應宇宙波函數及其量子化后的產生湮滅算子(理論上所謂的三次量子化或者說宇宙量子化、時空量子化),演化的目標就是來一個人類冒傻氣。
你看,從這個角度來看,生命的演化和物理的演化是多么類似啊。
當然,要說差別也有,那就是自然常數與物理定律不可能改變(也許),所以不存在累進式演化,從而致使一個自然選擇過程。
當然,我們也可以更激進一點,認為自然常數和物理定律也是可以改變的(比如萊姆在《新宇宙演化論》中提出的,也比如《獵戶座防線》),從而也就存在了某種意義上的自然演化。
因而,從這個角度來說,什么是人擇原理?
宇宙的人擇原理,就是在多宇宙中演化出我們這樣的人類的一個自然選擇/演化過程。
而生物的人擇原理,就是在地球上演化出我們這樣的人類的一個累進式自然演化過程。
因此,個人一貫認為對于人擇原理的爭論很無聊。。。
進一步演化
我們除了可以將宇宙看作是某種意義上的圖靈機,還存在另外一些東西也可以這么來
看待。
事實上,如果將生命看作是V與S的結果,即一切能描述成一個信息空間中V與S的過程的系統都能視為生命——蔡汀在書中討論過,生命可以被看作是具有演化能力的一種模式。
從這個意義上來說,純數學上的圖靈機當然也可以被視為生命了——我們就是利用圖靈機來論證演化的啊!
進一步,人工智能,如果存在的話,當然也可以被視為生命。
甚至于,我們可以更加激進地擴大化地認為,模因也是一種基因,從而社會乃至科技都可以視為生命。
這些東西又將如何演化呢?
這么一看,V與S的演化問題不單單包括了生命的論題,也包括了宇宙、社會、科技,以及,人工智能為代表的超人。
那么,這些東西的出現是否如人擇所說的一般是一種必然或者偏好呢?
這倒是不重要。
重要的是——
下一步,路在何方?
請看幾年前寫的:《演化之路》。
終于寫完這篇東西了,呼呼~~
一本正經說《證明達爾文》這本書的倒是沒幾行字,哎……
前面的內容還敢自稱比較硬,最后的一部分,這個,似乎是水了點。
找個機會寫個續章,就最后的幾個問題好好展開一下,應該很有意思。
∑編輯?|?Gemini
來源 | 簡書
算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、算法、計算機、編程等相關領域,經采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
總結
以上是生活随笔為你收集整理的图灵,蔡汀,达尔文:计算中的上帝的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个 IT 青年北漂四年的感悟
- 下一篇: 这六个问题,让物理学家寝食难安