AI & Big Data的演變趨勢(中)—演算法篇

Home - 趨勢分析 - AI & Big Data的演變趨勢(中)—演算法篇

TAcc+持續觀察新興科技產業脈動,協助新創團隊發展更具競爭力的戰略佈局。我們將持續針對以下領域,為您送上產業情報:AI (Big data) 、IoT、Healthcare (Digital health, Biotech, Medical device) 、Cybersecurity、App。

 


 TAcc+新創分析師 許雅音

 

AI & Big Data的演變趨勢上集,我們探討了big data的發展歷程,本期將進一步探討AI的歷史脈絡,分析AI發展的不同階段,以及帶動第三波AI革命的三大趨動力。另外,也將探討從機器學習(Machine Learning, ML)到深度學習(Deep Learning, DL)的演變歷程,並進一步介紹不同類型的DL,以及Small Data相關演算法的興起。

 

1.AI的發展歷史

1.1 從Big Data到AI的歷程

如同上集文章所提及的,數據從誕生到真正運用在商業上,分為4個階段的流程,如圖1,包含:產生數據(Data Generated)→數據存儲(Data Stored)→數據處理(Data Processing)→可行的洞見(Actionable Insights),前2個階段屬於大數據的範疇,後2個階段則是AI的範疇。

 

隨著數據量指數上升,數據處理(Data Processing)成了重大的問題,因為數據的數量實在太大,無法靠人工進行分析,此時,具備超強運算能力的電腦晶片CPU/GPU和具有學習能力的AI algorithms便派上用場,他們能夠透過數據處理,從大量且看似雜亂無章的數據中,偵測出數據的模型,藉由這個不斷精進準確度的模型,產生有價值的預測性資訊,讓政府或企業能夠透過這個資訊,得到可行的洞見,做出有價值的行動方案。

 

圖1、從Big Data到AI的轉變

資料來源: Overcoming Uphill Challenges for the New Generation Entrepreneurs

1.2 AI發展的三個階段

提到AI,就不得不從AI的歷史開始娓娓道來。第一波的AI革命,發生在1950年代,又稱為「古典AI」,當時,英國科學家艾倫.圖靈(Alan Turning)開發了圖靈測試(Turing Test),這個測試簡單的說,就是在考官看不到的一個房間內,安排了一位考生,這個考生有可能是人類或機器,考官拿著手上的考題,使用語言去詢問問題,並根據考生的回答,來判斷考生的身分。如果考生是機器,且成功騙過考官,讓考官認為他是人類,就代表機器通過了圖靈測試。圖靈測試看起來雖然平淡無奇,但是人類卻花費了60年的時間,才成功打造一台能真正通過圖靈測試的機器,在2014年的6月8日,尤金·古斯特曼(Eugene Goostman)成功在英國的雷丁大學(University of Reading)所舉辦的測試中,騙過研究人員,令研究人員誤以為「他(機器)」是一個名為Eugene Goostman的13歲男孩。

 

第二波AI革命起源於1970~1980年代,當時提出很多電腦科學(Computer Science)的概念,例如,用於存儲和運用既有的知識、並提出有效的方式去解釋訊息的「基於規則的系統」 (Rule-based system),及「決策支援系統」 (Decision support system),例如DXplain這個系統,能夠通過網路獲得的臨床決策支持系統,只要輸入患者體徵和症狀,實驗室檢查結果以及其他臨床發現,DXplain會通過生成分層診斷及每種鑑別診斷的證據支持來幫助臨床醫生。這個時期所進行的研究,是以灌輸「專家知識」作為規則,來協助解決特定問題的「專家系統」(Expert system)為主。然而,當時的電腦的運算性能有限、Machine Learning的演算法都尚未成熟等問題,加上此時AI的應用領域有限,因此第二波AI革命的熱潮也逐漸消退。

 

第三波AI革命又稱為AI文藝復興(Renaissance),在2000年,深度學習(Deep Learning)的演算法在萬眾期待下橫空出世,緊接著2007年,IBM開發Watson,作為能夠使用自然語言(NLP)來回答問題的AI系統,期待能用自然語言來理解患者的電子病歷,然後自動檢索資料庫,找尋適合的治療方案和最新醫學文獻,最終得出病名並提供給醫生參考;2014年,上述提到的機器(化名為Eugene Goostman)成功通過圖靈測試;2016年,Google的AlphaGo透過自我對弈,進行深度學習,並擊敗頂尖職業棋士李世乭(九段),正式揭開AI打敗人類的里程碑;2018 年 7 月,DeepMind 在「雷神之鎚 III 競技場」(Quake III Arena)奪旗遊戲和人類隨機組隊打團戰,擊敗了人類玩家。2021年,Google開發讓AI能夠自行設計AI晶片的演算法;隨後的幾年,AI的腳步滲透了各行各業。

圖2、AI在歷史上的3個階段

資料來源: Overcoming Uphill Challenges for the New Generation Entrepreneurs

1.3 三大驅動力造就第三波AI革命(文藝復興階段)

為什麼第三波AI革命跟第一波、第二波這麼不一樣呢?主要有3大驅動力造就第三波AI革命,包含大數據(Big Data)、深度學習演算法(DL),及運算能力。

 

第一項驅動力是大數據(Big Data),關於數據的累積與儲存,在AI & Big Data的演變趨勢(上)已有大量篇幅介紹,在此就不再贅述。

 

