單從技術史的角度看計算機的發展史,似乎那么多形成條件是偶合的,不免驚嘆于它的奇妙,但如果從產品的角度梳理它的原理又覺得理所當然。
一、圖靈機的概念
作為產品首先得有它的"idea",構想它的人是圖靈,他提出了“圖靈機”的概念,圖靈機通常被認為是現代通用計算機的原型。圖靈的基本思想是用機器來模擬數學運算,他把這樣的過程看作下列兩種簡單的動作:
1.在紙上寫上或擦除某個符號;2.把注意力從紙的一個位置移動到另一個位置;
而在每個階段,人要決定下一步的動作,依賴于:
(a) 此人當前所關注的紙上某個位置的符號和(b) 此人當前思維的狀態。
根據這種模擬思想,圖靈構造出一臺假想的機器:
這個機器有一個有窮控制器,一條輸入帶和一個帶頭,帶被分成許多單元,帶頭在每個時刻掃視帶上的一個單元。該帶有一個最左單元,向右則無限。帶的每個單元正好可容納有窮個帶符號中的一個。開始時,最左邊n個單元(n≥0,是一有窮數)放著輸入,它是取自帶符集的一個字符串,其余無窮多單元放空自符。空自符是特殊帶符號,但不是輸入符號。基本模型可圖示如下:
在一個動作中,圖靈機根據帶頭掃視的符號和有窮控制器的狀態,執行如下操作:①改變狀態。②在被掃視的帶單元上打印一個符號,以代替原有的符號。③將帶頭向左或向右移動一個單元。
在每一時刻,機器所處狀態,帶子上已寫符號的所有格子以及機器當前掃視的格子位置,統稱為機器的格局。圖靈機從初始格局出發,按程序一步步把初始格局改造為格局的序列。此過程可能無限制繼續下去,也可能遇到指令表中沒有列出的狀態、符號組合或進入結束狀態而停機。在結束狀態下停機所達到的格局是最終格局,此最終格局就包含機器的計算結果。
這個思想構造有三個關鍵點:模擬、符號和自動化,缺任何一個都與圖靈的構想南轅北轍。如果沒有模擬我們甚至可以將一個簡單的物理過程表述成類似圖靈機的形式,比如把一塊石頭受風從坡上滾落理解成某個時刻根據自己當前的狀態和外部的某個狀態輸入改變自己的狀態并且輸出改變外部的狀態,然后進入下一個時刻;如果沒有符號呢?我們可以把人從事的任何機械過程都當作一種模擬,比如人看到石頭對其他物體的破壞作用而模仿它的過程對其他物體進行機械性的敲擊活動;如果不是自動化呢?那就是失去了制造它的意義了。所以說圖靈機本質上是模仿人的大腦所進行的語言活動,使之成為一種由人運用的萬用工具。人的語言可以干什么?(a)可以認識世界,通過少數感覺器官;(b)可以思考、傳播,也就是說在頭腦里面重新構造,在不同個體之間復制;(c)可以指導行動,通過少數運動器官;
當然,人腦的原理至今仍未研究清楚。圖靈機起先被設想用來數學運算,數學也是語言符號的一種,說到這就得追根溯源了,簡單來說就是古埃及和蘇美爾人創造了文字,其中包含基本的數學符號和經驗公式,古希臘人繼承了他們的很多知識,有些古希臘學者不明所以對數學問題尤其熱忱(我估計是一種宗教追求,或者對有信仰的人來說的真理追求,出于當時多神教的混亂局面,古希臘有識之士期望找到一種統一,可惜大眾不買賬,從他們判了蘇格拉底死刑到后來又選擇了基督教可以看出),從泰勒斯、畢達哥拉斯一脈相承著,發展出物理學、邏輯學等嚴謹性科學,也包括形而上學、神學等氣質性大于嚴謹性的學說,這一精神和知識又被后來的西方人繼承了,走的相當遠,但萬變不離其宗,也就是努力的用簡潔的符號量化和公理化世間的萬事萬物,其中主要的研究著手是人思維中的某些切面-抽象自覺,為了追求完美,還設想只存于人腦的對象,比如幾何圖形,數學就是這種形式上最嚴謹的語言,顯然比古埃及和蘇美人口語化表述高明得多。后來萊布尼茨創立了二進制(1679年),布爾創立了數理邏輯(1847年),是計算機的思想來源,這些理論一路發展,直至1937年圖靈提出圖靈機的概念,將游離于現實世界的抽象符號重新于與實體建立聯系,接著香農提出邏輯電路(1937年),將數理邏輯和電學結合起來,讓圖靈機在物理上有了實現的可能,然后是馮·諾依曼提出存儲程序原理(1946年),把程序本身當作數據來對待,程序和該程序處理的數據用同樣的方式儲存,成為現代最常用的計算機體系結構。
圖靈機需要什么構件呢?它需要輸入和輸出的設備,但這不是核心,所以留到后面講。圖靈機作為語言處理機器最核心的功能是對語言的處理,輸入的狀態1+自身的狀態1=輸出的狀態2+自身的狀態2,用數學的形式表述就是它需要一套符號、公理作為控制要素,數據作為狀態要素,然后進行運算、存儲,這些在香農的設想中由邏輯電路來完成。邏輯電路由門電路構成,而門電路又由開關電路構造,計算機的基礎構件就是由一個個開關電路組成。畢達哥拉斯派以為物體是用數學之點排列出的形狀,他們分類出不同的數,研究出不同的公式,直到碰到了令人難堪的無理數問題,實在解決不了只好把提這個問題的希伯索斯淹死在海里,計算機也有一個很著名的停機問題,其實跟無理數問題也是一脈相承,這個問題太深,還是先搞清楚計算機的基本原理再說,從開關電路說起。
二、計算機的基本原理
一個最簡單的電路加上一個開關,它有兩個狀態:通和斷,正好可以分別表示二進制中的單位:1和0,也叫做比特,開關電路有一些簡單的串并聯物理效應,中學物理都學過:串聯電路需要開關都合上電流才通,并連電路只需要一個開關合上電流就通,用邏輯符號表示:
這種表示方法叫做真值表,表征邏輯事件輸入和輸出之間全部可能狀態,原則上可以設置任意復雜的真值表,然后根據真值表設計邏輯電路:
1. 門電路
接著就可以做門電路了,門電路還需要另外一個構件——繼電器,繼電器利用電磁原理,有兩個電路,第一個電路通電產生電磁使得第二個電路的開關吸合或吸開,第一個電路斷電失磁第二個電路開關因彈簧或利用其他物理原理恢復之前狀態。常用的門電路在邏輯功能上有與門、或門、非門、與非門、或非門、與或非門、異或門等幾種。非門其實就是一個會吸開的繼電器,其他門電路也是由繼電器構成,常見的門電路示例:
2. 全加器和加法機
不能用門電路直接進行數學運算,因為有進位,比如在二進制中1+1=10,做運算需要用門電路構造基礎運算器(加減乘除),拿最簡單的加法來舉例,做加法的基礎零件是全加器,全加器實現兩個二進制數相加,多個全加器的組合叫加法器,能實現多比特數相加,如圖:
根據輸入和輸出的有無設計真值表,然后根據真值表用門電路制造全加器,如下圖:
到這兒符號、公理、運算都有了,數據可以輸入和輸出,似乎只差個存儲,但是不要忘了圖靈機的核心能力之一是自動化,那么我們不僅需要存儲還需要自動化的控制器。要制造控制器首先需要用門電路構造幾個與全加器不同的零件,包括振蕩器、觸發器,再用振蕩器、觸發器構造更復雜的觸發器、寄存器等等。
3. 振蕩器和觸發器
振蕩器是把非門的輸出分出一支作為它輸入,這種自我反饋機制使得它的輸入和輸出電路按一定頻率反復不斷的通電-斷電,它的另外一個輸出分支也是交替變化,電流交替幾乎是瞬間完成,然后維持一段時間的通電或斷電狀態,從電流波形狀是方波,因為變化有一定頻率,所以振蕩器產生的方波是脈沖。
R-S觸發器:觸發器可以保存數據,也可以清除數據,前提是不管開關電路閉沒閉上,電源得保持連通狀態,所以它的存儲是臨時的。最簡單的觸發器叫R-S觸發器,它的邏輯圖如下:
D觸發器:對R-S觸發器稍加改造,比如用一個電路和它的非門分別作為R、S輸入,使得兩個輸入總是相反,Q‘端空置,還可以在兩個輸入線上都加與門由一根控制線控制,這個東西叫做帶控制端的D觸發器,一般就叫D觸發器,D表示它能在CP=1的時候寫入一個比特的數據(0或1),如圖:
邊緣觸發器:兩個D觸發器的Q端串聯,它們的CP端同一個控制線及其非門控制,使得無論第一個觸發器的D端輸入了什么,只有在控制端接通(對應電流波形的上升沿)或斷開(對應電流波形的下降沿)的瞬間數據才會保存,這個叫邊緣觸發器:
T觸發器:將上升沿觸發器的另一個輸出Q ?(即Q')反饋到它的輸入D,那么CP端每一次接通,Q輸出就會交替一次,這個叫T觸發器(乒乓觸發器、反復觸發器),很多單鍵開關的家用電器如臺燈就是這個原理:
4. 寄存器、計數器
循環位移寄存器:將多個上升沿觸發器的輸入輸出串聯成閉合電路,它們的CP端用一個振蕩器控制,使得每一次脈沖前一個觸發器的狀態會轉換到下一個觸發器上,循環往復,走馬燈就是這個原理:
計數器:多個T觸發器相接,前一個T觸發器的Q ?輸出作為后一個T觸發器的CP輸入,那么每一次脈沖都會導致從前到后的T觸發器系列的輸出端狀態按順序發生翻轉,它會產生二進制的效果,這個裝置叫計數器,如圖:
寄存器:將多個T觸發器接續,用同一個控制端,它們的D、Q各自引出作為寫和讀,可以保存多比特二進制數,這個叫寄存器:
5. 傳輸門和存儲器
傳輸門:傳輸門用一個開關控制多條線路的通斷,原理上它也是繼電器;
比特單元:邊緣觸發器加傳輸門用來制造存儲器,存儲器由比特單元和地址譯碼器構成,其中比特單元是只能保存一個比特的存儲器,由一個上升沿觸發器和傳輸門構成,而且只有一個出入口,也就是說同時只能有一個數據進或出:
存儲器:跟寄存器一樣,多個比特單元并列,用同一個W和R控制就可以保存多比特二進制數了,這在存儲器中叫樓層,也是存儲單元,而通常一個存儲器有非常多的樓層,給他們按順序編排,然后用一個地址譯碼器連接它,那么每個樓層對應一個地址,地址譯碼器作為一種控制器,也是根據真值表然后用門電路制造的,下圖以有五個單元每個單元能保存5比特的存儲器為例:
這個存儲器用來干什么呢?跟我們日常用的“硬盤”概念不同,它不是單純用來存儲數據的,它是馮·諾依曼體系架構中的存儲器,也就是把程序本身當作數據來對待,程序和該程序處理的數據用同樣的方式儲存,執行一個程序連同它的數據我們叫做馮諾依曼任務,比如我們要計算:10+5+7+2+6,我們可以在存儲器的順序樓層寫下這樣的數:
上圖中有兩個數10001、10010分別表示裝載、相加,這兩個數在計算機意義上被稱為操作碼,而被相加的數如01010、00101等叫做操作數,操作碼表示指示功能的指令,指示計算機執行一條任務,操作碼在存儲器中是精心布置的,存儲器并不知道它有什么意義,但在控制器會用到它們。指令的數量有限,一臺計算機內置的指令叫指令集,裝載和相加未必是10001和10010,不同廠商生產的計算機控制器能識別什么操作碼通常也不一樣。
6. 全自動加法機
現在萬事具備了,我們來構造全自動的加法電路,還是拿5位二進制加法機來示例,值得一說的就是現代計算機的運算構件不止五位,流行的有32位、64位:
挨個解釋下:
AC是計數器:因為馮諾依曼任務在存儲器中順序存儲,所以計數器表示存儲器地址,每啟動一次地址自動加1。
AR是寄存器:寄存從AC發出的表示地址的二進制數,以便轉交給存儲器。
R-W存儲器:R表示讀取,因為此電路展示的是讀取,所以W端缺省。
DR是寄存器:寄存從存儲器讀取出的某個地址的數據。
IR:指令寄存器,專門用來臨時保存指令,指令來源于存儲器。
EC:譯碼電路,專門翻譯當前指令,由IR輸入。它識別IR中取出的操作碼,翻譯成I-相加、I-裝載、T-停機三個輸出的狀態。
GA是傳輸門:用來切斷或連通從RR到GA傳輸的存儲器數據。
RA是寄存器:用來存儲從存儲器中取出的數或經加法器相加反饋回來的數。
加法器:做加法運算,這里只是舉例,當然也有其他運算器如減法器、乘法器、除法器。
TR是臨時寄存器:用來暫存加法器輸出的數。
GB是傳輸門:用來切斷或連通TR向RA的反饋。
振蕩器:完成反復開關當作指令步驟,它經過一個與門一個非門再與RR相接,使得它的脈沖上升沿時RR得到是下降沿。
RR是循環位移寄存器,它有8個輸出端,對應于八個加法步驟。
譯碼器:譯碼器一種形式的輸入轉換翻譯成另外一種形式的輸出,具體形式根據電路需要的真值表設計。
- 其他空方盒都表示與門或非門(根據符號)。
- EC、譯碼器等作為控制單元,根據真值表來設計電路,這里不述贅言。
- 圖中所有的I都表示電流,其中I-HLT、I-裝載、I-相加、I-停機以及GB到RA的反饋線路中的電流是向左流動,其他線路中的電流向右流動。
- I-IR、I-AC、I-AR、I-DR、I-GA、I-RA、I-TR都經由一個與門,為方便表示,它們的與門從譯碼器獲得的電流符號皆加一瞥表示,如I-IR的與門輸入是I-IR'。
加法運算的步驟可詳細拆分為:
RA上接入一個新的控制器然后再接到存儲器上,可以將RA上最終的運算結果保存下來,有一個小小的問題:加法器相加得到的數超出存儲單位能存儲的位數怎么辦?很簡單,上圖5比特加法機的加法器上其實有六根輸出,被棄置的一根表示進位,把它接到一個D觸發器上,再轉接到新控制器再到存儲器上,當然我們還得對控制器進行一番設計,數據存儲到存儲器中的兩個相臨地址(一般前一個地址表示進位,后一個地址寫本位),當使得D觸發器的輸出=1時將,第一個地址寫入一個1,第二個地址寫其余位上的數,在作加法時,還得分別取數相加,當然,操作指令會有些不一樣,電路就會更復雜一些,這里只給出它的簡單示意圖:
三、現代通用計算機
1. CPU和內存
到目前為止,一臺圖靈意義的計算機算是完成了,然而這樣的計算機定然效率極低、功能單一,還需要對它進行升級改造,為此人類在半個多世紀時間發明了很多硬件和軟件的技術,而且仍在非常快速的升級換代。硬件方面最基礎的繼電器先后被電子管和晶體管替代,晶體管由半導體制成,單向導電且可控,它的原理簡單來說就是通過中間的柵極控制另兩級電流的有無,并且柵極具有信號放大的作用:
用半導體做成的繼電器-晶體管體積可以極小,省電、耐用,而晶體管振蕩器可以以極高的頻率震蕩,極大的提升了計算機的運算效率。然后人們又發明了工業化流水線技術,將晶體管集成在本征硅上,現在的工藝據說能在一個指頭大的芯片上集成幾百億個晶體管。而存儲器除了用半導體集成電路來做外,還可以用電容來作為存儲介質,流水線技術對大規模邏輯電路進行集成,現代計算機的控制器一般是這樣的結構:
微代碼ROM其實是只讀寄存器,在出廠時已經制造好了的,它輸出是存儲器地址,而存儲器存儲的微代碼(Microcode)就是計算機能執行的指令,它有助于將機器指令和底層電子器件分開,以使指令的設計和更改更加自由,如果計算機的設計發生改變,可以根據需要改變它的輸出來修改它的功能,而不必拆掉所以零件重新組裝。
控制器和運算器等一堆組件再集成一下,制成微處理器,用于微型機上,也就是我們買手機電腦配置中必見的CPU,它的基本組成部分有:寄存器堆、運算器、時序控制電路,以及數據和地址總線。將運算器中的存儲器單獨封裝成內存(內存中除了存儲器還包含其他元件),內存是處理器的原料和成品倉庫。
研究者為了提高運算時效和數據傳輸效率又發明了CPU意義上的流水線技術、高速緩存技術、執行多任務的中斷技術,以及還有為方便外接設備互相傳輸技術的直接內存存取和節約內存空間的虛擬內存技術等等,工程師們為了計算機提高效率、節省成本竭盡所能。
2. I/O設備和接口
CPU和內存只能暫存數據,所以需要外接靜態的存儲,也就是俗話說的磁盤或硬盤,最初的“磁盤”是紙帶或卡片,數據保存于上面的孔,現在比較常用的有光盤、機械硬盤、固態硬盤,原理大抵都是電磁感應,有興趣的可以自行 了解。計算機運算時將硬盤中的程序和數據讀入到內存再運行。
一臺標準家用計算機配置鼠標、鍵盤、顯示器,還提供相機、手機、U盤等接口,這些統稱為I/O設備,通過一些外接設備計算機實現了將物理過程轉化成模擬信號(連續變化的電流)再轉化成數字信號(用特殊的電路取模擬信號的閾值、量化為離散的二進制數),而輸出過程與此相反。
如果每一個外接設備都出廠配置或提供單獨插口顯然不可能,因此在計算機核心和設備之間構造邏輯電路,構造一些外部的寄存器,在CPU或內存上增加指令,對于不同的設備用不同的指令,用統一的地址編碼, 就像是協議——接收外部設備送來的信息或將信息發送給外部設備,這些邏輯電路-存儲器就像一個個出口,稱為I/O接口,其中一些寄存器叫端口。現在很多外接設備自帶一部分接口,在上面有微處理器、存儲器、轉碼/解碼器、端口等等,比如顯示器有顯存、顯卡,提高數據傳輸和運算的效率。
3. 操作系統和軟件
有了外接設備計算機能實現的功能就不止是數學運算了,雖然計實現所有功能實質上都是二進制運算,更準確的表達是邏輯電路堆上的電流流動,但我們對不同的二進制可以制定標準賦予其不同的意義,比如ASCII(美國信息交換標準代碼)就是為常用的256個字符制定的一種方便不同計算機和設備之間傳輸數據的二進制編碼標準,有傳輸控制代碼,比如00001010表示換行;也有定義常用字符,比如00110000表示十進制數48,或者字符-按鍵“0”,鍵盤就遵循這個標準,敲一個鍵向計算機傳入的是一個ASCII二進制碼。那計算機怎么理解這些特殊意義呢?這就需要編好的軟件程序來轉化,以十進制計算125+66為例:
1. 首先計算機拿到用戶按下的1、2、5三個鍵對于的ASCII碼,如按鍵"1"對應00110001。
2. 00110001又對應十進制49,所以計算機讓它與48的二進制相減,拿到了用二進制表示的十進制1。
3. 2和5的操作相同。
4. 然后計算機把這三個數字(二進制)合并一下,也就是1·100+2·10+5,得到125的的二進制數。
5. 按下"+"鍵,得到ASCII碼為00101011,計算機轉譯它為相加指令,執行相加動作。
6. 再按下6、6,按照類似上面的步驟,最終得到結果191。
讓人類理解計算機的運行結果同樣是通過軟件轉化輸出到I/O設備上,比如顯示器,現在常用的液晶顯示器運用液晶在電壓下改變排列方向而改變旋光性的原理,用電光源、三個帶原色濾鏡的液晶旋光元件構成一個像素,幾百萬個像素點的色彩明暗構成一副圖,軟件將計算機二進制用專門用于解析顯示器圖像的圖形處理器(GPU)解析成表示每一個像素元件的電流強弱有無的信號,從而在屏幕上顯示圖形。
那么計算機程序是怎么回事呢?這就得說到操作系統。現代計算機除了CPU的控制器中寫死了的指令,在出廠時還會配置內存(RAM)、只讀存儲器(ROM)作為基礎程序存儲器,以及硬盤、鍵盤、顯示器等外接設備,在硬盤默認安裝操作系統,操作系統作為一種程序,避免了計算機像流水一般的靜默運行,它管理計算機系統的硬件、軟件及數據資源,控制程序運行,提供人機界面,讓用戶通過I/O設備的操作來調用計算機的程序、數據,使得硬盤上的軟件和數據文件像菜單一樣等著人去操作。計算機從啟動到進入操作系統大概是這么一個過程(以機械硬盤為例):
- CPU通過地址總線直接訪問ROM和RAM,ROM用于固化一些指令,在計算機啟動時首先訪問,這些指令集一般稱為基本輸入/輸出系統BIOS。固化的指令又很多,主要有初始化:檢測一下計算機的各個部件(比如中央處理器自己的一些內部零件);有訪問一些外部設備的指令,也就是設備驅動程序,不過它包含的只是少量常用設備,比如鍵盤、打印機、顯示器、硬盤。計算機啟動先挨個訪問這些指令,用于檢測計算機的各個基本硬件電路,整個過程又叫做POST(加電自檢,或者叫上電自檢)。
- 自檢完后進行系統初始的布置,接著它運行操作系統的部分:讀取硬盤0面0磁道第一個扇區的內容進內存,然后用一個跳轉指令進行內存中執行這些數據。
- 硬盤0面0磁道第一個扇區稱為主引導扇區,有512字節,包含446字節的啟動指令和數據,后面64字節時分區表,最后2字節必須時01010101和10101010,表示主引導區時有效的,這兩個二進制數稱為“花碼”。分區表之名當前硬盤分成幾個部分,總共允許4各主分區,每個分區的資料有16字節,指明分區的起始位置、大小、類型以及是否為活動分區。原則上類型是一個二進制數,表明該分區由哪種操作系統負責管理,因為每次只能啟動一個操作系統;活動分區的意思時可以啟動或應該被啟動的,4各主分區中只允許一個活動分區。
- ROM中讀取和檢測完主引導扇區指令之后時一個跳轉指令,跳轉到內存接著執行主引導扇區讀到內存中的指令。主引導扇區的啟動指令時分析讀入內存的分區表,取得活動分區,然后算出該分區起始位置,從活動分區讀入操作系統寫在那的引導代碼,把它讀入內存接著執行。如此一環接一環,從主引導扇區開始操作系統把自己讀入內存并開始執行的過程稱為“自舉”。
硬盤上有兩種東西,一種是軟件程序,合適的時候被CPU執行;另一種本質上不是處理器可以識別的指令,而是軟件處理的材料,比如文檔、音樂文件等。軟件用意是提高計算機任務的編寫效率和復用性,我們在操作系統上編寫程序,當然不會是直接用二進制碼編寫,所以程序員門定義了許多適用于計算機又易被人理解和編寫的語法,設計編譯器軟件能將用此語法寫出的文件編譯成機器二進制指令,用某種程序設計語言編寫程序就叫編程,編好的程序文件運行時由相應的編譯器解釋成二進制指令然后運行。最接近機器碼的編程語言是匯編,特定的匯編語言和特定的機器語言指令集是一一對應的,而較高級的如C#,更接近于人的日常語言,不同的設計語言適用于不同的環境。
就這樣,計算機和人之間經過硬件、軟件多層的轉義實現相互理解,從而讓計算機完成人交予的任務。
四、哪種形式的人工智能最為可能?
現在回過頭來看,計算機實現的其實是數學解決問題的一種方式,作為來源于抽象直覺的知識,人并不能直接的認識到“真實”,即便如我現在進行的活動:敲打著鍵盤,看到一朵花,它在我認識中就是直覺,很難說清楚它到底是什么,只能說它是我先天生理和過去所有經驗的一個抽象,從這個意義上講只要認識了直覺,就相當于認識了世界,因此對于世間一切事物,只要人能識別它的某些特征,就能用數學來描述,進而在計算機上模擬它,今年谷歌搞出的大新聞——用深度學習原理開發的名為“阿爾法狗”的圍棋程序戰勝人類頂級棋手就是一個例證。那么很自然的有此疑問產生:人工智能會實現嗎?
對于計算機而已,一切都是數據,或者是電子脈沖,而對于神經系統中一切都是動作電位。人和計算機似乎是相似的,但不全然如此,神經獲取電位需要細胞外離子,神經之間傳遞電位需要化學遞質,而整個神經系統液體環境受激素的調節,往大了說,整個人體系統還受微生物的調節,腦與神經系統內存在幾千種物質,比較熟知的如多巴胺,作為一種作用于細胞傳送脈沖過程的神經傳導物質,它影響人的情緒、思維,還有5-羥色胺,它也是一種興奮性神經遞質,在腦中的缺失會導致人的抑郁。這些化學、物理乃至生物因子直接或間接的改變神經細胞的細胞透性、受體分子、物質濃度,從而影響動作電位的產生、傳遞,對人腦而言從輸入、運算再到輸出每一個細微的環節都受到各種因素的影響,數據早已面目全非,而這些物質的水平,可能取決于一餐飯、一件事,也可能由長久的生活習慣導致,人的系統特質從卵子受精開始就受基因和環境的影響不斷的改變,無法量化,往久遠了說,某些物質的作用可能從單細胞原始生物進化開始就寫入基因,而人經過數十億年之進化,這些看起來很混亂復雜的硬件、軟件,但卻能有效的維持內部環境和適應外部環境,難以用自動化來解釋,有特別需求時總會通過創造來體現它的能力。
計算機當然能實現智能,而且遠遠的超越人類,關鍵在于如何定義智能,從人的意義上講計算機要實現人類的智能要走很長很長的路,有什么特別的意義需要它持續的走這條路嗎?這個可能性很容易被其他可能替代。當然只要計算機有的潛能人就會用它實現各種需求,或許有人制造出能全天候模擬某種“常人”的產品,一些人把這種擬人當作真人攜手共度一生;也會有其他需求,有些需求出于壞的目的,可能會導致新聞出現這樣的大標題:“人類正在被人工智能取代”、“人工智能即將消滅人類!”。
如果沖突在即,利用計算機提升自身能力的人類和利用計算機替代自身的人類哪一方會取得勝利?我認為這樣的事情不會大范圍的發生,因為計算機展現了另外一種更強大的能力,那就是作為一種自然法則意義上的智能,人類已經逐漸脫離原始自然界的法則,進入新的法則,這個法則由于互聯網的發展初見端倪,它同時定義了人類整體和計算機的行為,我們人類很可能就在這智能自然界中與它相互適應,繼續進化。
- 最后推薦一本書:李忠:《穿越計算機的迷霧》,這本書講計算機的原理和發展歷史,由淺入深,讀來有趣,我看了這本書才寫這篇文章,本文使用的大部分配圖取自于它,已征得作者的同意。