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