機器學習與學習機器學習

文/蘇文鈺

在研究所唸書的時候偶遇類神經網路(Neural Network)這個技術,看到一些書籍[1,2]與論文都宣稱這個新技術的有效性,與指導教授討論後,我讀了論文後自己實做了兩個版本的類神經網路,一個是Hopfield神經網路[3],一個是四層架構,每層有30~50個神經元的類神經網路,1990年的工作站跑起這樣的網路訓練是要花不少時間的。試過幾個論文上的範例以及一些比較小的分類型(Clustering)問題,確實可以得到很不錯的結果,當用在衛星影像重建的題目時,並沒辦法得到比傳統方法更好的結果,不久後我改為進入多通道Spectra(光譜,頻譜)預估[4]與適應性濾波器[5]的世界,以我當時的見識,還沒想到類神經網路與這些技術之間的緊密關聯。傳統方法是需要數位訊號處理、影像處理與上述幾個技術等等的良好基礎才有辦法實作。

幾年後,我到史丹佛大學的音樂與音響研究中心(CCRMA)博士後研究,CCRMA是聲音合成的重鎮,不管是人聲合成(人工合成的兒歌在電影「Space Odysey」中被用來訓練HAL-9000這部AI電腦 [6]),還是音樂合成(FM Synthesis[7])。當時Julius Smith提出以物理模型(Physical Modeling)為基礎,稱之為 Digital Waveguide Filter - DWF [8],後來成為另一個主流技術。DWF在對付管樂器與撥弦樂器都有突破性的進展,而擦弦樂器還差強人意。感到DWF跟類神經網路都可以被稱為連接者模型(Connectionist Model),我提議也許可以用神經網路來訓練取得 DWF參數。 Julius告訴我去跟Bernard Widrow教授談談。幾週後我順利約到Widrow教授[9,10],他對我說,非線性加上高度的回授,這樣的類神經網路訓練還有困難,但不是不可行,年輕人,加油!!那時,我第一次清楚知道很多傳統的技術與類神經網路之間的互換關係,只不過傳統的方法需要嚴謹的數學證明,而類神經網路往往在達到目的時卻無法清楚說明為何這個「黑盒子」是如何在物理意義上對應到問題本身。

我回臺灣後一直在思考這個問題,畢竟小提琴是我所喜愛的樂器。即使我在之後出版了若干使用DWF混合類神經網路解決某些合成上的問題[11],應用類神經網路在擦弦樂器的分析與合成上得到初步滿意的成果卻是2020年的事了[12]。

從1962年,Widrow把梯度法(Gradient)引入神經元構成的網路,到1995年Lecun正式把Convolution Neural Network [13]介紹到世人面前,這之間,專家系統、類神經網路、機器學習、人工智慧等等在學術界載浮載沉,一直無法證明其解決真實世界問題的能力,同時也因為其黑盒子(Black Box)[14]的特性,當時(現在也是)很難解釋這些所謂的人工智慧,或是機器模型到底跟他們所宣稱要解決的問題其確切物理關聯,在投稿學術論文方面,不受當時主流學者的喜愛之下,積極發展這些技術的學者轉而創立相關期刊。一直到電腦的計算能力一路上升、多核心處理器普及,這類模型相對容易被平行化計算。當2007年CUDA(Compute Unified Device Architecture)[14]被引進的數年後,隱藏層(hidden layer)數目被大幅提升,所謂的深度學習(deep learning)[16]終於爆發,在這個名詞被創造很多年後這些技術終於被證明確實可以解決非常多實際問題。從所謂的機器學習(ML),AI或是深度學習一開始被質疑是個黑盒子,是瞎貓碰上死耗子,到現在越來越少人會真正在乎這些黑盒子裡到底做了什麼,以至於到處都在喊著AI,對於從1989年開始浸淫其中的我來說,實在有太多說不出的滋味與複雜的感想。

簡短講完一些歷史,來談一下教學。千禧年初我在國立成功大學開設「類神經網路」課程,因為我是舊時代從公式推導開始學起的,在我的觀念中不能從最基礎推導上來一直到寫完程式驗證就不算是真的懂,於是課堂的學生越來越少,即使來上課也是打瞌睡的居多,幾年後類神經網路似乎越來越沒人重視就停開了。一開始我認為是學生的微積分與線性代數基礎太差的原因,多年以後回顧這一段課程,我才警覺,雖然我是自己學會這些神經網路的理論,但那時我已經是博士班一年級的學生了,如果我回到大三的時候來聽這麼「硬」的課,應該好不到哪裡去!!