第二項驅動力是Deep Learning的出現,隨著Deep Learning在2000年問世以來,已有許多驚人的突破,包括上述AlphaGo擊敗人類九段的圍棋職業棋士,在電子遊戲上組隊打贏人類。各大科技公司,如Google、Microsoft、Facebook等,都紛紛投入Deep Learning的研究,並在短短的時間內將相關的研究成果應用在各個領域,包括影像識別、語音辨識、自然語言處理(NLP)等。其定義和詳細內容,將在第二章詳細論述。

 

第三項驅動力則是運算能力,電腦的歷史,從第一代的真空管電腦開始(1946~1958),到第二代電晶體電腦(1958~1963),經過第三代積體電路電腦(1964~1971),直至第四代超大型積體電路(Very Large Scale Integrated Circuit,簡稱VLSI) (1972~),一片積體電路晶片上容納數萬個甚至數億個電子元件,因此大幅提升的處理指令和執行指令的速度。

 

過往的電腦,是採取中央處理器 (Central Processing Unit,CPU)為核心,就像大腦一樣,但是隨著電腦需要肩負的任務變重,例如需要處理Deep Learning、3D遊戲等功能,這時候就需要圖形處理器(Graphics Processing Unit,GPU)來執行電腦與作業系統所需的指令與程序,而GPU 是決定程式執行速度的關鍵,無論是瀏覽網頁還是製作試算表,都會受到GPU性能好壞影響。其定義和詳細內容,將在下一期的運算法篇進一步探討。

 

接下來,會先說明Deep Learning,也就是研究如何設計出高效率演算法的軟體,是如何開發以及近幾年的發展。

 

2.從ML到DL的演變

2.1 人工智慧、機器學習和深度學習的差異

人工智慧、機器學習和深度學習的發展沿革與差異可以參考圖3。以下以簡稱表示人工智慧(Artificial Intelligence, AI)、機器學習(Machine Learning, ML)以及深度學習(Deep Learning, DL)。

 

被稱作 「AI 之父」的約翰·麥卡錫(John McCarthy),將 AI 定義為「能生產有智慧機器的工程及科學」(AI is the science and engineering of making intelligent machines.)。普遍來說,AI 就是「能表現出智慧的機器或系統」,能夠用來處理人工業務或減少人類的工作負擔。在1950年代,AI的早期概念逐步成形。

 

時間到了1980年代,這時候,ML開始逐漸成形,定義上,ML是屬於AI演算法的一種,有別於過去電腦按照明確的程式碼運行,ML會自行訓練演算法去尋找大型資料集(Data Set)的模式和關聯性,藉此做出最佳決策和預測。簡單來說,就是建構一個能夠根據經驗,進行自我優化的系統。

 

到了2000年左右,DL被提出,DL作為ML之下的一個分支,是指深度人工類神經網路 (Deep Artificial Neural Networks),其中,「Deep」 是一個技術性的術語,它指的是類神經網路中的層數(Numbers of Layer),這種人工類神經網路期待能夠類似人一樣具有決定能力、判斷能力和學習能力。

 

值得一提的是,無論是做ML或DL,都必須經過4個步驟,為輸入數據(Input)à特徵值提取(Feature Extraction)à分類(Classification)à輸出(Output),其差異在於特徵值提取的步驟有所不同。參考圖4。

 

什麼是特徵值提取呢?

簡單來說,就是將初始資料(Raw Data)降維到更容易管理的特徵中,以利於學習,用臉部識別來打個比方,將輸入的每張臉,提取臉部的特徵,是方臉還是圓臉,是細長的眼睛還是圓眼,這些都可以用數字量化,以方便表示。ML在特徵值萃取的這個階段,是透過人工進行,也就是靠人工方式輸入這些特徵,例如:臉型、眼睛形狀、鼻樑高低、嘴巴寬度、皮膚顏色等等,是由人工去定義這些特徵。一旦這些特徵定義了,就能透過比對各種臉型去分析,分類你更屬於哪些臉型的範疇,最後就是輸出最終結果,判斷你是亞洲人還是歐美人士。

 

而DL與ML最大的差異就是,在特徵值提取的這個步驟,不再是透過人去定義特徵,而是讓DL自己去定義,看輸入數據為何,自行讓DL定義這些特徵,說不定DL分析的結果就認為臉型的特徵根本不需要,就自動刪除這個特徵,或是認為雀斑是重要的特徵,就直接加入特徵內。將特徵值提取(Feature Extraction)和分類(Classification)這兩個步驟一起做完,中間不透過人工去定義,就是DL的特色。

 

圖3、AI、ML 和 DL 發展沿革

資料來源: inwinstack

 

圖4、ML 和 DL的差異

資料來源: Overcoming Uphill Challenges for the New Generation Entrepreneurs

2.2 從ML到DL的歷史沿革

ML從1980年代開始蓬勃發展,最早研究ML的理論側重數學模型,大多是數學統計學家所發表的,後來電腦資訊科學的人發現,這些模型對電腦解決問題也有幫助,也一同進來研究ML。簡單來說,ML就是設計數學模型,讓電腦得以從大量的資料中找到「規律」。

 

