先說點什么
??這應(yīng)該是我第三次讀這本書玷室,一本改自馮·諾依曼講稿,并且一點都算不上厚的小書。第一次看這本書的時候恰逢高考之后無聊閑讀隨手翻一翻丈积,全然不知所云。第二次翻看已經(jīng)是大二學(xué)期债鸡,當(dāng)時的水平也僅僅是勉強讀完全書江滨。當(dāng)初自以為是任務(wù)很多事情就如長輩所說“長大后你就明白了”這樣,后來才明白知識水品不盡是隨著年齡就能自然而然的提高厌均。所以即便是現(xiàn)在再讀這本書唬滑,依然感到有太多自己水平難以觸及的深度。
一點點的前言
??《計算機與人腦》這本書與1958年出版棺弊,而在一年前馮諾依曼已經(jīng)病逝晶密。正如書名,整本書分為計算機和人腦兩個部分模她。提到馮諾依曼和計算機稻艰,就不得不說到經(jīng)典的馮諾依曼體系結(jié)構(gòu),即便如今的計算機進步在某些程度上已經(jīng)步入非馮結(jié)構(gòu)侈净,馮氏的計算機理論依然存在著相當(dāng)?shù)挠绊懽鹞穑?dāng)然這種影響除了優(yōu)勢性僧凤,難免存在著局限性。而關(guān)于人腦元扔,馮諾依曼本人也坦然說自己是站在一個數(shù)學(xué)家的立場上躯保,對人腦可能的工作概念進行一點描述,雖然如今對于人腦的認(rèn)識已經(jīng)突破了馮諾依曼引入的脈沖概念和邏輯概念摇展,可惜隨著歷史的發(fā)展吻氧,人們對于腦的研究進展卻沒有那么迅速,對于各種腦機制仍然處于通過表象驗證可能性猜測咏连。
讀后感一樣的讀書筆記
從計算機開始說起
??從傳統(tǒng)意義上來說盯孙,計算機實際上不過是計算工具的一種,而計算工具這個概念就非常模糊了祟滴。所以現(xiàn)在我們所稱之為計算機的計算工具振惰,僅僅算得上是當(dāng)前時期的高級計算工具。
??在馮諾依曼那個時代垄懂,計算機這種高級計算工具分為有“模擬計算機”和“數(shù)字計算機”兩類骑晶。如果你完全不熟悉第一類,模擬計算機草慧,那很正常桶蛔,因為現(xiàn)如今隨著數(shù)字計算機發(fā)展進步表現(xiàn)的更加高效,模擬計算機幾乎很難見到了漫谷。你可能聽計算機老師講過仔雷,早期的計算機一臺幾乎占地學(xué)校半個機房教室那么大,或者關(guān)于那些需要轉(zhuǎn)動齒輪才能運轉(zhuǎn)計算機的故事舔示,那所講的大概就是早期的模擬計算機碟婆。模擬計算機的“模擬”在于,每一個數(shù)都需要用適當(dāng)?shù)奈锢砹縼肀硎咎璧荆娏鲝姸仁病㈦妷捍笮 X輪轉(zhuǎn)動角度等等俺祠。而你更熟悉的數(shù)字計算機公给,則采用了一種雖然看起來不那么直觀,反而更加高效的表達(dá)和儲存方式符號與組合蜘渣。也就是說妓布,在數(shù)字計算機中,機器只考慮是否有電脈沖宋梧,分別用0和1來表示,于是狰挡,由戈特弗里德·萊布尼茨提出的二進制計算方式捂龄,在數(shù)字計算機的發(fā)現(xiàn)下實現(xiàn)了其應(yīng)用释涛。
??基本運算是計算機功能的基礎(chǔ),常見的基本運算——加減乘除倦沧,相比于模擬計算機通過物理量實現(xiàn)的基本運算唇撬,數(shù)學(xué)計算機則需要嚴(yán)格的邏輯規(guī)則,尤其是數(shù)字計算機中二進制的乘除運算展融。比如模擬計算機的加減運算窖认,通過物理量的疊加即可得出結(jié)果,數(shù)字計算機的加減運算則基于代替脈沖的0/1符號告希,通過二進制扑浸,得出和數(shù)字與進位數(shù),再相應(yīng)地組合起來燕偶,光是聽起來就感覺到邏輯規(guī)則帶來的復(fù)雜感喝噪。邏輯在一方面對運算進行了限制,在另一方面也保證了運算的實際作用——取得問題的答案指么,所以除了基本運算酝惧,計算機還要有對應(yīng)運算的邏輯控制。這點對于模擬計算機可以表現(xiàn)的更加直觀伯诬,因為輸入與輸出是通過“軸”關(guān)聯(lián)起來晚唇。想想一下一臺由齒輪構(gòu)成的計算機,當(dāng)你轉(zhuǎn)動輸入端的齒輪盗似,各個齒輪間通過軸的聯(lián)動哩陕,使得輸出端的齒輪轉(zhuǎn)動。就是說桥言,設(shè)置好的固定裝置萌踱,就定下了邏輯控制。其進一步的邏輯控制——插入式控制号阿,現(xiàn)在我們所用的插入式繼電器正是發(fā)揮的這種功能并鸵。相對于模擬計算機的這種固定裝置,依靠符號的數(shù)字計算機要實現(xiàn)邏輯控制扔涧,就沒那么直觀了园担。在數(shù)字計算機中,每一基本運算只需要一個器官(比如僅僅一條電路的通電與閉合兩種狀態(tài))枯夜,那么就需要大量的儲存器官來儲存運算的部分結(jié)果和結(jié)果弯汰。比如你要通過數(shù)字計算機實現(xiàn)簡單的1+1,在電路中湖雹,第一次通電符號1代表的數(shù)字1要儲存到一個儲存器官中咏闪,在下一個1輸入進來后,再提取出來進行1+1的運算摔吏。當(dāng)計算更加復(fù)雜鸽嫂,參與計算的數(shù)更多的時候纵装,就需要更多的儲存器官——儲存寄存器,同時在提取所儲存的數(shù)值時据某,需要指定在哪一個寄存器中提取橡娄,這就是記憶存儲控制⊙⒆眩回顧一下馮諾依曼體系結(jié)構(gòu)挽唉,由運算器、控制器筷狼、存儲器瓶籽、輸入設(shè)備和輸出設(shè)備構(gòu)成的計算系統(tǒng),把程序本身當(dāng)做數(shù)據(jù)一樣儲存桑逝,很好的解決了運算的執(zhí)行模式問題(似乎同時帶來了一定局限性棘劣,比如程序本身作為數(shù)據(jù)儲存所避免不了的BUG問題)。
??那么為什么看似更加復(fù)雜的數(shù)字計算機卻發(fā)展更快并且運用更為廣泛楞遏?這就牽扯到精確度的問題茬暇。相比于模擬計算機,數(shù)字計算機有更高的精確度寡喝,并且對其提升具有更高的可行性篓冲。拿書中的例子說明枯饿,想想一下在模擬計算機中蔫劣,1:10?的精確度鞭盟,要求在一個時間內(nèi)間隔中,有10?個脈沖格二,假設(shè)n=2劈彪,機器的速度就要減少100倍,這種情況對于一個計算工具來說無疑是相當(dāng)不妙的顶猜。而數(shù)字計算機中1:10?的精確度沧奴,不過是需要n位數(shù)字,假設(shè)將n=12提高到n=13长窄,不過是在12位數(shù)字后再加一位滔吠。
??當(dāng)然,拋開嚴(yán)格的定義挠日,模擬方法和數(shù)字方法并非是完全沖突疮绷,馮諾依曼也在書中提及模擬原則與數(shù)字原則同時存在的計算機模式。對于現(xiàn)代的計算機而言嚣潜,我們所考慮的是一臺計算機組成元件的工作效率問題冬骚,當(dāng)然這個問題是在馮諾依曼體系結(jié)構(gòu)下考慮的,所以有個非常值得關(guān)注的問題,就是在運算過程中唉韭,計算機不得不把一部分時間花費在“數(shù)據(jù)”存儲與讀取這個來來回回的過程上夜涕。當(dāng)計算機在解決一個問題時,輸入進來的數(shù)據(jù)一個個保存在寄存器中属愤,然后每用到一個數(shù)據(jù)再去讀取(或者說是寄存器“復(fù)述”這個數(shù)據(jù))酸役,存入時間和存取時間在運算過程中就會增加整個運算所用的時間住诸,這種結(jié)構(gòu)在硬件上實現(xiàn)似乎是相當(dāng)沒有經(jīng)濟性,哪怕是現(xiàn)在納米級的真空管元件構(gòu)成的計算機處理器涣澡,性能的提升也是避免不了這種瓶頸贱呐。對于這個問題,很多研究正朝向非馮體系結(jié)構(gòu)入桂,不過不得不說馮·諾依曼個人對于計算機的構(gòu)想和展望奄薇,仍然會在未來相當(dāng)?shù)臅r間內(nèi),發(fā)揮著其固有的優(yōu)勢抗愁,并且另一方面給我們當(dāng)下的發(fā)展帶來一定的局限馁蒂。
還有人腦這部分
??如果簡單翻閱一下近些年來關(guān)于人腦的研究,你也會像我一樣感嘆蜘腌,為什么科學(xué)界對于人腦的研究進展如此緩慢沫屡,雖不至于原地踏步,但也是新的發(fā)現(xiàn)近乎寥寥撮珠。人腦是一個人身上最重要的器官沮脖,重要到在臨床上只有腦死亡才可以被認(rèn)定為個體死亡。
??大腦是神經(jīng)系統(tǒng)最高級部分芯急,其中含有豐富的神經(jīng)細(xì)胞勺届,也就是神經(jīng)系統(tǒng)的基本“元件”——神經(jīng)元,而其工作方式也頗為簡單娶耍,承載電信號免姿、化學(xué)信號。當(dāng)一個刺激輸入進來伺绽,電信號或者說神經(jīng)脈沖沿著神經(jīng)細(xì)胞的軸突傳導(dǎo)养泡。這個過程在生物結(jié)構(gòu)上實現(xiàn)是相當(dāng)復(fù)雜的,脈沖傳導(dǎo)在軸突經(jīng)過時細(xì)胞膜的電化學(xué)性變化奈应,離子滲透率發(fā)生變化澜掩,細(xì)胞液發(fā)生變化,直到軸突末端杖挣,電信號轉(zhuǎn)化為化學(xué)信號肩榕,神經(jīng)遞質(zhì)釋放,下一個神經(jīng)細(xì)胞接受刺激,如此株汉。要知道筐乳,當(dāng)一個刺激發(fā)生時,往往是一簇神經(jīng)共同發(fā)起反應(yīng)乔妈,由此對比一下人造計算機上蝙云,一個刺激喚醒一簇神經(jīng)細(xì)胞工作,脈沖出現(xiàn)時表示一個值路召,無脈沖表示另一個值勃刨,那么神經(jīng)脈沖也可以看作是兩值符號。馮·諾依曼對于神經(jīng)工作特點從生物學(xué)方面進行了考慮股淡,那就是當(dāng)一個神經(jīng)細(xì)胞接受刺激產(chǎn)生脈沖之后身隐,它需要一定的時間恢復(fù)到可以產(chǎn)生下一次神經(jīng)脈沖的狀態(tài),相比于當(dāng)時的人造元件唯灵,神經(jīng)細(xì)胞就顯得沒那么高效了(馮諾依曼也指出神經(jīng)元疲乏的恢復(fù)是逐漸的)贾铝。
??有一點需要注意的是,神經(jīng)細(xì)胞響應(yīng)各種刺激并非單純的無或有的模式埠帕,并且遺憾的是即使今天也沒有一個確切的結(jié)論垢揩。不過有神經(jīng)科學(xué)家認(rèn)為,神經(jīng)系統(tǒng)對于刺激的響應(yīng)搞监,在一定程度上是采取少數(shù)服從多數(shù)原則水孩,神經(jīng)系統(tǒng)是以統(tǒng)計的方法接納神經(jīng)元的信息。通過這個觀點琐驴,神經(jīng)系統(tǒng)的邏輯功能也會因為刺激的變化而發(fā)生一定的改變俘种。比如當(dāng)你看到一個微弱的亮點,視網(wǎng)膜上的神經(jīng)細(xì)胞對微弱的光刺激發(fā)生反映绝淡,對于不那么大的刺激量宙刘,視網(wǎng)膜上的神經(jīng)細(xì)胞可能僅僅有一小部分被激活工作,而當(dāng)一束強光從面前照過來牢酵,視網(wǎng)膜上的神經(jīng)細(xì)胞會大量被激活工作悬包,仔細(xì)想想這種理論下神經(jīng)系統(tǒng)非常具有經(jīng)濟性,并且在這樣的過程中馍乙,模擬原則和數(shù)字原則都發(fā)揮了其相對的作用布近。這樣“閾值”這個概念也得到了很好的解釋。
??如果神經(jīng)系統(tǒng)中神經(jīng)元的工作方式按照上述理論丝格,那么神經(jīng)系統(tǒng)就需要一個發(fā)揮“記憶功能”的元件撑瞧,馮諾依曼本人對于記憶表示“我們對記憶的本質(zhì)及其位置,現(xiàn)在仍然是無知的”显蝌,至今也是一樣预伺。如果把記憶當(dāng)作是神經(jīng)系統(tǒng)形成的固定運算方式,以某些固定神經(jīng)細(xì)胞功能為基礎(chǔ),就很難解釋為什么隨著細(xì)胞的代謝更替和記憶消退酬诀,我們?nèi)匀粫A舨糠值脑杏洃泝?nèi)容脏嚷。假設(shè)在神經(jīng)系統(tǒng)確實存在記憶功能元件,繼而考慮記憶容量問題瞒御,如果說神經(jīng)系統(tǒng)中記憶元件在工作時是像數(shù)字計算機那樣父叙,通過對輸入信息編碼再次儲存然后再提取,你可以想想我們?nèi)粘I顚⑹歉鞣N大腦短路現(xiàn)象肴裙。事實上人腦對于信息加工的質(zhì)量遠(yuǎn)遠(yuǎn)高于對信息保存的質(zhì)量高每,并且這個加工過程十分具有經(jīng)濟性。如果讓Alpha-go以人腦的功率運轉(zhuǎn)践宴,恐怕在人機圍棋對抗中,機器的優(yōu)勢就沒那么顯而易見了爷怀。
自己的一點總結(jié)
??按照我個人的理解阻肩,馮諾依曼本人也未曾表達(dá)出將計算機和人腦直接聯(lián)系起來的觀點,而是表達(dá)了兩點:1.按照計算機的理論來設(shè)想人腦是如何工作的运授? 2.基于人腦的功能來思考機械能否產(chǎn)生思維烤惊? 馮諾依曼本人也不能給我們一個準(zhǔn)確的答案。幸運的是隨著歷史的進步與發(fā)展吁朦,大量研究者繼續(xù)在思考和嘗試回答這兩個問題柒室,諸如對實現(xiàn)人工智能(AI)的大膽嘗試等等。對于當(dāng)前的計算機發(fā)展方向來看逗宜,似乎有必要批評一下馮諾依曼兩值符號觀點的局限性雄右,這也是量子計算機著力應(yīng)對的問題。
??盡管十分不愿意承認(rèn)纺讲,但書中依然有很多知識深度對我這種水平的讀者造成了相當(dāng)大的阻礙擂仍,例如對于運算邏輯深度的問題。拋開個人水平問題熬甚,對于計算機愛好者和極客玩家來說逢渔,這本書無疑是一本非常解悶又過癮的科普讀物。