2018年3月27日

機器是如何學習與進步?人工智慧的核心技術與未來

曲建仲/臺灣大學電機工程學系博士,政治大學科技管理與智慧財產研究所兼任助理教授,曾榮獲中華民國96年度全國優秀青年工程師獎章並獲總統召見,致力臺灣科技教育多年,擅長以淺顯易懂的文字由淺入深帶領非理工背景的讀者們了解艱深困難的科技原理。

人工智慧(Artificial Intelligence, AI),一個吸引人們卻又教大家害怕的名詞,吸引我們的是一個會思考、可以協助人們處理工作,可以替我們帶小孩洗衣做飯的智慧型機器人;讓我們害怕的是這個機器人自己會思考,哪天他不聽話了怎麼辦?更慘的是,哪天老闆發現他比我還好用,那我不就失業了?許多人以為人工智慧就是科幻電影裡會思考的機器人,人工智慧真的這麼神奇嗎?現在的人工智慧到底發展到什麼程度了?它到底有那些限制呢?

人工智慧的定義與範圍
人工智慧是指人類製造出來的機器所表現出來的智慧,其討論研究的範圍很廣,包括:演繹、推理和解決問題、知識表示法、規劃與學習、自然語言處理、機器感知、機器社交、創造力等,而我們常常聽到的「機器學習(machine learning)」是屬於人工智慧的一部分,「深度學習(deep learning)」又屬於機器學習的另一部分,如圖一所示。

圖一:人工智慧、機器學習、深度學習的範圍。
(參考資料:blogs.nvidia.com.tw)

AI發展進程—人工智慧的歷史與分級

人工智慧的依照機器(電腦)能夠處理與判斷的能力區分為四個分級如下:

⬝第一級人工智慧(first level AI):自動控制
第一級人工智慧是指機器(電腦)含有自動控制的功能,可以經由感測器偵測外界的溫度、濕度、亮度、震動、距離、影像、聲音等訊號,經由控制程式自動做出相對的反應,例如:吸塵器、冷氣機等,這個其實只是電腦含有自動控制的程式,程式設計師必須先把所有可能的情況都考慮進去才能寫出控制程式,算不上是真的「智慧」。

第一級人工智慧就好像是公司裡的工讀生:只是執行老闆交待的命令,進行各種重複性的工作,並不會去思考這個命令是否正確,例如:老闆說把大箱子搬到寫有「大」的區域;小箱子搬到「小」區域,工讀生就依照老闆的交待去做。

第二級人工智慧(second level AI):探索推論、運用知識
第二級人工智慧是指機器(電腦)可以探索推論、運用知識,是基本典型的人工智慧,利用演算法將輸入與輸出資料產生關聯,可以產生極為大量的輸入與輸出資料的排列組合,可能的應用包括拼圖解析程式、醫學診斷程式等。

第二級人工智慧就好像是公司裡的員工,能夠理解老闆交待的規則並且做出判斷,例如老闆說根據箱子長、寬、高分類大小箱子,運用知識留意不同貨物種類:小心易碎、易燃物品,員工就依照這個意思把箱子的尺寸量出來分類,並且要判斷什麼貨物「易碎」或「易燃」。

第三級人工智慧(third level AI):機器學習
第三級人工智慧是指機器(電腦)可以根據資料學習如何將輸入與輸出資料產生關聯,「機器學習」是指根據輸入的資料由機器自己學習規則,可能的應用包括搜尋引擎、大數據分析等。

第三級人工智慧就好像是公司裡的經理,能夠學習原則並且自行判斷,例如老闆給予大箱子與小箱子的判斷原則(特徵值),讓經理自己學習如何判斷多大是大箱子?經理就依照以往的經驗,自己思考多大的箱子是「大」? 

第四級人工智慧(fourth level AI):深度學習
第四級人工智慧是指機器(電腦)可以自行學習並且理解機器學習時用以表示資料的「特徵值」,因此又稱為「特徵表達學習」,可能的應用包括:Google教會電腦貓的特徵。第四級人工智慧就好像是公司裡的總經理,能夠發現規則並且做出判斷,例如:發現有一個箱子雖然很大但是卻是圓形(特徵值),與其他貨物不同應該另案處理。

第三級(主要是指機器學習)與第四級(主要是指深度學習)不容易區分,其實深度學習是由機器學習發展而來,主要的差別在於,第三級人工智慧處理資料時的「特徵值」必須由人類告訴機器(電腦);第四級人工智慧處理資料時的「特徵值」可以由機器(電腦)自己學習而得,這是人工智慧很大的突破。

