人工智慧、機器學習、演算法、大數據  (3) 演算法與黑盒子模式

  6071

類神經網路,取自WIKI,CC4.0

延續人工智慧、機器學習、演算法、大數據 (1) 概要與蒙地卡羅法、及(2) 機器學習與無人駕駛。本篇將介紹演算法(Algorithm)、與黑盒子模式(Black box mode)。

「演算法」對於大多數人是一個抽象且神奇的名詞,因為在無法解釋電腦的行為的時候就說「這是演算法」,但是這聽起來有說等於沒說。我們在先前有提到演算法是電腦處理事情的方法、流程。見圖1、2,了解無人駕駛車的遇到坑洞的演算法,圖1是沒有黑盒子(大數據及統計)的演算法,圖2是有利用黑盒子(大數據及統計)的演算法。

圖1

圖2

我們知道無人駕駛車的遇到坑洞演算法,有圖1與圖2,只是執行效率具有差異性,圖1是比較呆版的,依照原本的順序依次執行。圖2則是建立在大數據及統計上,分析各方法成功的機率,不斷修正各方法的執行順序,來達到更高的效率。而圖2可以發現比圖1多了一段決策部分的演算法,而這一段決策部分的演算法就是黑盒子模式,也就是利用大數據及統計的方法設計的演算法。換言之圖1比較像是小孩只能死板板的依樣畫葫蘆,逐次使用自己會的方法,而圖2則像是大人有足夠的經驗可以判斷哪一個方法更好,找到較優化的方式。

一般人對於現在演算法不甚了解,也就是被黑盒子模式搞得糊里糊塗,不能理解它到底是什麼?進而認為演算法很難。其實這是錯誤的概念,演算法對於電腦來說只是一段程式碼,不管是一個執行的流程、還是收集資料決定機率,它都是演算法。只是黑盒子的演算法比較難以理解,進而讓人誤以為演算法很難,其實難的不是演算法,而是統計與機率的認知不足,才無法學會黑盒子的演算法。

【複習電腦科技名詞】

  • 人類的腦子叫人腦,對應到電子機器類稱為電腦。
  • 人類的智慧對應到電腦的智慧稱為人工智慧(Artificial Intelligence : AI)。因為是人賦予電腦的智慧,故可稱為人工智慧。人工智慧是現階段的情況,以後可能會出現電腦製造下一代的電腦智慧。
  • 人類解決各個問題的器具稱為工具,電腦解決各個問題的方法稱為演算法(Algorithm)。
  • 人類的學習對應到電腦稱為機器學習(Machine learning)。
  • 人類依據經驗或是直覺的決策行為對應到電腦就稱為黑盒子模式(black box mode),也就是一種機率及統計式的評估後的行為模式,或是直接執行特例的行為模式,也可將黑盒子模式理解為決策部分的演算法
  • 人類依賴過往經歷稱為經驗,對應到電腦累積的資料稱為大數據( Big Data)。
  • 大數據是近年來才有的概念,電腦利用大數據的意涵,主要是指在強大的硬體帶來的大量數據量、快速的運算速度。

圖3

【為什麼稱為黑盒子模式】

我們先從名稱來加以討論黑盒子模式,黑盒子模式基本上就是所謂不透明的盒子,看不見內部的意思,在此的概念是指不知道電腦到底是依據什麼行為來決定機率,但這邊其實很弔詭,因為其實大家都知道那就是統計的內容,是因為不明白當初設計者的統計概念,看不懂對方的內容,故稱黑盒子。

如果我們將電腦的黑盒子模式,定位為決策行為的演算法,就不會難以理解黑盒子在做什麼?設計一個決策行為,可以利用大數據及統計與機率。所以我們要理解現在的演算法,就要了解黑盒子模式,更要先弄懂統計與機率;而不是說因為不懂統計與機率,進而不懂黑盒子模式的演算法,還稱呼為黑盒子。

【大多數的黑盒子產生的原因】

我們都知道寫程式就是在學習寫程式碼,部份的工程師的學習寫程式的方式,是學習一段程式碼,直接學習書寫方式,了解什麼東西進去,會出來什麼內容,只要遇到能套用的問題,就改成相對應的符號直接套用,但是其實本身並不曉得那段程式碼在做什麼。

