《電腦與人腦》:將神經系統當作計算機,運作算數所需的精度是多少?

《電腦與人腦》:將神經系統當作計算機,運作算數所需的精度是多少?
Photo Credit: Robina Weermeijer @Unsplash

我們想讓你知道的是

這些觀察顯示,將神經系統當作自動機看待時必定同時包含算術與邏輯的部分,且神經系統中算術的需求與邏輯的需求一樣重要。

文:馮紐曼(John von Neumann)

碼與其在機器運作中的角色

現在容我將討論轉移到與記憶體無關的議題上。我說的是規劃邏輯命令的某些原則,其在任何複雜的自動機運作中都有舉足輕重的地位。

首先讓我介紹一個目前脈絡中所需要的術語。一個自動機可執行並能讓其完成某些有條理的任務的邏輯指令系統稱為碼。當我提到邏輯命令,我指的是像神經脈衝出現在正確的軸突上,或者任何能讓一個邏輯系統像神經系統一樣可以有目的並可重複運作的事情。

完整碼的概念

說到碼,以下的區別就立刻凸顯出來了。以神經脈衝來解釋,一組碼若能指定脈衝出現的順序與其所在的軸突,則能稱之為完整。如此一來就理所當然能完整定義神經系統的一個特定行為。或者就上面的對比來說,定義相對應的人造自動機的特定行為。在計算機中,這樣的完整碼是一組帶有所有必要規範的命令。當一台機器要透過計算求解一個特定問題時,必須是由如此定義的完整碼控制。現代計算機的運用基礎是建立在使用者開發與制定必要的完整碼以求解任何該機器應解的問題。

短碼的概念

相較於完整碼,有另一種碼則適合稱作為短碼。它們以下述概念為基礎。

英國邏輯學家圖靈在1937年示範了一台計算機的碼指令系統是能夠使該計算機表現如另一特定計算機一樣的。而在此之後許多計算機專家也以各種特定方式將此方法實現。一個能讓一台機器模仿另一台機器的行為的指令系統被稱為短碼。請容我再多講一些有關短碼的使用與開發的細節。

一台計算機如我先前提過是由碼所控制的。碼是一串通常為二元的符號,即位元串。任何一組規範計算機運用的指令都必須要明確指出,哪一個位元串為命令以及該命令會使該機器做什麼事情。

對兩台不同的機器來說,這些有意義的位元串不需要一樣,而無論如何它們很可能各自會使其對應的機器做出完全不同的動作。因此若一台機器收到一組專門用於其他機器的命令,這些對於前者來說至少一部分應為毫無意義的。也就是說這些位元串不見得全部都屬於(對前者來說)有意義的集合中的一員,或者當前者遵循該位元串的時候所執行的行動是不屬於能夠求解目標問題的組織性計畫中,並且一般來說並不會使前者有目的性地求解一個有形、有組織的任務,也就是特定目標問題。

短碼的功能

一組碼,就圖靈的定義來說應會使一台機器表現如另一特定機器一樣(也就是讓前者模仿後者)。為了達到此目的,碼應做到以下幾件事。它必須包含該機器能理解(並有意義地遵循)的指令(也就是該碼更進一步的細節),而這個指令會使該機器檢視所有其收到的命令並判斷是否該命令擁有對應第二台機器的結構。因此它必須包含以第一台機器的命令系統定義的命令,其足以讓該機器執行第二台機器在相同命令下所執行的動作。

圖靈得到的重要結果是,如此一來能夠使第一台機器模仿任何其他機器的行為。第一台機器因而遵循的命令結構可能與該機器本身特有的命令結構完全不同。因此這邊提到的命令結構也許是涉及更複雜的命令而不是第一台機器特有的。該次要機器的每一個命令也許都需要前者執行數個運算。它也許涉及複雜迭代的程序或者多種各式可能的動作。總而言之,第一台機器在任意時間內並在任意複雜度的所有可能的命令系統控制下能夠執行的任何事情,現在都有可能被當作基礎動作(基本、簡單、原始的命令)執行。

而該次要碼稱為短碼的起因是基於歷史:這些短碼是用來輔助編碼的,也就是說它們的出現是為了想要比一台機器所容許更簡短的方式編碼。將其當作一台擁有不同且有更完整更方便的命令系統的機器,可以使得編碼更簡單直覺且不再那麼迂迴。

