從人工智慧、機器學習到深度學習,不容錯過的人工智慧簡史

從 Google AlphaGo 到 Chatbot 聊天機器人、智慧理專、精準醫療、機器翻譯… 近年來時而聽到人工智慧、機器學習的相關消息,一夕之間這項技術攻占了各大媒體版面。

不但 Google、Facebook、微軟、百度、IBM 等巨頭紛紛進軍該領域,NVIDIA 執行長黃仁勳亦宣稱將由顯示卡轉型成人工智慧運算公司,強調人工智慧浪潮的來臨。

螢幕快照 2017-01-26 17.18.27.png

2016年初時,Alphago以4:1的好成績打敗南韓圍棋選手李世石。2016年底,又以Master的代稱在網路上戰勝聶衛平,豪取59 勝。 

講到人工智慧,你的想像是什麼?

一般人對人工智慧的想像,不外乎是影劇中的機器人形象。從史蒂芬·史匹柏導演的《AI 人工智慧》中可愛的男孩、《機械公敵》中想控制人類統治世界的機器人、《機械姬》中能騙過人類情感的人造意識… 。

不過撇除這些,來看看我們每日在用的產品:

GMAIL 中垃圾信件會自動被丟入垃圾桶

Google 相簿的圖像辨識

這個更猛了,是圖像辨識加上自動翻譯。

從垃圾信件自動分類、圖像辨識、自動翻譯… 你知道內部即已包含了人工智慧嗎?

不過具體來說,我們會把這樣的技術稱為「機器學習」。

到底什麼是人工智慧?什麼是機器學習?什麼是深度學習?三者的差異在哪?要解決的又是什麼問題呢?

今天就讓我們來聊聊,未來十年內將會真正改變你我生活的新世代技術。

 

人工智慧: 如何以電腦解決問題

人類自從發明電腦以來,便始終渴望著能讓電腦擁有類似人類的智慧。一提到人工智慧,很容易令人想到電影與科幻小說中常見會聊天、會煮飯還會突然間想毀滅人類取而代之的機器人形象。

究竟什麼算作「智慧」?若電腦能針對我們的問題準確地作回答、或學會下棋和泡咖啡,如此就能確定電腦擁有智慧嗎?要怎麼確定它真正擁有意識、理解情感?

當年AI技術尚未真正發展起來,哲學家與人文學家已就這個問題做過許多廣泛的討論。

根據這個問題,美國哲學家約翰.瑟爾 (John Searle) 便提出了「強人工智慧」(Strong A.I.)和「弱人工智慧」(Weak A.I.) 的分類,主張兩種應區別開來。

強人工智慧受到電影與科幻小說的影響,強調電腦將能擁有自覺意識、性格、情感、知覺、社交等人類的特徵。

另一方面,弱人工智慧主張機器只能模擬人類具有思維的行為表現,而不是真正懂得思考。他們認為機器僅能模擬人類,並不具意識、也不理解動作本身的意義。

簡單來說若有一隻鸚鵡被訓練到能回答人類所有的問題,並不代表鸚鵡本身瞭解問題本身與答案的意義。

在圖靈所提出的圖靈測試 (Turing Test) 中,如果一台機器與人類對話、而不被辨別出己方的機器身分時,便能宣稱該機器擁有智慧。

Ex Machina 電影中由男主角對機器人進行 Turing Test 的一幕。

這可以算是人工智慧的一種檢測方式,然而強人工智慧擁護者可能會反駁──表現出「智慧」的行為不代表它真正擁有智慧、瞭解對話的意義。

當然弱人工智慧擁護者也可以反駁:

我們永遠不可能知道另一個人的想法,比如我在和一個人對話時、並不知道對方是否和我進行一樣的思考方式,因此我們不能否定這台機器存在智慧的可能。

是否有點類似莊子和惠子的子非魚安知魚之樂的對話了呢?