舉例,課本有一段程式碼可以將一堆數字,由小排到大並列出各自比例,但是有的工程師可能完全不懂演算法內容,只是依樣畫葫蘆,但是本身不了解葫蘆內部是什麼。

同理在演算法透過統計及大數據的機器學習,讓電腦可以有決策行為,但是有的工程師可能會因為看不懂統計與機率內容,進而死背硬套這段內容,反正重點是數據進去、機率出來,不懂黑盒子還是可以完成任務。如同我不會製造車子但是我會開車就好。最後看不懂的決策演算法部分,就被稱為黑盒子模式,因為抱持著「我不懂黑盒子原理,但是我知道什麼東西進去,結果又會出來什麼,我會用黑盒子就好,不一定要懂黑盒子原理」。只重其形、不重其本的依樣畫葫蘆,不是一個良好的學習方式及設計人工智慧的方式;只想學會使用黑盒子,卻不想懂黑盒子的行為。

就好比說,我是賣香腸的人,我會用機器,讓豬絞肉等等材料進去最後有香腸出來就好。或是說我有個作泡芙的機台,我只要更換材料就可以做出奶油泡芙或是草莓泡芙、巧克力泡芙;而不去認真研究黑盒子的原理。我們知道汽車與飛機都有引擎,但是如果不去研究引擎這個黑盒子的原理,如何從汽車進步到飛機,不去學習原理怎敢把東西應用完全不同的地方,這就是為什麼我們需要學會黑盒子的內容。

作者要強調,如果不學黑盒子,只能永遠設計無敵鐵金剛般的沒有智慧的機器人,而無法設計出小叮噹般的有人工智慧的機器人。因為我們希望機器人像人一樣可以自主學習,並且還可以利用機器的優勢(記憶容量與反應速度)來幫助人類。要如何做到這一點?首先要知道人類的行為就是一連串的統計及機率行為,所以設計機器人是避不開統計與機率,見圖4。故統計與機率是現代的演算法避不開的學習內容。

圖4

【現在機器學習的黑盒子種類】

常見的機器學習演算法,見表一 

表一

而上述10項機器學習的演算法原理都是統計及機率。

  • 生活中常見的機器學習與大數據的結合

1. Siri and Cortana-人工智慧助理(AI)

2. Facebook-臉書社群軟體

3. Google Maps-谷歌地圖

4. Google Search-谷歌搜索引擎

5. Gmail-電子信箱

6. PayPal-網路第三方支付服務商

7. Netflix-網飛,線上觀賞電影

8. Uber-優步,交通網路公司

9. Lyst-全球時尚搜索引擎

10. Spotify-音樂串流服務

11. 網路購物的推薦購物系統

結論

在本篇介紹了下述內容

(1) 什麼是演算法

(2) 演算法的困難之處其實是黑盒子

(3) 黑盒子的概念為何

(4) 為什麼會有黑盒子

(5) 電腦的黑盒子絕大多數都是統計與機率

(6) 生活之中的黑盒子

(7) 目前機器學習的學習重點,就是學習如何用統計與機率製作各個黑盒子

可以發現本篇大部分內容都在討論黑盒子的演算法。而目前資訊工程師真正應該要學習的就是黑盒子部分,也就是統計與機率部分。如果一直抱持著黑盒子就讓它繼續「黑吧」,不想理解黑盒子(統計與機率)的原理,那麼它永遠不會變成灰盒子或是透明盒子。換言之,如果不能將黑盒子融會貫通,那麼人工智慧的能力就會到此止步,而無法繼續提升。

本篇的主旨是要讓大家明白到目前人工智慧要繼續提升,必須了解目前機器學習的本質,它是建立在程式碼、統計與機率上兩者缺一不可,但是資訊工程師對此太不了解,故需要一個良好的黏著劑來加以黏合。希望資訊工程師看完本篇後不要再害怕接觸統計與機率,如此一來才能創造出更進步的黑盒子演算法,也就是更棒的人工智慧。

本篇是講解資訊工程師(設計者)對黑盒子應有的理解與態度,就是應該要了解統計與機率的原理,才能設計出好的演算法。下一篇將會講解一般人(使用者)對黑盒子應有的理解與態度,就是不要太鑽牛角尖去了解黑盒子原哩,只要結果正確就可放心使用,如同一般人不用會製造汽車僅需要會開車是一樣的意思。