尹劍飛,何玉林
(深圳大學 計算機與軟件學院,廣東 深圳 518060)
隨著人工智能、機器學習等知識在各個行業(yè)的應用,如何培養(yǎng)人工智能相關(guān)領(lǐng)域高素質(zhì)人才成為學術(shù)界和產(chǎn)業(yè)界共同關(guān)注的問題。正如《國務院關(guān)于印發(fā)新一代人工智能發(fā)展規(guī)劃的通知》中指出,把高端人才隊伍建設(shè)作為人工智能發(fā)展的重中之重,堅持培養(yǎng)和引進相結(jié)合,完善人工智能教育體系,加強人才儲備和梯隊建設(shè),但從目前機器學習相關(guān)領(lǐng)域的本科教學實踐來看,主要存在內(nèi)容較為單一、實操性不強等問題。
機器學習學科涉及多方面的知識,內(nèi)容廣、基礎(chǔ)寬,若按應用方向劃分,可以得到表1中的機器學習知識層次。第1層給出了最大粒度的劃分,分為監(jiān)督、無監(jiān)督和強化學習3個主要的分類研究;第2層在第1層的基礎(chǔ)上做了較細粒度的劃分,如分類和回歸屬于監(jiān)督學習、聚類屬于無監(jiān)督學習、強化學習可分為有模型假設(shè)和無模型假設(shè)的學習等;第4層是具體的算法大類,如CNN是第3層深度神經(jīng)網(wǎng)絡(luò)的一種表現(xiàn)形式;第5層是更為通用的技術(shù)方法,在第4層算法大類中被廣泛采用。
在機器學習相關(guān)的本科教學課程配置方面,一般為大學三年級的學生準備了一個學期的1~2門選修課,如機器學習導論、數(shù)據(jù)挖掘?qū)д摚婕暗慕虒W內(nèi)容主要有數(shù)據(jù)預處理技術(shù)、PCA、LDA、LLE、聚類分析、關(guān)聯(lián)規(guī)則、SVM、樸素貝葉斯分類器、AdaBoost等,考核方式為課程論文或與項目相結(jié)合。考慮到課程學習量的減負和學科建設(shè)的均衡性,這樣的課程安排有一定的合理性,但在參照表1中機器學習知識層次的情況下,課程安排在廣度和深度兩方面都有一定缺失[1],特別是深度方面缺少通用技術(shù)方法的介紹,掌握像Adam、隨機采樣、變分推斷等基礎(chǔ)性算法的原理對于提高解決問題的能力具有重要意義;缺少通用算法原則的訓練,如基于梯度的數(shù)值優(yōu)化算法設(shè)計、基于貝葉斯原則的優(yōu)化目標函數(shù)設(shè)計、基于分布的抽樣優(yōu)化算法等;缺少新知識點的引入和復雜工程訓練,如深度學習方面,包括基于CNN、RNN、LSTM的算法設(shè)計,如強化學習方面,包括DQN、Actor-Critic等算法以及游戲?qū)?、智能體等應用。
若從技術(shù)視角入手,如機器學習著名學者M. I. Jordan所言,機器學習是概率和優(yōu)化兩方面相結(jié)合的一種綜合應用,可以得到表2中的知識層次。對比表1和表2可知有一些知識點是重疊的,如表1第5層的極大似然、核方法、EM算法與表2的極大似然、MAP 、點積空間、MM算法有共同之處,但表1中還有不少知識點具有應用的獨特性,如Batch規(guī)范化、Dropout、Adam這些源自深度神經(jīng)網(wǎng)絡(luò)訓練的算法,與表2中一些概念有聯(lián)系但又有較多的改變,如Batch規(guī)范化與概率論的zscore數(shù)據(jù)預處理有相似性,但應用場景從一維隨機變量的正規(guī)化變成應用嵌套非線性函數(shù)的神經(jīng)網(wǎng)絡(luò)激活單元的輸出正規(guī)化;又如Adam算法可以看作對梯度下降算法進行自適應步長和梯度方向正規(guī)化的改進,以服務于深度神經(jīng)網(wǎng)絡(luò)大量參數(shù)值的搜索過程。
表1 按應用劃分的機器學習知識層級示例
表2 按技術(shù)劃分的機器學習知識層級示例
從大學教育的能力培養(yǎng)角度來講,應該更多地加強以表1的第5層和表2的第3層為代表的基礎(chǔ)概念和算法方面的訓練,因為它們具有更廣泛的應用場景,通過組合這些基礎(chǔ)知識可以創(chuàng)造新的算法、解決更廣泛的機器學習和優(yōu)化問題。然而,在課程教學編排上如果直接講述表2第3層和表1第5層的內(nèi)容,就會產(chǎn)生以下幾個問題:①單個知識點涉及的數(shù)學背景知識較深,需要較多的基礎(chǔ)知識鋪墊,如無監(jiān)督學習的子空間聚類研究方向的譜聚類算法就應用了譜分解這一知識點,位于表2的第3層,若要從矩陣論的角度講清楚它,則需要了解對稱矩陣、特征根、正交矩陣、譜線性空間、特征向量、超橢球的幾何關(guān)系等相關(guān)知識,這樣容易陷入更多的數(shù)學細節(jié)而偏離應用上下文;②缺少應用上下文的導引,降低課程的趣味性,也削弱多個知識點構(gòu)成的整體性;③不是每個知識點都需要覆蓋,對于相近的知識點,如Hellinger距離與搬土距離,只需選擇一個即可。因此,如何在有限的教學課時內(nèi),有選擇地覆蓋表1第5層和表2第3層的基礎(chǔ)概念和算法,如何設(shè)計一組機器學習主題將這些基礎(chǔ)知識點串聯(lián)起來,是很值得研究的課題。
多數(shù)機器學習書籍[2-5]將知識點按照應用方向,即監(jiān)督學習、無監(jiān)督學習和強化學習進行歸類,在每個方向下羅列較多的具體算法,如屬于監(jiān)督學習方向的SVM、神經(jīng)網(wǎng)絡(luò)、RNN、LSTM、決策樹等。這種知識點編排對課程教學具體實施提出挑戰(zhàn),存在以下問題:①在某個應用方向的算法教學上停留過多時間,影響機器學習的全局觀把握,容易陷入特定應用的固定思維模式,如監(jiān)督學習作為應用主流,一般給予較多的課時,監(jiān)督學習的基本過程有特征選擇、特征變換、標簽設(shè)計、目標函數(shù)設(shè)計與正則化、數(shù)據(jù)集的訓練、驗證與測試劃分、交叉驗證、模型選擇、超參數(shù)搜索等,雖然這些基本過程中的其他部分可以用于無監(jiān)督學習、強化學習等應用方向,但是數(shù)據(jù)集的劃分、交叉驗證和模型選擇這3個部分就不適于無監(jiān)督學習、強化學習,歸根結(jié)底,這3個部分需要標簽信息的參與,因而帶有鮮明的監(jiān)督學習特征。進一步而言,絕大多數(shù)監(jiān)督學習方法使用批數(shù)據(jù),對于流數(shù)據(jù)缺乏相關(guān)介紹。②對每個細分的學習算法做了過于精致的敘述,缺少綜合應用場景的案例講解,如文獻[2]關(guān)于神經(jīng)網(wǎng)絡(luò)的自動梯度推導,對于本科生來說有較高難度,況且主流的機器學習工具如tensorf l ow、pytorch等都提供了自動梯度計算支持[6]。因此,對于某些較深的技術(shù)內(nèi)容可以作適當裁剪,有助于保證全局知識體系的有效掌控而不是陷入某個技術(shù)細節(jié),同時有助于提高學習的產(chǎn)出性。
鑒于上述原因,一種適合于本科機器學習的課程設(shè)計方案應該以具有貫穿性的應用案例為主線,開發(fā)逐漸增強的案例版本,在有新知識加入的同時保證過程的完整性。應用案例模板示例如圖1所示。
圖1給出了3種應用案例模板,A模板對應于一般性的無監(jiān)督學習算法執(zhí)行過程;B模板對應一般性的監(jiān)督學習算法流程。通過對比A和B,可知監(jiān)督學習在標簽設(shè)計、模型參數(shù)調(diào)整方面顯著不同,這是從目標函數(shù)設(shè)計和參數(shù)更新的角度刻畫無監(jiān)督學習與有監(jiān)督學習的細微差別。C模板對應一般性的在線學習或強化學習執(zhí)行流程,通過對比C與AB發(fā)現(xiàn),在線學習或強化學習的參數(shù)調(diào)整是連續(xù)進行的,而監(jiān)督學習或無監(jiān)督學習在參數(shù)調(diào)整方面都有一個明顯的分界點,該分界點劃分出模型運行前與運行后。在ABC應用案例模板的基礎(chǔ)上,可以將表1和表2 的知識點有選擇地替換或插入相應的環(huán)節(jié),形成多個具體應用案例,如用維度化簡PCA替換特征變換,用極大似然、Batch規(guī)范化和DNN替換目標函數(shù)設(shè)計,用Adam替換優(yōu)化算法,用貝葉斯優(yōu)化方法替換超參調(diào)整,可以設(shè)計出一個基于DNN的監(jiān)督學習案例。
為驗證提出的課程設(shè)計方案,我們在圖1的基礎(chǔ)上設(shè)計了若干機器學習案例,包括基于流形學習和基于深度學習相結(jié)合的監(jiān)督學習案例、基于重要性采樣的變分推斷和強化學習相結(jié)合的在線學習案例等,并將這些案例融入我院大數(shù)據(jù)班的教學過程。通過概念(Concept)、問題解決(ProbSolv)、編程能力(Prog)、數(shù)據(jù)分析(DataAna)、流程創(chuàng)新(FlowInno)考查應用案例的教學效果,對比普通班與大數(shù)據(jù)班在這5個方面的成績分布情況,如圖2所示。
其中,Concept以表1和表2的知識點為主要考查內(nèi)容,以客觀題的形式檢查學生對各類知識點的理解程度和關(guān)聯(lián)情況。ProbSolv則以實際項目開發(fā)過程中遇到的各種數(shù)據(jù)處理子任務為原型,開發(fā)了一組算法和編程問題,涉及模式識別與預測、金融時序數(shù)據(jù)預測與分析、工業(yè)數(shù)據(jù)預測與分析、智能體運動設(shè)計等方面的背景案例。ProbSolv以項目形式開展,要求學生以小型開發(fā)團隊方式完成,同一名學生在不同項目中承擔不同的角色,如程序員、數(shù)據(jù)分析員、數(shù)據(jù)建模者等,這種多項目、多分工的安排有助于考查學生不同方面的綜合能力,同時兼顧團隊協(xié)作能力的培養(yǎng)。Prog涉及程序設(shè)計、工具掌握情況、軟件可維性等方面的軟件工程技術(shù)能力考查。DataAna涉及實驗性數(shù)據(jù)分析、聚類、趨勢分析、數(shù)據(jù)可視化等方面的內(nèi)容。FlowInno主要考查學生在ProbSolv項目中的數(shù)據(jù)處理環(huán)節(jié)是否有創(chuàng)新性以及對于問題的簡化處理能力。
由圖2可知,在問題解決、數(shù)據(jù)分析、流程創(chuàng)新3方面,大數(shù)據(jù)班學生獲得了較好的能力提升,這主要歸功于教學模型的柔性設(shè)計和案例創(chuàng)新。
圖2 能力對比
在當前機器學習和人工智能人才需求與供應不匹配的情況下,對于如何改進機器學習課程的本科教學工作,提出了一種可變流程的課程設(shè)計方案,通過可定制的應用案例模板將各類知識點進行柔性編排,從實際項目抽取問題開展教學實踐,并在大數(shù)據(jù)班的本科生中進行試點。實際教學效果顯示,該方案能有效提高學生在機器學習領(lǐng)域的問題解決、數(shù)據(jù)分析、流程創(chuàng)新等方面的能力,為實現(xiàn)機器學習人才培養(yǎng)提供一條具有較高可操作性的思路。