人工智慧的歷史
自從人類發明了第一台電腦,就開始了人工智慧相關的發展,到現在已經超過半個世紀,其間經歷過三次熱潮,之前每次都因為某些技術上的困難無法突破,我們先來介紹一下人工智慧發展的歷史,以及每一次熱潮興起的原因與遭遇的困難。

第一次熱潮(1950~1960年):
由1950年代開始發展,主要是利用電腦針對特定問題進行搜尋與推論並且予以解決,但是當時的電腦計算能力有限,一遇到複雜的問題就束手無策,被戲稱為只能解決玩具問題的人工智慧,因此到了1960年代就冷卻了下來。

第二次熱潮(1980~1990年):
由1980年代開始發展,主要是把大量專家的知識輸入電腦中,電腦依照使用者的問題判斷答案,專家系統應用在疾病診斷,連續的問題有一個判斷錯誤則得到錯誤的結果,而且知識是無窮無盡的,不可能把所有的知識都輸入電腦,還把所有知識的前後順序都找出來,因此最後變得不實用,到了1990年代又冷卻了下來。

第三次熱潮(2000年~現在):
由2000年代開始發展,由於半導體技術的進步提升了很大的運算能力,而且半導體成本的下降使用雲端儲存變得便宜,在雲端伺服器內收集了世界各地的「大數據(big data)」,為人工智慧建立了很好的發展基礎,其中機器學習是經由大數據來訓練電腦「學習」資料的特徵值;深度學習是經由大數據來訓練電腦自行「理解」資料的「特徵值」,稱為「特徵表達學習」。

由於半導體技術的進步與成本的下降,使得大量數據的儲存與運算變得容易,提供了人工智慧極佳的發展環境,依照目前整個科技產業的發展,我們不必擔心這一次的人工智慧會有冷卻的一天,相反的,應該擔心人工智慧的過度發展,會不會有一天對我們造成負面的影響。

AI 背後強大的處理器人工智慧的雲端與終端

網際網路是一個開放的空間,由數以億計的電腦主機與伺服器連結而成,如圖二(a)所示,要如何描述這麼多電腦主機與伺服器架構而成的系統呢?因此科學家們使用「雲端(cloud side)」這樣的名詞來代表這個系統,相對於使用者所在的「終端(edge side) 」,如圖二(b)所示。
圖二:人工智慧的雲端與終端示意圖。

人工智慧大量的學習與運算目前都借助於雲端伺服器強大的處理器來進行,早期使用Intel的「中央處理器(central processing unit, CPU)」,後來科學家發現Nvidia的「圖形處理器(graphics processing unit, GPU)」效能比CPU高100倍以上,Intel經由併購Altera取得「可程式化邏輯陣列(field programmable gate array, FPGA)」技術來與GPU抗衡,另外有更多的廠商開發始發展「特定應用積體電路(application specific integrated circuit, ASIC)」,例如:Google自行設計的「張量處理器(tensor processing unit, TPU)」或Intel自行設計的「視覺處理器(vision processing unit, VPU)」,就是一種針對人工智慧這種「特定應用」所開發的積體電路,以上這些處理器都是裝置在「雲端」。然而並不是所有的應用都適合把大數據傳送到雲端處理,例如:自動駕駛車必須在車上「終端」進行處理才能即時反應道路情況。

蘋果公司這次推出的iPhone X使用自行開發的A11處理器,內建雙核心的「神經網路引擎(Neural Engine, NE)」,專門處理圖像辨識相關的機器學習、推論模型、演算法,也是一種針對人工智慧這種「特定應用」所開發的積體電路,不同的是它裝置在「終端」,也就是使用者的手機上,讓手機可以「自動學習」認識使用者的臉部特徵,蘋果公司也一再強調,使用者所有的臉部特徵都在手機終端完成,不會上傳到雲端處理,因此絕對不會有資料外洩的疑慮。蘋果公司這次發表的iPhone X讓使用者能夠真實感受終端裝置的人工智慧(On-device AI),在可以預見的未來,終端的處理器如何與人工智慧結合形成「終端智能(edge intelligence)」, 將是愈來愈熱門的議題。

框架問題
人工智慧只能解決給定的問題,也就是問題必須在一定的「框架」內,稱為「框架問題(frame problem)」。例如:樹搜尋(tree search)是很久以前就已經在使用的演算法,在應用上有兩個限制,其中一個是只能應用在範圍有限的問題,例如:五子棋、西洋棋、象棋等,不論怎麼變化都不會超出棋盤上的方格。

符號接地問題
電腦無法把符號(文字或詞彙)與它所代表的意義相互連結(接地)起來,稱為「符號接地問題(symbol grounding problem)」。也就是電腦很難理解我們所謂的「意義」,因此無法產生「智慧」。

