書名: Greenplum:從大數(shù)據(jù)戰(zhàn)略到實現(xiàn)作者名: 馮雷本章字數(shù): 4873字更新時間: 2019-10-10 18:57:08
1.3 人工智能
人工智能是計算機科學的一個分支,它的主要研究目標是用計算機程序來表示人類智能。這個詞最早是在1956年的達特茅斯會議上正式提出的。在達特茅斯會議正式提出“人工智能”這個概念之前,圖靈和早期的計算機科學家一般用“機器智能”這個詞。需要強調(diào)的是,人工智能是建立在計算機之上。不管人工智能應用多么美妙和復雜,在圖靈眼里都是圖靈機上的一個程序(或者叫作可計算數(shù),具體參考1.5節(jié))。人工智能課程的主要目的是學習建立在模型之上的算法。這些算法和其他計算機領域的算法并無太大區(qū)別,只是這類算法專注在如圖1-3所示的智能主體(Intelligent Agent)里面的模型。在人工智能領域,計算機科學家們試圖建立模型使得智能主體能夠觀察周圍環(huán)境并做出行動,就像人類的行為那樣。

圖1-3 智能主體作為AI的主要研究對象
最近5年,由于智能主體模型在無人駕駛、聊天機器人和計算機視覺識別等應用的準確率的提升,人工智能的應用熱度也隨之提升。AlphaGo等棋類對弈讓人工智能被公眾津津樂道,因為計算資源和計算能力的提升,在限定時間內(nèi),對弈模型比人類棋手更具優(yōu)勢,這也引發(fā)了很多關于人工智能的討論。
1.3.1 模型化方法
要理解AI和智能主體,我們要先理解模型化的研究方式。模型之所以讓人覺得神奇,是因為很多模型本身是基于經(jīng)驗的,很多時候我們并沒有深究物理和計算機等領域的很多模型背后的邏輯。以我們熟知的自由落體運動為例,我們可以為球體在斜塔自由下落建立一個數(shù)學模型。在亞里士多德的年代,這個模型被認為是和物體的質(zhì)量有關系的,所以構建的模型可能如下:
h=c+ α×m+ β×t+γ×t2
其中,h是下落高度,m是物體質(zhì)量,c, α, β, γ是未定參數(shù),t是時間。
其實,模型的構造是門藝術,依賴于構造者。但是,亞里士多德并沒有驗證他的模型。按照現(xiàn)在的科學方法,我們至少需要四組以上(h, t)的測驗數(shù)據(jù)來校準四個未定參數(shù)。如果數(shù)據(jù)足夠準確,我們會發(fā)現(xiàn)c=0, α=0, β=0, γ≈5。讀者可能會問,為何不構造一個和t3相關的系數(shù)?答案還是因為模型是門藝術,跟構造者的直覺有關。例如,伽利略認為自由落體的下降時間和質(zhì)量無關,所以他會直接從模型里去除α×m這一項。讀到這里,讀者可能已經(jīng)感覺到,如果我們測試得到的(h, t)的數(shù)據(jù)足夠多,不管哪個模型的參數(shù)調(diào)校出來的公式都接近h=5t2。假設讀者沒有安全感,在模型里面加入了其他變量,只要測試足夠多的數(shù)據(jù),仍將發(fā)現(xiàn)這些變量的系數(shù)都接近于0。通過這個例子,讀者也可以直觀感受到“大”數(shù)據(jù)量有助于提高模型的準確度。
到此為止,可能很多人滿足了h=5t2的經(jīng)驗公式。但是,仍有好奇的讀者會繼續(xù)追問為什么結果是這樣?背后的邏輯是什么?在后面關于人與AI的討論中,作者會區(qū)分人的兩類知識:經(jīng)驗和邏輯。目前為止,這只是一個經(jīng)驗知識。但牛頓對這個問題深究了下去,最終奠定了牛頓三定律和萬有引力在內(nèi)的古典力學體系。學過中學物理的讀者都知道,自由落體背后的邏輯是因為距離(h)、加速度(a)和時間(t)之間存在以下動力學關系:

另外,根據(jù)萬有引力定律F=GMm/r2,加速度
a=GM/r2
在牛頓力學體系內(nèi),我們解釋了經(jīng)驗公式,并且可以精確計算出加速度(a)。站在牛頓力學的高度,我們可以通過邏輯推斷出前面的自由落體模型。但是,我們很快又發(fā)現(xiàn)萬有引力F=GMm/r2仍舊是個經(jīng)驗模型,目前并沒有一個更高層次的模型可以通過邏輯推斷出萬有引力模型。就這樣,在一層層邏輯化自己的經(jīng)驗知識的過程中,聰明的讀者會把自己的知識拓展至已知知識的邊界。在已知知識邊界外的創(chuàng)新,可以用來邏輯化很多我們現(xiàn)有的經(jīng)驗知識。當然,還存在另外一種情況,邊界外的創(chuàng)新也可能會指出經(jīng)驗知識的局限性,例如麥克斯韋電磁學指出了光速不依賴參考系,從而幫助我們發(fā)現(xiàn)已知的牛頓力學的不足。
理解了模型化的科學方法以后,讀者就很容易理解AI就是圍繞智能主體建立模型,在這些形形色色的模型背后,有著不同的派別和研究方法。在推理(Reasoning)背后,建立了一種叫作目標樹(Goal Tree)的模型;在機器學習背后,則模擬人的大腦的神經(jīng)元放電機制建立了一種叫作神經(jīng)網(wǎng)絡(Neural Networks)的模型。考慮到最新一輪AI的熱度很大程度上是由神經(jīng)網(wǎng)絡和深度學習帶動的,所以我們在這里簡單介紹一下神經(jīng)網(wǎng)絡模型的設計靈感,讀者可以從中體會科學模型背后的藝術。
神經(jīng)網(wǎng)絡用于模擬人的神經(jīng)元的決策機制,所以我們先來看一下人的神經(jīng)元的結構。人的單個神經(jīng)元如圖1-4所示,樹突(Dendrite)會接受信號輸入,然后在軸突(Axon)產(chǎn)生一個脈沖輸出到神經(jīng)末梢(Axon Terminal),從而輸入給下一個神經(jīng)元。我們可以認為人腦是神經(jīng)元的集合,雖然無數(shù)神經(jīng)元的協(xié)同工作涉及無數(shù)細節(jié),但是人工神經(jīng)網(wǎng)絡模型只要抓住一些基本的細節(jié)就夠了。
在圖1-5中,我們對這個神經(jīng)元進行簡單的模型模擬,創(chuàng)建一個接受兩個特性(X1, X2)的輸入后產(chǎn)出一個輸出的人工智能神經(jīng)元。為幫助讀者更直觀地理解這個建模過程,我們不妨把X1設為西紅柿的顏色:紅色為1,青色為0;把X2設為西紅柿的硬度:軟的為1,硬的為0。紅色并且已經(jīng)軟的西紅柿是成熟的,可以食用(可否食用作為輸出)。我們把可以食用記為1,不能食用記為0。我們的目標是設計一個數(shù)學模型來模擬和訓練這個神經(jīng)元以實現(xiàn)識別成熟可食用的西紅柿的目標。