神經系統的邏輯架構

在此最好將討論導向另一群複雜的問題。如我先前所提,這些問題與記憶體的問題無關,也與剛剛討論的完整碼及短碼無關。它們是有關邏輯與算術在任何複雜的自動機,尤其在神經系統中所扮演的角色。

數值程序的重要性

這邊所要討論極為重要的要點是這個。任何為了讓人類使用而建造的人造自動機,特別是為了控制複雜程序的,通常含有一個純邏輯的部分與一個算術的部分。換句話說有一個與算術程序毫不相干的部分以及一個算術程序占重要位置的部分。這是因為由於事實上我們在思考與表達思想的習慣上很難跳脫以公式及數字表達任何確實很複雜的情況。

因此一個自動機若要控制這類問題,如恆定溫度或某些壓力、人體內的化學物質等,而此問題是由人類設計師所制定的,則此問題會是以數值等式或不等式定義。

數值程序與邏輯的互動

另一方面,此問題的某些部分也許可以不訴諸數值關係而制定,也就是以純邏輯定義。因此某些有關生理反應的有無的性質上原則可以不利用數字來定義,而僅須描述哪些事件會在哪些情況的組合下發生,而在哪些組合下又不希望發生。

預期需要高精度的原因

這些觀察顯示,將神經系統當作自動機看待時必定同時包含算術與邏輯的部分,且神經系統中算術的需求與邏輯的需求一樣重要。這代表我們討論的又是一個原本意義上的計算機,而接下來理應以計算機理論中熟悉的概念來進行討論。

有鑑於此,接下來的問題就出現了:當我們將神經系統當作計算機來看待時,算術部分運作所需的精度應為多少?

這個問題因為以下的原因而特別重要:所有計算機的相關經驗顯示若一台計算機必須處理的問題與神經系統明顯必須處理的算術問題一樣複雜,則必須提供能處理相對高精度的設備。原因是計算過程很可能很冗長,而在冗長的計算過程中不僅誤差會累加,在前期的計算產生的誤差會被後期的計算放大。因此相較於問題物理性質本身表面上的需求,實際所需的精度要高得多。

因此我們可以預期神經系統中存在一個算術的部分,其以計算機看待時必定以相當高的精度運作。在熟悉的人造算機中以及這邊的複雜狀態下,十或十二位數的精度並不為過。

這個結論正因其難以置信而非常值得計算出來。

書籍介紹

本文摘錄自《電腦與人腦:現代電腦架構之父馮紐曼的腦科學講義》,貓頭鷹出版
作者:馮紐曼(John von Neumann)
譯者:廖晨堯

電腦科學與腦科學的跨界經典
電腦真的能像人腦一樣思考嗎?

近年來,深度學習與人工智慧的發展都在試圖讓電腦的行為模式愈來愈接近真實的大腦,讓許多人開始好奇電腦是否真的能和大腦一樣思考,或者是否可以用電腦的邏輯來理解大腦、甚至是整個身體神經系統的運作。實際上,早在1950年代,馮紐曼就已經開始嘗試以電腦概念理解人腦作用機制。

現代電腦架構先驅馮紐曼

現今大部分的電腦都由CPU、RAM、硬碟等部件組成,進行記憶與計算。而這種從洗衣機中的微控制器到最大的超級電腦中都找得到的架構,早在1945年就由數學家馮紐曼提出,一直沿用至今。馮紐曼可以說是二十世紀最重要的數學家,拓展了目前數學的發展方向,在電腦、物理與經濟方面也都有相當大的貢獻。

人工智慧的先驅之作

本書就是是馮紐曼在1957年去世前為這次嘗試的講稿集結。這份講稿分兩部分,第一部分從電腦的基本原理和架構開始,以線路、處理速度與精確度等等層面一步步介紹計算與思考的本質。第二部分則接續第一部分的基礎,試圖以數學與電子傳訊的概念拆解大腦,了解我們的神經系統是如何溝通作出複雜的判斷與思考。

時至今日,馮紐曼對於神經與電腦的洞察啟發了對於電腦學習的新發現(連結主義、深度學習),也影響了現今對於人工智慧的思考方向。

getImage
Photo Credit: 貓頭鷹出版

責任編輯:潘柏翰
核稿編輯:翁世航


Tags: