人工智慧、機器學習、演算法、大數據  (4)使用者該如何看待黑盒子模式演算法

  14749
黑盒子示意圖

黑盒子示意圖

延續人工智慧、機器學習、演算法、大數據 (1) 概要與蒙地卡羅法、及(2) 機器學習與無人駕駛、以及(3) 演算法與黑盒子模式。本篇介紹使用者該如何看待黑盒子模式演算法(Black box mode)。

上一篇已經介紹,什麼是演算法,也可以知道演算法的重點就是黑盒子,並了解到電腦的黑盒子大多數原理都是統計與機率。如果能將黑盒子融會貫通,那人工智慧的能力就會繼續提升。

上一篇是講解資訊工程師(設計者)對黑盒子應有的理解與態度,就是應該要了解統計與機率的原理,才能設計出好的演算法。

這一篇將會講解一般人(使用者)對黑盒子應有的理解與態度,就是不要太鑽牛角尖想要去了解黑盒子原理,只要結果正確就可放心使用,如同一般人不需要會製造汽車,僅需會開車即可。

接著先從複習電腦科技名詞開始,再深入認識黑盒子,最後會解釋為什麼一般人不用太過深究黑盒子原理。

【複習電腦科技名詞】

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

這些名詞的關係對應到我們所熟悉的事物上,可參考圖3。

圖1

【目前機器學習的黑盒子重點】

我們知道目前機器學習的重點是如何在經驗中改善整個演算法的效能。可以分成下面類別:

1. 監督學習(Supervised learning):從給定的資料中學習一個函式,而此函式需要人加以協助套入。當有了新的資料時,可以根據這個函式預測新的結果,重點放在輸入和輸出,常見的監督學習演算法,如:回歸分析、統計分類。

2. 非監督學習(Unsupervised learning):非監督學習與監督學習的差別,在於是否有人加以協助。常見的無監督學習演算法,如:生成對抗網路(GAN)、聚類等。

3. 半監督學習(Semi-Supervised Learning,SSL):半監督學習介於監督學習與無監督學習之間。

  • 表一是比較重要的黑盒子內容,其原理都是統計與機率

表一

  • 黑盒子利用大數據的案例:飛彈的飛行優化計算模式

黑盒子這個概念不是什麼新穎的內容,早在巡弋飛彈飛行時就有這樣的內容,我們都知道飛彈應該要隨著環境的變化,而修正飛行軌跡,才能順利擊中目標,但是如果每次都是利用全體數據重新計算,那將花去太多時間,以及硬體容易不足,進而影響命中率。

我們以一個簡單的例子來說明,假設飛彈的飛行需要不斷的計算一個平均值,已知在第10秒有10筆數據,可得到一個平均:S10

在第11秒時,會得到第11筆數據,也得到一個新的平均:S11,如果我們將11筆數據加總後再相除,要做加法10次跟除法1次,顯然效率很差。

如果可以利用第10秒的平均換算出前10秒的總和,加上第11秒的數據,再相除,只要1個乘法、1個加法、1個除法,僅僅3個步驟,效率將近差了33.3倍。而在越多筆數據時效率差越多倍,我們可以觀察下述數學式來認識概念。

上述在講解的內容,就是數學中的「遞迴概念」,如果設計飛彈的工程師不懂這一段數學式,會將它當作黑盒子,但其實原理一點都不難。所以如果要在人工智慧上進步,設計者無法避開統計與機率

打個比方說,壽司師傅應該要了解各家魚市場魚肉的情況,甚至要知道他們配合的廠商是如何捕魚,以及捕魚的過程中所使用的保存方式,是否達到期望的魚肉保鮮程度。因此想要獲得理想的魚肉,就免不了去關心每一個環節。而一般的消費者只需要找到好吃的壽司店面,享用店家經過層層把關的魚貨即可。因此店家只需提供基本資訊供消費者了解就好,並不是每位消費者都需要過度了解食用的魚肉是如何被捕撈上岸,及經過哪些保鮮方式等等。

【目前生活中的黑盒子模式】

我們由前文可知,程式碼的黑盒子絕大多數都是統計與機率,但生活上其實我們也面臨著許多黑盒子,不過有些黑盒子已經被理解了,已經轉變為灰盒子或是透明盒子。比如說,石頭為什麼會往下掉,亞里斯多德提到是石頭的本性,這聽起來就是不知其原因,只能被認知是真理的事情,但牛頓經由假設與計算,得到是因為萬有引力的影響,這時石頭往下掉的原因已經轉變為灰盒子。

