煮酒品劍85:人工智慧發展簡史
楊惟雯
早在1950 年代電腦發明的時候,人類就寄望能出現比人類運算能力更強、更聰明的機器出現,稱為人工智慧。
2016 年初,Alphago 以 4:1 的好成績打敗南韓圍棋選手李世乭。2016 年底,又以 Master 的代稱在網路上豪取 59 勝。
從 Google AlphaGo 到 Chatbot 聊天機器人、智慧理專、精準醫療、機器翻譯… 近年來,人工智慧浪潮的來臨正在悄悄改變人類生活。
一講到人工智慧,你的想像是什麼?
一般人對人工智慧的想像,從史蒂芬·史匹柏導演的《AI 人工智慧》中可愛的男孩、《機械公敵》中想控制人類統治世界的機器人、《機械姬》中能騙過人類情感的人造意識。
不過撇除這些,來看看我們每日在用的資訊產品:
從GMAIL 中垃圾信件會自動被丟入垃圾桶、Google 相簿的圖像辨識、
這個更猛了,是圖像辨識加上自動翻譯……。你知道內部就已經包含了人工智慧的技術嗎?不過具體來說,我們會把這樣的技術稱為「機器學習」。
那到底什麼是人工智慧?什麼是機器學習?什麼是深度學習?三者的差異在哪?要解決的又是什麼問題呢?以下,就讓我們來聊聊人工智慧發展的三個階段:
一、人工智慧:如何以電腦解決問題
人類自從發明電腦以來,便始終渴望著能讓電腦擁有類似人類的智慧。但究竟什麼算作「智慧」?
若電腦能針對我們的問題準確地作回答、或學會下棋和泡咖啡,如此就能確定電腦擁有智慧嗎?要怎麼確定它真正擁有意識、理解情感?
根據這個問題,1950年,圖靈在他名為〈運算機器與智慧(Computing Machinery and Intelligence)〉的論文裡提問:「機器能思考嗎?(Can Machine Think?)」,挑戰了人類對計算機智慧的想像。
圖靈認為人們會首先流於爭執機器與思考的定義,卻沒有辦法很精確地討論問題核心:「機器會有智慧嗎?」
由於機器智能難以確切定義,圖靈在該論文首次對如何判定機器具有智慧,提出了著名的「圖靈測試」:如果機器與人類進行非面對面(例如在中間以布幕隔離)對話(例如使用文字訊息),人類卻無法辨認出對方是機器,那麼這台機器就具有智慧。
圖靈測試無論在當時或現代,對於人工智慧研究而言都是重要且相對嚴謹的研究提案,後續許多業界與學界的研究都企圖挑戰圖靈測試:如1966年麻省理工學院人工智慧研究室的約瑟夫.維森鮑姆(Joseph Weizenbaum),以字串比對自動回覆的方式所開發出的聊天機器人ELIZA;或到2014年,英國雷丁大學(University of Reading)重磅宣佈其所開發出的Eugene,已經通過測試,但後來被質疑標準有誤。
其實,「人工智慧」一詞直到1956年,才在美國新罕布夏州一場為期兩個月的研究工作坊「達特茅斯暑期人工智慧研究計畫(The Dartmouth Summer Research Project on Artificial Intelligence)」上,由負責組織會議的電腦高階語言LISP之父約翰・麥卡錫(John McCarthy)正式定名。
這場工作坊所討論的問題:「計算機、自然語言處理、神經網絡、計算理論、抽象化與隨機創造」後來都成為人工智慧研究發展的重要領域,而達特茅斯會議也因此成為人工智慧領域的經典起源。
後來,美國哲學家約翰.瑟爾(John Searle)便提出了「強人工智慧」(Strong A.I.)和「弱人工智慧」(Weak A.I.)的分類,主張兩種應區別開來。
強人工智慧受到電影與科幻小說的影響,強調電腦將能擁有自覺意識、性格、情感、知覺、社交等人類的特徵。
另一方面,弱人工智慧主張機器只能模擬人類具有思維的行為表現,而不是真正懂得思考。他們認為機器僅能模擬人類,並不具意識、也不理解動作本身的意義。
簡單來說若有一隻鸚鵡被訓練到能回答人類所有的問題,並不代表鸚鵡本身瞭解問題本身與答案的意義。
在圖靈所提出的圖靈測試(Turing Test)中,如果一台機器與人類對話、而不被辨別出己方的機器身分時,便能宣稱該機器擁有智慧。
這可以算是人工智慧的一種檢測方式,然而強人工智慧擁護者可能會反駁──表現出「智慧」的行為不代表它真正擁有智慧、瞭解對話的意義。
當然弱人工智慧擁護者也可以反駁:我們永遠不可能知道另一個人的想法,比如我在和一個人對話時、並不知道對方是否和我進行一樣的思考方式,因此我們不能否定這台機器存在智慧的可能。
此是否有點類似莊子和惠子的「子非魚,安知魚之樂」的對話了呢?
不過在電腦科學界,目前不須深入糾結在這個問題層面。電腦科學家真正在意的是──我們能用人工智慧解決什麼樣的問題?
回顧歷史,最早的馮紐曼架構通用電腦是在 1945 年被開發出來。1950 年代的電腦科學剛起步,從科學家到一般大眾,都對於電腦充滿無盡的想像。
在 1956 年舉辦的達特茅斯(Dartmouth)研討會,當時,全世界第一台通用電腦 EDVAC 問世剛滿十年。其中紐厄爾(Newell)、西蒙(Simon)更當場展示了有「全世界第一個人工智慧程式」之稱的邏輯理論家(Logic Theorist),這是一個會自動證明定理的程式。
在各界的高度期盼下,主流科學界也都預估 20 到 30 年左右的時間,便可以成功創造出與人類智慧同樣高度的人工智慧。
然而這階段,人工智慧的研究很快便面臨了瓶頸。因為發明電腦的數學模型基礎和思想,是建立在邏輯運算上。
而從康托爾的集合論、到希爾伯特的可數無限集、哥德爾不完備定理、圖靈以圖靈機來演繹哥德爾不完備定理…等等,都是利用符號來表達的形式系統,再用有限的數學式去證明這個系統不會出現矛盾。
可想而知,這使得當代人對於人工智慧的研究方向也是以「邏輯符號推導」為出發點。解決的問題包括利用 Search Tree 來走出迷宮、或河內塔(Hanoi)問題。
例如河內塔問題:傳說印度某間寺院有三根柱子,上串 64 個金盤。寺院裡的僧侶以下述規則,將這些盤子從第一根移動至第三根:
盤的尺寸由下到上依次變小。每次只能移動一個圓盤;大盤不能疊在小盤上面。
傳說當這些盤子移動完畢的那一刻,世界就會滅亡。若傳說屬實,僧侶們若每秒可完成一個盤子的移動,就需要 5849 億年才能完成。而整個宇宙現在也不過 137 億年。不過若用電腦的遞迴解,很快就能做完了。
二、運用統計機率學來處理不確定命題的機器學習
第一波人工智慧的發展方向在:如何以電腦解決問題?
但要實現人工智慧的方式有很多,第一波時期正是運用符號邏輯學來作為人工智慧的實踐方向。
然而問題來了──
1、機器程式是由人類撰寫出來的,當人類不知道一個問題的解答時,機器同樣不能回答人類無法解決的問題。
2、另一個問題是當時電腦的計算速度尚未提升、儲存空間也小、數據量更不足夠。
由於對人工智慧的研究方向局限於邏輯數學領域、加上硬體環境上的困境,使早期人工智慧只能解一些代數題和數學證明,難以在實務上有所應用。
在 1970 年代末時,一些知名研發計畫如紐厄爾和西蒙的「通用問題解決機」和日本政府領頭的「第五代電腦系統」達不到預期效果時,人工智慧開始被人們視為一場現代煉金術,企業與政府紛紛撤資、研究基金被削減、多個計畫被停止,迎來了人工智慧的第一場寒冬期。
雖然,此時人工智慧的研究邁入了思想瓶頸,但是電腦硬體卻是以指數型的方式進步。
1965 年 Intel 創始人摩爾觀察到半導體晶片上的電晶體每一年都能翻一倍;到了 1975 年,這個速度調整成每兩年增加一倍,電腦的運算能力與儲存能力同時跟著摩爾定律高速增漲。如今,電腦的運算能力約為 30 年前的 100 萬倍。
另外,早期的人工智慧研究聚焦在邏輯推論的方法,專注於模仿人類推理過程的思考模式,需要「百分之百確定的事實」配合,但實務上應用困難。
此時,有一批學者轉換另一個思考模式,比如用統計機率學來處理「不確定命題」的問題呢?假設這個命題為:「某個特定事件會發生嗎?」
同樣是判斷「是」或「否」的二分法,數學邏輯的思考方式是證明 TRUE 或 FLASE。
但我們也能用機率來量化對於某些「不確定命題」的想法,想法改為:「我們可以多確定這個事件會發生?」
確定的程度可以用 0 到 1 之間的數值來表示。
這種對於人工智慧研究思想的轉變,這可是多大的突破!
這就是時下熱門的話題「機器學習」(Machine Learning)。
於是,在第一次人工智慧發展泡沫後,研究領域轉向了「機器學習」。
電腦從大量的資料中找出規律來「學習」,稱為「機器學習」,也是「資料科學」(Data Science)的熱門技術之一。
「機器學習」是一門涵蓋電腦科學、統計學、機率論、博弈論…等多門領域的學科,從 1980 開始蓬勃興起。機器學習之所以能興起,也歸功於硬體儲存成本下降、運算能力增強(包括本機端與雲端運算),使得大量的數據能被即時處理。
最早研究機器學習的理論都是統計學家或機率學家所發表的,到後來電腦科學界的人發現這些理論可以幫助他們來解決問題,才加進來研究,可以說是「資工+統計」的雙重 Domain Knowhow。這也是為什麼「機器學習」會被稱之為人工智慧領域的一支。
三、深度學習+ GPU組合成全新運算架構
什麼是「深度學習」?類神經網路、深度神經網路和深度學習是不一樣的東西嗎?
其實,「深度學習」也是機器學習的一個分支,而機器學習是人工智慧的一個分支。也就是說人工智慧包在最外層、機器學習在第二層、深度學習是最裡面的第三層。
2013 年 7 月,Google 收購了一家才創立一年、叫做 DNNresearch 的公司。甚至,這家公司僅有三個人,包括多倫多大學教授 Geoffrey Hinton 教授和他的兩位學生。
是什麼魔力,讓 Google 願意砸大錢在一家名不見經傳的公司?你可能沒聽過 DNNresearch、或不認識該公司的創辦人 Geoffrey Hinton,但你不能不知道的事情是,Google 眼饞的、正是背後的深度學習(Deep Learning)技術。可以說後續 AlphaGo 的出現,除了主導研發的 DeepMind 之外,還有 Hinton 的協助。
那什麼是深度學習?為何各產業為之風靡?
首先,就讓我們先來聊聊深度學習發展的前身「類神經網路」(Neural Network)!
早在 1950 年代,電腦學家以數理邏輯的為人工智慧主要研究方向。在數理邏輯研究方向失敗後,機器學習乃由統計機率學、加上電腦科學的方法延伸出一個學科,在 1980 年代到 2006 年間成為研究主流。而機器學習的理論有很多,包括支援向量機(SVM)、決策樹(Decision Tree)、AdaBoost、隨機森林…。
其實1943 年就有學者運用數學模型來模擬生物大腦的神經網路。這個研究後續分成兩派,一派轉向了生物神經學、一派轉向了人工智慧。
其中,有一個分支在 1980 年初的時候一度興起,叫「類神經網路」(Artificial Neural Network)。
1980 年代,當時的諾貝爾醫學獎得主研究了大腦內部的神經迴路而轟動一時。也讓科學家們對「模擬人類大腦的運算模型」抱持了高度期待。
到1986 年,Rumelhar 和 Hinton 等學者提出了反向傳播演算法(Back Propagation),解決了神經網路所需要的複雜計算量問題,從而帶動了神經網路的研究熱潮。
然而過了不久就發現反向傳播法遇到了瓶頸──反向傳播的優化(找出誤差的最小值)會發生梯度消失問題,使得神經網路只要超過 3 層以上就幾乎沒有效果,此時的多層神經網路宣告失敗。
如果神經網路無法達到多層的運算,相較之下不如採用其它淺層(小於 3)且效果又更好的機器學習演算法,比如 SVM、隨機森林…等,此時 SVM 火熱了一段時間,在垃圾信件分類上做得特別好。
因此,學術界一度放棄類神經網路的研究方向,甚至只要有論文或研究標明「Neural Network」,幾乎不願意花心思閱覽或刊出。
2006 年 HINTON 成功訓練多層神經網路,稱為「深度學習」。
此時的 Hinton 還很年輕,仍不離不棄對於神經網路的研究。也正是這股熱情,使他整整力撐 30 年,終於在 2006 年找到瞭解方、提出限制玻爾茲曼機(RBM)模型,成功訓練多層神經網路。這帶來了類神經網路模型復甦的又一春。
由於 Neural Network 長久以來太過惡名昭彰,Hinton 決定把多層的神經網路(Deep Neural Network)重命名為深度學習(Deep Learning)。(同時,他又將 Deep Neural Network 以外層數小於 3 的機器學習方法,包括 SVM 等稱為「淺層學習」)
Hinton 因此被稱為「深度學習之父」。
儘管如此, Hinton 就算在 2006 年就提出了 RBM 模型,深度學習還是沒有紅起來,由於運算量過於龐大。只能說 2006 年的突破只是帶來一絲曙光。
真正的轉折點,還是要到 2012 年10 月,機器學習界發生了一件大事----
ImageNet 是全世界最大的圖像識別資料庫。每年,史丹佛大學都會舉辦 ImageNet 圖像識別競賽,參加者包括了 Google、微軟、百度等大型企業,除了在比賽中爭奪圖像識別寶座、同時測試自家系統的效能與極限。
其實從 2007 年 ImageNet 比賽創辦以來,每年的比賽結果、每家都差不多,錯誤率大致落在 30%、29%、28%... 瓶頸一直無法突破。
結果 2012 年 Hinton 的兩個學生以 SuperVision 的隊伍名參賽,以 16.42% 的錯誤率遠勝第二名的 26.22%,用的正是深度學習技術。
此景一出,大家都瘋了!從此爆發「深度學習」熱潮。
先是 Google 在 2013 年人才收購了 Hinton 和他的兩位學生,接下來一堆企業爭相投入深度學習的研究領域。
後來,2015 年的冠軍 Microsoft ,已以 3.5% 的錯誤率贏得冠軍,超越⼈類 5%,發展可謂一日千里。
深度學習之所以在 2006 年還沒真正火熱起來,問題在於硬體運算能力不足──傳統大家都是用 CPU 來運算,然而速度緩慢。
深度學習會大量用到矩陣運算,最合適的硬體事實上是負責圖形處理的 GPU。直到 2012 年 Hinton 的兩位學生利用「深度學習 + GPU」的組合,才真正發揮 GPU 的威力。
但為什麼這麼長以來的時間,都沒有人用 GPU 來運算呢?
因為編譯有其難度。我們之所以能用 CPU 做運算,是因為 CPU 有編譯器(Compiler)這樣的設計,能讓工程師寫完程式後、經過編譯器的轉譯、成為 CPU 看得懂的機械碼。
然而一般 GPU 並沒有類似的設計,因此工程師難以直接寫程式讓 GPU 來運算。直到 NVIDIA 在 2006 -- 2007 年間推出全新運算架構 CUDA ——NVIDIA 成為深度學習運算必用硬體的關鍵。
使用者可以撰寫 C 語言、再透過 CUDA 底層架構轉譯成 GPU 看得懂的語言。
這也是自 GPU 可以拿來做大規模運算的概念推出之後,首次可以讓人使用 C 語言來運用 GPU 蘊藏已久的強大運算能力,故 NVIDIA 從 GeForce 8 系列之後的顯示卡全開始支援 CUDA 技術。
CUDA 的成功,更直接導致了深度學習的運算全部都使用 NVIDIA 家的 GPU。這種驚人的影響力,不論是深度學習、機器學習、自動車、虛擬實境(VR)、電競遊戲,每一項都跟 NVIDIA 習習相關。
這也讓 NVIDIA 的 GPU 從此一飛沖天,股價也隨之高漲。
2016 年 8 月,NVIDIA 在其每年舉辦的 GTC 大會上(GPU Technology Conference,俗稱老黃的傳教大會),執行長黃仁勳強調 NVIDIA 在人工智慧領域上的深耕、能提供最完整的軟硬體解決方案。
整場大會以深度學習為重要主角,同時宣佈推出全世界第一個專門用來運算深度學習的超級電腦——DGX-1 伺服器,售價 129,000美金。
近期,NVIDIA 再度宣佈推出全新 DGX 工作站,最大賣點莫過於搭配了採用 Vota 架構的 Tesla V100,可在單臺系統內,搭配四臺 Tesla V100,提供相當於 400 顆 CPU 的效能。
四、結語
最後,回顧一下人工智慧、機器學習和深度學習的發展歷程:
1950 年,人工智慧發展,以數理邏輯為基礎
1980 年,多層類神經網路失敗,淺層機器學習方法(SVM 等)興起
2006 年,Hinton 成功訓練多層神經網路,命名為深度學習
2012 年,因 ImageNet 比賽讓深度學習重回學界視野,同時開啟 NVIDIA GPU 作為運算不可或缺硬體的大門
留言列表