有興趣的讀者能再就上述問題持續深入討論思考。不過在電腦科學界,直至目前為止尚不須深入糾結在這個問題層面。電腦科學家在意的是──我們能用人工智慧解決什麼樣的問題。

還記得我們在 電腦是怎麼來的?一文中提過,最早的馮紐曼架構通用電腦是在 1945 年被開發出來。

1950 年代的電腦科學方起步,從科學家到一般大眾,都對於電腦充滿無盡的想像。

人工智慧 (Artificial Intelligence) 一詞最早是在 1956 年舉辦於達特茅斯 (Dartmouth) 的一場傳奇研討會,與會者包括了幾位當代數一數二的學者。

當時,全世界第一台通用電腦 EDVAC 問世剛滿十年,任何人只要看到過電腦的超強運算能力,想當然爾都會認為電腦有一天會比人類還聰明、甚至是超越人類的存在。

其中紐厄爾 (Newell)、西蒙 (Simon) 更當場展示了有「全世界第一個人工智慧程式」之稱的邏輯理論家 (Logic Theorist),這是一個會自動證明定理的程式。

在各界的高度期盼下,不但藝術界盛興相關題材,包括大導演弗裡茨·朗 (Fritz Lang) 的大都會、科幻作家艾西莫夫 (Isaac Asimov) 的機器人三大法則等等,主流科學界也都預估 20 到 30 年左右的時間,便可以成功創造出與人類智能同樣高度的人工智慧。

螢幕快照 2017-01-26 17.26.49.png

然而人工智慧的研究很快便面臨了瓶頸。如果你有看過電腦是怎麼來的?一文,你可以很明確地感受到──發明電腦的數學模型基礎和思想,是建立在邏輯運算上。

從康托爾的集合論、到希爾伯特的可數無限集、哥德爾不完備定理、圖靈以圖靈機來演繹哥德爾不完備定理… 等等,都是利用符號來表達的形式系統,再用有限的數學式去證明這個系統不會出現矛盾。

… 可想而知,這使得當代人對於人工智慧的研究方向也是以「邏輯符號推導」為出發點。解的問題包括利用 Search Tree 來走出迷宮、或河內塔 (Hanoi) 問題。

河內塔問題:傳說印度某間寺院有三根柱子,上串 64 個金盤。寺院裡的僧侶以下述規則,將這些盤子從第一根移動至第三根:

  • 盤的尺寸由下到上依次變小。
  • 每次只能移動一個圓盤;
  • 大盤不能疊在小盤上面。

傳說當這些盤子移動完畢的那一刻,世界就會滅亡。

然而若傳說屬實,僧侶們需要 $latex 2^{64} – 1 $ 步才能完成這個任務;若他們每秒可完成一個盤子的移動,就需要 5849 億年才能完成。整個宇宙現在也不過 137 億年。

不過若用電腦的遞迴解,很快就能做完了。我們會在《簡單的演算法》系列第二集中和大家繼續探討這個問題。

 

第一次人工智慧泡沫後,研究領域轉為「機器學習」

然而問題來了──機器程序是由人類撰寫出來的,當人類不知道一個問題的解答時、機器同樣不能解決人類無法回答的問題。

另一個問題是當時電腦的計算速度尚未提升、儲存空間也小、數據量更不足夠。

對人工智慧的研究方向局限於邏輯數學領域、加上硬體環境上的困境,使早期人工智慧只能解一些代數題和數學證明,難以在實務上有所應用。

在 1970 年代末時,一些知名研發計畫如紐厄爾和西蒙的「通用問題求解器」和日本政府領頭的「第五代電腦系統」達不到預期效果時,人工智慧開始被人們視為一場現代煉金術,企業與政府紛紛撤資、研究基金被削減、多個計畫被停止,迎來了人工智慧的第一場寒冬期。

雖然此時人工智慧的研究邁入了瓶頸,但是電腦硬體卻是以指數型的方式進步。

