計(jì)算機(jī)思維的大基礎(chǔ)
盡管人腦的思維模式極為精巧,我們?nèi)钥赏ㄟ^軟件對(duì)人腦進(jìn)行模擬。要想做到這一點(diǎn),計(jì)算機(jī)必須具備準(zhǔn)確的溝通、記憶和計(jì)算能力,具有計(jì)算的通用性和馮·諾依曼結(jié)構(gòu),并且能夠按大腦核心算法進(jìn)行創(chuàng)造性思維。
我們的大腦外在形態(tài)好似一塊法國鄉(xiāng)村面包,內(nèi)在像是一個(gè)擁擠的化學(xué)實(shí)驗(yàn)室,充斥著無間斷的神經(jīng)元對(duì)話??梢园汛竽X想象成一堆發(fā)光的存在;一個(gè)鼠灰色的細(xì)胞“議會(huì)”;一個(gè)夢(mèng)工廠;一個(gè)住在球狀頭骨內(nèi)的小小君王;一團(tuán)雜亂的神經(jīng)細(xì)胞,微小但無處不在,導(dǎo)演著一切人生戲劇;一個(gè)變幻無常的樂園;或是一個(gè)名叫“頭骨”的“衣櫥”里塞滿了各式各樣名叫“自我”的“行頭”,擠得皺皺巴巴的,仿佛小小的運(yùn)動(dòng)隨身包里裝了太多衣服。
戴安·艾克曼
大腦會(huì)存在是因?yàn)闉榱司S持生存必須對(duì)資源進(jìn)行分配,而且隨著空間和時(shí)間的變化,威脅生存的因素也在不斷變化。
約翰·奧爾曼
現(xiàn)代大腦地圖給人一種有趣的古舊感——就像一張中世紀(jì)的地圖,已知世界被散布著不知名怪獸的未知之地環(huán)繞。
大衛(wèi)·班布里基
在數(shù)學(xué)中你并沒有理解什么東西,你只是習(xí)慣了它們而已。
約翰·馮·諾依曼
自從20世紀(jì)中期電腦出現(xiàn)以來,關(guān)于電腦的能力極限,以及人腦能否被視為一種形式的電腦的爭(zhēng)論就沒有間斷過。對(duì)于后一個(gè)問題,輿論共識(shí)已經(jīng)發(fā)生轉(zhuǎn)變,從認(rèn)為這兩種信息處理實(shí)體在本質(zhì)上是相同的,轉(zhuǎn)變?yōu)檎J(rèn)為兩者存在本質(zhì)上的不同。那么大腦是否可被視為電腦呢?
20世紀(jì)40年代,電腦開始成為時(shí)髦的話題,它們被視為思考機(jī)器。1946年,世界上第一臺(tái)電子數(shù)字積分計(jì)算機(jī)ENIAC發(fā)布,它被媒體稱為“巨腦”。隨著電腦在接下來的幾十年里走入大眾市場(chǎng),廣告常常稱其為普通人腦無法企及的、擁有超能力的“大腦”(見圖8—1)。
圖8—1 1957年的一則廣告,寓意電腦是一個(gè)巨型的大腦
程序使電腦名副其實(shí)。由卡內(nèi)基·梅倫大學(xué)的赫伯特·西蒙(Herbert A.Simon)、J.C.肖(J.C.Shaw)和艾倫·紐厄爾(Allen Newell)發(fā)明的“通用問題解算機(jī)”,成功證明了數(shù)學(xué)家伯特蘭·羅素(Bertrand Russell)和阿爾弗雷德·諾斯·懷特海(Alfred North Whitehead)在他們1913年出版的名著《數(shù)學(xué)原理》(Principia Mathematica)中無法論證的定理。在接下來的幾十年里,電腦在解決數(shù)學(xué)問題、診斷疾病、下國際象棋等智力運(yùn)動(dòng)方面凸顯出大大超越人腦的優(yōu)勢(shì),但在控制機(jī)器人系鞋帶,或是學(xué)習(xí)5歲大兒童就能理解的常用語言方面卻困難重重,計(jì)算機(jī)現(xiàn)在才剛剛能夠掌握這些技能。具有諷刺意味的是,電腦的進(jìn)化與人類智能的成熟方向正好相反。
關(guān)于電腦和人腦在某種程度上是否等同的問題至今仍存在爭(zhēng)議。在序言中我提到關(guān)于人腦的復(fù)雜性可以查到無數(shù)種引證。同樣,在google上搜索“大腦不等同于電腦的引證”,也可以得到上百萬條鏈接結(jié)果。在我看來,這些鏈接的內(nèi)容都無異于在說“蘋果醬不是蘋果”。從技術(shù)上來說這種說法沒有錯(cuò),但蘋果可以做出蘋果醬。類似于“電腦不是文字處理器”之類的說法可能更加貼切一些。盡管電腦和文字處理器存在于不同的概念層面是事實(shí),但是電腦在運(yùn)行文字處理軟件時(shí)就變成了文字處理器,反過來則不然。同樣,電腦如果運(yùn)行“大腦軟件”則可以變成人腦。這正是很多研究人員,包括我自己正在嘗試的事情。
那么問題就變成了我們是否可以找到一種算法使電腦變成等同于人腦的存在。由于具有內(nèi)在通用性(僅受容量大小制約),一臺(tái)電腦可以運(yùn)行我們定義的各種算法,人腦卻只能運(yùn)行一套特定的算法。盡管人腦的模式相當(dāng)精巧,不僅有極大的可塑性,還可以在自身經(jīng)驗(yàn)的基礎(chǔ)上重建連接,但這些功能我們可以通過軟件進(jìn)行仿真。
基礎(chǔ)1:準(zhǔn)確的溝通、記憶和計(jì)算能力
計(jì)算的通用性的理念(即一臺(tái)普通目的的電腦可以植入各種算法)在第一臺(tái)機(jī)器產(chǎn)生時(shí)就出現(xiàn)了。計(jì)算的通用性和可能性及對(duì)人類思維的適用性包含4個(gè)核心概念,它們很值得探討,因?yàn)槿四X也在對(duì)其進(jìn)行運(yùn)用。第一個(gè)是準(zhǔn)確的溝通、記憶和計(jì)算能力。在1940年,如果你使用“計(jì)算”這個(gè)詞,人們會(huì)認(rèn)為你在說模擬電腦。模擬電腦的數(shù)字由不同程度的電壓代表,而且特定的模塊可以運(yùn)行加、乘等運(yùn)算。然而,模擬電腦的一個(gè)很大的限制是準(zhǔn)確性存在問題。其準(zhǔn)確性只能達(dá)到小數(shù)點(diǎn)后兩位數(shù),而且隨著處理代表不同數(shù)字的電壓的操作員增加,錯(cuò)誤也隨之增多。所以無法進(jìn)行較大量的計(jì)算,因?yàn)榻Y(jié)果會(huì)由于準(zhǔn)確性太低而失去意義。
只要曾用模擬磁帶機(jī)錄制過音樂的人都會(huì)知道這一效應(yīng)。第一遍拷貝的質(zhì)量會(huì)打折,相比原版聽起來有較多雜音(此處的“雜音”代表隨機(jī)錯(cuò)誤)。把第一遍拷貝再進(jìn)行拷貝會(huì)出現(xiàn)更多雜音,到第十遍的拷貝時(shí),基本上就只剩下雜音了。數(shù)字計(jì)算機(jī)的崛起伴隨著同樣的問題,思考一下數(shù)字信息的溝通通道我們就可以理解了。沒有任何通道是完美的,通道本身都存在一定的錯(cuò)誤率。假設(shè)一條通道有90%的可能性能正確傳送每個(gè)比特的信息。如果我傳送的信息有1比特,那這條通道正確傳送它的可能性為0.9,假如我傳送2比特信息呢?那準(zhǔn)確率就變成了0.92=0.81。假如我傳送1字節(jié)(8比特)信息呢?那我準(zhǔn)確傳送該信息的可能概率連50%都達(dá)不到(準(zhǔn)確地說是0.43)。準(zhǔn)確傳送5字節(jié)信息的可能性僅為1%。
解決這個(gè)問題的一個(gè)方法就是增加通道的準(zhǔn)確性。假設(shè)一個(gè)通道在傳送一百萬比特時(shí)出現(xiàn)一個(gè)錯(cuò)誤,如果我傳送的文件包含50萬字節(jié)(約為一個(gè)普通的程序或數(shù)據(jù)庫的大?。?,盡管通道固有的準(zhǔn)確性較高,但正確傳送它的可能性仍不到2%,而單單一個(gè)比特的錯(cuò)誤就可以徹底毀掉整個(gè)程序或其他形式的電子數(shù)據(jù),所以這種情形并不能令人滿意。除了通道的準(zhǔn)確性,另一個(gè)棘手的問題是傳送中出現(xiàn)錯(cuò)誤的可能性隨著信息量的增加而迅速增加。
模擬計(jì)算機(jī)通過柔性降級(jí)的方法處理該問題(即用戶只用其處理能容忍出現(xiàn)一些小錯(cuò)誤的問題)。如果用戶能將其運(yùn)用限制于一定的計(jì)算,那么模擬計(jì)算機(jī)確實(shí)是有用的。然而數(shù)字化計(jì)算機(jī)要求連續(xù)的通信,不僅是在不同的計(jì)算機(jī)之間,也包括計(jì)算機(jī)自身內(nèi)部:從內(nèi)存到中央處理器之間存在通信;在中央處理器中,不同寄存器和算法單元之間也在進(jìn)行通信;在算法單元內(nèi),從一個(gè)比特寄存器到另一個(gè)之間也在進(jìn)行交換。通信在每個(gè)層次上都普遍存在。如果錯(cuò)誤率隨著通信的增多快速增加,而一個(gè)比特的錯(cuò)誤就可以破壞整個(gè)過程的完整性,那么數(shù)字化計(jì)算注定會(huì)失敗,至少在當(dāng)時(shí)看來是這樣的。
引人注目的是,這種普遍的認(rèn)識(shí)在美國數(shù)學(xué)家克勞德·香農(nóng)(Claude Shannon)出現(xiàn)并展示了怎樣通過最不可靠的溝通通道來進(jìn)行精度很高的通信時(shí)得以改變。1948年7月和10月,香農(nóng)在《貝爾系統(tǒng)技術(shù)雜志》(Bell System Technical Journal)上發(fā)表了具有里程碑意義的論文《通信的數(shù)學(xué)原理》(A Mathematical Theoryo of Communication),提出噪聲通道編碼理論。他認(rèn)為無論通道的錯(cuò)誤率是多少(除了錯(cuò)誤率正好為每比特50%的通道,因?yàn)檫@意味著該通道傳輸?shù)氖羌兇獾脑肼暎伎梢园聪胍木葌魉托畔?。換句話說,傳輸?shù)腻e(cuò)誤率可以是n比特分之一,但是n的大小可以隨意定義。比如說,在端限情況下,就算一個(gè)通道的正確率僅為51%(即該通道傳送的正確信息的比特?cái)?shù)僅比錯(cuò)誤信息的比特?cái)?shù)多一點(diǎn)兒),仍然可以使傳輸?shù)男畔㈠e(cuò)誤率達(dá)到百萬分之一,甚至萬億分之一,甚至更小。
這是怎么做到的呢?秘訣就在于冗余。這在現(xiàn)在看來似乎是顯而易見的,但在當(dāng)時(shí)則不然。舉一個(gè)簡(jiǎn)單的例子,假如我每比特信息都傳送3次,并且選傳輸后多數(shù)相同的那條信息,那么我就可以大大地提高信息的可靠性。不斷增加冗余就能讓你得到你需要的精度。不斷重復(fù)傳送信息是從準(zhǔn)確性較低的通道得到任意高精度信息最簡(jiǎn)單的方法,但不是最有效率的方法。香農(nóng)的論文開創(chuàng)了信息理論這一領(lǐng)域,為錯(cuò)誤偵查和校正碼提供了最理想的方法,使在任意非隨機(jī)通道條件下獲得任意目標(biāo)精度成為可能。
年紀(jì)較大的讀者可以回想一下電話調(diào)制解調(diào)器,它通過嘈雜的模擬電話線路傳遞信息。幸好有了香農(nóng)的噪聲通道理論,盡管這些線路存在可以聽到的明顯的嘶嘶聲、砰砰聲或其他形式的聲音失真,它們?nèi)匀豢梢詡魉透呔鹊臄?shù)字化信息。數(shù)字存儲(chǔ)器也存在同樣的問題和解決辦法。你是否想過為什么就算唱片曾掉在地上并且有刮痕,CD、DVD或其他磁盤軟件仍能準(zhǔn)確地讀出音樂嗎?這也多虧了香農(nóng)。
計(jì)算包含3個(gè)部分:通信(正如我之前提到的,在計(jì)算機(jī)內(nèi)部和計(jì)算機(jī)之間普遍存在)、存儲(chǔ)器和邏輯門(可進(jìn)行計(jì)算和邏輯功能)。邏輯門的準(zhǔn)確性可以通過錯(cuò)誤偵查和校正碼達(dá)到任意高的精度。幸好有了香農(nóng)的理論,不管多大多復(fù)雜的數(shù)字化信息和算法,我們都可以準(zhǔn)確處理,避免過程中出現(xiàn)較高的錯(cuò)誤率。需要指出的很重要的一點(diǎn)是,我們的大腦也在運(yùn)用香農(nóng)的理論。當(dāng)然,人腦的進(jìn)化遠(yuǎn)遠(yuǎn)先于香農(nóng)發(fā)現(xiàn)這一原理。絕大部分模式或思想(思想也是一種模式)在大腦中儲(chǔ)存時(shí)都包含大量的冗余。冗余出現(xiàn)的首要原因是神經(jīng)傳輸系統(tǒng)自身的不可靠性。
基礎(chǔ)2:計(jì)算的通用性
第二個(gè)信息時(shí)代所依賴的重要思想是我之前提到過的:計(jì)算的通用性。1936年,阿蘭·圖靈提出“圖靈機(jī)”(見圖8—2),但它并非真實(shí)存在,僅僅是一種假想的機(jī)器。他的假想計(jì)算機(jī)包含無限長(zhǎng)的記憶磁帶,每個(gè)平方上有一個(gè)1或0。輸入呈現(xiàn)在記憶磁帶上,機(jī)器每次可以讀出一個(gè)平方。這臺(tái)機(jī)器還包含一個(gè)規(guī)則表(核心是一個(gè)記憶程序),是由數(shù)字編碼的各種狀態(tài)組成的。如果被讀出的平方上的數(shù)字為0,每條規(guī)則指定一個(gè)行動(dòng),如果為1則指定另一個(gè)行動(dòng)??赡艿男袆?dòng)包括在記憶磁帶上寫0或1,將記憶磁帶向右或向左移動(dòng)一個(gè)平方,或者停止。每條狀態(tài)都會(huì)指定機(jī)器應(yīng)該讀取的下一條狀態(tài)的數(shù)字。
“圖靈機(jī)”的輸入呈現(xiàn)在記憶磁帶上。程序不斷運(yùn)行,當(dāng)機(jī)器停止工作時(shí),它已完成了算法,并且將過程輸出在記憶磁帶上。請(qǐng)注意,雖然磁帶的長(zhǎng)度在理論上是無限的,但實(shí)際的程序如果不進(jìn)入無限循環(huán)的話只會(huì)用掉有限長(zhǎng)的磁帶,所以假如我們只去看那部分有限的磁帶,就可以解決一類有用的問題。
圖8—2 無限的記憶磁帶
注:圖靈機(jī)的框圖,帶一個(gè)能讀寫磁帶的前端,還有一個(gè)由狀態(tài)轉(zhuǎn)換組成的內(nèi)置程序。
如果你認(rèn)為“圖靈機(jī)”聽上去很簡(jiǎn)單,那是因?yàn)檫@正是發(fā)明者的目的所在,圖靈希望他的機(jī)器盡可能簡(jiǎn)單(但不是簡(jiǎn)化,引用愛因斯坦的說法)。圖靈和他的前教授阿隆佐·邱奇(Alonzo Church)接著開發(fā)了邱奇—圖靈論,稱如果一個(gè)問題無法利用圖靈機(jī)解決,那根據(jù)自然定律,任何其他機(jī)器也解決不了。盡管圖靈機(jī)只有少數(shù)命令,并且每次只能處理1比特,但它能完成任何其他計(jì)算機(jī)能完成的計(jì)算。換一種說法就是“圖靈完全”(即擁有與圖靈機(jī)同等能力)的機(jī)器能夠完成任何算法,即任何我們能定義的程序。
邱奇—圖靈論的一種強(qiáng)有力的詮釋在本質(zhì)上將人的思想或認(rèn)知與機(jī)器的計(jì)算等同起來,其基本論點(diǎn)是人腦同樣遵循自然定律,因此它的信息處理能力不可能超過機(jī)器,即圖靈機(jī)。
我們可以將圖靈發(fā)表于1936年的論文視為計(jì)算理論的基礎(chǔ),但同時(shí)也應(yīng)注意到他深受匈牙利裔美國數(shù)學(xué)家約翰·馮·諾依曼的影響。馮·諾依曼1935年于劍橋講授他的存儲(chǔ)程序概念,這一概念在圖靈機(jī)中得到深刻的體現(xiàn)。反過來,馮·諾依曼也受到圖靈發(fā)表于1936年的論文的影響,該論文提出了計(jì)算的原則,在20世紀(jì)30年代末和40年代初成為同行必讀論文一。
在該論文中,圖靈提出了另一個(gè)意想不到的發(fā)現(xiàn):無法解決的問題,它們由唯一的答案定義,并且答案是存在的,但我們可以證明它們無法通過任何圖靈機(jī)進(jìn)行計(jì)算,即無法通過任何機(jī)器計(jì)算。這與19世紀(jì)的認(rèn)識(shí)——只要問題能被定義,那么最終就能被解決——正好相反。圖靈向我們展示了無法解決的問題和可以解決的問題一樣多。澳大利亞裔美國數(shù)學(xué)家和哲學(xué)家?guī)鞝柼亍じ绲聽枺↘urt G?del)在他1931年提出的“不完全定理”中提出了類似的結(jié)論。我們因此面臨一個(gè)令人困惑的情形,即我們可以定義一個(gè)問題,也可以證明唯一的答案存在,但卻永遠(yuǎn)得不到答案。
圖靈展示了在本質(zhì)上,計(jì)算是基于一個(gè)非常簡(jiǎn)單的機(jī)制。因?yàn)閳D靈機(jī)(包括任何計(jì)算機(jī))能夠?qū)⑺磥淼男袆?dòng)進(jìn)程建立在已經(jīng)計(jì)算出的結(jié)果之上,因此它能夠進(jìn)行決策并對(duì)任何復(fù)雜的信息層級(jí)進(jìn)行建模。
1939年,圖靈設(shè)計(jì)了一個(gè)叫作“炸彈”的電子計(jì)算器,幫助破譯了納粹“謎”式密碼機(jī)編寫的情報(bào)。1943年,一個(gè)受圖靈影響的工程師小組發(fā)明了“巨像”計(jì)算機(jī),這可以說是世界上第一臺(tái)電腦,它幫助同盟國解碼了更復(fù)雜的“謎”式密碼機(jī)編寫的情報(bào)?!罢◤棥焙汀熬尴瘛笔轻槍?duì)某一個(gè)任務(wù)設(shè)計(jì)的,并且不能被重新編程用于解決其他任務(wù),但是它們都出色地完成了自己的使命,幫助同盟國克服了納粹德國空軍相對(duì)于英國皇家空軍的三比一的優(yōu)勢(shì),并對(duì)納粹可能采取的戰(zhàn)術(shù)進(jìn)行預(yù)測(cè),使英國獲得了關(guān)鍵戰(zhàn)役的勝利。
基礎(chǔ)3:馮·諾依曼結(jié)構(gòu)
在前文所述基礎(chǔ)之上,約翰·馮·諾依曼設(shè)計(jì)了現(xiàn)代計(jì)算機(jī)的構(gòu)造,這引出了我的第三個(gè)主要思想:被稱作“馮·諾依曼機(jī)”的結(jié)構(gòu)構(gòu)成了過去67年里每臺(tái)計(jì)算機(jī)實(shí)質(zhì)上的核心結(jié)構(gòu),從你家洗衣機(jī)里的微型控制器到最大型的超級(jí)計(jì)算機(jī),無一例外。在寫于1945年6月30日,題目叫做《關(guān)于電子數(shù)據(jù)計(jì)算機(jī)報(bào)告的第一次草案》(First Draft of A Report on The EDVAC)的論文中,馮·諾依曼提出了自此以后主導(dǎo)計(jì)算領(lǐng)域的理論,即馮·諾依曼模型——包括一個(gè)進(jìn)行計(jì)算和邏輯運(yùn)算的中央處理器,一個(gè)存儲(chǔ)程序和數(shù)據(jù)的內(nèi)存單元,一個(gè)大容量存儲(chǔ)器,一個(gè)程序計(jì)數(shù)器,以及輸出/輸入通道。盡管這篇論文的本意是作為內(nèi)部項(xiàng)目文件,但它實(shí)際上已成為計(jì)算機(jī)設(shè)計(jì)師的“圣經(jīng)”。你永遠(yuǎn)也想不到一個(gè)看似普通的日常內(nèi)部備忘錄也許會(huì)在某一天改變整個(gè)世界。
圖靈機(jī)并不是為了實(shí)用而設(shè)計(jì)的。圖靈的定理并不著重于解決問題,而在于檢視理論上能通過計(jì)算解決的問題的邊界。馮·諾依曼的目的是提出一個(gè)計(jì)算機(jī)器的可行性模型。他的模型用多比特語言代替了圖靈的單比特計(jì)算(通常是8比特的倍數(shù))。圖靈的記憶磁帶是連續(xù)的,所以圖靈機(jī)的程序在存儲(chǔ)和提取結(jié)果時(shí)需要花費(fèi)大量時(shí)間來回倒帶或進(jìn)帶。相較之下,馮·諾依曼的存儲(chǔ)器是隨機(jī)存取的,所以任何數(shù)據(jù)都可以立刻被提取出。
馮·諾依曼的一個(gè)核心觀點(diǎn)是他10年前引入的關(guān)于存儲(chǔ)程序的:將程序像數(shù)據(jù)一樣放在同樣類型的隨機(jī)存取存儲(chǔ)器中(通常放在同樣的內(nèi)存區(qū)塊中),就可以使計(jì)算機(jī)通過重新編程來應(yīng)對(duì)不同的任務(wù),同時(shí)進(jìn)行代碼的自我修改(假如記憶程序可寫的話),從而實(shí)現(xiàn)一種強(qiáng)大的遞歸形式。在那之前,所有的電腦,包括“巨像”,都是設(shè)計(jì)來解決一種任務(wù)的。存儲(chǔ)程序使計(jì)算機(jī)通用化成為可能,從而實(shí)現(xiàn)圖靈關(guān)于通用計(jì)算的設(shè)想。
馮·諾依曼機(jī)的另一個(gè)關(guān)鍵方面在于各個(gè)指令都包含一個(gè)指定要進(jìn)行的算術(shù)或邏輯運(yùn)算的操作代碼和一個(gè)指向內(nèi)存中的操作數(shù)的地址。
馮·諾依曼關(guān)于計(jì)算機(jī)架構(gòu)的理念是通過他設(shè)計(jì)的電子數(shù)據(jù)計(jì)算機(jī)(EDVAC)的問世為人所知的。EDVAC是他和J.普雷斯伯·??颂兀↗.Presper Eckert)、約翰·莫克利(John Mauchly)合作的項(xiàng)目。EDVAC直到1951年才開始真正運(yùn)行,當(dāng)時(shí)還出現(xiàn)了其他存儲(chǔ)程序計(jì)算機(jī),比如曼徹斯特小規(guī)模實(shí)驗(yàn)機(jī),電子數(shù)字積分計(jì)算機(jī)(ENIAC),電子延時(shí)儲(chǔ)存自動(dòng)計(jì)算機(jī)(EDSAC),二進(jìn)制自動(dòng)計(jì)算機(jī)(BINAC),它們都多多少少受到馮·諾依曼論文的影響,而且??颂睾湍死紖⑴c了設(shè)計(jì)。所有這些機(jī)器的產(chǎn)生,包括ENIAC之后推出的支持存儲(chǔ)程序的版本,馮·諾依曼都是當(dāng)之無愧的直接貢獻(xiàn)者。
馮·諾依曼機(jī)問世之前還出現(xiàn)過幾位先導(dǎo),但它們中沒有一個(gè)是真正的馮·諾依曼機(jī)。1944年霍華德·艾肯推出了馬克一代,它有可編程的元素但不使用存儲(chǔ)程序。它從一個(gè)穿孔的紙帶上讀取指令,然后立刻執(zhí)行各項(xiàng)命令,但缺乏條件分支指令。
1941年德國科學(xué)家康拉德·楚澤(Konrad Zuse)創(chuàng)造了Z-3計(jì)算機(jī)。它也是從一個(gè)記憶磁帶(用的是膠卷)上讀取程序,沒有條件分支指令。有趣的是,楚澤得到德國飛行器研究機(jī)構(gòu)的支持,該機(jī)構(gòu)用楚澤的設(shè)備來研究機(jī)翼的擺動(dòng),但楚澤向納粹政府提出的用真空管更換繼電器的資金支持申請(qǐng)卻遭到了拒絕,因?yàn)榧{粹政府認(rèn)為研究計(jì)算對(duì)戰(zhàn)爭(zhēng)來說不那么重要。在我看來,納粹戰(zhàn)敗的結(jié)果幾乎可以用這種錯(cuò)誤觀點(diǎn)的長(zhǎng)期存在來解釋。
但馮·諾依曼的理念有一位真正的先驅(qū),并且可以追溯到整整一個(gè)世紀(jì)之前!他就是英國數(shù)學(xué)家和發(fā)明家查爾斯·巴貝奇(Charles Babbage)。1837年,巴貝奇首次描述了一種名為分析機(jī)的機(jī)器,該機(jī)器就體現(xiàn)了馮·諾依曼的理念,其特點(diǎn)是用穿孔卡片作為存儲(chǔ)程序,靈感來自于雅卡爾織布機(jī)。它的隨機(jī)存取存儲(chǔ)器包含1000個(gè)字,每個(gè)字由50個(gè)十進(jìn)位數(shù)組成(等同于約21個(gè)千字節(jié))。它的各個(gè)指令包含一個(gè)操作碼和一個(gè)操作數(shù),就像現(xiàn)代機(jī)器語言。它還包含條件分支和循環(huán),所以是貨真價(jià)實(shí)的馮·諾依曼機(jī)。它完全基于機(jī)械齒輪。分析機(jī)似乎超出了巴貝奇的設(shè)計(jì)和組織技能,他制造出了各個(gè)部件但并沒有真正讓它運(yùn)行起來。但我們不清楚包括馮·諾依曼在內(nèi)的20世紀(jì)的計(jì)算機(jī)鼻祖?zhèn)兪欠駥?duì)巴貝奇的工作有所了解。
巴貝奇的計(jì)算機(jī)實(shí)際上導(dǎo)致了軟件編程領(lǐng)域的產(chǎn)生。英國作家艾達(dá)·拜倫(Ada Byron)——勒芙蕾絲伯爵夫人,詩人羅德·拜倫的唯一合法繼承人可以說是世界上第一個(gè)計(jì)算機(jī)程序設(shè)計(jì)員。她為分析機(jī)編寫了程序,即今天軟件工程師所熟知的“查表法”。不過,她只需要在自己的腦子里進(jìn)行調(diào)試(因?yàn)橛?jì)算機(jī)從沒有真正工作過)。她翻譯了意大利數(shù)學(xué)家路易吉·梅約布雷亞(LuigiMenabrea)關(guān)于分析機(jī)的文章并加上大量自己的注釋。她寫道:“分析機(jī)編織代數(shù)的模式如同雅卡爾織布機(jī)編織出花朵和葉子的花紋一樣。”她接著提出了可能是世界上第一個(gè)關(guān)于人工智能可能性的推斷,又總結(jié)說分析機(jī)“不能自命不凡,認(rèn)為什么問題都能解決”。
巴貝奇能在他生活和工作的時(shí)代提出如此先進(jìn)的理念不能不令人稱奇,但直到20世紀(jì)中期他的思想才得到人們的重視。是馮·諾依曼使我們今天所熟知的計(jì)算機(jī)原則概念化和清晰化,而且馮·諾依曼機(jī)作為計(jì)算的最重要模型在全世界得到普遍認(rèn)可。但要記住的是,馮·諾依曼機(jī)在各種單元之間和單元內(nèi)部持續(xù)地進(jìn)行數(shù)據(jù)通信,因此它的實(shí)現(xiàn)多虧了香農(nóng)提出的對(duì)數(shù)字化信息進(jìn)行可靠傳輸和存儲(chǔ)的理論。
基礎(chǔ)4:按大腦核心算法進(jìn)行創(chuàng)造性思考
這引出了我們的第四個(gè)重要的思想,即打破艾達(dá)·拜倫提出的計(jì)算機(jī)不能進(jìn)行創(chuàng)造性思考的結(jié)論,探索大腦采用的核心算法,將電腦變成人腦。阿蘭·圖靈在他1950年的論文《計(jì)算機(jī)器和智能》(Computing Machinery and Intelligence)中提出這個(gè)目標(biāo),還設(shè)計(jì)了今天有名的圖靈測(cè)試來確認(rèn)某一人工智能是否能達(dá)到人類的智力水平。
1956年,馮·諾依曼開始為耶魯大學(xué)享有聲望的西里曼講座系列準(zhǔn)備講演。但由于癌癥的折磨,他沒有機(jī)會(huì)真正登上講臺(tái),也沒有完成手稿。但這些未完成的手稿仍然對(duì)計(jì)算機(jī)的發(fā)展——在我看來是人類最令人卻步又最為重要的工程,作出了精彩而有預(yù)見性的構(gòu)想,并于1958年作者去世后出版,名為《計(jì)算機(jī)與人腦》(The Computer and The Brain)。20世紀(jì)最杰出的數(shù)學(xué)家和電腦時(shí)代的先驅(qū)的最后著作是對(duì)智能的檢視,這真是再合適不過了。這部作品是最早從數(shù)學(xué)家和計(jì)算機(jī)科學(xué)家的角度對(duì)人腦進(jìn)行的嚴(yán)肅探究。在馮·諾依曼之前,計(jì)算機(jī)科學(xué)和神經(jīng)科學(xué)是沒有任何交集的兩個(gè)領(lǐng)域。
馮·諾依曼應(yīng)用計(jì)算通用性的概念得到的結(jié)論是:盡管人腦和計(jì)算機(jī)的結(jié)構(gòu)截然不同,但仍可以認(rèn)為馮·諾依曼機(jī)能夠模仿人腦對(duì)信息的加工過程。反之則不然,因?yàn)槿四X不是馮·諾依曼機(jī),而且沒有同樣的存儲(chǔ)程序(盡管我們的大腦可以模擬一個(gè)非常簡(jiǎn)單的圖靈機(jī)的工作過程),它的運(yùn)算法則或方式是內(nèi)隱于結(jié)構(gòu)中的。馮·諾依曼正確地歸納了神經(jīng)可以從輸入中學(xué)習(xí)模式,這些模式現(xiàn)在已被確定,并且部分通過樹突強(qiáng)度來編碼。在馮·諾依曼的時(shí)代還不為人所知的是,學(xué)習(xí)同樣通過神經(jīng)元連接的建立和破壞來進(jìn)行。
馮·諾依曼有預(yù)見性地指出神經(jīng)加工的速度極為緩慢,大約每秒能進(jìn)行100次計(jì)算,但是大腦通過大量的并行處理來補(bǔ)償速度——這是他的又一個(gè)重要的洞察。馮·諾依曼認(rèn)為大腦的1010個(gè)神經(jīng)在同時(shí)工作(這個(gè)估計(jì)值相當(dāng)準(zhǔn)確,今天估計(jì)的數(shù)目在1010到1011之間)。實(shí)際上,每個(gè)連接(每個(gè)神經(jīng)平均有約103到104個(gè)連接)也都在同時(shí)進(jìn)行計(jì)算。
考慮到當(dāng)時(shí)神經(jīng)科學(xué)的發(fā)展還處于初始階段,馮·諾依曼對(duì)神經(jīng)加工過程的推測(cè)和描述工作稱得上是非常杰出。但他對(duì)大腦記憶容量的推測(cè)我卻無法茍同。他稱大腦能記住人一生中所有的輸入。他認(rèn)為人的平均壽命為60年,即2×109秒。每秒每個(gè)神經(jīng)約有14個(gè)輸入(這比實(shí)際情況低了至少3個(gè)數(shù)量級(jí)),神經(jīng)總數(shù)為1010個(gè),那么可推斷大腦總的記憶容量約為1020比特。但正如我之前提到的,事實(shí)上我們只能記住我們的思想和經(jīng)歷的一小部分,而且這些記憶的存儲(chǔ)模式不是處于較低水平的比特模式(像視頻圖像一樣),而是處于較高水平的序列模式。
馮·諾依曼在提出大腦工作的各個(gè)機(jī)制的同時(shí),也展示了現(xiàn)代計(jì)算機(jī)怎樣完成跟大腦同樣的工作。盡管兩者有明顯的差異,但是大腦的模擬機(jī)制可以被數(shù)字化仿真,因?yàn)閿?shù)字化計(jì)算可以實(shí)現(xiàn)任意精度的對(duì)模擬值的仿真(而且大腦內(nèi)的模擬信息精度非常低)??紤]到計(jì)算機(jī)在連續(xù)計(jì)算中顯著的速度優(yōu)勢(shì),大腦中的大規(guī)模平行工作構(gòu)造同樣可以被仿真。另外,我們也可以通過平行地使用馮·諾依曼機(jī)在計(jì)算機(jī)上實(shí)現(xiàn)并行處理——這正是今天的超級(jí)計(jì)算機(jī)工作的原理。
馮·諾依曼推斷說大腦的工作方式不能包含較長(zhǎng)的連續(xù)算法,否則人在如此慢的神經(jīng)計(jì)算速度下無法快速作出決定。當(dāng)三壘手拿到球并且決定扔到一壘而不是二壘時(shí),他是在不到一秒的時(shí)間內(nèi)作出這個(gè)決定的,這段時(shí)間僅夠各個(gè)神經(jīng)進(jìn)行少數(shù)幾輪循環(huán)。馮·諾依曼正確推斷了大腦的出色能力來自于一千億個(gè)細(xì)胞可以同時(shí)處理信息,因此視覺皮質(zhì)只需要3到4個(gè)神經(jīng)循環(huán)就能作出復(fù)雜的視覺判斷。
大腦極大的可塑性使我們能夠進(jìn)行學(xué)習(xí)。但計(jì)算機(jī)的可塑性更大,通過改變軟件就可以完全重建它的工作方式。因此,從這點(diǎn)上看,計(jì)算機(jī)可以仿真大腦,但反過來則不然。
馮·諾依曼在他的時(shí)代將進(jìn)行大量平行計(jì)算的大腦的容量與計(jì)算機(jī)進(jìn)行了對(duì)比,得出大腦有更強(qiáng)大的記憶力和速度的結(jié)論。現(xiàn)在能夠在功能上仿真人腦(每秒運(yùn)行約1016次),在某些方面能達(dá)到保守估計(jì)的人腦速度的第一代超級(jí)計(jì)算機(jī)已經(jīng)出現(xiàn)。(我預(yù)測(cè)這種水平的計(jì)算機(jī)在21世紀(jì)20年代初期的費(fèi)用將為1000美元左右。)在記憶容量方面,計(jì)算機(jī)和人腦就更接近了。雖然在他寫作手稿的時(shí)候計(jì)算機(jī)還處于發(fā)展的初始時(shí)期,但馮·諾依曼已充滿信心地認(rèn)為人類智能的“硬件”和“軟件”之謎最終會(huì)被解開,這也正是他準(zhǔn)備這些演講的動(dòng)機(jī)所在。
馮·諾依曼深刻地意識(shí)到科技發(fā)展不斷加快的腳步及其對(duì)人類未來的深遠(yuǎn)意義。在1957年他去世一年后,他的同事數(shù)學(xué)家斯坦·烏拉姆(Stan Ulam)引用他在20世紀(jì)50年代早期說過的話:“技術(shù)的加速發(fā)展和對(duì)人類生活模式的改變的進(jìn)程在朝向人類歷史上某種類似奇點(diǎn)的方向發(fā)展,在這個(gè)奇點(diǎn)之后,我們現(xiàn)在熟知的社會(huì)作用將不復(fù)存在。”這是人類技術(shù)史上第一次使用“奇點(diǎn)”這個(gè)詞。
馮·諾依曼的基本見解是電腦和人腦在本質(zhì)上等同。請(qǐng)注意,生物人的情商也是它智能的一部分。如果馮·諾依曼的見解是正確的,并且假如你能接受這個(gè)信念的飛躍,即令人信服地重現(xiàn)了生物人的智能(包括情感等其他方面)的非生物實(shí)體是有意識(shí)的,那么我們能得到的結(jié)論就是電腦(安裝了恰當(dāng)?shù)能浖┖腿祟愐庾R(shí)本質(zhì)上是可以等同的。那么,馮·諾依曼是正確的嗎?
今天絕大多數(shù)的電腦是完全數(shù)字化的,而人類大腦結(jié)合了數(shù)字法和模擬法。模擬法由數(shù)字法進(jìn)行再現(xiàn),再現(xiàn)較為容易且程序化,并能達(dá)到任意想要的精度。美國計(jì)算機(jī)科學(xué)家卡弗·米德(Carver Mead)提出了可以用他命名為“神經(jīng)形態(tài)”的硅制芯片直接仿真人腦的模擬法,這種方法比數(shù)字仿真模擬法的效率高上千倍。因?yàn)槲覀儗?duì)新皮質(zhì)大量重復(fù)的算法進(jìn)行了編纂,所以完全可以使用米德的方法。由達(dá)曼德拉·莫德哈(Dharmendra Modha)領(lǐng)導(dǎo)的IBM認(rèn)知計(jì)算小組已經(jīng)推出了能夠仿真神經(jīng)和神經(jīng)連接,并且能形成新連接的芯片,將之命名為“突觸”。它的其中一個(gè)芯片能直接仿真256個(gè)神經(jīng)和約25萬個(gè)突觸連接。這個(gè)項(xiàng)目的目的是創(chuàng)造一個(gè)非常接近人類大腦的,功率僅為1千瓦的,擁有100億神經(jīng)和100萬億神經(jīng)連接的仿真真皮質(zhì)。
正如馮·諾依曼在半個(gè)世紀(jì)之前描述的那樣,大腦運(yùn)行速度極其緩慢卻擁有大量的平行運(yùn)行線路。今天的數(shù)字電路至少比大腦的電化學(xué)交換快1000萬倍。不過,大腦真皮質(zhì)的3億個(gè)模式識(shí)別器同時(shí)運(yùn)行著,神經(jīng)元間的上百億個(gè)連接也同時(shí)進(jìn)行著計(jì)算。提供能成功模擬人腦的必要硬件的關(guān)鍵問題在于實(shí)現(xiàn)總的記憶容量和計(jì)算量,而不是直接復(fù)制大腦的結(jié)構(gòu),但這種做法非常缺乏效率和靈活性。
讓我們判斷一下這些硬件要滿足哪些要求。許多工程試圖模擬在新皮質(zhì)發(fā)生的分層學(xué)習(xí)和認(rèn)知模式,包括我自己在進(jìn)行的關(guān)于隱馬爾可夫?qū)蛹?jí)模型的研究。根據(jù)我自己的經(jīng)驗(yàn)作出的保守估計(jì)是,模擬生物大腦新皮質(zhì)上的一個(gè)模式識(shí)別器的一次循環(huán)需要約3000次計(jì)算。絕大部分仿真運(yùn)行的次數(shù)達(dá)不到這個(gè)估計(jì)數(shù)。大腦每秒進(jìn)行約102(100)次循環(huán),那么每秒每個(gè)模式識(shí)別器會(huì)達(dá)到3×105(300000)次計(jì)算。假設(shè)按我的估計(jì)模式識(shí)別器的數(shù)目在3×108(3億)左右,我們可以得到每秒1014(100萬億)次計(jì)算,這個(gè)數(shù)目與我在《奇點(diǎn)臨近》中的估算是一致的。在那本書中我推斷為了在功能上仿真大腦需要每秒進(jìn)行1014到1016次計(jì)算,而1016次每秒只是保守估計(jì)。人工智能專家漢斯·莫拉維克(Hans Moravec)根據(jù)整個(gè)大腦內(nèi)初始視力加工過程所需要的計(jì)算量推測(cè)得出的數(shù)字為1014次每秒,這與我的估計(jì)是一致的。
常規(guī)臺(tái)式計(jì)算機(jī)可以達(dá)到1010次每秒,但這個(gè)速度可以通過云資源得到極大的提升。最快的超級(jí)計(jì)算機(jī),日本的計(jì)算機(jī)K的速度已經(jīng)達(dá)到了1016次每秒??紤]到新皮質(zhì)的算法大都是重復(fù)進(jìn)行的,使用“神經(jīng)形態(tài)”芯片的方法,例如上文中提到的IBM的“突觸”的前景非常樂觀。
在記憶容量的要求方面,我們需要約30比特(約4字節(jié))來使一個(gè)連接響應(yīng)3億個(gè)模式識(shí)別器中的一個(gè)。如果我們估計(jì)每個(gè)模式識(shí)別器向上平均有8個(gè)輸入,即每個(gè)識(shí)別器收到32字節(jié)輸入。如果我們給每個(gè)輸入多加1字節(jié),那么就有40字節(jié)。加上向下連接的32字節(jié),總共就有72字節(jié)。但連接上下層級(jí)的分支通常會(huì)遠(yuǎn)遠(yuǎn)多于8個(gè)輸入。請(qǐng)注意,較大的分支樹通常由多個(gè)識(shí)別器共享,比如,可能會(huì)有上百個(gè)識(shí)別器參與識(shí)別字母“p”,那么在更高一層,即識(shí)別包含“p”的單詞或詞組的層級(jí)就會(huì)有更多的、成千上萬個(gè)識(shí)別器參與。然而,各個(gè)較低層級(jí)的“p”識(shí)別器并不分別占有連接高一層級(jí)的分支樹,而是共享同一個(gè)連接分支樹。對(duì)于向下的連接也是同樣的道理:一個(gè)負(fù)責(zé)單詞“APPLE”的識(shí)別器會(huì)通知所有低一層級(jí)的負(fù)責(zé)字母“E”的識(shí)別器,如果它看到了“A”、“P”、“P”、“L”那么就有可能會(huì)出現(xiàn)“E”。對(duì)于需要向低一層級(jí)通知“E”可能會(huì)出現(xiàn)的各個(gè)單詞或詞組識(shí)別器而言,連接樹并不是多個(gè)重疊的,而是共享同一個(gè)。因?yàn)檫@個(gè)原因,總體上估計(jì)平均每個(gè)識(shí)別器上下各8個(gè)輸入是合理的。即使增加個(gè)別識(shí)別器的估計(jì)數(shù),也不會(huì)顯著影響估計(jì)結(jié)果的數(shù)量級(jí)。
3×108(3億)個(gè)模式識(shí)別器各有72字節(jié)輸入,那么加起來總共就可以得到2×1010(200億)字節(jié)的記憶容量。這對(duì)于今天的常規(guī)計(jì)算機(jī)來說算不上一個(gè)太大的數(shù)字。
以上這些估算主要是為了提供一個(gè)大致的數(shù)量級(jí)估計(jì)??紤]到數(shù)字電路的速度是新皮質(zhì)的生物性電路的1000萬倍,我們就不需要在平行構(gòu)造的規(guī)模方面向人腦看齊,一般規(guī)模的平行構(gòu)造就足夠了(人腦中的平行線路高達(dá)萬億級(jí))。我們可以看到計(jì)算方面的必要要求都已經(jīng)能夠達(dá)到了。大腦的重新連接——樹突持續(xù)不斷地產(chǎn)生新的突觸,也可以通過運(yùn)用連接的軟件來仿真,這個(gè)仿真系統(tǒng)比大腦還要靈活得多,相比之下大腦存在較多局限。
大腦用于保持記憶穩(wěn)定性和一致性的冗余也完全可以用軟件模擬。優(yōu)化這類自組織層級(jí)學(xué)習(xí)系統(tǒng)的數(shù)學(xué)方法已經(jīng)被充分理解。但大腦的組織還遠(yuǎn)遠(yuǎn)達(dá)不到優(yōu)化的水平,當(dāng)然,它也不需要達(dá)到最優(yōu)化,只需要達(dá)到能夠制造工具彌補(bǔ)自身水平的不足就足夠了。
人類新皮質(zhì)的另一個(gè)限制在于沒有排除或復(fù)查相互矛盾的思想的程序,這導(dǎo)致很多時(shí)候人們的思想缺乏一致性。我們也缺乏一個(gè)強(qiáng)有力的機(jī)制來執(zhí)行批判性思想,當(dāng)我們需要這個(gè)技能的時(shí)候,幾乎一半的情況下都沒能有效運(yùn)用。一個(gè)以軟件為基礎(chǔ)的新皮質(zhì)可以通過建立一個(gè)暴露不一致性的程序來克服這個(gè)弱點(diǎn),方便我們對(duì)自身思想進(jìn)行復(fù)查。
值得注意的是,設(shè)計(jì)整個(gè)大腦區(qū)域反而比設(shè)計(jì)單個(gè)神經(jīng)元要簡(jiǎn)單。正如我們之前討論的,用計(jì)算機(jī)進(jìn)行模擬,越高層級(jí)的模型反而越簡(jiǎn)單。為了模擬晶體管,我們需要理解半導(dǎo)體的物理特性的細(xì)節(jié),而且一個(gè)真正的晶體管即使只是基礎(chǔ)方程也非常復(fù)雜。一個(gè)能將兩個(gè)數(shù)字相乘的數(shù)字電路需要上百個(gè)晶體管,但我們通過一兩個(gè)公式就能準(zhǔn)確模擬這個(gè)乘法電路。一個(gè)包含上十億個(gè)晶體管的電腦的模擬僅需要指令系統(tǒng)和注冊(cè)描述,短短幾頁文本和公式就能包括全部?jī)?nèi)容。操作系統(tǒng)、語言編譯器或匯編程序的軟件程序則相對(duì)復(fù)雜,但是模擬一個(gè)特定程序——比如一個(gè)基于隱馬爾可夫?qū)蛹?jí)模型的語言識(shí)別程序則可以通過短短幾頁方程完整描述。在這些描述中肯定不會(huì)出現(xiàn)半導(dǎo)體物理特性的細(xì)節(jié)或電腦的構(gòu)造。
類似的現(xiàn)象對(duì)大腦也同樣適用。新皮質(zhì)上偵查某一不變的視覺特征(比如人臉),或是執(zhí)行聲音的帶通濾波(將輸入限定在一個(gè)特定的頻率范圍內(nèi))任務(wù),或是評(píng)價(jià)兩個(gè)事件時(shí)間接近性的模式識(shí)別器,與控制神經(jīng)遞質(zhì)、粒子通道,以及參與神經(jīng)過程的其他突觸或樹突變異的化學(xué)物理聯(lián)系相比,能得到的細(xì)節(jié)更少。盡管在邁向更高的概念層面之前需要仔細(xì)考慮所有這些復(fù)雜性,但絕大部分可以被簡(jiǎn)化,就像大腦展現(xiàn)的工作方式一樣。
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。