楊書新 王振東 蔡虔 薛正發(fā) 夏小云
摘?要:針對如何將科研能力培養(yǎng)融入“機器學習”課程教學的問題,提出從教學內容、教學方法、過程考核等三方面進行改革?;谀P湍繕撕瘮?shù)優(yōu)化、模型適用場景分析兩條主線,給出了教學內容改革的具體方法。以學術論文寫作思路為引導,給出了創(chuàng)新教學方法和考核的具體思路。改革有利于促進學生掌握科學研究的思維方法,提升學生的知識應用能力。
關鍵詞:科研能力;機器學習;教學改革
人工智能學科自1956年確立以來,機器學習在人工智能發(fā)展的第三時期“學習期”得到了重大發(fā)展[1]。機器學習主要是研究如何利用數(shù)據(jù)進行智能學習算法,是人工智能的核心,很多高校計算機學科點的人才培養(yǎng)課程體系都開設了“機器學習”課程。由于該門課程涉及的學科知識廣、理論性強、應用性強的特點,對教學提出了較大的挑戰(zhàn)。
在學生的培養(yǎng)過程中,基于工作室模式的實踐平臺是培養(yǎng)學生創(chuàng)新能力的有效途徑[2]。除此之外,課程教學是培養(yǎng)科研能力的一條重要途徑[3]。在課程教學中,教師應注重引導學生發(fā)現(xiàn)、分析和解決問題[45]。因此,研究“機器學習”課程教學如何在學時不變的前提下提升學生的科研能力是值得探索的一個問題。
一、教學現(xiàn)狀
在實際教學過程中,“機器學習”課程教學存在以下問題。
(一)理論和實踐分離
現(xiàn)有的《機器學習》書籍主要分為兩種類型,一種是主要講一些理論,進一步細分為概念和分類模型的理論推導兩個子類,另一種是基于某種編程語言的分類模型代碼實現(xiàn)。授課教師在教學過程中只強調理論或實踐。如果單純地講理論,學生面臨的是數(shù)學公式和推導,學生感覺到學習困難,且實際問題解決能力得不到鍛煉。如果簡單地講實現(xiàn)代碼,學習深度不夠,知其然不知其所以然,讓學生感覺就是機器學習就是調參,兩者都會讓學生感到枯燥,學習的積極性不高。
(二)教學方法傳統(tǒng)
教學上缺乏師生互動,以教師“講”為主,主要羅列書中的知識點[6]。研究生都有自己的研究方向,“以教師為中心”的教學方式使得學生查閱資料的主動性不足,對機器學習技術在自己方向的應用情況及技術前沿不了解。
(三)實踐內容不夠深入
常見的機器學習方法的實現(xiàn)代碼比較成熟,基于java、python、matlab等語言的實現(xiàn)代碼都有開源的,甚至有把方法實現(xiàn)代碼封裝成工具包的機器學習庫,如Scikitlearn[7]、Torch[8]、TensorFlow[9],這給實踐入門提供了快速方便之道,但實驗的設計多局限于書本的內容,實驗工作主要是驗證和簡單的參數(shù)調整,對應用的適用性和優(yōu)化分析不夠深入,如稀疏大數(shù)據(jù)和邊界數(shù)據(jù)的適用性、優(yōu)化參數(shù)和數(shù)據(jù)特征的關聯(lián)。
二、以科研能力培養(yǎng)為導向的改革
對于學生來說,研究方法、邏輯思維能力、書面寫作能力、創(chuàng)新思維都是科研能力的重要內容[1011]。對于課程來說,這些能力的培養(yǎng)與教學方法、教學內容、過程考核息息相關。因此,本文的教學改革思路是從創(chuàng)新教學方法、優(yōu)化教學內容、加強過程化考核三方面探索,激發(fā)同學們的學習興趣,培養(yǎng)學生的知識應用能力和創(chuàng)新意識。
(一)優(yōu)化教學內容:重視基礎,突出實踐
機器學習算法的學習過程分為數(shù)據(jù)收集和預處理、選擇合適的分類模型并進行訓練、測試算法的有效性三步。在數(shù)據(jù)收集和預處理層面,雖然傳統(tǒng)的機器學習書籍和課程都有對數(shù)據(jù)預處理相關內容的介紹,但在實際的教學過程中,為了方便模型的構建和預測,示例代碼往往使用的是已經預處理好的數(shù)據(jù)集,如sklearn庫中用于做回歸預測的波士頓房價預測數(shù)據(jù)集(boston),用于做分類預測的鳶尾花數(shù)據(jù)集(iris)等。這些數(shù)據(jù)集大多數(shù)沒有空值,特征與標簽存在一定的相關性,因此在機器學習算法訓練和預測時,能取得較高的精度。然而在實際的應用場景下,數(shù)據(jù)往往是殘缺不全的,傳統(tǒng)的機器學習教學方法忽視了這一點。例如,醫(yī)院收集患者的隨訪信息時,患者可能會由于隱私等原因拒絕提供自身疾病的相關信息,從而造成數(shù)據(jù)的缺失。針對此類缺失數(shù)據(jù),具體的數(shù)據(jù)預處理方法有缺失值處理、離群值處理、標準化、離散化和特征編碼等。數(shù)據(jù)預處理是機器學習過程中很重要的一部分,模型預測精度的高低與數(shù)據(jù)的預處理的算法和方式有著很大的關聯(lián)。因此在機器學習的實戰(zhàn)課程中,需要設計一定數(shù)量的不完整數(shù)據(jù)來引導學生使用預處理算法對數(shù)據(jù)進行處理,優(yōu)化模型的輸入。在分類模型層面,具體的分類模型有K近鄰、決策樹、支持向量機等,可歸為有監(jiān)督學習和無監(jiān)督學習兩大類[12]。其中線性回歸以最小化樣本預測值和實際值的均方誤差累積值為目標函數(shù),基于偏導值為0的規(guī)則求解最優(yōu)參數(shù),對數(shù)概率回歸以對率回歸模型最大化為目標函數(shù),根據(jù)梯度下降法或牛頓迭代法求最優(yōu)解。決策樹以信息增益或基尼指數(shù)等為目標函數(shù),循環(huán)計算確定最優(yōu)分類屬性。類似于線性回歸目標函數(shù),神經網絡以最小化均方誤差為最小函數(shù),基于梯度下降法迭代尋找最優(yōu)參數(shù)。支持向量機以最大化異類支持向量到超平面的距離為目標函數(shù),并受預測值和實際值相乘大于等于1的約束,采用拉格朗日乘子法求優(yōu),這些模型的共同點都是設計目標函數(shù),然后求解。對于有約束的目標函數(shù)最優(yōu)求解,運用拉格朗日乘子法求解,對于無約束的目標函數(shù)最優(yōu)求解,運用梯度下降法、牛頓迭代法等方法。機器學習的算法涉及統(tǒng)計學、矩陣運算、微積分、求導、程序設計等多學科知識,需要學生具有良好的數(shù)學基礎和編程能力。
綜合多本參考書,對教學內容進一步梳理,兼顧理論和實踐。在理論方面,精簡矩陣運算、拉格朗日乘子法、梯度下降法等優(yōu)化方法的推理,對于KNN、決策樹、支持向量機等方法的講解,在介紹矩陣求導的基礎上,以目標函數(shù)及優(yōu)化的設計、缺點和改進為主線講解,培養(yǎng)學生的問題建模和分析能力,進一步培養(yǎng)創(chuàng)新意識。在實踐方面,充分利用Scikitlearn機器學習庫、百度PaddlePaddle深度學習平臺等,設計基于百度Paddlepaddle、Scikitlearn等技術或基于預測思想實現(xiàn)代碼的實驗,以論文實驗的思考方式要求學生寫調試分析報告,從數(shù)據(jù)不平衡、邊界數(shù)據(jù)、數(shù)據(jù)稀疏性、預測模型等角度去分析,提高學生的機器學習知識應用能力和優(yōu)化分析能力。整體思路如圖1所示。為引導學生較快獲得成就感,課程教學改革的另一個關鍵點是實驗的設計,包括應用場景、開源機器學習庫的選擇以及基于學習算法原理的代碼實現(xiàn)。
(二)創(chuàng)新教學方法
教學方法以學術論文寫作思路引導為主。首先,采用問題驅動式的方式講解,講授預測模型以動機、研究方法、實驗效果(特點分析)的論文模式講解,指出方法提出的背景和適用范圍,引導學生思考,培養(yǎng)創(chuàng)新研究思維和邏輯思維。圖2為支持向量機(Support?Vector?Machine,SVM)的教學方法策略示例。針對支持向量機,首先介紹支持向量機模型的提出背景,引出目標函數(shù),繼而講解其求解方法,給出偽代碼并分析。在理解支持向量機基本原理的基礎上,圍繞是否線性可分的應用場景、約束不滿足該如何處理、松弛約束函數(shù)等問題,拋出動機,繼而講解線性核、多項式核、高斯核等概念和相應的問題解決方法。講解的邏輯主線是目標函數(shù)和求解,創(chuàng)新主線是問題動機、如何解決。其次,鼓勵學生結合自己研究方向收集資料,跟蹤國內外研究進展,拓寬視野,在潛移默化中掌握基于學科前沿文獻閱讀的科學研究方法。在課堂運用“問題式教學”“合作學習教學”等教學方法,以報告和討論的形式活躍課堂氣氛,增加不同研究方向學生之間和師生之間的交流,培養(yǎng)學生學術探討氛圍,增加學生的成就獲得感。最后,在教學過程中加入計算機科學家的勵志故事以及計算機科學前沿案例,從而激發(fā)學生學習的興趣和學習的積極性,在實踐中不斷創(chuàng)新。此外,進一步融入課程思政內容,實現(xiàn)專業(yè)知識點與德育教育的同頻共振,激發(fā)學生愛國熱情,形成課程思政合力教學效應[13]。
(三)加強過程化考核
將考核融入教學過程,在平時的討論課中引入激勵機制,鼓勵學生獨立查閱和整理資料并分析,克服學生的惰性,讓更多的學生參與討論。最后的課程成績評定包括期末的閉卷成績(60%)、課堂大討論表現(xiàn)(20%)、實驗分析(20%)等多個教學環(huán)節(jié)。
三、應用情況
“實踐是檢驗真理的唯一標準”,機器學習算法在金融、醫(yī)療、氣象等領域有著廣泛的應用場景,具有很強的實踐意義。為了使學生更好地進行實驗,課程以Python作為主要編程語言,設置了“SVM算法實現(xiàn)手寫數(shù)字識別”“隨機森林在基金風險評級中的應用”和“基因表達數(shù)據(jù)中的主成分分析”共3個實際應用案例。這3個教學案例分別對應于課本中支持向量機、集成學習和降維與度量學習3個重要教學章節(jié),其中包含了兩個有監(jiān)督學習算法和一個無監(jiān)督學習算法的應用。在3個實際應用案例之前還設置了一個前置小課程,主要使學生學會對不同類型的數(shù)據(jù)進行預處理,以及實驗環(huán)境的搭建,這樣為后續(xù)課程進行了鋪墊,節(jié)約了時間。
正式案例課程包含兩個課時,每個案例結尾有與之相對應的編程大作業(yè),要求學生能根據(jù)案例的分析和應用過程,在新的實驗數(shù)據(jù)上演示結果。同時,在實際教學過程中,還會對案例涉及的內容進行引申。例如,在隨機森林算法的應用中,課程使用隨機森林的平均不純度的改變量來衡量金融數(shù)據(jù)特征的重要性,幫助學生理解機器學習實踐過程中不同應用場景下特征的取舍,在涉及最佳建模參數(shù)選擇時,還會穿插一個決策樹的小應用來對隨機森林算法進行補充,很好地緩解了學生的理解難度,同時加深了學生對機器學習算法的理解。
目前課程的教學改革已實施兩年。通過調查,學生普遍反映對機器學習的原理有了更加全面和深刻的認識,問題分析和解決能力得到提升,對于今后的研究有較大的幫助。
結語
機器學習是計算機應用技術相關專業(yè)研究生的一門重要基礎課程。針對如何將科研能力培養(yǎng)融入課程教學中,本文結合工作實踐從教學內容、實踐、過程考核等方面總結出若干建議,有助于機器學習知識的深入理解,促進學生的創(chuàng)新研究思維和邏輯思維的進一步提升,為后續(xù)自主開展研究工作和論文撰寫奠定良好基礎。
參考文獻:
[1]周志華.機器學習:發(fā)展與未來[J].中國計算機學會通訊,2017,13(1):4451.
[2]楊書新,王吉源,謝麗芳.地方高校二級學院創(chuàng)新創(chuàng)業(yè)教育實踐平臺的構建與實踐——以江西理工大學為例[J].江西理工大學學報,2018,39(4):8488.
[3]姚利民,王燕妮.課程教學培養(yǎng)研究生科研能力之對策[J].黑龍江高教研究,2006,9:8991.
[4]章曉莉.基于科研能力培養(yǎng)的研究生課程教學改革的思考[J].教育探索,2010,7:3638.
[5]閆麗萍,陳倩,楊陽,等.面向科研能力培養(yǎng)的研究生理論課程教學改革[J].教育教學論壇,2020,29:146147.
[6]胡春龍,吳陳,左欣,等.研究生“機器學習”課程教學改革研究[J].教育教學論壇,2019,10:99100.
[7]黃永昌.scikitlearn機器學習常用算法原理及編程實戰(zhàn)[M].北京:機械工業(yè)出版社,2018.
[8]孫琳,蔣陽波,汪建成,等.PyTorch機器學習——從入門到實戰(zhàn)[M].北京:機械工業(yè)出版社,2018.
[9][美]尼山特·舒克拉,等.TensorFlow機器學習[M].北京:機械工業(yè)出版社,2020.
[10]孫偉剛,覃森.從導師視角來談研究生科研能力的培養(yǎng)[J].課程教育研究,2017,23:1718.
[11]曾冬梅,潘炳如.研究生協(xié)同培養(yǎng)對科研能力的影響[J].中國高??萍?,2019,3:4548.
[12]應行仁.什么是機器學習[J].中國計算機學會通訊,2017,13(4):4245.
[13]夏小云,李紹燕,朱蓉,等.新工科背景下計算機類課程思政教學研究與實踐[J].計算機教育,2020,8:7578.
課題項目:江西省學位與研究生教育教學改革研究項目JXYJG2019141;江西省高等學校教學改革研究課題(重點)JXJG1978;浙江省普通本科高?!笆奈濉苯虒W改革項目(項目編號:jg20220434)
作者簡介:楊書新(1978—?),男,漢族,江西九江人,博士,副教授,研究方向:信息擴散,文本分析;王振東(1982—?),男,漢族,湖北恩施人,博士,副教授,研究方向:無線傳感網覆蓋優(yōu)化、網絡入侵檢測;蔡虔(1980—?),男,漢族,江西贛州人,碩士,副教授,研究方向:人工智能與教育;薛正發(fā)(1996—?),男,漢族,江西贛州人,碩士研究生,研究方向:腫瘤信息學;夏小云(1982—?),男,漢族,江西南昌人,博士,副教授,研究方向:群智能優(yōu)化。