圖1-5 接受兩個特性輸入的人工智能神經(jīng)元
我們認為這個神經(jīng)元對顏色輸入敏感,因此給X1分配一個較大的權重(Weight1),不妨記為50;這個神經(jīng)元對于硬度的敏感性稍弱,因此X2的權重(Weight2)記為40;這個神經(jīng)元只有在輸入信號高于閾值(Threshold)60的時候才開始放電并輸出脈沖(1),否則保持安靜(0)。為此,我們選擇S函數(shù)(也稱為Sigmond函數(shù))作為一個神經(jīng)元工作函數(shù):
y=1/(1+e-x),其中x=Weight1×X1+Weight2×X2-Threshold
讀者可以為兩個特性分別取不同的輸入值,當兩個輸入變量都為1的時候,輸出大體為1。兩個變量在其他輸入情況下,輸出接近0。我們根據(jù)已知的輸入和輸出訓練了這個模型的參數(shù):Weight1、Weight2和Threshold。這個訓練好的神經(jīng)元基本能達到識別可食用西紅柿的目的。讀者可能會好奇為何要給輸入乘上權重(Weight1和Weight2)?為何要選擇一個閾值(Threshold)?這是為了更好地模擬生物神經(jīng)元的工作原理。讀者可能還會好奇為何選擇Sigmond函數(shù)作為神經(jīng)元函數(shù)?簡單地說,這是為了方便計算調(diào)優(yōu)參數(shù)并減少計算工作量。具體來說,1974年,Paul Werbos在他的哈佛大學博士畢業(yè)論文中選擇了這個神經(jīng)元函數(shù),在神經(jīng)網(wǎng)絡模型中首先使用了反向傳播算法。在此之前,人工神經(jīng)網(wǎng)絡因為計算量巨大,在閔斯基以后的很長一段時間內(nèi)停滯不前。神經(jīng)網(wǎng)絡在20世紀80年代出現(xiàn)了一個小熱潮,但是到20世紀90年代熱度又下降了很多,甚至麻省理工學院的人工智能課程中差點刪除神經(jīng)網(wǎng)絡部分的內(nèi)容
。2012年,多倫多大學的Geoffrey Hinton教授使用了有6000萬個參數(shù)的神經(jīng)網(wǎng)絡在圖像識別中取得巨大成功,這當然離不開當今時代的算力的提升(在1.4節(jié)中會繼續(xù)討論云計算的出現(xiàn)使得原來無法想象的神經(jīng)網(wǎng)絡訓練變成可能)。Hinton也因此被認為是深度學習的奠基人,并成為谷歌大腦研發(fā)的關鍵人物(也曾任教于卡內(nèi)基·梅隆大學)。至于如何把圖像處理后輸入到擁有數(shù)以萬計神經(jīng)元的網(wǎng)絡進行識別,讀者可以參考Hinton的工作。
因為在圖像識別、語音識別、文本翻譯等領域的突破,出現(xiàn)了最近一輪建立在神經(jīng)網(wǎng)絡上的機器學習和深度學習的熱潮,對AI我們應該持有什么樣的預期?為此,我們有必要回顧一下AI的歷史。歷史總是會重復自己,回顧AI歷史能夠幫助商業(yè)決策者做出正確的預期和決策。
1.3.2 AI的發(fā)展史
自遠古時代,人類一直希望能夠創(chuàng)造一種類似于人類智能的機器,將人類從乏味的重復勞動中解放出來。直到1936年,計算機科學的鼻祖圖靈發(fā)表了名為《論可計算數(shù)》的論文,機器模擬人類智能的哲學話題才轉(zhuǎn)變成一個可以像數(shù)學學科那樣被論證的課題。在論文中,圖靈構造了假想的機器來模仿人類。電影《模仿游戲》講述的就是圖靈如何構造假想的機器(計算機)來模仿人類的故事。在那個時代,人工智能的概念還沒有提出,人們更多地使用“機器智能”這個詞來討論計算機帶來的智能。簡單地說,圖靈的論文證明了機器可以模仿人類智能,所以今天的無人駕駛、聊天機器人、棋類對弈和計算機視覺識別等應用都是圖靈預見的,雖然他那時并沒有足夠的硬件條件測試這些應用。讀者如果想深入探討計算機是否可以模仿所有人類的活動,可以參考1.5.1節(jié)中關于AI和人的討論。
在圖靈提出圖靈機后,多個機構便開始設計真正意義上的遵循通用圖靈機模型架構的存儲程序計算機(Stored-program Computer)。雖然第一臺存儲程序計算機(后文稱作現(xiàn)代計算機)是誰先發(fā)明的至今仍有爭議,但是影響較大的是馮·諾依曼提出的EDVAC(Electronic Discrete Variable Automatic Computer)。馮·諾依曼在后來也確認現(xiàn)代計算機的核心設計思想是受到通用圖靈機的啟發(fā)
。現(xiàn)代計算機發(fā)明以后,各種應用如雨后春筍一樣蓬勃發(fā)展,但是真正把人工智能作為一個應用方向提出來還是在1956年的達特茅斯會議。
在20世紀40年代末現(xiàn)代計算機被發(fā)明后,從20世紀50年代開始,各個領域都開始關于“思考機器”(Thinking Machines)的討論。各個領域的用詞和方法的不同帶來了很多混淆。于是,達特茅斯學院(Dartmouth College)年輕的助理教授麥卡錫(John McCarthy)決定召集一個會議澄清思考機器這個話題。召集這樣的會議需要贊助,聰明的麥卡錫找到了他在IBM公司的朋友羅切斯特(Nathaniel Rochester)和在普林斯頓大學的朋友閔斯基(Marvin Minsky)以及大師香農(nóng)一起在1955年寫了一份項目倡議。在倡議中,他使用了人工智能(Artificial Intelligence)這個詞,避免和已經(jīng)有的“思考機器”一詞混淆。這里值得一提的是閔斯基,麥卡錫和閔斯基后來在麻省理工學院領導了AI實驗室,成就了麻省理工學院在人工智能領域首屈一指的地位。會議在1956年舉行,這里必須提到另外兩位短期的參會者,來自卡內(nèi)基·梅隆大學
的紐厄爾(Alan Newell)和司馬賀(Hubert Simon)。他們雖然只呆了一個星期,但是他們的報告中公布的一款程序“邏輯理論家”(Logic Theorist)代表了人工智能的另外一條路線。因為紐厄爾和司馬賀的奠基工作,卡內(nèi)基·梅隆大學成為人工智能的另一個重鎮(zhèn)。至于其他參會人員和他們之間的趣聞,讀者可以參考《東方早報》在人工智能60周年的報道
以及相關的著作。
1.3.3 對AI應用的正確預期
達特茅斯會議的意義在于確立了“人工智能”(AI)作為計算機科學的一個研究領域,自那以后,AI在機器視覺、自然語言處理、無人駕駛等領域取得了長足發(fā)展。但是,“人工智能”這個概念常常被過度消費。過去,美國的學者用這個概念來申請政府研究經(jīng)費,今天有不少公司用這個概念來從資本市場募資。但實際上,AI的進展并不像很多人預言的那樣樂觀。就棋類對弈而言,司馬賀在20世紀50年代末就預言計算機能打敗人類,但沒有實現(xiàn);20世紀60年代末,麥卡錫打賭說計算機將在10年內(nèi)打敗人類,結果他輸了;國際象棋程序深藍在“限定時間內(nèi)”勝出人類直到20世紀90年代末才實現(xiàn)。圍棋程序AlphaGo在“限定時間內(nèi)”勝出人類則是在2017年實現(xiàn)的。閔斯基在20世紀80年代末預言,二十年內(nèi)可以解決自然語言處理問題,時至今日,各種AI應用在自然語言處理方面尚有極大差距。如今的“無人駕駛”在商用中實際上更多起到“輔助駕駛”的作用,因為在實際的使用中仍出現(xiàn)過意外情況,從保證行車安全的角度,尚不能實現(xiàn)真正的“無人駕駛”。
人工智能最近一次的持續(xù)升溫是被包括大數(shù)據(jù)和云計算在內(nèi)的軟硬件技術持續(xù)發(fā)展使得很多應用得以落地而驅(qū)動的(我們將在1.4節(jié)中討論ABC的關系)。從歷史經(jīng)驗來看,也許是由于大眾媒體和科幻電影的影響,AI界有種過于樂觀的傾向。但實際上,我們對于AI模型的精度應該抱有十分謹慎的態(tài)度,因為我們構建的神經(jīng)網(wǎng)絡在內(nèi)的很多AI模型本質(zhì)上還是經(jīng)驗模型,并不是一個嚴格的邏輯證明。這些模型的精度比起古典力學模型精度還差了很多。即使是古典力學模型,在微觀量子世界也是失效的,所以對于這些模型的使用范圍也要持謹慎態(tài)度。當然,我們也不能對建立在經(jīng)驗模型上的AI應用持過度懷疑的態(tài)度,因為我們的大部分知識來自經(jīng)驗,事實證明,這些知識也是實用的。所以,AI是一個在不斷前進的領域。
人工智能另外一個層面的討論是機器能否超越人類?這個問題是令我們對于人工智能感到不安的原因。從計算機發(fā)明的第一天,圖靈和其他偉大的數(shù)學家們就已經(jīng)對這個話題進行過深入的討論。與大眾傳媒不同,數(shù)學家和計算機科學家們對這個問題的討論是深層次的數(shù)學和邏輯層面的討論。1.5節(jié)將著重討論AI和人的關系,有決心探究這一問題的讀者可以參考這一節(jié)。
- 企業(yè)數(shù)字化創(chuàng)新引擎:企業(yè)級PaaS平臺HZERO
- Mastering Ninject for Dependency Injection
- InfluxDB原理與實戰(zhàn)
- 工業(yè)大數(shù)據(jù)分析算法實戰(zhàn)
- 大數(shù)據(jù):從概念到運營
- 基于Apache CXF構建SOA應用
- Spark大數(shù)據(jù)編程實用教程
- The Game Jam Survival Guide
- SIEMENS數(shù)控技術應用工程師:SINUMERIK 840D-810D數(shù)控系統(tǒng)功能應用與維修調(diào)整教程
- openGauss數(shù)據(jù)庫核心技術
- 數(shù)據(jù)庫原理與設計實驗教程(MySQL版)
- Scratch 2.0 Game Development HOTSHOT
- 離線和實時大數(shù)據(jù)開發(fā)實戰(zhàn)
- Oracle 11g數(shù)據(jù)庫管理員指南
- 大數(shù)據(jù)技術體系詳解:原理、架構與實踐