楊 釗,王 力,唐 冬
(廣州大學(xué)電子與通信工程學(xué)院 廣東 廣州 510006)
模式識(shí)別是用計(jì)算的方法,根據(jù)樣本的特征將樣本劃分到一定的類別中去[1],即通過數(shù)學(xué)方法讓計(jì)算機(jī)來實(shí)現(xiàn)類似人的模式識(shí)別能力。模式識(shí)別廣泛應(yīng)用于圖像識(shí)別、語音識(shí)別、生物特征識(shí)別、信息檢索、數(shù)據(jù)挖掘、信號(hào)處理等領(lǐng)域,因此成為電子信息工程、通信工程、人工智能、自動(dòng)化、計(jì)算機(jī)工程等本科專業(yè)重要的課程。該課程能夠?yàn)檫@些專業(yè)的學(xué)生將來從事智能信息處理方面的工作打下良好的基礎(chǔ)。
該課程具有較強(qiáng)的理論性和實(shí)踐性[2],一方面要求學(xué)生具有扎實(shí)的數(shù)學(xué)理論基礎(chǔ),以掌握各種算法原理及推導(dǎo)過程;另一方面要求學(xué)生具有動(dòng)手實(shí)踐能力以解決實(shí)際的模式識(shí)別問題。此外,模式識(shí)別的內(nèi)容也是不斷更新的。因此,傳統(tǒng)以單一教材結(jié)合PPT講授為主的授課方式在模式識(shí)別課程教學(xué)上表現(xiàn)出明顯的不足。本文結(jié)合筆者自身多年的模式識(shí)別課程教學(xué)經(jīng)驗(yàn),嘗試探索教學(xué)改革新模式。主要思路包括:在課堂教學(xué)中融入案例和項(xiàng)目應(yīng)用,以提高學(xué)生的學(xué)習(xí)興趣;建立與課程配套的各種教學(xué)資源,以方便學(xué)生深入了解課程內(nèi)容以及自主學(xué)習(xí);采用多樣的課程考核方式,從不同層面考查學(xué)生的學(xué)習(xí)情況和鍛煉學(xué)生的動(dòng)手能力和創(chuàng)新能力。通過理論教學(xué)和實(shí)踐教學(xué)相結(jié)合的方式,最終培養(yǎng)學(xué)生綜合應(yīng)用知識(shí)并解決實(shí)際問題的能力。
模式識(shí)別課程具有較強(qiáng)的理論性和實(shí)踐性。理論性表現(xiàn)在很多算法涉及高等數(shù)學(xué)、線性代數(shù)和概率論等數(shù)學(xué)知識(shí)[3];此外有些算法本身具有一定的抽象性[4],學(xué)生需要較強(qiáng)的邏輯推理能力才能理解其原理。實(shí)踐性主要是指模式識(shí)別具有廣泛的應(yīng)用,即模式識(shí)別方法應(yīng)該和具體實(shí)際應(yīng)用問題相關(guān)聯(lián)。學(xué)生需要通過編程算法進(jìn)行工程實(shí)現(xiàn)來進(jìn)一步理解其原理細(xì)節(jié),同時(shí)了解方法的優(yōu)缺點(diǎn)。另外,模式識(shí)別具有發(fā)展性。隨著計(jì)算機(jī)技術(shù)的發(fā)展、行業(yè)應(yīng)用需要的增加以及相關(guān)領(lǐng)域的研究不斷深入,模式識(shí)別具體涉及的內(nèi)容也在不斷更新。其中,最為典型的就是深度學(xué)習(xí)技術(shù)的繁榮發(fā)展,為模式識(shí)別提供了新的思路和方法[5]。
傳統(tǒng)以單一教材結(jié)合PPT 講授為主的教學(xué)方法難以滿足課程目標(biāo)要求,導(dǎo)致課堂教學(xué)效果不理想,主要表現(xiàn)在以下幾個(gè)方面。
例如主成分分析原理涉及協(xié)方差矩陣計(jì)算以及二次型優(yōu)化問題,線性回歸解析解的推導(dǎo)過程涉及向量的求導(dǎo)運(yùn)算,神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程涉及復(fù)雜的反向梯度求解過程,支持向量機(jī)的求解涉及優(yōu)化相關(guān)理論。雖然學(xué)習(xí)模式識(shí)別課程的本科生有高等數(shù)學(xué)、線性代數(shù)以及概率論等數(shù)學(xué)基礎(chǔ),但是他們對(duì)數(shù)學(xué)知識(shí)的運(yùn)用還是有所欠缺。在筆者早期的模式識(shí)別課程教學(xué)過程中,如果直接講算法推導(dǎo)而不講數(shù)學(xué)補(bǔ)充知識(shí)的話,有時(shí)大部分學(xué)生感到非常吃力且上課積極性不高,影響了整個(gè)課程的教學(xué)效果。
對(duì)于本科生來說,課程的內(nèi)容決定了模式識(shí)別是一門較難的課程。一方面概念比較多并且還需要理解,例如監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)、聚類與分類、過擬合與正則化、協(xié)方差矩陣、核方法等。另外對(duì)于一些復(fù)雜的算法推導(dǎo)過程,學(xué)生在聽課過程中很難完全吸收。此外,對(duì)于完整的模式識(shí)別過程以及實(shí)現(xiàn)細(xì)節(jié),通過理論課的講解學(xué)生也很難完全掌握。例如數(shù)據(jù)預(yù)處理方法和特征提取算法的選擇,訓(xùn)練集、驗(yàn)證集和測(cè)試集的劃分與使用,不同算法標(biāo)簽數(shù)據(jù)的設(shè)置方式,模型參數(shù)的選擇與調(diào)優(yōu)等系列問題。
雖然基礎(chǔ)的驗(yàn)證實(shí)驗(yàn)?zāi)軌蜃寣W(xué)生通過編程的方式理解算法的實(shí)現(xiàn)細(xì)節(jié),但對(duì)其實(shí)踐能力的培養(yǎng)還是有所不足。例如,在講解主成分分析時(shí),對(duì)二維橢圓數(shù)據(jù)進(jìn)行主成分分析,可以得到數(shù)據(jù)變化的主要方向(長軸)和次要方向(短軸)。但如何將主成分分析方法作為降維算法用到整個(gè)模式識(shí)別的框架中,以及算法效果如何,學(xué)生還是不能很好地運(yùn)用。對(duì)于支持向量機(jī)實(shí)驗(yàn),如果只是簡單地驗(yàn)證和應(yīng)用實(shí)驗(yàn)不能有效培養(yǎng)學(xué)生解決實(shí)際問題的能力,需要進(jìn)一步讓學(xué)生掌握如何將現(xiàn)有的實(shí)際問題轉(zhuǎn)化為支持向量機(jī)分類問題,以及如何將預(yù)處理、數(shù)據(jù)降維、參數(shù)選擇等技巧融入支持向量機(jī)算法中,以進(jìn)一步提高模型的準(zhǔn)確性和泛化能力。另外,本科生相對(duì)缺乏科研思維及創(chuàng)新意識(shí),對(duì)算法的學(xué)習(xí)局限于課堂講解到的內(nèi)容,不知道如何進(jìn)一步深入算法細(xì)節(jié),不能很好地評(píng)估算法的性能以及理解算法的局限性。
針對(duì)目前教學(xué)過程中存在的問題,課程組有針對(duì)性地提出改革措施,具體思路如圖1 所示。首先對(duì)課程知識(shí)點(diǎn)進(jìn)行梳理,規(guī)劃好實(shí)驗(yàn)部分并做好案例與項(xiàng)目設(shè)計(jì);然后根據(jù)課程內(nèi)容建立豐富的課程資源;最后形成多樣化的考核機(jī)制。
圖1 模式識(shí)別課程改革思路框架圖
教學(xué)內(nèi)容的合理組織安排,可以讓學(xué)生理解不同知識(shí)點(diǎn)之間的關(guān)聯(lián),以及在模式識(shí)別框架中的作用。對(duì)于理論課,首先教師在講解模式識(shí)別基本概念時(shí),可以通過基于模板匹配的手寫數(shù)字識(shí)別的例子引出模式識(shí)別的基本流程,包括數(shù)據(jù)準(zhǔn)備、預(yù)處理、特征提取、分類算法以及算法性能測(cè)試等。接下來,介紹基本的特征提取方法和相似度測(cè)量內(nèi)容。然后,再從無監(jiān)督學(xué)習(xí)方法過渡到監(jiān)督學(xué)習(xí)算法,包括回歸分析與神經(jīng)網(wǎng)絡(luò),以及模式分類算法。之所以將回歸與神經(jīng)網(wǎng)絡(luò)放在一章進(jìn)行講解,主要是因?yàn)檫壿嫽貧w可以認(rèn)為是一種簡單的神經(jīng)元,同時(shí)回歸分析和神經(jīng)網(wǎng)絡(luò)都可以通過梯度下降的方法進(jìn)行求解,具有很多相似之處。最后講解模式識(shí)別的一些具體應(yīng)用和介紹深度學(xué)習(xí)相關(guān)的前沿知識(shí)。深度學(xué)習(xí)方面主要是讓學(xué)生了解深度學(xué)習(xí)的基本概念,同時(shí)能夠借助現(xiàn)有的深度學(xué)習(xí)平臺(tái)讓學(xué)生快速編程入門并解決簡單的分類和回歸問題。理論課合計(jì)32 學(xué)時(shí)。對(duì)于實(shí)驗(yàn)課,選取重要的章節(jié)知識(shí)點(diǎn)讓學(xué)生進(jìn)行實(shí)驗(yàn),合計(jì)16 學(xué)時(shí)。具體實(shí)驗(yàn)內(nèi)容包括:模式識(shí)別基礎(chǔ)實(shí)驗(yàn)(4 學(xué)時(shí))、聚類分析實(shí)驗(yàn)(2 學(xué)時(shí))、主成分分析實(shí)驗(yàn)(2 學(xué)時(shí))、回歸分析實(shí)驗(yàn)(2 學(xué)時(shí))、神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)(2 學(xué)時(shí))和支持向量機(jī)實(shí)驗(yàn)(4 學(xué)時(shí))。在實(shí)驗(yàn)課開展過程中,鼓勵(lì)學(xué)生采用多種編程語言完成實(shí)驗(yàn)內(nèi)容,例如Matlab、Python 或C++等編程語言。
良好的案例項(xiàng)目設(shè)計(jì)可以培養(yǎng)學(xué)生的學(xué)習(xí)興趣,以及加深其對(duì)算法實(shí)施細(xì)節(jié)的理解[6]。在理論教學(xué)過程中,教師可以將手寫數(shù)字識(shí)別案例貫穿整個(gè)課程。在講解基于模板匹配的手寫數(shù)字識(shí)別時(shí),在課堂上采用Matlab 或Python 語言一行一行地編寫代碼,實(shí)現(xiàn)整個(gè)手寫數(shù)字識(shí)別工程。這樣學(xué)生可以更好地理解模式識(shí)別的基本流程,同時(shí)學(xué)生可以掌握如何將理論知識(shí)轉(zhuǎn)化為代碼應(yīng)用,極大地提高學(xué)生的自信心。
然后對(duì)于具體的算法,可以引入對(duì)應(yīng)的案例。例如針對(duì)K-means 聚類算法可以選取消費(fèi)行為數(shù)據(jù)做聚類分析;對(duì)于主成分分析算法,可以選擇鳶尾花數(shù)據(jù)集(Iris Data Set)做降維分析并可視化顯示降維的效果;對(duì)于邏輯回歸算法,可以選擇心臟疾病數(shù)據(jù)集(Heart Disease)做二分類應(yīng)用。最后設(shè)計(jì)1~2 個(gè)典型的應(yīng)用案例對(duì)課程所有的知識(shí)點(diǎn)進(jìn)行串聯(lián)。例如,可以選擇基于主成分分析的人臉識(shí)別系統(tǒng)或花朵分類應(yīng)用。此外,案例教學(xué)有利于啟發(fā)和引導(dǎo)學(xué)生參加專業(yè)相關(guān)的一些學(xué)科競(jìng)賽,如大學(xué)生電子設(shè)計(jì)競(jìng)賽、“挑戰(zhàn)杯”全國大學(xué)生課外學(xué)術(shù)科技作品競(jìng)賽等競(jìng)賽活動(dòng)。
豐富的教學(xué)資源有利于學(xué)生深入理解課程知識(shí)點(diǎn),也可以引導(dǎo)學(xué)生進(jìn)行自主學(xué)習(xí)。教學(xué)資源包括:參考書目、補(bǔ)充資料、視頻資源、課程代碼、網(wǎng)絡(luò)資源等。
①指定參考書目列表可以拓展課程內(nèi)容的深度和廣度[7]。優(yōu)秀的參考書目包括Richard O. Duda 等人編寫的《模式分類》第2 版[9]、希臘Sergios Theodoridis 等人編寫的《模式識(shí)別》第4 版、Christopher M. Bishop 編寫的《Pattern Recognition and Machine Learning》[9]、南京大學(xué)周志華編寫的《機(jī)器學(xué)習(xí)》[10]。客觀地講,這些書籍對(duì)于本科生來說具有一定的難度。但是作為參考資料,當(dāng)學(xué)生需要深入了解具體某一算法細(xì)節(jié)的時(shí)候,這些書籍能夠提供很大的幫助。
②補(bǔ)充必要的教學(xué)輔助文檔資料有助于學(xué)生輕松學(xué)習(xí)知識(shí)點(diǎn)內(nèi)容。模式識(shí)別算法高度依賴于數(shù)學(xué)知識(shí),因此教師可以根據(jù)理論課內(nèi)容,有針對(duì)性地總結(jié)和整理數(shù)學(xué)復(fù)習(xí)文檔資料,引導(dǎo)學(xué)生自主學(xué)習(xí)。例如高等數(shù)學(xué)中級(jí)聯(lián)求導(dǎo)、拉格朗日數(shù)乘法,線性代數(shù)中的矩陣基礎(chǔ)、向量范數(shù)和內(nèi)積、矩陣的跡、矩陣的導(dǎo)數(shù)、特征值和特征向量、矩陣分解以及二次型等內(nèi)容,概率論中的隨機(jī)變量、期望、協(xié)方差矩陣和貝葉斯公式。此外,還可以補(bǔ)充一些編程基礎(chǔ),包括Matlab 和Python 語言,以實(shí)現(xiàn)算法仿真或完成實(shí)驗(yàn)內(nèi)容。具體實(shí)施可以參考斯坦福大學(xué)的CS231n 課程,將編程語言基礎(chǔ)核心部分以精簡的文檔形式呈現(xiàn),學(xué)生可以快速入門或復(fù)習(xí)編程語言。
③對(duì)課程重點(diǎn)知識(shí)建立視頻資源,可以讓學(xué)生在課后反復(fù)理解,增強(qiáng)學(xué)生學(xué)習(xí)的靈活性。例如馬氏距離中協(xié)方差矩陣的理解對(duì)于初學(xué)者來說相對(duì)復(fù)雜,可以通過視頻的形式詳細(xì)講解計(jì)算方法以及其物理意義。對(duì)于主成分分析,可以通過視頻講解其原理推導(dǎo)過程和實(shí)現(xiàn)步驟。對(duì)于反向傳播算法,可以通過視頻重點(diǎn)講解輸出層和隱藏層的梯度求解過程以及梯度更新細(xì)節(jié)。對(duì)于深度學(xué)習(xí)方面,可以將編程環(huán)境的搭建與配置過程以及注意細(xì)節(jié)錄制成視頻,讓學(xué)生能夠按視頻操作快速入門。
④對(duì)理論課的內(nèi)容配置相應(yīng)的代碼,在講完算法以后,通過講解和運(yùn)行代碼讓學(xué)生進(jìn)一步理解算法細(xì)節(jié),以及觀察算法的結(jié)果。代碼方面,除了實(shí)現(xiàn)算法的基本內(nèi)容以外,還需要考慮代碼的可展示性。例如,針對(duì)隨機(jī)梯度下降知識(shí)點(diǎn),編寫的代碼應(yīng)該可以動(dòng)態(tài)展示梯度下降的過程以及體現(xiàn)學(xué)習(xí)速率的作用。此外,還可以搜集整理一些簡潔清晰的代碼資源,供學(xué)生課后自主學(xué)習(xí)和運(yùn)行使用。
⑤網(wǎng)絡(luò)資料有利于學(xué)生開闊視野范圍。例如:Pytorch官網(wǎng)提供的深度學(xué)習(xí)基礎(chǔ)教程和代碼,斯坦福大學(xué)的機(jī)器學(xué)習(xí)課程CS229,加利福尼亞大學(xué)爾灣分校的機(jī)器學(xué)習(xí)和模式識(shí)別數(shù)據(jù)集等資源,支持向量機(jī)庫LIBSVM,基于Python的機(jī)器學(xué)習(xí)庫Scikit-learn 等。
課程閉卷考試在一定程度上可以考查學(xué)生對(duì)模式識(shí)別理論知識(shí)的掌握程度,但不能有效地衡量學(xué)生對(duì)知識(shí)點(diǎn)的應(yīng)用能力。因此,需要建立多樣化的考核方式,來引導(dǎo)和督促學(xué)生對(duì)所學(xué)知識(shí)進(jìn)行運(yùn)用和深入理解。除了閉卷考試以外,可以將課堂表現(xiàn)、實(shí)驗(yàn)部分和課程大作業(yè)納入課程考核中。課堂表現(xiàn)主要考查學(xué)生的課程參與程度,可以通過課堂提問以及隨堂小測(cè)試等方式來實(shí)施。實(shí)驗(yàn)考核包括實(shí)驗(yàn)驗(yàn)收和實(shí)驗(yàn)報(bào)告兩部分。每次實(shí)驗(yàn)課當(dāng)場(chǎng)驗(yàn)收每位同學(xué)的實(shí)驗(yàn)完成情況,并針對(duì)性地提出問題,以檢查其獨(dú)立完成情況。實(shí)驗(yàn)報(bào)告要求學(xué)生在下一次實(shí)驗(yàn)課時(shí)提交紙質(zhì)版和電子版,主要檢查實(shí)驗(yàn)的完成情況和報(bào)告的撰寫質(zhì)量。課程大作業(yè)分為工程應(yīng)用和科研探索兩種類型。學(xué)生可以根據(jù)自己的情況選擇工程應(yīng)用型還是科研探索型的課程作業(yè)。工程應(yīng)用課程作業(yè)要求學(xué)生實(shí)現(xiàn)一個(gè)簡單的模式識(shí)別系統(tǒng),如車牌識(shí)別、光學(xué)字符識(shí)別等。這些系統(tǒng)應(yīng)包括數(shù)據(jù)采集、處理、識(shí)別和結(jié)果顯示等完整的模式識(shí)別步驟。科研探索的課程作業(yè)要求學(xué)生對(duì)相關(guān)算法進(jìn)行復(fù)現(xiàn)、對(duì)比、分析和一定的改進(jìn),并形成規(guī)范的圖表數(shù)據(jù),最后課程作業(yè)的內(nèi)容以會(huì)議論文的形式呈現(xiàn)和提交。這樣學(xué)生通過課程的學(xué)習(xí),可以慢慢培養(yǎng)自己的科研興趣,也為將來需要進(jìn)一步進(jìn)入研究生階段學(xué)習(xí)的同學(xué)打下科研基礎(chǔ)。
此外,在上述課程改革措施中,可以融入課程思政元素。案例教學(xué)能夠讓學(xué)生明白學(xué)以致用的道理;通過課程資源方便學(xué)生課后學(xué)習(xí),以培養(yǎng)學(xué)生自主學(xué)習(xí)、終身學(xué)習(xí)的能力??己朔绞街械墓こ虘?yīng)用類型作業(yè)可以督促和引導(dǎo)學(xué)生勇于實(shí)踐,科研探索型作業(yè)可以培養(yǎng)其科學(xué)思維和創(chuàng)新精神。
本文探討了面向本科模式識(shí)別課程改革的具體措施。①將模式識(shí)別案例與課程知識(shí)點(diǎn)進(jìn)行關(guān)聯(lián),提升學(xué)生的學(xué)習(xí)積極性。②通過建立豐富的課程資源引導(dǎo)學(xué)生課后進(jìn)一步學(xué)習(xí),使學(xué)生能夠深入掌握重難點(diǎn)知識(shí),培養(yǎng)其主動(dòng)學(xué)習(xí)的習(xí)慣。③課堂表現(xiàn)和實(shí)驗(yàn)部分能夠考查學(xué)生上課的參與度以及對(duì)知識(shí)的理解運(yùn)用情況;工程應(yīng)用和科研探索的大作業(yè)考核方式能夠結(jié)合學(xué)生自身的學(xué)習(xí)情況,從不同層面充分鍛煉學(xué)生的實(shí)踐能力和創(chuàng)新能力。整個(gè)改革思路覆蓋了學(xué)生“興趣→理解”“深入→自主”“應(yīng)用→探索”這一學(xué)習(xí)過程,能夠有效地解決傳統(tǒng)以單一教材結(jié)合PPT 講授為主的教學(xué)方法存在的不足。該課程改革思路也可以推廣到相似的其他課程,如機(jī)器視覺、數(shù)字圖像處理、神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)等。