ML的類型多元,如圖5就有多達100種以上ML的演算法,以大分類來說,主要可以分為3大類,參考圖6,包含監督式學習、非監督式學習,及增強(Reinforcement)學習。「監督式學習」的特色在於需要在每筆資料上標記一個「標籤」,例如先在已知資料上,靠人工標註蘋果、橘子、芭樂、西瓜等「標籤」,接著再利用這些大量「標籤」進行未知資料的訓練,這個訓練方式稱為模型(Model),最具代表的演算法有Classification(分類)、Regression(迴歸)等。「非監督式學習」則事先不告訴機器正確答案(不標註「標籤」),機器自己從資料中發現模式,包含降低維度(dimensionality reduce)、Clustering(分群),及關聯規則( association rule)等演算法。「增強學習」則是只有好或不好的反饋,機器會不斷的從結果反饋去學習、逐步自我精進,像是Q-Learning、SARSA等演算法都非常著名。

 

圖5、100種以上ML

資料來源: @ThelnsaneApp

 

圖6、ML的3大分類

資料來源: Hackernoon

 

隨著ML的百家爭鳴,ML誕生了一個分支,在 1980 年初的時候揭起一陣熱潮,名叫「類神經網路」(Artificial Neural Network,以下稱ANN),讓科學家們對「模擬人類大腦的運算模型」抱持了高度期待。

 

隨著ANN的發展,有些科學家開始採用1層或2層的非線性特徵轉換層來處理數據,稱為「淺層學習」,典型的「淺層學習」包含:高斯混合模型(GMMs),及支持向量機(support vector machine, 以下稱SVM),其中,最成功的是SVM模型。雖然「淺層學習」的結構能夠高效的解決簡單問題(或是限制性問題),但是當牽涉到複雜問題,例如自然語音、自然圖像,及複雜視覺場景時,「淺層學習」顯然受到極大的侷限。

 

關於這個問題,早在1974年Paul Werbos提出了反向傳播算法(Back Propagation,以下稱BP),解決了從簡單神經網路模型推演到複雜神經網路模型中的線性不可分的問題,但BP在層數漸漸增加時,會陷入局部最優解(類似Curve Fitting),至此,從淺層到多層神經網路上,遇到了重大的卡關,研究人員還是不知道如何在多層的神經網路上,高效的學習特徵。

 

直到2006年,Hinton花了30年苦心研究,提出了深度信念網路(Deep Belief Nets,以下稱DBN),提出了需要經先進行「無監督式學習」,在此學到的參數將成為後續「監督式學習」的初始值,這樣偉大的變革,才真正解決了過去BP無法了解的問題,突破了重大的關卡,真正開啟了DL的序章。隨後DL的其他演算模型不斷被提出,DL漸漸變得益發重要。

 

雖然現今很多應用已經是DL的天下,但是在實務上,傳統ML也時常令人驚艷,由於ML能夠與領域知識(Domain Knowledge)連結,對運用資源的需求(晶片等)也比較沒有限制,加上ML各路演算法發展已趨近成熟,所以在許多有特殊限制的使用場景下,傳統ML還是資料科學家的首選。

2.3 模擬大腦的深度神經網路

上述提到的,1980 年初開發ANN,試圖「模擬人類大腦的運算模型」,科學家們突破了多層神經網路的模型限制,正式揭開了DL的序章。本章節來談談「模擬人類大腦的運算模型」,是如何從觀察腦神經做起,一步一步建立獨特的深度神經網路模型(Deep Neural Network,以下皆稱DNN)。

 

DNN想要模擬大腦運作的方式,使用模擬大腦神經元和突觸的模型,來實現AI,所以要談AI演算法,需要溯源到大腦的工作機制,參考圖7。

 

腦細胞中,有很多神經元,每個神經元具有一個體細胞(Cell Body),然後長出許多隻手,稱為樹突(Dendrite)負責接收訊號,而訊號的傳導,就是透過體細胞延伸出來的尾巴軸突(Axon)尾端的突觸(Synapse),再與另一個神經元連結。

 

如果將樹突視為輸入(Input),軸突視為輸出(Output),神經元將來自樹突輸入的電子訊號,與表示是否超過神經細胞內電位的閾值(Threshold,門檻值)進行比較,若超過該閥值,則此神經細胞便達到興奮狀態,從軸突輸出電子訊號。簡而言之,腦細胞的連接構造,是神經元和神經元之間通過突觸形成網路。

圖7、神經元中的訊號傳遞

資料來源: iT邦幫忙

 

參考圖8,函數f是輸入和輸出之間的關係,稱為啟動函數(Activation Function)數;wi是突觸特徵的權重,權重為正表示突觸興奮,權重為負表示突觸處於抑制狀態;xi是另一個神經元的輸出;b是神經元啟動(能不能將輸出傳遞到另一個神經元)的閾值(臨界值)。

 

圖8、神經元(感知器)模型

啟動函數f(x)的部分常見形式如圖9所示。為什麼要引入啟動函數f(x)呢? 主要是為了讓輸入和輸出脫離線性關係,達到非線性關係。

 

圖9、表示大腦神經元開和關的啟動函數舉例

圖示說明:a)線性函數 b)符號函數 c)Sigmoid函數(S形函數) d)Softmax函數e)雙曲正切S形函數 f)ReLU函數 g)硬雙曲正切S形函數h)階躍函數

2.3.1 模擬大腦運作的DNN

