本篇是《機器學習專題》的第三篇文。

 

第一集: 雲端運算是什麼?Amazon、Google、Microsoft 等大廠爭相佈局,會如何改變人類生活?
第二集: 大數據到底是什麼意思?事實上,它是一種精神!

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

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

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

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

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

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

 

GMAIL 中垃圾信件會自動被丟入垃圾桶
Google 相簿的圖像辨識
這個更猛了,是圖像辨識加上自動翻譯。

 

從垃圾信件自動分類、圖像辨識、自動翻譯... 你知道內部就已經包含了人工智慧的技術嗎?不過具體來說,我們會把這樣的技術稱為「機器學習」。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

還記得我們在 電腦是怎麼來的? 一文中提過,最早的馮紐曼架構通用電腦是在 1945 年被開發出來。1950 年代的電腦科學剛起步,從科學家到一般大眾,都對於電腦充滿無盡的想像。

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

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

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

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

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

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

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

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

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

傳說當這些盤子移動完畢的那一刻,世界就會滅亡。若傳說屬實,僧侶們需要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)啦!

類神經網路(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)。

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

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

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

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

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

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

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

ImageNet 是全世界最大的圖像識別資料庫。每年,史丹佛大學都會舉辦 ImageNet 圖像識別競賽,參加者包括了 Google、微軟、百度等大型企業,除了在比賽中爭奪圖像識別寶座、同時測試自家系統的效能與極限。

其實從 2007 年 ImageNet 比賽創辦以來,每年的比賽結果、每家都差不多,錯誤率大致落在 30%、29%、28%... 瓶頸一直無法突破。

結果 2012 年 Hinton 的兩個學生以 SuperVision 的隊伍名參賽,以 16.42% 的錯誤率遠勝第二名的 26.22%,用的正是深度學習技術。

資料來源:ImageNet & Danny Bickson

此景一出,大家都瘋了!從此爆發深度學習熱潮。先是 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 在人工智慧領域上的深耕、能提供最完整的軟硬體解決方案。

2016 NVIDIA GTC 大會以深度學習為主軸

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

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

結語

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

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

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

Reference: https://www.inside.com.tw/2017/07/10/ai-history

arrow
arrow

    BENEVO 發表在 痞客邦 留言(0) 人氣()