當計算機經過半個世紀的發展僅達到與昆蟲相當的智力時,卻期望它在未來的幾十年裏完全成為智能機器,這看起來是很草率的。事實上,正是由於這個原因,許多長期研究人工智能的科學家也都認為幾個世紀才是一個更可信的時間。但是我們有充分的理由相信,很多事情在未來50年的發展速度會遠遠超過過去的50年……1990年以來,人工智能和機器人程序的能力每年增加一倍,到1994年增加到30mips,1998年就已經是500 mips了。貧瘠的種子也會突然萌發。機器可以讀文本、語音識別,甚至可以翻譯語言。機器人可以跨國駕駛,可以在火星上爬行,也可以在辦公室的走廊裏滾動。1996年,一個稱為eqp的定理證明程序在阿貢國家實驗室50mips的計算機上運行了5周,推導出一個赫伯特·魯賓斯的布爾代數猜想的證明,而這個猜想已經困惑數學家60年了。人工智能還處在萬物複蘇的春天,等待著它生機勃勃的夏天的來臨。
——漢斯·莫拉維茨,《when willputer hardware match the human brain?》,1997年
人腦的計算能力是什麽呢?通過複製人腦部分區域的功能,我們已經做出了一些估計。一旦判斷出一個特定區域的計算能力,我們就可以推斷出這個能力是由大腦哪一部分形成的。這些估計是基於功能模擬得出的,它複製了一個區域的整體功能,而不是模擬該區域每一個神經元及其之間的連接。
雖然不想依賴任何單一的計算,但我們還是發現,對各個不同區域的各種評估都為整個大腦提供了合理的估計。接下來是數量級的估計,這意味著我們正試圖確定的適當的數字,與事實也相差10多倍,事實上,通過不同的方式得出同樣的答案,進一步證明了這個估計在比較精確的範圍內。
對奇點(人類智慧通過與非生物形式的結合而擴展上萬億倍)未來幾十年的發展的預測,並不依賴於這些計算的精確性。即使我們對於模擬人腦所需要的計算量的估計太樂觀了(即太低了),甚至低了1000倍(這個我認為不可能),奇點的到來也僅僅會延遲8年。<small>34</small>而如果低一百萬倍也意味著隻有大約15年的延遲,而10億倍也隻延遲大約21年。<small>35</small>
卡內基·梅隆大學的著名機器人專家漢斯·莫拉維茨,已經分析了由視網膜內的神經圖像處理電路完成的轉換。<small>36</small>視網膜寬約2厘米,厚約0.5毫米。視網膜大部分的厚度是專門用來捕捉圖像的,隻有1/5是用於圖像處理,其中包括區分深色和淺色以及在該圖像大約100萬個小區域中檢測移動。
根據莫拉維茨的分析,視網膜每秒鍾執行1000萬次的圖像邊緣檢測和移動檢測。基於幾十年建造機器人視覺係統的經驗,他估計每一次重現人類的視覺檢測需要機器執行約100條指令,這意味著複製視網膜這一部分的圖像處理功能需要1000mips。視網膜上這一部分的神經元重量為0.02克,而人類大腦的重量是它的75000倍。因此要實現人腦的全部功能,估計需要每秒鍾執行10<small>14</small>條指令。<small>37</small>
另一個估計是勞埃德·瓦特和他的同事們在模擬聽覺係統時提出的,這一點我將在第4章進一步講解。<small>38</small>瓦特開發的軟件裏有一個功能模塊叫做“流分離”,它主要用於遠程電話會議或其他遠程訪問應用(在不同地方的人都可參與到一個遠程的音頻電話會議中)。瓦特解釋道:“要做到這一點,就意味著要精確測量被空間隔開的兩個人的通話時間延遲和接收延遲。”這個過程包括采樣分析、空間位置、語音線索,甚至是特定語言的線索。人類使用的確定聲源位置的方法之一是雙耳的時間差(itd),即聲音到達兩耳時間的不同。<small>39</small>
瓦特的團隊用逆向工程創造了與某些大腦區域功能相同的模塊。他估計需要10<small>11</small>cps才能確定聲源的位置。聽覺皮層至少需要大腦神經元的0.1%來處理這一區域的功能。因此我們大約需要10<small>14</small>cpsx10<small>3</small>才能實現大腦的計算能力。
然而,另一個來自得克薩斯大學的模擬小腦區域的實驗估計,小腦含有10<small>4</small>個神經元,這個模擬實驗需要10<small>8</small>cps,即每個神經元需要10<small>4</small>cps。從這個實驗推斷模擬整個大腦的計算能力需要達到10<small>15</small>cps。
稍後我們會討論大腦逆向工程的問題,但很顯然,與精確地模擬神經元和所有神經組件(發生在每個神經元的複雜的相互作用)的非線性操作相比,我們可以通過更少的計算來模擬大腦區域的功能。我們嚐試模擬體內器官的功能時,可以得出同樣的結論。例如,模擬人體胰腺調節胰島素水平的可植入元件正在接受測試。這些裝置能夠檢測血液中的葡萄糖水平並以一種可控的方式來釋放胰島素,從而使葡萄糖水平保持在一定的範圍內。 <small>40</small>雖然這個裝置采用的是類似胰腺的方法,但是它沒有模擬每一個胰腺細胞,當然也沒有必要這麽做。
這些估計的結果都在某一個區間內(10<small>14</small>~10<small>15</small>cps)。考慮到人類大腦的逆向工程仍處於早期,所以把10<small>16</small>cps這一個保守的估計用於隨後的討論中。
大腦的功能模擬足以重建人類的模式識別能力、智力和情商。另外,若要“上傳”某個人的性格(捕獲他的所有知識、技能和個性,這一點將在第4章最後的內容中詳細地探討),我們可能需要在單個神經元或神經元組成部分的水平上模擬神經元的處理過程,如神經細胞胞體、軸突(輸出接口)、樹突(神經細胞的傳入連接)和突觸(連接軸突和樹突的區域)。為此,我們需要研究單個神經元的詳細模型。每個神經元的扇出端輸數(內部連接數)大約是10<small>3</small>,因此估計10<small>11</small>個神經元有10<small>14</small>個連接。而對於5秒的複位時間,則意味著每秒鍾有10<small>16</small>個突觸傳遞過程。
神經元模型模擬的結果表明,每個突觸傳遞過程大約需要10<small>3</small>次計算來捕捉樹突和其他神經區域之間的非線性作用(複雜的相互作用),結果表明,在這個水平上模擬大腦計算需要10<small>19</small>cps。<small>41</small>因此,我們可以認為這是一個上限,但其實在10<small>14</small>~10<small>16</small>cps內就可能實現所有大腦的功能了。
ibm的blue gene/l超級計算機目前正在建造之中,預計將每秒鍾提供360萬億次的計算(3.6x10<small>14</small>cps)。<small>42</small>這個數字已經超過前麵介紹的預期範圍的最低值。blue gene/l的主存將有大約100萬億字節(約10<small>15</small>比特),已經超過了我們對人類大腦功能仿真所需要的存儲估計(詳見後麵的介紹)。這與我先前的預測一致,超級計算機將達到較為保守的1016的估計,並在未來10年的早期實現人腦仿真。
人腦水平個人計算機的加速實現。今天的個人計算機提供的計算速度超過10<small>9</small>cps。根據圖2-15所示的預測,到2025年將實現10<small>16</small>cps。但是,有幾種方法會讓這個時代提前到來。我們可以舍棄通用處理器,而使用專用的集成電路(application-specific integrated circuits,asic)來提供更高性價比的重複計算。這種電路已經在視頻遊戲的運動圖像生成中提供了非常高的重複計算量。asic在性價比方麵可以提高1000倍,由此使得這個期限提前8年。模擬人腦的不同程序將包括大量的重複計算,例如,小腦需要重複10億次一種基本布線圖,因此我們將會使用asic架構來實現這些計算。
我們還可以利用互聯網上的閑置計算能力來擴展個人計算機的計算能力。新的通信模式(如網格)把網絡中的每個設備看做是節點而不是“發言人”<small>43</small>。換句話說,這些個人計算機不再僅僅在節點中發送信息和接收信息,相反它們自己也可以充當節點彼此進行信息傳遞。這將創造非常健壯的、自組織的通信網絡。這也使個人計算機和其他設備更容易地利用網格區域中閑置設備的cpu周期。
目前,在互聯網上,計算機的計算能力即使不是99.9%,至少也有99%是閑置的。有效地利用這些閑置計算能力可以額外提高10<small>2</small>~10<small>3</small>的性價比。基於這些原因,我們有理由相信,到2020年左右,一台至少在硬件計算水平上等同於人腦計算能力的電腦,其價值將為1000美元。
通過原來的“模擬信號”模式來使用晶體管是另一種加快實現人腦級別個人計算機的方法。人類大腦的許多過程是模擬的,而不是數字的。雖然我們可以以數字信號模擬模擬信號,並且能達到任何計算精度,但是卻要損失好幾個數量級的效率。單個晶體管可以通過模擬信號完成兩個數的乘法,而數字電路要完成這個乘法則需要成千上萬的晶體管。加州理工學院的卡福·密德研究所一直在做模擬信號的研究。<small>44</small>他們采用的方法的缺點之一是,模擬信號計算的工程設計所需的時間是漫長的,因此大多數開發大腦模擬軟件的人員更期望軟件仿真能力能夠迅速提升。
人腦存儲的能力。人的計算能力和存儲能力相比又如何呢?事實證明,如果研究人類存儲的需求,我們會發現類似的時幀估計。某一領域的專家掌握的知識塊的數量大約是10<small>5</small>個。這些塊包括模式(如知識麵)以及具體的知識。例如,一個世界級的國際象棋大師估計掌握了約10萬局棋譜。莎士比亞的詞匯量為2.9萬,但這些單詞所能表達的含義總數接近10萬個。醫學專家係統的開發表明,人類在某一領域可以掌握大約10萬個概念。如果我們估計該“專業”知識隻占人的知識的1%,那麽人的整體知識塊大約是7個。
根據我自己設計係統的經驗,在存儲類似知識塊的係統中,不管是基於規則的專家係統還是自組織的模式識別係統,其中的每個知識塊都需要10<small>6</small>比特,這樣實現人的功能存儲需要10<small>13</small>(10萬億)比特。
據itrs路線圖的預測,到2018年左右,10<small>13</small>比特存儲器的價格將是1000美元。請記住,這個存儲器將比電氣化學的存儲器快數百萬倍,因而會更有效。
同樣,如果我們在神經元連接水平上模擬人類的存儲,我們會得到稍高一點的估計值。為了存儲連接模式和神經遞質的濃度,我們可以估計每個神經連接約需要10<small>4</small>比特。因此存儲10<small>14</small>個神經連接就需要10<small>18</small>比特。
基於以上分析,我們有理由預測,在2020年左右模擬人腦功能的硬件約合1000美元。正如將在第4章討論的,具有複製功能的軟件還將需要大約10年或更長的時間才會出現。不過,硬件的性價比、能力以及速度的指數級增長將在此期間一直延續,所以到2030年的時候,價值1000美元的計算機將會達到一個村莊的人(約1000人)的腦力。而到2050年時,1000美元計算機將超過地球上所有人類大腦的處理能力,當然,也包括那些仍然隻應用生物神經元的大腦。
即使人類神經元的創意是非常奇妙的,但是我們不會(也沒有)使用同樣緩慢的方法進行電路設計。盡管自然選擇進化的設計非常巧妙,但是它們的能力還是比我們設計的電路的能力低好幾個數量級。當對身體和大腦進行逆向工程時,我們能夠創造出比自然進化係統更為持久且速度快100萬倍的係統,並且這個速度仍在繼續加快。
人類複雜的神經元大部分用於維持生命保障功能,而不是它的信息處理能力。最終,我們會使神經處理過程變得更加適合計算,那時我們的思維空間將不再一直這麽小了。
——漢斯·莫拉維茨,《when willputer hardware match the human brain?》,1997年
人腦的計算能力是什麽呢?通過複製人腦部分區域的功能,我們已經做出了一些估計。一旦判斷出一個特定區域的計算能力,我們就可以推斷出這個能力是由大腦哪一部分形成的。這些估計是基於功能模擬得出的,它複製了一個區域的整體功能,而不是模擬該區域每一個神經元及其之間的連接。
雖然不想依賴任何單一的計算,但我們還是發現,對各個不同區域的各種評估都為整個大腦提供了合理的估計。接下來是數量級的估計,這意味著我們正試圖確定的適當的數字,與事實也相差10多倍,事實上,通過不同的方式得出同樣的答案,進一步證明了這個估計在比較精確的範圍內。
對奇點(人類智慧通過與非生物形式的結合而擴展上萬億倍)未來幾十年的發展的預測,並不依賴於這些計算的精確性。即使我們對於模擬人腦所需要的計算量的估計太樂觀了(即太低了),甚至低了1000倍(這個我認為不可能),奇點的到來也僅僅會延遲8年。<small>34</small>而如果低一百萬倍也意味著隻有大約15年的延遲,而10億倍也隻延遲大約21年。<small>35</small>
卡內基·梅隆大學的著名機器人專家漢斯·莫拉維茨,已經分析了由視網膜內的神經圖像處理電路完成的轉換。<small>36</small>視網膜寬約2厘米,厚約0.5毫米。視網膜大部分的厚度是專門用來捕捉圖像的,隻有1/5是用於圖像處理,其中包括區分深色和淺色以及在該圖像大約100萬個小區域中檢測移動。
根據莫拉維茨的分析,視網膜每秒鍾執行1000萬次的圖像邊緣檢測和移動檢測。基於幾十年建造機器人視覺係統的經驗,他估計每一次重現人類的視覺檢測需要機器執行約100條指令,這意味著複製視網膜這一部分的圖像處理功能需要1000mips。視網膜上這一部分的神經元重量為0.02克,而人類大腦的重量是它的75000倍。因此要實現人腦的全部功能,估計需要每秒鍾執行10<small>14</small>條指令。<small>37</small>
另一個估計是勞埃德·瓦特和他的同事們在模擬聽覺係統時提出的,這一點我將在第4章進一步講解。<small>38</small>瓦特開發的軟件裏有一個功能模塊叫做“流分離”,它主要用於遠程電話會議或其他遠程訪問應用(在不同地方的人都可參與到一個遠程的音頻電話會議中)。瓦特解釋道:“要做到這一點,就意味著要精確測量被空間隔開的兩個人的通話時間延遲和接收延遲。”這個過程包括采樣分析、空間位置、語音線索,甚至是特定語言的線索。人類使用的確定聲源位置的方法之一是雙耳的時間差(itd),即聲音到達兩耳時間的不同。<small>39</small>
瓦特的團隊用逆向工程創造了與某些大腦區域功能相同的模塊。他估計需要10<small>11</small>cps才能確定聲源的位置。聽覺皮層至少需要大腦神經元的0.1%來處理這一區域的功能。因此我們大約需要10<small>14</small>cpsx10<small>3</small>才能實現大腦的計算能力。
然而,另一個來自得克薩斯大學的模擬小腦區域的實驗估計,小腦含有10<small>4</small>個神經元,這個模擬實驗需要10<small>8</small>cps,即每個神經元需要10<small>4</small>cps。從這個實驗推斷模擬整個大腦的計算能力需要達到10<small>15</small>cps。
稍後我們會討論大腦逆向工程的問題,但很顯然,與精確地模擬神經元和所有神經組件(發生在每個神經元的複雜的相互作用)的非線性操作相比,我們可以通過更少的計算來模擬大腦區域的功能。我們嚐試模擬體內器官的功能時,可以得出同樣的結論。例如,模擬人體胰腺調節胰島素水平的可植入元件正在接受測試。這些裝置能夠檢測血液中的葡萄糖水平並以一種可控的方式來釋放胰島素,從而使葡萄糖水平保持在一定的範圍內。 <small>40</small>雖然這個裝置采用的是類似胰腺的方法,但是它沒有模擬每一個胰腺細胞,當然也沒有必要這麽做。
這些估計的結果都在某一個區間內(10<small>14</small>~10<small>15</small>cps)。考慮到人類大腦的逆向工程仍處於早期,所以把10<small>16</small>cps這一個保守的估計用於隨後的討論中。
大腦的功能模擬足以重建人類的模式識別能力、智力和情商。另外,若要“上傳”某個人的性格(捕獲他的所有知識、技能和個性,這一點將在第4章最後的內容中詳細地探討),我們可能需要在單個神經元或神經元組成部分的水平上模擬神經元的處理過程,如神經細胞胞體、軸突(輸出接口)、樹突(神經細胞的傳入連接)和突觸(連接軸突和樹突的區域)。為此,我們需要研究單個神經元的詳細模型。每個神經元的扇出端輸數(內部連接數)大約是10<small>3</small>,因此估計10<small>11</small>個神經元有10<small>14</small>個連接。而對於5秒的複位時間,則意味著每秒鍾有10<small>16</small>個突觸傳遞過程。
神經元模型模擬的結果表明,每個突觸傳遞過程大約需要10<small>3</small>次計算來捕捉樹突和其他神經區域之間的非線性作用(複雜的相互作用),結果表明,在這個水平上模擬大腦計算需要10<small>19</small>cps。<small>41</small>因此,我們可以認為這是一個上限,但其實在10<small>14</small>~10<small>16</small>cps內就可能實現所有大腦的功能了。
ibm的blue gene/l超級計算機目前正在建造之中,預計將每秒鍾提供360萬億次的計算(3.6x10<small>14</small>cps)。<small>42</small>這個數字已經超過前麵介紹的預期範圍的最低值。blue gene/l的主存將有大約100萬億字節(約10<small>15</small>比特),已經超過了我們對人類大腦功能仿真所需要的存儲估計(詳見後麵的介紹)。這與我先前的預測一致,超級計算機將達到較為保守的1016的估計,並在未來10年的早期實現人腦仿真。
人腦水平個人計算機的加速實現。今天的個人計算機提供的計算速度超過10<small>9</small>cps。根據圖2-15所示的預測,到2025年將實現10<small>16</small>cps。但是,有幾種方法會讓這個時代提前到來。我們可以舍棄通用處理器,而使用專用的集成電路(application-specific integrated circuits,asic)來提供更高性價比的重複計算。這種電路已經在視頻遊戲的運動圖像生成中提供了非常高的重複計算量。asic在性價比方麵可以提高1000倍,由此使得這個期限提前8年。模擬人腦的不同程序將包括大量的重複計算,例如,小腦需要重複10億次一種基本布線圖,因此我們將會使用asic架構來實現這些計算。
我們還可以利用互聯網上的閑置計算能力來擴展個人計算機的計算能力。新的通信模式(如網格)把網絡中的每個設備看做是節點而不是“發言人”<small>43</small>。換句話說,這些個人計算機不再僅僅在節點中發送信息和接收信息,相反它們自己也可以充當節點彼此進行信息傳遞。這將創造非常健壯的、自組織的通信網絡。這也使個人計算機和其他設備更容易地利用網格區域中閑置設備的cpu周期。
目前,在互聯網上,計算機的計算能力即使不是99.9%,至少也有99%是閑置的。有效地利用這些閑置計算能力可以額外提高10<small>2</small>~10<small>3</small>的性價比。基於這些原因,我們有理由相信,到2020年左右,一台至少在硬件計算水平上等同於人腦計算能力的電腦,其價值將為1000美元。
通過原來的“模擬信號”模式來使用晶體管是另一種加快實現人腦級別個人計算機的方法。人類大腦的許多過程是模擬的,而不是數字的。雖然我們可以以數字信號模擬模擬信號,並且能達到任何計算精度,但是卻要損失好幾個數量級的效率。單個晶體管可以通過模擬信號完成兩個數的乘法,而數字電路要完成這個乘法則需要成千上萬的晶體管。加州理工學院的卡福·密德研究所一直在做模擬信號的研究。<small>44</small>他們采用的方法的缺點之一是,模擬信號計算的工程設計所需的時間是漫長的,因此大多數開發大腦模擬軟件的人員更期望軟件仿真能力能夠迅速提升。
人腦存儲的能力。人的計算能力和存儲能力相比又如何呢?事實證明,如果研究人類存儲的需求,我們會發現類似的時幀估計。某一領域的專家掌握的知識塊的數量大約是10<small>5</small>個。這些塊包括模式(如知識麵)以及具體的知識。例如,一個世界級的國際象棋大師估計掌握了約10萬局棋譜。莎士比亞的詞匯量為2.9萬,但這些單詞所能表達的含義總數接近10萬個。醫學專家係統的開發表明,人類在某一領域可以掌握大約10萬個概念。如果我們估計該“專業”知識隻占人的知識的1%,那麽人的整體知識塊大約是7個。
根據我自己設計係統的經驗,在存儲類似知識塊的係統中,不管是基於規則的專家係統還是自組織的模式識別係統,其中的每個知識塊都需要10<small>6</small>比特,這樣實現人的功能存儲需要10<small>13</small>(10萬億)比特。
據itrs路線圖的預測,到2018年左右,10<small>13</small>比特存儲器的價格將是1000美元。請記住,這個存儲器將比電氣化學的存儲器快數百萬倍,因而會更有效。
同樣,如果我們在神經元連接水平上模擬人類的存儲,我們會得到稍高一點的估計值。為了存儲連接模式和神經遞質的濃度,我們可以估計每個神經連接約需要10<small>4</small>比特。因此存儲10<small>14</small>個神經連接就需要10<small>18</small>比特。
基於以上分析,我們有理由預測,在2020年左右模擬人腦功能的硬件約合1000美元。正如將在第4章討論的,具有複製功能的軟件還將需要大約10年或更長的時間才會出現。不過,硬件的性價比、能力以及速度的指數級增長將在此期間一直延續,所以到2030年的時候,價值1000美元的計算機將會達到一個村莊的人(約1000人)的腦力。而到2050年時,1000美元計算機將超過地球上所有人類大腦的處理能力,當然,也包括那些仍然隻應用生物神經元的大腦。
即使人類神經元的創意是非常奇妙的,但是我們不會(也沒有)使用同樣緩慢的方法進行電路設計。盡管自然選擇進化的設計非常巧妙,但是它們的能力還是比我們設計的電路的能力低好幾個數量級。當對身體和大腦進行逆向工程時,我們能夠創造出比自然進化係統更為持久且速度快100萬倍的係統,並且這個速度仍在繼續加快。
人類複雜的神經元大部分用於維持生命保障功能,而不是它的信息處理能力。最終,我們會使神經處理過程變得更加適合計算,那時我們的思維空間將不再一直這麽小了。