如同上述所提到的,把神經元和神經元互相連接起來,就能夠形成一個神經網路,DNN的特點是在輸入層(Input Layer)和輸出層(Output Layer)之間增加了很多層(稱為隱藏層(Hidden Layer)),在新的DNN中,隱藏層能夠多達數百到數千層以上,為什麼中間需要有隱藏層呢? 這裡我們能夠將隱藏層了解為調控精度及權重的工具,實際上的運算方式如同圖10,主要是計算 ,能夠達成乘積累加(Multiply Accumulation,MAC),以利進行更精準的判斷。

圖10、淺層(單層)神經網路(左)和DNN(右)

2.3.2  DNN如何進行預測

通過使用構造相對簡單的DNN,可以實現傳統上用複雜邏輯才能實現的功能,如識別和預測等。舉預測為例子,學過微積分應該都知道餘弦函數(y=cosx),而且還知道餘弦函數就是一個有週期性的波型,一旦我們透過訓練讓DNN了解到,原來餘弦函數是一個有週期性的波型,那DNN就能夠預測未來餘弦函數在某一點的值,也就是進行預測。

2.4 DL的介紹

學習了上述DNN的演算原理,接著就來介紹幾個近年來有卓越發展且著名的DL。

2.4.1 卷積神經網路(Convolutional Neural Networks, 以下稱CNN)

CNN是神經網路的一種,主要透過卷積(Convolution)計算找出各種「線條特徵」,再將它們輸入至完全連接層(Dense)進行影像辨識,CNN對於識別大型圖像有出色的表現。

 

CNN的結構簡單分為4種,包含:

    • 先透過卷積(Convolution)計算,從圖片中萃取「線條特徵」。
    • 再透過池化層(Pooling),也就是簡化,去採樣保留最大值(特徵)。
    • 經過多次卷積/池化後,得到抽象化的特徵,壓扁(Flatten)為一維向 量,作為完全連接層(Dense)的輸入。
    • 最後經完全連接層(Dense)分類,進行影像辨識。

圖11、CNN的處理流程

資料來源: iT邦幫忙

 

詳細地說明 CNN的判別方式,可以從判別Χ的案例說起,電腦在進行判別時,會將圖片像視為一格一格的像素(Pixel),所以在比對圖片時,如果有任何一個格子的值不相等,電腦就會死腦筋的認為兩張圖不一樣。

 

但是圖片總會稍微平移、縮小、旋轉或變形的情況,這時候怎麼告訴死腦筋的電腦,也判斷中正確的符號呢? 這時候,CNN就上場了。

 

CNN很聰明,在設定上,它知道從局部開始比較的話,無論是圖形縮放、位移或旋轉,都能夠保有圖片的特色,參考圖12,CNN會比較兩張圖片裡的各個局部,這些局部被稱為特徵(feature)又稱卷積核,以下我們均稱為「卷積核」。相較於過去死腦筋的電腦要整張圖片一模一樣,CNN藉由局部性地在相似的位置上比對大略特徵,能夠更好地分辨兩張圖片是否相同。簡單來說,CNN就是一套用數學方式提取圖形特徵的工具。

圖12、每一張圖片裡的特徵

資料來源: How do Convolutional Neural Networks work? Bradon

 

接下來,就要進入到最關鍵的卷積(Convolution)計算了,剛才提到CNN會判斷局部特徵,但是究竟一張圖片有多少特徵? 要怎麼進行篩選呢? CNN準備了一套聰明的篩選機制,背後的原理就是卷積(Convolution)計算。

 

那什麼是卷積(Convolution)計算呢? 其實超級簡單,請參考圖13,圖中我們看到,卷積(Convolution)計算在識別的過程中,會透過線條或輪廓進行辨識,首先先找出大象的各種「線條特徵」,再一步步拼湊起來,過程中排除缺少某些「線條特徵」的企鵝和袋鼠,就能判斷這張圖是大象,並為它貼上「大象」的標籤。

圖13、如何透過比對線條來判別出大象呢?

資料來源: Deep Learning (Machine Learning), Assignment Point

 

那麼要如何用數學的方式要如何解釋卷積呢?其實就是簡單的乘法和加法。要判斷特徵和圖片局部是否相同,只要透過「卷積核」進行乘法和加法的運算,請參考圖14(左)。我們看到「卷積核」所表達出的特徵是「右下線條」,知道這件事之後,我們要去判定這張新圖片,是否也有這個特徵呢?首先,將「卷積核」覆蓋到圖片的某個區域,對應相乘,也就是如果兩個格子都是白色(值為 1),乘積就是 1 * 1 = 1;如果都是黑色(值為 0),乘積就是0*0 = 0;如果一黑一白,乘積就是0 * 1 = 0。接著再把所有乘積值相加,填到「特徵圖」上(粉紅色)。接著,參考圖14(右),這時候將「卷積核」向右平移1格,進行相同的乘積計算,最後再將把所有乘積值相加,填到「特徵圖」上。如此來回往復,就能完成整張「特徵圖」了。

 

現在來觀察「特徵圖」,數值大的地方,就代表與「卷積核」特徵相符合的地方,也就是滿足「右下線條」的這個特徵。

 

雖然後續還會進行池化層(Pooling)來簡化(只保留最大特徵值),完全連接層(Dense)分類,但是CNN最主要的核心就在於上述所提到的卷積計算。

圖14、透過卷積計算得出的新像素

資料來源: 人臉識別原理?人工智慧(二)卷積神經網路

 