過了十幾年因為創辦Program The World計劃(後來成立中華民國愛自造者學習協會[17],以下簡稱PTWA)在臺灣的偏鄉教小孩子寫程式才慢慢理解教學是多麼不容易的事,PTWA的業務弄上軌道,課程也開始多樣化[18]之後,開始回頭看看國外是怎麼教AI的。我從MIT的Scratch創辦人的書[19]Duckietown [20] ,自駕車課程 [21]與機械系課程[22],開始認知許多頂尖大學是以遊戲與實作來引導學習的(Game Based Learning [23])。我捨棄講解大量基礎數學理論,開始在成功大學的大學部開設類似的動手課程,如自走車以及遊戲式機器學習入門,由於經費短缺與助教的限制,難度下降與設備簡單。自走車課程幾年後遇到瓶頸,因為學生在大學以前非常少自己動手做機電整合的專案,以至把Arduino為基礎的車子組得夠牢靠反而成為最難的部分,我把這個課程再簡化,並開始在偏鄉教中小學生,因為沒有那麼大的課業壓力,孩子們反而玩得更開心,於是PTWA從2018年起在東部偏鄉舉辦全國自走車大賽,每年吸引來自全國大約250位學生來參賽。

接著我思考AI/ML的教學,並終於打通MIT課程的內在精神可以用Game AI來概括,如同AlphaGo(圍棋AI),差別在於研究所階段的AI難度太高,如果要一般學生(包含中小學生)要能理解AI是什麼,那麼我必須捨棄學生需要先理解其理論的前提,讓他們先試著運用現成的AI套件來解決問題,因為對多數人來說,理解問題的本身就夠了,而AI不過就是個「黑盒子」,如同切木板可以用手工鋸子(傳統的程式與演算法)也可以用CNC(如AI),即便使用者不知道CNC是怎麼被造出來的。這個年代,已經沒有過去那種非要從基礎原理開始學起的執著,能把問題解決就好。

於是PAIA(Playful AI Arena)[24]就這麼誕生了。PAIA是架設在雲端的AI競技場,上面有各式各樣的遊戲,學生只要上傳程式(Python或是積木程式都可以), PAIA的遊戲引擎會執行上傳的程式來試著過關,遊戲過程中產生的資料會回傳給使用者以用之為下一階段的訓練資料。由於現在的深度學習模型需要很大量的訓練資料,這套系統讓收集資料是在遊戲執行中自動完成,有效率協助使用者執行資料收集、模型訓練以及實務驗證這三個在所有AI工作中都需要反覆被執行多次直到成功的步驟。


圖1. PAIA 遊戲式機器學習線上平台

有人會問,只靠AI就可以解決問題嗎?當然不是,只用一個AI/ML模型就要過一個遊戲關卡必須要遊戲簡單到不必做問題拆解,此階段的重點在於學生於過程中熟悉用AI解決問題的基礎步驟,中小學生多玩幾次就可以學會。關卡(問題)越難,如果對問題的物理意義與領域知識(如怎麼下圍棋與機械手的動作原理)沒有充分理解,AI也幫不上忙。但有了AI/ML的幫忙,學生再也不需要從微分方程,線性代數,機率,實變,複變等等開始學起才能解決過去被認為很難的問題,我在這裡並不是說這些基礎理論不重要,如同怎麼做一把好鋸子或是一部好CNC這些事可以留給少數想要追根究底的人。對多數人來說,會用鋸子或是CNC就可以了。


圖2. 簡單的用機器學習打磚塊遊戲


圖3. 稍微進階的用機器學習過迷宮的遊戲


圖4. 多人賽車遊戲

過去幾年我的研究生有來自電子系、心理系、教育系,甚至是高中生,不僅程式設計很生疏,更不可能修過上述那些對他們來說很艱深的理論課程,經過一年不到的Game AI(現在是用更方便的PAIA)訓練(順便訓練學寫程式),就可以把AI運用在他們的研究主題上,兩年內就可以做出很不錯的應用並且可以發表國際會議論文。


圖5. 即將在2022年2月公開的3D環島賽車遊戲

總結來說,在教育研究上已經證明使用遊戲與實作可以讓學生更快進入學習情境並充分使用人類的工作記憶與儲存記憶[25]。AI的到來,讓數學計算不好的人也可以充分利用這個「黑盒子」來幫自己解決各式各樣不同領域的問題,因為AI從不要求每一個使用它的人都需要知道它是怎麼被建構出來的。

讓我們來PAIA上試試自己對使用AI的程度有多好吧!
 




蘇文鈺
國立成功大學資訊工程系教授