1965 年 Intel 創始人摩爾觀察到半導體晶片上的電晶體每一年都能翻一倍;到了 1975 年,這個速度調整成每兩年增加一倍,電腦的運算能力與儲存能力同時跟著摩爾定律高速增漲。

如今,電腦的運算能力約為 30 年前的 100 萬倍。(此段介紹歡迎參考 晶圓代工爭霸戰:半導體知識 一文)

我們上面提到,早期的人工智慧研究聚焦在邏輯推論的方法,專注於模仿人類推理過程的思考模式,需要百分之百確定的事實配合,實務上應用困難。

但有沒有可能換一個思考模式,比如用統計機率學來處理人工智慧的問題呢?假設一個命題為:「某個特定事件會發生嗎?」同樣是判斷「是」或「否」的二分法,數學邏輯的思考方式是證明 TRUE 或 FLASE。

但我們也能用機率來量化對於某些不確定命題的想法,想法改為:「我們可以多確定這個事件會發生?」確定的程度可以用 0 到 1 之間的數值來表示。

如果你一路讀完電腦科學領域的初始發展、知道圖靈、馮紐曼等巨頭,與紐厄爾等早期圖靈獎 (電腦科學界最高榮譽) 得主的研究方向,到如今人們對於人工智慧研究的思想轉變,會發現…… 這可是多大的突破!

此即為時下熱門的話題「機器學習」(Machine Learning)。

「機器學習」是一門涵蓋電腦科學、統計學、機率論、博弈論等多門領域的學科,從 1980 開始蓬勃興起。

機器學習之所以能興起,也歸功於硬體儲存成本下降、運算能力增強 (包括本機端與雲端運算),加上大量的數據能做處理。

電腦從大量的資料中找出規律來「學習」,稱為「機器學習」,也是「資料科學」(Data Science) 的熱門技術之一。

最早研究機器學習的理論都是統計學家或機率學家所發表的,到後來電腦科學界的人發現:「噢,這些理論可以幫助我們來解決一些問題!」又加進來研究,可以說是「資工+統計」的雙重 Domain Knowhow。

另外,這也是為什麼「機器學習」會被稱之為人工智慧領域的一支。要實現人工智慧的方式有很多,像早期的符號邏輯學也是人工智慧的實踐方向。

所以說別再說現在紅的是「人工智慧」啦!人工智慧領域很多元也很廣泛,早在 1950 年代就已經紅過了。

 

什麼是深度學習?機器學習的一個分支

不過除了機器學習,最近常聽到的「深度學習」又是什麼意思呢?類神經網路、深度神經網路和深度學習是不一樣的東西嗎?

圖片來源: NVIDIA

雖然有點繞口令,不過請跟我唸一次:機器學習是人工智慧的一個分支。深度學習是機器學習的一個分支。

也就是說人工智慧包在最外層、機器學習包在第二層、深度學習是第三層。

2013 年 7 月,Google 收購了一家才創立一年、叫做 DNNresearch 的公司。甚至,這家公司僅有三個人。為多倫多大學教授 Geoffrey Hinton 教授和他的兩位學生。

是什麼魔力,讓 Google 願意砸大錢在一家名不見經傳的公司?你可能沒聽過 DNNresearch、或不認識該公司的創辦人 Geoffrey Hinton,但你不能不知道的事情是,Google 眼饞的、正是背後的深度學習 (Deep Learning) 技術。

可以說後續 AlphaGo 的出現,除了主導研發的 DeepMind 之外,還有 Hinton 的協助。

什麼是深度學習? 為何各產業為之風靡?這就讓我們來聊聊深度學習發展的前身「類神經網路」(Neural Network) 啦。

在本文的前半段,我們只很簡單說明了,1950年代電腦發明的時候人類就寄望、能出現比人類運算能力更強、更聰明的機器出現,稱為人工智慧。在 1950 年代以數理邏輯的為主要研究方向。

機器學習是由統計機率學、加上電腦科學方法的一個延伸學科,在數理邏輯研究方向失敗後,機器學習在 1980 年代到 2006 年間成為研究主流。

但機器學習的理論有很多,包括支援向量機 (SVM)、決策樹 (Decision Tree)、AdaBoost、隨機森林… (決策樹的原理相當好理解,歡迎參考此解說 )

其中有一個分支在 1980 年初的時候一度興起,叫「類神經網路」(Artificial Neural Network)。

 

類神經網路的衰頹、與淺層機器學習方法興起

1943 年就有學者用數學模型來模擬生物大腦的神經網路。這個研究後續分成了兩派,一派轉向了生物神經學、一派轉向了人工智慧。

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)。

(同時,他又用有點諷刺意味的說法,將 Neural Network 以外、層數小於 3 的機器學習方法,包括 SVM 等稱為「淺層學習」(Shallow Learning),可能是想一雪長久以來被 SVM 壓在頭頂上的不爽吧 (´_ゝ`)… )

(講白點,人工智慧就一個 buzz word… 用電腦模型運算來解問題,別再問:人工智慧有一天會不會跟人類談戀愛有意識惹 (´_ゝ`)

 

Hinton 因此被稱為「深度學習之父」。也就是說,這是一個勵志故事。當大家都放棄時、再撐 30 年還是會有轉機的!(咳咳

儘管如此, Hinton 就算在 2006 年就提出了 RBM 模型,深度學習還是沒有紅起來。大家只是知道:「噢類神經網路也不是完全沒用嘛。」由於習於忽視已久,加上運算量過於龐大:

當時都是採用 CPU 來運算。好不容易耗費 5 天才終於跑完一個模型,結果發現有問題、改個模型參數又要再等 5 天… 等真正訓練好的時候都已經不知何日了。

只能說 2006 年的突破只是帶來一絲曙光。真正的轉折點,還是要到2012年。那年10⽉,機器學習界發⽣了⼀項⼤事。

 

2012 年深度學習+gpu一戰成名,爆發人工智慧熱潮

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 從此一飛沖天,股價也隨之高漲──NVIDIA 從去年 12 月開始連續 9 個交易日創歷史收盤新高、到年底為止漲幅高達 255.95%。MarketWatch 也報導,NVIDIA 是 2016 年 S&P 500 指數表現最好的成分股。

2016 年8月,NVIDIA 在其每年舉辦的 GTC 大會上(GPU Technology Conference,俗稱老黃的傳教大會),執行長黃仁勳強調 NVIDIA 在人工智慧領域上的深耕、能提供最完整的軟硬體解決方案。

整場大會以深度學習為重要主角,同時宣佈推出全世界第一個專門用來運算深度學習的超級電腦——DGX-1 伺服器,售價129,000美金。

今年 5 月,NVIDIA 再度宣布推出全新 DGX 工作站,最大賣點莫過於搭配了採用 Vota 架構的 Tesla V100,可在單臺系統內,搭配四臺 Tesla V100,提供相當於 400 顆 CPU 的效能。

 

今天,我們講解了人工智慧、機器學習和深度學習的由來。再幫大家回顧一次這張圖:

  • 三者的包含關係為:人工智慧 > 機器學習 > 深度學習
  • 1950 年人工智慧發展,以數理邏輯為基礎
  • 1980 年多層類神經網路失敗,淺層機器學習方法 (SVM 等) 興起
  • 2006 年 Hinton 成功訓練多層神經網路
  • 2012 年因 ImageNet 比賽讓深度學習重回學界視野,同時開啟 NVIDIA GPU 作為運算不可或缺硬體的大門

圖片來源: NVIDIA

今天的人工智慧簡史就到這邊結束了。接下來的幾篇,會用更深入的方式將本文中的模型與故事敘述得更為詳細。

歡迎大家繼續收看 🙂