自1989年,CNN之父Yann LeCun發表了全球第一個CNN框架LeNet-5之後,開始了CNN的歷史。在1993年到2005年間,他開發用CNN模型來偵測影像中的多個人臉或行人;在2000年代中期,也用來開發能偵測障礙物的自駕車,在2009、2010年時,Yann LeCun將CNN模型部署到FPGA晶片中,在訓練資料中標註出行人、汽車、道路、建築物、樹木等物體,實現自駕車的初步架構,2012年,使用 Nvidia的GPU,來訓練同為CNN架構的AlexNet影像辨識模型,一舉拿下ImageNet競賽(辨識率達到85%)的冠軍,隨著各大巨頭投入研究,2014年由Google Brain得到冠軍, 2015年,在此競賽中,Microsoft(微軟) 的深度學習技術首度以96%的準確率,超越人類的水準獲得冠軍,這一年CNN在影像辨識中第一次超越人類,畫下了時代的里程碑。

 

現今,在各式的AI領域,如醫療影像分析、自動駕駛車、臉部辨識、行動助理等,都能夠看到CNN的應用。

2.4.2 膠囊神經網絡(Capsule Networks ,以下稱CapsNet )

CapsNet是神經網路的一種,主要是增加位姿(pose)資訊,讓機器能夠找到各角度的視角, CapsNet對於僅有小樣本資料就能夠識別圖片,有出色的表現。

 

那為什麼會發明CapsNet?傳統CNN存在著缺陷,參考圖15,這是由於CNN著力於檢測影像像素中的重要特徵。考慮簡單的人臉檢測任務,一張臉是由代表臉型的橢圓、兩隻眼睛、一個鼻子和一個嘴巴組成。而基於CNN的原理,只要存在這些對象就有一個很強的刺激,因此這些對象「空間關係」反而沒有那麼重要。於是Hinton提出了一種對於影像處理更加有效的網路——CapsNet,其綜合了CNN的優點的同時,考慮了CNN缺失的相對位置、角度等其他資訊,從而提升識別效果。

圖15、CNN識別的缺點

資料來源: Overcoming Uphill Challenges for the New Generation Entrepreneurs

 

溫習2.4.1提到CNN的工作方式,除了最重要的卷積計算,下一步有一個池化層(Pooling)的目的是簡化,也就是只保留最大特徵值,但是這個步驟,卻容易讓高相關度特徵和低相關度特徵之間的位置關係變得模糊,因此CapsNet提出了一套新方法,保留局部圖片之間的分層位姿(pose)關係,這一點對於正確分類和辨識對象來說很重要。

 

CapsNet結合了局部與局部之間的相對關係,當模型有了位姿(pose)資訊之後,可以很容易地理解它看到的是以前看到的東西而只是改變了視角而已。如圖16,人類可以很容易分辨出是自由女神像,因為只是角度的不同,但CNN卻很難做到,而把位姿(pose)資訊集合進去的CapsNet,可以很輕易的判別出是自由女神像的不同角度。

圖16、儘管拍攝的角度不同,大腦可以輕易辨識自由女神

資料來源: @Max Pechyonkin

 

CapsNet最大的優點在於,集結了位姿(pose)資訊,因此其可以通過一小部分數據即學習出很好的表示效果,相對於CNN,是很顯著的提升。在訓練前數據蒐集的數量能夠少很多數量級,更接近人腦的思維方式。

 

但是,CapsNet的效率是一大致命傷,由於CapsNet與其他DL比較起來,效率慢很多,因此提高訓練效率是一大挑戰。

 

自2017年CapsNet發表了之後,由於學術起步階段研究的侷限,沉寂了好幾年,直到2019年到2021年,才再發表了改良版的CapsNet,聲稱只需要要2%的原始參數,就能夠訓練。現在CapsNet的機會點在於: 發展Small Data,在少量樣本或無樣本情況下,能夠理解新的類別並進行有效率的訓練。其他的應用包含: 檢測系統(DARCCC):可辨識出真實圖像和GAN產生的圖像在距離上的分佈誤差,防止系統被假圖片欺騙而導致錯誤的分類,以及運用CapsNet來預測寒流與熱浪的發生,以及出現的區域。

2.4.3聯盟式學習(Federated Learning ,以下稱FL)

FL主要是為了解決數據孤島(Data Silo)所提出的演算法,為Google於2016 年提出,令數據不需要離開設備端,且分別能夠在各自的電腦上訓練模型,但是卻能透過特定機制共享訓練數據的演算法。

 

在數據劇增的世界中,不同的公司有不同的數據資料庫,數據資料庫中不僅有不同的特徵與不同的客戶。舉例來說,同為銀行業的花旗銀行與美國運通,兩家公司在美國都擁有巨量的客戶,然而由於兩家公司在不同領域的運營上有差異,導致資料庫擁有不同的特徵,眾多彼此缺乏的客戶資訊,然而政府與公司為了保護用戶的資料安全,與時俱進的樹立數位個資法,導致雙方沒有辦法共享彼此的數據集。

 

為了解決公司面的數據問題,以及數據面的數據孤島問題所提出的FL,先將使用端搜集足夠可訓練的數據後,在使用端運用不同模型訓練,再傳至中央服務器訓練數據。

 