一般來說我們會想了解一個現象,為什麼它的結果是這樣,但是我們找不到相對應的因果關係,所以我們放棄尋找它真正的函數及數據關係內容,而是去尋找跟他極度接近吻合、誤差極小的模式,就稱為「黑盒子模式」。如:股市分析,我們無法找到一條完全吻合的函數曲線來進行預測,但是我們可以在某一個小範圍找到一個函數來吻合,換句話說,我們無法找到1年份的曲線預測,但是有可能可以找到1個月內的,但是可能還是不了解整個完整情況的因果關係。

同時要注意的是,黑盒子模式是我們只能看見它決策的結果,而無法了解這整件事情的因果關係。打個比方,有點像烹飪,我們看到蛋炒飯,我們知道要有蛋、飯、油、鹽,但是我們不知道外面的廚師怎麼做,但我們還是可以做出一個看起來很像、吃起來很接近的蛋炒飯。

接著認識,只能逼近目標的黑盒子,而不完全準確的黑盒子

  • 飛機的飛行、潛水艇的移動

人類自古以來一直想要在天上飛翔,但是找了很多方法都不是很理想。以下是曾經有的經驗。

1. 利用仿生學(Bionics):仿生學是模仿生物的科學,了解生物的結構和功能原理後,研製新的機械和技術,或是用來解決機械技術的難題。2000年來人類希望能像鳥一般的飛翔,但是我們的身體太重,就算加裝翅膀後,拍擊的力道也無法飛翔。

2. 利用仿生學模仿飛鼠在天上滑翔。

3. 利用熱氣球升空,而熱氣球的原理是燃燒空氣,讓氣球內部氣體密度低於外部進而升空,這個原理可以用在水底吹游泳圈的想法來理解,吹飽氣體的游泳圈會因密度小於水而浮上去。其實這也是一種黑盒子概念,只要能飛上天,結果正確了,過程不重要。但是熱氣球飛太慢不盡理想。

現在飛機是怎麼一回事?我們先思考游泳,在水底時我們向下壓水,人自然會上浮,所以只要向下推,本體就會上浮,同理在空氣中,我們只要向下用力推,本體就會向上浮,而對應到飛機,就是向斜下用力噴氣,我們就上浮與前進。也可以聯想到一個吹飽的氣球,不綁起來,將開口朝下並放開,會向下排氣產生推力,導致本體上升。而這就是一種黑盒子概念,可以飛上天(火箭也是同理),如果我們再增加一個水平噴射的動力就可以無死角移動,結果正確了,可以跟鳥一樣快速的任意的在空中移動,過程不重要;而潛水艇也是同理。

我們無法利用仿生學來飛翔,只好找一個結果類似的黑盒子方法,讓我們在空中移動。當物理學家研究黑盒子的原理,完成分析後,將其稱之為流體力學。

  • 天氣預報

我們不了解天氣如何變化,但是我們知道現在與20幾年前相比,準確性提高了,這就是黑盒子模式的進步,也就是電腦的硬體能力提升,及演算法升級,大大的加快模擬的速度。

  • 壓縮音樂

我們都知道聽音樂要去聽現場演奏的比較好聽,而且錄製的完整檔案較大,而壓縮過後的音質總是差一些,而壓縮檔案的行為就是黑盒子模式。它過濾掉一些人類比較難以察覺的部分,而保留大家比較能聽到的部分,但大家還是可以分辨出它保留大多數想聽的音樂部分。見圖2:原始音樂檔與壓縮後的音樂檔的差異。而壓縮就是濾波(過濾)的一種應用。

圖2

  • 噪音去除

噪音去除也是類似壓縮音樂的方式,仍然是濾波的應用,不過它是判斷錄到的聲音,判斷哪些是人聲以外的雜訊,再加以過濾,不可避免的是會刪除到較多的人聲,所以在早期的過濾噪音,人的聲音有較大的失真,現在則是進步許多。

  • 迴歸分析

圖3是預測原料(重量)與商品(重量)的關係圖,可以發現數據少時的預測範圍較大(準確度較差),而當數據多時預測範圍比較小(準確度較大),而當我們如果可以寫成一個會自我修正的演算法,那麼預測的方式就會越來越準確,也更有效率。

圖3

【以數學方式討論黑盒子概念】

觀察下述方式,了解某些黑盒子模式只能認識輸入與輸出的關係,而中間的過程我們很難發現,但只要能找到輸入與輸出的對應關係即可。

  • 函數

小明很好奇米與稻子、土地、秧苗間的一連串的關係,但是如果問農夫,他大概會回答一斤米大概要種多少土地的秧苗,而不會說中間的實際數據內容,見圖4。可以發現黑盒子也可以視作一個合成函數。

