梁春華
(1.山西大學科學技術史研究所,山西太原 030006;2.山西省財政稅務專科學校,山西太原 030024)
人工智能是讓機器模擬人類思維和行為方式,從而讓其在某些方面達到人類智能的水平。它的研究涉及了多門學科知識,是一個跨學科的研究領域。但是計算機硬件和軟件的發展,是人工智能實現的基本保障。本文從計算機體系結構入手,介紹了計算機硬件和軟件的發展過程和趨勢,以及對人工智能發展起到的作用。
計算機體系是一個多級層次結構,通常將其分為硬件和軟件兩大部分。硬件部分主要有輸入/輸出設備、存儲器和CPU。軟件有系統軟件和應用軟件兩類。現代集成技術使得計算機的體積越來越小,但是性能卻越來越強。
硬件作為計算機基本的組成部分,是作為物理底層為上層軟件的運作提供了基本的環境支持。在計算機體系設計中的一個核心問題就是如何提高計算機硬件運行和服務的效率,使上層軟件的運行更加快速和流暢。隨著上層軟件種類和功能的不斷增加,對底層硬件的要求越來越高。硬件和軟件的兼容、配合以及交互成了體系設計最大的問題。分布式體系結構提升了硬件的處理能力,但同時增加了系統結構的復雜性和操作性。
如今,隨著網絡技術的發展,云平臺區塊鏈技術的成熟,計算機體系從傳統的單機系統擴展為以網絡結構為基礎的多系統多體系平臺。這種模式從理論上看,大大增加的了系統結構的復雜性,但對于用戶體驗而言,這種復雜性完全可以忽略,用戶不需要對其有更多地了解,也不需要投入更多的成本。相反,用戶體驗到的是方便、快捷、高效的運行環境。集群計算機體系結構就是一個典型的案例。它通過以太網或InfiniBand網絡作為內聯方式,使用Linux操作系統和并行編程接口,采用價格比較低的服務器為運算節點,整個系統較之前系統的成本明顯降低,而且公開性和操作性都比較強[1]。
軟件作為計算機體系結構中的上層應用,在20世紀80年代前,只是為專門的計算機而定制的小程序,功能比較簡單更沒有形成產業。20世紀80年代后,隨著計算機硬件集成化程度提高,計算機體積變小個人電腦普及,各種功能齊全的軟件也應用而生,軟件開發逐漸標準化產業化。進入21世紀后,英特網普及,開源社區發展迅速,開源軟件開始流行,軟件開發也逐漸向網絡化、智能化的方向發展。其開發策略也從原來面向過程的編程轉化到了面向對象的編程,開發的軟件功能更強大也更具有人性化,為人類在生活生產中解決很多實際問題。
計算機體系結構的發展使得計算機能夠以更低的成本,更好的互動,在網絡環境下發揮更好的性能。為人工智能的發展提供了更有效的運行環境。
1946年,第一代電子管計算機研制成功,它的主要特征是體積大、耗電大,運算速度慢;1959年第二代晶體管計算機誕生,與電子管相比晶體管壽命長、體積小、運算速度快;1965年第三代集成電路計算機產生,集成電路技術使計算機在性能和結構方面都有了很大的提升,其主要的代表就是IBM公司研制的360系列計算機;1971年以后,是大規模集成電路和超大規模集成電路的計算機,以英特爾公司推出的x86系列和奔騰系列微處理器為標志,它不僅大大縮小了計算機的體積,而且還提高了計算機的處理能力。
在處理器的研制上,英特爾公司不斷刷新著主頻記錄,處理器一直以摩爾定律的速度在發展,其處理能力每18個月到24個月就增加一倍。1972年的8080處理器,主頻2MHz每秒處理50萬條指令;1978年的8086處理器,主頻8MHz每秒處理80萬條指令;1982年的80286處理器,主頻12MHz每秒處理270萬條指令;1989年的486DX處理器,主頻25MHz每秒處理2000萬條指令;1993年的奔騰處理器,主頻233MHz每秒處理4.35億條指令;1997的奔騰Ⅱ處理器,主頻333MHz每秒處理7.7億條指令;2000年奔騰Ⅳ處理器,主頻已經達到1.4GHz[2]。
當英特爾還在一心追求處理器高主頻的時候,另一家公司NVIDIA在1999年8月發布了一種專門做圖像運算工作的微處理器GPU(Graphic Processing Unit)。GPU采用的是一種全新的架構模式,它將幾何轉換與光照功能以硬件的形式集成在圖形芯片中,由圖形芯片直接負責幾何轉換和光照操作,這使得處理器性能大大提高。與CPU相比,GPU在高清視頻、數碼照片處理、3D渲染等方面的表現非常優越。GPU的誕生,使得對處理器的研制從追求高主頻轉換成追求高性能,NVIDIA與ATI兩大公司為此展開了激烈的競爭。直到2008年,隨著大數據云計算的興起,以及智能手機的廣泛應用,市場對高性能已不再是唯一的訴求,性能適中的輕量級GPU成為了下一個發展方向[3]。
隨著人工智能技術的發展,神經網絡的規模越來越大,采用多處理器集成的架構模式使得算法實現的裝置體積巨大。為此,2015年,谷歌推出了TPU(Tensor Processing Unit),它是一種專用于神經網絡計算的處理器,主要用于深度學習、AI運算,其算力較GPU有很大的提高。AlphaGo是第一個戰勝圍棋世界冠軍的人工智能機器人,最初它內部安裝了1202個CPU和176個GPU用于運算處理。2015年引入TPU之后,與李世石對戰的AlphaGo,只有48個TPU負責所有的計算任務。
存儲器是計算機硬件的另一個主要組成部分。在計算機體系中一般采用外存、緩存、內存多級存儲策略。外存容量大成本低但相對讀取速度慢,通常用來保存需要長久存放于計算機內的大量數據,例如系統安裝的軟件、用戶的資料、數據庫等;緩存是為了提高數據讀取的命中率而引入的一種機制;內存數據讀取的速度與CPU相當,可以和CPU直接進行數據的交換,是CPU處理數據的來源。但因為內存是通過大量的晶體管構成寄存器來保存數據的,所以采用的硅片面積比較大,制造成本高,在系統中容量配置相對小些。但是隨著電子制造技術的提升,現在pc機硬盤的配置可以達到1TB,內存容量如果是64位操作系統一般都在4GB。計算機存儲器容量的增加可以滿足人工智能時代海量數據的存儲。
隨著計算機硬件的發展,計算機輸入系統也呈現多樣化形式。數據來源不再是單純的以鍵盤輸入為主的模式。攝像機微型化之后,計算機系統普遍都安裝了攝像頭,通過攝像頭可以實現視頻的采集;而在計算機系統中安裝聲音采集器可以實現語音輸入。傳感器可以模擬人類感官讓計算機可以像人類一樣從自然環境中獲取信息,常見的有觸覺傳感器、視覺傳感器、力覺傳感器、溫濕度傳感器和超聲波傳感器等。計算機的這些新型輸入方式更接近于人類日常生活的習慣,也使計算機用起來更人性化,智能化。
計算機硬件的這些特性是人工智能發展的基本保障。
計算機語言是計算機軟件開發的主要工具,也是解決實際問題的手段。20世紀50年代,為了方便人們操控計算機的運行,機器指令順應而生。它采用的是二進制編碼,增加了計算機的可操作性,但對用戶而言可讀性不高,調試難度大。匯編語言是第二代計算機語言,用字母和單詞(add、sub等)代替一些特定的指令,增加了程序的可讀性,但它是直接面向硬件的操作指令,程序的可移植性差。之后,出現的高級語言其表現形式更接近于數學語言和自然語言,可讀性強。而且不依賴于計算機硬件,能在不同的機器上運行,可移植性強。計算機語言的發展,極大地促進了計算機在各個領域的應用和普及,給人們的日常生活帶來了翻天覆地的變化。隨著人工智能的出現,計算機語言也逐漸向智能化、網絡化的方向發展。
1956年達特茅斯會議提出“人工智能”概念之后,1958年麥卡錫和明斯基的人工智能項目組,開發了LISP語言。LISP使用表結構來表達非數值的計算問題,實現技術簡單是使用最廣泛的人工智能語言。1972年一種基于謂詞邏輯的編程語言Prolog產生,它是面向邏輯面向用戶的一種編程語言,主要用于描述知識的邏輯關系和抽象概念,也稱為描述性語言。Prolog依照人的思維邏輯,運用數理邏輯中的謂詞邏輯來描述解決的問題方法,告訴計算機“要做什么”而不是“怎么做”。Prolog編寫的程序更接近于自然語言,邏輯性強易寫易讀易于正確性證明。1982年,由Larry Wall設計的Perl語言是運行在Unix環境下的一種腳本語言。Perl對文件和字符有很強的處理能力,主要用于大型網站開發。20世紀90年代初,荷蘭人Rossum設計了Python語言,其語法清晰、簡潔,并且擁有大量第三方函數模塊,編程簡單但功能強大,很快成為了人工智能主要的編程語言[4]。
在大數據背景下人工智能發展更加迅速,隨之而來的是計算機需處理的海量數據,而且這些數據來源廣泛,特點多樣,若是利用傳統的算法進行數據的分析處理,確定數據的有效性和安全性,需耗費大量的時間,也導致整個系統運行變慢,性能下降。而人工智能語言編寫的軟件利用模糊邏輯粗糙集理論在不影響系統性能的情況下,可以對海量數據實現快速推理和分析,挖掘數據深層次的價值,得出其背后隱藏的規律,有效地幫助人類作出合理的決策。
進入21世紀后,網絡高速發展,開源軟件由于開放二次開發的權力,具有低成本高安全的特性受到了各國企業和政府的支持得到迅速發展。開源軟件是在遵守一個開源協議的前提下,將程序的源代碼公開發布,允許其他人學習修改和發布,也可轉化成任何形式的實用軟件的一類軟件。截至2006年底,全球研發和應用開源軟件的企業占到了總數的50%以上。而人工智能開源軟件(OpenCV、NLTK、CNTK、TensorFlow等)在自然語言處理、計算機視覺、機器深度學習等領域中也扮演著重要的角色。
人工智能的發展涉及生物學、神經學、仿生學、電子科學、計算機科學等學科,是多學科交叉融合發展的領域。用來支持人工智能實現的計算機系統,也逐漸表現出一種軟中有硬、硬中有軟的混合模式。現場可編程門陣列(Field-Programmable Gate Arrays,FPGA)就是一種典型的代表。
基于現場可編程門陣列的系統設計,其硬件功能的實現可以通過軟件設置來完成,通過調試軟件參數就可以實現硬件功能的改進。這種全新的軟硬件設計理念使計算機系統具有更強的靈活性和適應性,提高了人工智能的應用效率,為人工智能構建了一個更具可擴展性的大腦。