FL根據資料的類型,分成3類,請參考圖17,包含橫向聯盟式學習(horizontal federated learning)、垂直聯盟式學習(vertical federated learning),及聯盟式遷移學習(federated transfer learning)。

 

橫向聯盟式學習,舉例而言,如同台灣有2家銀行,銀行的商業模式大同小異,雖然彼此的客戶不重疊,但是兩邊的數據具有類似的特徵。

 

垂直聯盟式學習,則是指2家不同行業,例如其中一個行業為電商零售,另一個行業則是信用卡服務,但是兩個行業彼此間有大量的客戶有所交集(上網購物用信用卡結帳此一連結點),如果能透過聯盟式學習,便能有機會找到對自身行業有利的特徵。當擁有數據者彼此的資料和特徵的重疊性都非常少時,則是可以考慮聯盟式遷移學習來擴充資料量。

 

圖17、3種類型的聯盟式學習

資料來源: Federated Machine Learning: Concept and Applications

 

參考圖18,舉橫向聯盟式學習,亦即數據之間,特徵重疊性高,且樣本重複性少的情況為例,假設不同地區的螺絲工廠,他們的業務相似(特徵相似),但客戶不同(樣本不同)。首先,每位客戶B1、B2、B3…BK,會得到同樣的模型定義(模型的初始化參數也一樣),接著,按照以下步驟來訓練模型:

Step 0、原本的Database的數字經過ML之後

Step 1、將更新參數加密發送到雲端

Step 2、與其他用戶的更新整合參數

Step 3、發送模型更新參數到各用戶端

Step 4、更新用戶端模型

圖18、橫向聯盟式學習與步驟

資料來源: Federated Machine Learning: Concept and Applications

 

透過FL,人們能夠在不共享資料的前提下,利用雙方的資料實現模型增長,令雙方不能互相反推出對方擁有的特徵,因此用戶隱私仍然到保護。如此一來,在不違反隱私保護權之下,可以讓模型更精準。

 

在商業模式的進展上,舉垂直聯盟式學習為例,其模型的概念在於多個組織(涵蓋各行各業)加入「聯盟」,並建構允許共享的ML模型,目的在於保護數據,在收益共享部分,「聯盟」透過獎勵機制,將部分收入分配給數據擁有者,並分潤給分享ML學習成果的組織,目標是讓所有參與者都能夠獲利,無論是數據、金錢,或模型。目前在智慧零售、金融,及智慧醫療行業都有成熟的應用。

 

另外,關於聯盟式學習,值得一提的是,過去網站能夠用第三方Cookie收集客戶資料,能夠做為數位廣告追蹤用,但是Google由於商業考量,預計在Chrome瀏覽器淘汰第三方Cookie,原訂在2022年將開始採用的「FLoC」 (Federated Learning of Cohorts,群組聯合學習)的演算法,用以取代傳統透過Cookie記錄使用者瀏覽喜好等資訊的廣告技術。目前受到諸多廣告業者反彈,同時也面臨被指控市場壟斷等影響下,Google宣布將讓此項與聯盟式學習有關的演算法延至2023年再投入使用。

2.4.4自然語言處理(Natural Language Processing ,以下稱NLP)

NLP是使用ML技術來處理及解讀文字,簡單的來說,就是如何讓機器處理並分析人類的自然語言,其分類有語音辨識、自然語言理解、機器翻譯,及自然語言的生成。

 

舉例而言,我們經常將外國文字輸入到Google翻譯,試圖翻譯成自己所了解的語言,這就是機器翻譯。我們將需要被翻譯的文本輸入進 NLP 系統中,而背後的演算法以及模型就會進行辨識、理解、以及生成等流程,最後再輸出被翻譯好的語言。該過程中,要如何讓電腦去「認知」和「理解」我們輸入的自然語言呢? 最主要的關鍵是教電腦去把輸入的語言變成有意義的「符號」和「關係」,讓電腦了解我們輸入的自然語言是什麼,接著,再根據需求去做後續處理。而Google翻譯中,所輸出被翻譯好的語言,就是將上述的做法反過來,讓電腦中的「符號」和「關係」轉變為自然語言的過程。

 

NLP的歷史可以回溯到1980年代,當時的NLP系統是一套複雜、人工訂定的規則為基礎的系統(Rule-based),到了1980年代末期開始,NLP才引進了ML的演算法,讓NLP稍微有了進展,但還是無法脫離語言學理論的主導(例如轉換-生成文法,Transformational-generative grammar,TG)。

 

參考圖19(上),經典NLP想要讓電腦了解自然語言,在落實上需要進行前處理(Pre-processing),例如將句子分成最小的語意單位(分詞)、將詞語還原成最基本的形式,像是將am, are, is 轉成 be(詞形還原),及對每個詞句標上詞性,像是名詞、動詞、形容詞等(詞性標註)等等,接著就能夠讓這些進行過前處理的語句進入到各種模型中(Modeling)進行訓練,這些模型可能是跟該語言的文法相關,例如能夠分析句子中的主語賓語等,了解彼此的關聯性。有些則是協助辨識人名、地名、公司名稱的模型。經典NLP透過前處理和模型兩個步驟,令電腦能夠了解自然語言到底在說什麼。

圖19、經典NLP和DL NLP

資料來源: blog.aylien.com

 