圖4

  • 以集合論來討論黑盒子概念

先觀察圖5,可以發現我們不需要知道過程是怎麼變化,只要知道輸入1會得到e,如果是得到d肯定是輸入3。

圖5

而這樣的變化規則,在二次世界大戰的德國文件加密機器-恩尼格碼機(Enigma machine)就已經出現黑盒子的概念,見圖6。每天選一組序號,每組序號會有不同的字母變化,比如說:今天的apple會變tgg6a,可以發現a變t、p變g、l變6、e變a,明天的apple則變9kk+y,可以發現a變9、p變k、l變+、e變y,而破解加密文件的方式是利用機器與演算法去找到當日序號,進而破解加密文件,成為打贏二戰的原因之一。而破解加密文件的團隊是由艾倫圖靈(Alan Turing)主導,他是英國數學家,電腦學之父。

圖6:恩尼格碼機

【電腦的黑盒子模式可信嗎】

部分的人對於電腦的黑盒子模式是難以接受的,甚至是覺得有些荒謬,因為他們認為一定要有完整的因果關係才是合理的,也就是他們更關注決策的過程,才能接受決策的結果。作者認為這是不懂黑盒子原理才會說的話,作者以正確的角度來詮釋什麼是黑盒子模式?

先了解人類的直覺是什麼?一個是主觀情緒帶來的行為,一個是長久以來經驗的累積。兩者使用的時間都極短,但別人看起來都像是不經思考的衝動行為。

然而前者容易出錯,後者則是不容易。而電腦的行為就是類似後者的行為甚至更為強大,因為電腦的所有內容都是人類輸入進去的程式碼,本身的運作符合正確的邏輯,但是它的速度比人腦快上無數倍,除非程式碼設計錯誤,才會導致無法判斷、或是錯誤判斷。所以當我們在參考電腦建議決策時,其實就是相信電腦會利用所收集到的資料庫的數據,進行大量數據的分析,而這個分析是基於統計及機率理論做出的最佳建議,所以黑盒子模式是值得信賴的。而否定黑盒子模式的人,基本上是不清楚電腦的運作及黑盒子模式原理的人。

        最後我們可以總結一個內容,電腦的黑盒子模式的基礎原理就是統計與機率,並可對應到一個經驗豐富的人的直覺判斷。或許他說不出為什麼,但是在大多數情況下是值得信賴,因為太多道理已經成為他的本能,同理我們可以相信電腦的黑盒子模型,見圖7。

圖7

越是經驗豐富的人或電腦,就可以做出更好的選擇,而這就是統計與機率的分析後的決策模式(黑盒子)。而有些事情會有許多特例的情形,人需要遇到特殊情況後,累積經驗才能找到配套的處理方式,同樣的電腦是也需要建立特殊處理的資料庫。最後它處理問題的方案就會更正確、更有效率。

一個問題可以有多個演算法來解決,只是效率上的好壞、成功失敗與否,不斷的累積數據後,會慢慢修正出一個最佳的辦法來執行,而這就是黑盒子的意義,所以電腦的黑盒子模式值得相信。

【結論】

由上一篇與本篇我們可以知道,資訊工程師(設計者)與一般人(使用者) 認知黑盒子的角度應該要「不同」,設計者要透徹理解黑盒子,而使用者就放心使用即可,以結果正確來認知可否值得信賴(結果論)。

弔詭的是現實恰巧相反,部分設計者閃避黑盒子的統計與機率原理,而使用者不斷去質疑黑盒子每一個內容是否正確、因果關係是否合理。其實這些問題都源自於害怕數學、統計、機率,使用者不相信設計者的數學能力,擔心會得到一個錯誤百出的程式,所以才會要求設計師說清楚黑盒子內容。如果要從根本上解決問題,必須從數學、統計、機率的能力開始做起。設計者才有機會將黑盒子轉變為灰盒子、甚至是透明盒子,並進一步解釋給使用者聽,讓使用者信任設計師。

不管怎麼說,目前的黑盒子是由目前頂尖統計、機率與資訊工程師一起設計完成的內容,使用者實在沒有必要去質疑黑盒子的正當性,因為再質疑別人之前,也要先提升自身的統計與機率能力,才能判斷對方的解釋是否合理,否則對方解釋了也等於沒說。如果是這樣的結果,一般的使用者就安心使用黑盒子即可;如同不會製作汽車,但只要相信品牌大廠可以做出值得信賴的汽車供自己駕駛即可。