例如對於一個從來沒有看過斑馬的人,只要我們告訴他有一種動物的外觀很像馬,但是身上有條紋,叫做斑馬。當這個人看到真正的斑馬立刻會知道:這大概是所謂的斑馬吧!因為他理解「馬」和「條紋」這兩個符號(詞彙)的「意義」。

人類可以擴張「符號」所代表的「意義」,但是電腦使用符號時必須在一定的「框架」內,也就是使用者必須預先定義,明確的告訴電腦某個符號代表某個東西,這是人工智慧最困難的地方。

機器學習
顧名思義機器學習就是要讓機器(電腦)像人類一樣具有學習的能力,要了解機器學習,就先回頭看看人類學習的過程,人類是如何學會辨識一隻貓的?大致上可以分為「訓練(training)」與「預測(predict)」兩個步驟,到底這兩個步驟是如何進行的呢?

如何學習? 機器的學習與判斷

大腦的學習與判斷
要了解機器學習,就先回頭看看人類學習的過程,人類是如何學會辨識一隻貓的兩個步驟如下:

訓練:
小時候父母帶著我們看標註了動物名字的圖片,我們看到一隻小動物有四隻腳、尖耳朵、長鬍子等,對照圖片上的文字就知道這是貓,如果我們不小心把老虎的照片當成貓,父母會糾正我們,因此我們就自然地學會辨識貓了,這就是我們學習的過程,也可以說是父母在「訓練」我們。

預測:
等我們學會了辨識貓,下回去動物園看到一隻具有四隻腳、尖耳朵、長鬍子的小動物,我們就知道這是貓,如果我們不小心又把老虎當成貓,父母會再次糾正我們,或者我們自己反覆比較發現其實老虎和貓是不同的,即使父母沒有告訴我們,這個是我們判斷的過程,也可以說是我們在「預測」事物。

機器的訓練與預測
要讓機器(電腦)像人類一樣具有學習與判斷的能力,就要把人類大腦學習與判斷的流程轉移到機器(電腦),基本就就是運用數據進行「訓練」與「預測」,包括下列四個步驟:

獲取數據:
人類的大腦經由眼、耳、鼻、舌、皮膚收集大量的數據,才能進行分析與處理,機器學習也必須先收集大量的數據進行訓練。

分析數據:
人類的大腦分析收集到的數據找出可能的規則,例如:下雨之後某個溫度與濕度下會出現彩虹,彩虹出現在與太陽相反的方向等。

建立模型:
人類的大腦找出可能的規則後,會利用這個規則來建立「模型(model)」,例如:下雨之後某個溫度與濕度、與太陽相反的方向等,就是大腦經由學習而來的經驗,機器學習裡的「模型」有點類似我們所謂的「經驗」。

預測未來:
等學習完成了,再將新的數據輸入模型就可以預測未來,例如:以後只要下雨,溫度與濕度達到標準,就可以預測與太陽相反的方向就可能會看到彩虹。

機器學習的分類
機器學習和人類學習的過程類似,要先進行「分類(classification)」,才能分析理解並且進行判斷,最後才能採取行動,分類的過程其實就是一種「是非題(Yes or No)」,例如:這一張照片「是(Yes)」貓或「非(No)」貓。機器學習是由電腦執行程式自行學習,一邊處理大量資料,一邊自動學會分類方式,就如同人類在學習一樣,因此機器學習就是在進行資料處理,有許多不同的形式與名稱,包括:資料科學(data science)、資料探勘(data mining)、統計模式(statistical modeling)、預測分析(predictive analytics)、知識發現(knowledge discovery)、圖形辨識(pattern recognition)、自我調適系統(adaptive systems)、自我組織系統(self-organizing systems)等,其實都是機器學習的一種。

機器學習的種類
監督式學習(supervised learning):
所有資料都有標準答案,可以提供機器學習在輸出時判斷誤差使用,預測時比較精準,就好像摸擬考有提供答案,學生考後可以比對誤差,這樣聯考時成績會比較好。例如:我們任意選出100張照片並且「標註(label)」哪些是貓、哪些是狗,輸入電腦後讓電腦學習認識貓與狗的外觀,因為照片已經標註,電腦只要把照片內的「特徵(feature)」取出來,將來在做預測時只要尋找這個特徵(四隻腳、尖耳朵、長鬍子)就可以辨識貓了!這種方法等於是人工分類,對電腦而言最簡單,但是對人類來說最辛苦。