隨著時間的演變,時間來到的2013年,此時Google提出的Word2Vec出現了,Word2Vec實際是一種淺顯的神經網絡模型,它有兩種網絡結構,分別是CBOW和Skip-gram。CBOW的目標是根據上下文出現的詞語來預測當前的生成機率,而Skip-gram是根據當前詞來預測上下文中各詞的生成機率。

 

詳細的說Word2Vec是將語料庫中的單字(word)分佈在向量空間中,但是單字分散在向量空間中,要如何去了解彼此之間的關係呢? 這時候就需要計算單字與單字之間的餘弦(Cos)距離,這個距離能夠用來衡量彼此的相似性,相似性高,距離就近(例如London跟UK),相似性低,距離就遠(例如King跟C++)。所以透過兩個步驟,將單字分布在向量之間,接著,計算出彼此的距離,就能夠在句子上下文中,了解這個單字,並能夠判斷屬性和地理位置,如圖20所示。

圖20、Word2Vec的表示方式

資料來源: Deep Learning for Natural Language Processing — Part I @Wilder Rodrigues

 

簡單來說,Word2Vec能夠了解單詞和單字之間的關聯和關係模式,這在當時,人們的認知中只有經典NLP的技術程度下,是NLP前往DL道路上的突破性的發展。

 

2017年,Google提出Transformer模型,簡單介紹Transformer模型: 第一個完全放棄用RNN的recurrence(遞迴)或CNN的convolution(卷積)來提取特徵,反而是採用「Attention(注意力)機制」來做特徵抽取的模型(註: 無論是recurrence或convolution都是提取特徵的方法之一)。

 

「Attention(注意力)機制」的本質是從人類視覺注意力機制中獲得靈感,也就是人類視覺在感知東西的時候,一般是不會將一個場景從到頭看到尾每次全部都看,而往往是根據需求,觀察且注意特定的一部分而已。例如我們小時候,父母帶我們看醫生,走進醫療診所第一件事就是向櫃台掛號,這時候我們視覺先注意到的就是櫃台,重複幾次後,我們就學習到,進入醫院診所需要第一個需要觀察注意的就是櫃台,所以等我們長大後,自己到醫療診所(類似場景)去看醫生,也會把注意力放在櫃台上。從數學上解釋,「Attention(注意力)機制」就是一系列的「注意力」分配係數,也就是權重參數。Transformer模型提出後對NLP的發展有飛躍式的進展。2018年,艾倫人工智慧研究所和華盛頓大學的研究人員提出 ELMo(Embedding from Language Models)模型。ELMo最主要的突破是能夠依據單字出現的上下文來判斷這個字句的意涵。

 

緊接著,2018年下半年,Google開發的BERT(Bidirectional Encoder Representations from Transformers,也是使用Transformers技術)挾帶著打破11項當時NLP 最優性能記錄出現了,BERT的性能優越,具有340 Million (BERT-Large)的預訓練參數,參數愈多,也就代表模型能夠訓練得更精準,此時BERT已經能夠聰明地理解單字背後的含義、語義和意圖。至此,NLP進入了神速發展期。參考圖21,自BERT-Large以來,NLP模型的參數不斷往上升,2020年OpenAI所推出的GPT-3的模型參數已達到175 Billion,2021年1月,首個超過兆級參數的模型Switch Transformers(也是使用Transformers技術)誕生,模型參數正式達到1600 Billion。而模型性能目前則是會經過紐約大學、華盛頓大學、劍橋大學和 Facebook AI 聯合所推出一套新的 NLP 評估基準: SuperGLUE ( Super General-Purpose Language Understanding)進行評價,評估任務包括邏輯,常識理解和詞彙語義等,目前超越人類的新模型有Microsoft DeBERTa和Google T5/Meena。

 

隨著NLP不斷的進展,模型訓練參數指數型提升,也凸顯了訓練模型的費用不斷增高,每訓練1000個參數大約需要支付1美元。 這意味著GTP-3的175B參數GPT-3可能要花費數千萬的培訓費用。現在,如果要訓練有顛覆性進步的模型,最終比較的是資料量和演算力規模,意味著這行業的門檻越來越高,最終可能導致 AI 技術的競爭變成少數「燒得起錢」大公司的遊戲。

圖21、NLP模型的參數量及NLP模型的能力

資料來源: Overcoming Uphill Challenges for the New Generation Entrepreneurs

2.5 Small Data相關演算法的興起

在前文的2. 4.4 提到,為了讓NLP的精確度愈來愈高,所以需要大數據進行訓練,目前訓練NLP模型的參數量愈來愈多,甚至達到1600 Billion,但是大數據的訓練成本驚人,根據Google估計,訓練1000個參數大約需要支付1美元,所以訓練模型的成本,動輒數千萬,並非所有企業都能夠籌集這樣龐大的資金「入場券」。

 

除了資金的因素之外,有些行業因為天生的局限,本身就無法有大數據,舉例而言,如罕見疾病、開發孤兒藥等研究,天生就沒有那麼多資料和數據能夠訓練演算法。

 

可以看出,數據不足是AI落地最常見的阻礙,醫療業與製造業的業主通常只有少量或是比例失衡的數據集,且處理大數據需要大量的樣本來學習,成本極高且耗時。因此,科學家們開始思考,是否能夠在數據量少的情況下,透過演算法的改良,讓輸出結果的精準度,相較於大數據的模型,落差不會太大呢?

 

這時候小數據的演算法紛紛誕生,簡單分為以下幾種,包含常被應用在擴大數據集的轉移學習(Transfer learning)、被應用在私人數據(銀行業務、醫療保健)領域的合成數據生成(Synthetic data generation)、能夠學習稀有案例且模擬人類學習方式的小樣本學習(Few-shot learning),以及能夠槓桿類似資源的集體學習(Collective Learning)。透過這些特殊的演算法,能讓小數據加值,令中小規模的公司在數據量短缺和成本不足的情況下,也能成功訓練出有價值的模型。

 

當然,上述演算法所開發出來的ML模型,效果當然無法與大數據的模型媲美,但至少令中小規模的公司買到進入機器學習領域的入場券。

2.6 AI的其他觀點

雖然近十多年來,AI 在各領域都是非常熱門的話題,無論是數學、統計學、資訊科學等都可以看到 AI 的身影,但也有觀點認為當前Deep Learning已經走到了死胡同,例如全球人工智能計算機視覺領域奠基人之一、約加州大學洛杉磯分校(UCLA)教授艾倫·尤爾(Alan Yuille)就曾拋出「Deep Learning在電腦視覺領域已碰到瓶頸」的觀點。其中整理2個主要觀點如下:

 

    • 反向傳播(Backpropagation)技術只適合狹義AI: 反向傳播是Deep Learning的基本技術,它能夠讓神經網絡在訓練過程找到「最佳解」。但是如果讓訓練好的神經網絡執行「另一項任務」就會失靈,從而無法完成持續學習的目標。
    • 知識運用的範圍狹窄: 從輸入數據到輸出結果的這段路徑稱為「認知路徑」,就像我們對登山路徑的了解一樣,假設目前的認知路徑是: 穿過森林,看到一條河,然後橫渡小河,左轉,在一棵松樹附近停下來。但是問題是,如果有人把樹砍掉了呢?上述的例子就是Deep Learning的缺點,DL對知識運用的範圍非常狹窄,只適用於單一任務,這就是狹義AI和通用的區別。

 

圖靈獎得主Judea Pearl則是認為目前的DL只是「曲線擬合」(Curve Fitting),也就是從數學的角度看來,無論是對資料處理和判斷有多麼厲害,其實都只是擬合一條曲線罷了,無法做出通用型也高智慧的AI機器。他認為未來AI的突破口在於創立一個能自動化的因果推理模型。

 

由上述的內容能夠看出,演算法領域專家心目中所認為的AI,應該趨向通用型甚至是具有智慧的AI,認為目前能做到的AI,僅能夠自動化地(Automatic)完成人類的指令,但是不像人類的神經網路一樣,可以推理出不同領域的新事物。

 

在AI的迅速發展的現今,從務實面上AI的確能幫助人類更好的解決問題,但如果期待AI能夠迅速發展,立刻具有人類的智慧,是比較不切實際的。

3.結論

3大驅動力造就第三波AI革命,包含大數據(Big Data)、深度學習演算法(DL)及運算能力。本文介紹了演算法是如何從ML演化到DL,雖然目前尚未看到具有真正「智慧」AI,但是,人們從能夠有機會運用超乎想像多的大數據,進而開發DL來處理這些海量數據,到現在AI能夠獨立作為一個應用的主體,對真實世界產生影響,自1950年圖靈機發表到現今不到100年的時間裡,科技的突破已完全超乎人們想像。下一篇我們將來討論,造就第三波AI革命的最後一個驅動力:運算能力。

 

參考資料

  • “Overcoming Uphill Challenges for the New Generation Entrepreneurs,” Gary Wang,2019~2021
  • “AI Chips: Cutting-Edge Technologies and Innovative Future, ”張臣雄
  • “how read and write is done in parallel manner in hdfs,” MYCLOUDERA, 2018.
  • “What is Kubernetes,”NET2,2021
  • “AI Strategy in The Age of Vertical Federated Learning and Data Sharing,”towards data science,2020
  • “Federated Learning: A New AI Business Model,” towards data science,2019
  • “完整解析AI人工智慧:3大浪潮+3大技術+3大應用,”大和有話說, 2018
  • “電腦的歷史發展,” 陳榮方, 2000
  • “CPU vs. GPU:發揮兩者的最大效益,” Intel, 2020
  • “AI vs. ML vs. DL,” 鄭杰峰, 2020
  • “AlphaGo 打敗了人類,DeepMind 卻輸給了金錢,” 肖漫,2019
  • “深度學習成為人工智慧死胡同的原因是什麼,” AI科技評論, 2020
  • “AI人工智慧 – 定義、技術原理、趨勢、以及應用領域,” OOSGA Analytic, 2021
  • “Deep Learning Mechanism,” r.izadi on, 2018
  • “探討機器學習與深度學習之差異,” 威力, 2019
  • “卷積神經網路的運作原理,” Brandon Rohrer, 2016
  • “【卷積神經網路之父Yann LeCun如何走出二次深度學習寒冬?】30年前過氣老論文,為何能催生革命全球的CNN框架,” 翁芊儒, 2019
  • “聯盟式學習 (Federated Learning),” Sherry Su, 2020
  • “自然語言處理-Natural language processing | NLP,” 打不死的小強, 2019
  • “機器不學習:NLP系列(1)自然語言處理的發展與趨勢,” 機器不學習, 2018
  • “深度學習在自然語言處理(NLP)的技術與應用,” 莉森揪, 2018