徐新洲 魏建香 李燕
摘? ?要:面向本科生機器學(xué)習課程的開展正得到越來越多的關(guān)注,本文針對本科生機器學(xué)習課程,首先闡述了其與多課程的聯(lián)系、內(nèi)容的復(fù)雜性、面向?qū)W生群體的多樣性;進而根據(jù)這些特點,提出了機器學(xué)習課程在大學(xué)本科教學(xué)活動中順利開展的要點。
關(guān)鍵詞:機器學(xué)習? 大學(xué)本科課程? 教學(xué)
Abstract:There is increasingly more attention on investigating to arrange the course of machine learning for undergraduate students currently. Focusing on the undergraduate machine course, this paper introduces the relation to various other courses, the complexity of the course, and the various sorts of students. Further based on these topics, we explain how to arrange the machine learning course properly for undergraduate teaching.
Key Words: Machine learning; Undergraduate course; Teaching
隨著大數(shù)據(jù)和人工智能時代的來臨,我們可以通過賦予機器智能,達到更深層次的自動化,并且可以通過獲得生活方式、生產(chǎn)效率、人類自身素質(zhì)的進一步提升。實現(xiàn)這些的基礎(chǔ)就是要對這一學(xué)科方向進行深入、透徹,并且持續(xù)不斷的研究,所以需要高校為社會提供充足的從事相關(guān)學(xué)科方向的人才儲備。因此,為了實現(xiàn)這一目的,高校必須提供完善有效的一整套人工智能和大數(shù)據(jù)處理方面課程的培養(yǎng)方案。而機器學(xué)習(Machine Learning)作為一門著重研究理論的跨學(xué)科課程,它的開設(shè)具有重大意義[1],能夠?qū)τ嬎銠C軟件技術(shù)、信號處理技術(shù)、物聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)與云計算等領(lǐng)域的發(fā)展起到承上啟下的關(guān)鍵作用[2-3]。
然而,由于機器學(xué)習課程自身的特性,例如與多學(xué)科重疊交叉、內(nèi)容門類復(fù)雜等[4-5],它針對大學(xué)本科學(xué)生教學(xué)活動的開展必然有一定的特殊性,而且與其他多個課程存在較強的聯(lián)系和差異;課程自身的體系內(nèi)容復(fù)雜并在不斷更新;課程面向的本科學(xué)生受眾具有特殊性和差異性。因此,需要根據(jù)這些特點,對面向本科生開設(shè)的機器學(xué)習課程進行針對性的設(shè)計,從而確保課程教學(xué)工作能夠高效有序地開展。
本文首先分析了機器學(xué)習課程的一些主要特點,根據(jù)這些特點提出了該課程針對大學(xué)本科學(xué)生的開展方案,最后給出了對本科機器學(xué)習課程開展的總結(jié)和展望。
1? 機器學(xué)習課程的特點
1.1 機器學(xué)習與其他多個課程的關(guān)系
在機器學(xué)習的教學(xué)過程中,尤其要注意與其他多個相關(guān)課程的聯(lián)系與區(qū)別,例如數(shù)據(jù)信息處理類課程、人工智能類課程,以及一些工具類課程等。
(1)機器學(xué)習與數(shù)據(jù)信息處理類課程的關(guān)系。
數(shù)據(jù)信息處理類課程,如數(shù)據(jù)挖掘、圖像及多媒體信號處理等,集中于在數(shù)據(jù)端針對特定的數(shù)據(jù)集,制定專門性的處理方案。而機器學(xué)習相比于這類課程,立足于構(gòu)建更高層次的模型構(gòu)建方案,即對不同的數(shù)據(jù)情況提供具有共性的解決方式。
(2)機器學(xué)習與計算機工具類課程的關(guān)系。
計算機工具類課程,如各種程序設(shè)計語言,集中于介紹各類計算機語言的具體語法規(guī)則,為機器學(xué)習的實現(xiàn)提供了保障;而一些最新工具或手段的引入,也促進了機器學(xué)習研究的普及。因此,學(xué)好一至二門工具類先修課程能夠有效地促進機器學(xué)習課程的開展。
(3)機器學(xué)習其他相近課程的關(guān)系。
與人工智能、模式識別等課程相比,機器學(xué)習的研究點較為明確和具體,而模式識別是可以通過機器學(xué)習實現(xiàn)的目標,人工智能則是眾多具體目標的匯集,是一個寬泛的概念;與算法設(shè)計等課程相比,機器學(xué)習主要解決模型的構(gòu)建問題,而不對模型快速和有效的求解進行過多闡釋。
1.2 機器學(xué)習課程內(nèi)容的復(fù)雜性
機器學(xué)習課程的知識體系結(jié)構(gòu)主要可以分為基本概念介紹、模型構(gòu)建和求解、編程實踐這三個方面。其中基本概念包括數(shù)據(jù)預(yù)處理與特征獲取、機器學(xué)習的任務(wù)簡介,以及機器學(xué)習的評價準則;模型構(gòu)建作為機器學(xué)習的關(guān)鍵內(nèi)容,旨在根據(jù)不同的機器學(xué)習思想生成相應(yīng)的模型,需要在課程中重點講授;模型求解主要涉及最優(yōu)化理論、數(shù)值計算等數(shù)學(xué)領(lǐng)域,在本科課程中不做過多的要求;而編程實踐則要求學(xué)生能夠針對實際問題,提供有效的解決方案并加以實施。
作為機器學(xué)習中最關(guān)鍵的部分,傳統(tǒng)意義上的模型構(gòu)建主要包括推理與決策模型、線性模型及其非線性化、基于距離的模型、概率統(tǒng)計模型等[6],這些內(nèi)容集中于介紹簡單模型的學(xué)習構(gòu)建。而目前以深度學(xué)習為代表的復(fù)雜模型構(gòu)建正在現(xiàn)實應(yīng)用中起到越來越重要的作用[7-8],這就要求課程講授的重點稍向最新的研究進展傾斜,但同時又要立足于課程的本質(zhì)和經(jīng)典方法。
1.3 機器學(xué)習課程面向?qū)W生群體的多樣性
在學(xué)生的知識層次方面,研究生需要研究機器學(xué)習理論中的具體算法,并掌握如何改進和提升性能;而本科生對機器學(xué)習知識的需求集中于利用現(xiàn)有的模型解決實際問題,對理論創(chuàng)新性要求并不高,而是要重點提升學(xué)生的實踐能力。
在學(xué)生的主修專業(yè)學(xué)科方面,機器學(xué)習主要面向計算機和自動化類專業(yè),但信息工程、通信工程、網(wǎng)絡(luò)工程、生物醫(yī)學(xué)工程等專業(yè)的學(xué)生同樣需要具備一定的機器學(xué)習基礎(chǔ)技能,以更好地將理論知識運用到實際中。
2? 機器學(xué)習課程的教學(xué)活動開展
2.1 根據(jù)其他相關(guān)課程合理安排教學(xué)
對于先修課程,線性代數(shù)以及高等代數(shù)(包括矩陣論)內(nèi)容能夠幫助理解算法的數(shù)學(xué)推導(dǎo),在教學(xué)過程中需要補充必要的矩陣運算知識。概率論和隨機過程的相關(guān)內(nèi)容是理解概率模型以及貝葉斯學(xué)習的必要條件,在教學(xué)中要及時補充貝葉斯法則、概率分布模型、馬爾可夫鏈等知識。此外,還要補充最優(yōu)化理論、算法設(shè)計等相關(guān)內(nèi)容,這樣才能有效保證知識的連續(xù)性。
對于語言工具類課程,C、Java等中層次語言的學(xué)習能夠為機器學(xué)習中算法模型的學(xué)習提供幫助,而Python、Matlab等高級工具的熟練使用能夠?qū)φn程實踐方面的開展提供有力的保證。在教學(xué)中,重要算法的偽代碼盡量符合使用學(xué)生熟悉的編程語言;同時結(jié)合教學(xué)演示,讓學(xué)生盡快熟悉機器學(xué)習中常用工具的語法規(guī)則。
對于相近課程,在機器學(xué)習教學(xué)中要在教學(xué)重點、教學(xué)形式方面有所區(qū)別,需要注意的是機器學(xué)習課程的教學(xué)要重點關(guān)注模型的建立和分析。對于數(shù)據(jù)挖掘課程,偏向于數(shù)據(jù)集的應(yīng)用背景;而對于模式識別課程,其重點在于介紹具體的算法。例如,在機器學(xué)習、模式識別、數(shù)據(jù)挖掘課程中都有聚類分析(Clustering)的相關(guān)內(nèi)容,機器學(xué)習偏向于對各聚類模型進行分析,模式識別課程側(cè)重于介紹具體的常用聚類算法,而數(shù)據(jù)挖掘課程則注重聚類方法在大數(shù)據(jù)集中的應(yīng)用。
2.2 根據(jù)內(nèi)容使用適當?shù)姆绞街v授
針對機器學(xué)習課程包含的基本概念介紹、模型構(gòu)建和求解、編程實踐三方面的內(nèi)容,在教學(xué)過程中需要采用不同的授課形式。
對于基本概念介紹,在授課過程中需要仔細講授,為課程的學(xué)習打好基礎(chǔ)。在敘述的基礎(chǔ)上,結(jié)合實際例子進行解釋。例如,在講授監(jiān)督學(xué)習、無監(jiān)督學(xué)習、半監(jiān)督學(xué)習時,可以結(jié)合圖像目標識別等應(yīng)用場景;在講授擬合回歸評價標準時,可以結(jié)合時間序列預(yù)測的相關(guān)應(yīng)用。
對于模型構(gòu)建和求解,不僅要結(jié)合實例,還需要對模型進行形象化的演示,加深學(xué)生對模型的理解。例如,在講授神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(Deep Learning)時,要結(jié)合生物學(xué)科對算法的啟發(fā)特性;在講授支持向量機(Support Vector Machine;SVM)時,需要結(jié)合優(yōu)化形式,動態(tài)演示支持向量隨松弛變量的變化;在講授決策樹算法時,可以使用數(shù)字邏輯電路課程中的基本知識進行類比。
對于編程實踐,首先,既要使學(xué)生對多種編程工具有初步的了解,又要培養(yǎng)學(xué)生利用特定工具實現(xiàn)機器學(xué)習算法的能力,即在淡化編程工具的同時也要訓(xùn)練學(xué)生的工具學(xué)習能力;其次,在編程實踐中培養(yǎng)學(xué)生的數(shù)據(jù)分析和觀察能力,在結(jié)果出現(xiàn)問題時利用已知知識分析問題出現(xiàn)的原因并自己解決問題;最后,需要培養(yǎng)學(xué)生的創(chuàng)新思維,根據(jù)實驗結(jié)果的變化思考方法、參數(shù)等方面的變化規(guī)律并加以改進。
2.3 針對學(xué)生情況進行區(qū)分型教學(xué)
不同于研究生教學(xué)中以研究探索性教學(xué)為主的情況,對于本科生的機器學(xué)習課程需要兼顧課程的實用性和研究性。
其一,本科生的機器學(xué)習的教學(xué)中應(yīng)尤其注重實踐能力的培養(yǎng),即教會學(xué)生如何根據(jù)所掌握的基本知識,來實現(xiàn)機器學(xué)習算法并對結(jié)果數(shù)據(jù)進行有效的分析,即將教學(xué)的關(guān)注點放在實驗處理和系統(tǒng)實現(xiàn)方面,例如對于深度學(xué)習,在理論方面只需要學(xué)生理解算法的基本思想,而在實踐方面則要求學(xué)生掌握常用工具包的有效調(diào)用;其二,本科生在理論基礎(chǔ)方面,相對于研究生來說較為薄弱,需要補充的先修和基礎(chǔ)知識也相對較多,所以對于機器學(xué)習本科課程來說要注意補充知識與課程本身知識所占用時間的比例,既要講授必要的補充知識,又要注意保證課程主體的講授不受顯著影響。
此外,面向不同專業(yè)學(xué)生開設(shè)的機器學(xué)習課程也應(yīng)有所區(qū)別。對于計算機和自動化類把該課程作為主干課程的學(xué)科,需要加深對理論推導(dǎo)方面的要求,并加強對編程實踐方面的要求;對于生物、地理、通信、電子、醫(yī)學(xué)、心理學(xué)等需要具有機器學(xué)習方面儲備知識的學(xué)科,要關(guān)注實踐中主要工具在本領(lǐng)域內(nèi)的熟練使用;而對于數(shù)學(xué)、物理等以該課程作為興趣擴展?jié)撛诜较虻膶W(xué)科,需要在教學(xué)中關(guān)注對學(xué)生興趣的激發(fā)。
3? 結(jié)語
本文首先分析了機器學(xué)習大學(xué)本科課程的一系列特點,并在此基礎(chǔ)上分別在相關(guān)課程聯(lián)系、教學(xué)內(nèi)容、區(qū)分教學(xué)等方面,給出了面向本科生開展機器學(xué)習教學(xué)活動的一些相應(yīng)措施和建議。后續(xù)工作需要在課堂教學(xué)實施和課程實踐層面,更進一步給出有效的教學(xué)經(jīng)驗。
參考文獻
[1] 鄧志鴻,謝昆青.機器學(xué)習課程的教學(xué)實踐——以北京大學(xué)“智能科學(xué)與技術(shù)”本科專業(yè)為例[J].計算機教育, 2016(10):18-19.
[2] 曲衍鵬,鄧安生,王春立,等.面向機器學(xué)習課程的教學(xué)改革實踐[J].計算機教育,2014,223(19):88-92.
[3] 曾憲華,李偉生,于洪.智能信息處理課程群下的機器學(xué)習課程教學(xué)改革[J].計算機教育,2014,223(19):60-62.
[4] 李勇.本科機器學(xué)習課程教改實踐與探索[J].計算機教育,2015(13):63-66.
[5] 姚興華,吳恒洋,方志軍,等.新工科背景下機器學(xué)習課程建設(shè)研究[J].軟件導(dǎo)刊,2018(1):221-223.
[6] Flach, Peter. Machine Learning: The Art and Science of Algorithms that Make Sense of Data[M]. Cambridge University Press, 2012.
[7] Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. Deep learning[M]. MIT press, 2016.
[8] Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow 2[M]. Packt Publishing Ltd, 2019.