非監督式學習(un-supervised learning):
所有資料都沒有標準答案,無法提供機器學習輸出判斷誤差使用,機器必須自己尋找答案,預測時比較不準,就好像摸擬考沒有提供答案,學生考後無法比對誤差,這樣聯考時成績會比較差。例如:我們任意選出100張照片但是沒有標註,輸入電腦後讓電腦學習認識貓與狗的外觀,因為照片沒有標註,因此電腦必須自己嘗試把照片內的「特徵」取出來,同時自己進行「分類」,將來在做預測時只要尋找這個特徵(四隻腳、尖耳朵、長鬍子)就可以辨識是「哪一類動物」了!這種方法不必人工分類,對人類來說最簡單,但是對電腦來說最辛苦。

半監督式學習(semi-supervised learning):
少部分資料有標準答案,可提供機器學習輸出判斷誤差使用;大部分資料沒有標準答案,機器必須自己尋找答案,等於是結合監督式與非監督式學習的優點。例如:我們任意選出100張照片,其中10張標註哪些是貓、哪些是狗,輸入電腦後讓電腦學習認識貓與狗的外觀,等電腦只要把照片內的特徵取出來,再自己嘗試把另外90張照片內的特徵取出來,同時自己進行分類。這種方法只需要少量的人工分類,又可以讓預測時比較精準,是目前最常使用的一種方式。

增強式學習(reinforcement learning):
機器自己嘗試錯誤並且找出最佳答案,可以視為一種「非監督式學習」。前面介紹的三種學習方式,都必須有明確的答案,也有明確的決策,例如:這封信是不是垃圾郵件?這張照片是不是貓?如果遇到必須做出連續決策的時候,就必須一步步修正答案與決策,例如:進行圍棋遊戲時,必須依照對手的每一步棋來修正下一步要怎麼走,或是自動駕駛車,必須依照路況的變化來修正下一步要怎麼走等。

馬可夫決策過程
馬可夫決策過程(Markov Decision Process, MDP)的概念是「事件未來的情況只和現在有關,和過去無關」,主要在討論一個隨機動態系統的最佳決策過程。機器學習裡的增強式學習,每進行一步就檢查是距離目標更近或更遠,如果更接近目標則給予「正向回饋(positive feedback)」,如果更遠離目標則給予「負向回饋(negative feedback)」,這樣最後的決策就會愈來愈接近正確的答案。

很多人以為人工智慧只是應用在圍棋AlphaGo打敗世界棋王或是智慧機器人,似乎和我們沒有立即的關係,其實前面介紹的這些機器學習相關的資料處理演算法,早就應用在我們日常生活裡了!當瀏覽器收集了我們上線瀏覽網頁的資料,演算法就開始分析我們的行為並且預測我們會對什麼東西有興趣,於是許多相關的廣告就顯示在瀏覽器旁邊,由於瀏覽器的空間有限只能先選擇已知過去的資料分析出我們可能最有興趣的,再依照我們現在點擊的情況修正未來投放的廣告內容,其實這就是利用馬可夫決策過程的一種增強式學習,包括:Google廣告決定投放什麼內容、Facebook把我們最可能有興趣文章放前面等都是利用這個技術。

人工智慧的「大腦」—類神經網路

人工神經網路
人類大腦的神經網路是由「神經元(neural)」組成,人工神經網路(artificial neural network, ANN)又稱為「類神經網路」,是一種模仿生物神經網路的結構和功能所產生的數學模型,用於對函式進行評估或近似運算,是目前人工智慧最常使用的一種「模型」。

神經網路(neural network, NN)
人類大腦的神經網路是由「神經元」組成,大腦中大約有860億個神經元,神經元是用來感知環境的變化,再將信息傳遞給其他的神經元,基本構造包括:細胞體(內含細胞核)、樹突(dendrites)、軸突(axon)組成,如圖三(a)所示:

突觸(synapse):
神經元與神經元、肌肉細胞、及腺體細胞之間通信的特異性接頭(junction),用來傳遞生物電流或化學物質(多巴胺、乙醯膽鹼)。

接收區(receptive zone):
為樹突到胞體的部份,用來接收生物電流或化學物質,如果接收的來源越多,對胞體電位的影響越大。

觸發區(trigger zone):
位於軸突和細胞體交接處的「軸丘(axon hillock)」,用來決定是否產生神經衝動的起始點。

傳導區(conducting zone):
為軸突的部份,用來傳導神經衝動。

輸出區(output zone):
神經衝動的目的是讓神經末梢,也就是突觸傳遞生物電流或化學物質,才能影響下一個神經元、肌肉細胞、腺體細胞。

科學家模仿人類大腦的神經網路,提出了「赫布理論(Hebbian theory)」,用來解釋學習過程中大腦神經元變化的神經科學理論,突觸上一個神經元向突觸下一個神經元持續重複的刺激,可以導致突觸傳遞效能的增加,也就是人工神經網路上的「權重(weight)」。......【更多內容請閱讀科學月刊第580期】






沒有留言: