王 婧
(淮北師范大學 計算機科學與技術學院,安徽 淮北 235000)
當前人工智能技術環境優越,具有智能家居、推薦系統、語義識別等廣泛應用場景。機器學習作為該技術的基礎與核心內容,前沿性和實用性極高,是計算機技術專業、應用數學等專業的熱門方向,能夠為學生的深造或就業提供助力。目前,機器學習課程常見于各大平臺的網絡特色課、研究生專業課的課程系統中。
部分高校將機器學習的課程設置在本科學習階段。然而,機器學習課程具有內容體系性差、方法龐雜、理論知識層次高、課程難度大以及實操要求高等特征。此外,各高校學生的基礎水平參差不齊,學校課程設置情況不一,課程的教學背景大相徑庭。因此,根據教學情況設計教學內容是必要的。機器學習方法眾多,方法之間的相關性和連接關系較少,根據學生的先導課內容和教學資源設計課程內容是可行的。以專題項目的模式進行教學,一方面可以加強設計部分,靈活平衡學生的學習能力水平、先導課水平、認知水平不一的問題,另一方面可以將一個項目的完整流程呈現出來,讓學生對數據科學的整體有一個判斷和了解。
機器學習方法是數學學院、計算機學院以及新興人工智能學院于大數據相關專業培養方案中設置的課程。課程前期要求學生對人工智能、概率統計、計算復雜性理論、控制論、信息論等學科知識有所了解,以便組建數據科學知識結構,進而理解模型。因此,為了給學生打下良好的課程學習基礎,學校通常在大學二年級之前開設機器學習課程的先導課。機器學習先導課來源眾多,普通學生沒有精力獨自完成全部內容,需要在實體課堂和相互討論中完成系統的學習。另外,由于機器學習方法不依賴單種編程語言,教師可以根據學校機房的條件組建符合機器學習實操環境的實驗室。因此,單純從學校教育環境方面來看,機器學習的本科教育具有打基礎、可實踐的特征。
另外,考察社會環境中的機器學習資源,部分學習平臺能夠整合針對特定項目的學習材料,材料涵蓋教程、視頻、源代碼和商用學習產品。相較其他前沿科技學習環境,機器學習的網絡資源相對趨于成熟。截至2019 年12 月,中國大學MOOC 國家精品在線學習平臺有564 599 人次關注機器學習相關課程和將近300 個神經網絡課程項目。知乎平臺的機器學習專欄有106 萬人次關注,4 萬問答,1 000 精華內容。CSDN(Chinese Software Developer Network)平 臺 有448 個機器學習相關的學院組織,單個學院組織的最高學習量達到10 萬人次。此外,還有專業技術專家和教師做知識分享,比如微軟人工智能學院專家尹成分享的Sicikit-Learn,中國地質大學、浙江大學等分享的完整課程。從材料內容上來看,網絡具有成為當代大學生獲取機器學習相關知識可靠渠道的條件。
由于社會上的資源是面向大眾的,因此網絡課程有如下幾個缺點:①學生學習習慣偏向課堂和書本教學,不熟悉網絡學習模式,學習效率低下;②網絡課程門檻低,主講人水平不一;③主講人工作背景不一,學生難以從海量的課程中選擇適合自己基礎的課程。因此,為學生量身打造的大學課程仍然承擔著機器學習基礎知識教育的主要任務。
文獻[3]提出以案例驅動或者問題導向的教學方法,這種方法的出發點是好的,但是沒有注意到,以實際問題為出發點的課程內容會更加復雜。因為機器學習算法具有強大的靈活性,一個問題有多種處理方法,且方法往往對應不同的先導知識領域,這要求學生有較高的學習水平。而且,這種情況降低了學生理解完整知識點的可能性。以發現關聯規則類的項目為例,圖1 列舉了關聯規則中幾個方法的先行課和對應的核心知識點。各分圖之間并無交叉項,如果對類別的問題設計進行全面系統的講解,需要準備2~3 個課時的專題。這些課時需要分別介紹圖中的知識點,由于教學重點過于分散,且其中的神經網絡方法還可以用于異常檢測類型的問題,如果再次拿出神經網絡方法的知識點作為專題,反而會重復課時,造成課時浪費的問題。否則,只能打亂問題導向的結構,仍然按照一個方法一個小專題,單個小專題花費1~2 個課時的順序結構進行講述。

圖1 關聯規則中方法的核心內容與先導課結構
文獻[4]提出根據基礎流程結構增刪知識點的課程設計方案。該方案將重點分散在理論教學和項目練習兩個部分。在課程學時有限、學生水平有限的前提下,將大量的時間放在項目實踐上會引發學生自主延長自學時間,也無法保證學生能夠自行夯實機器學習的基礎理論。另外,在大多高校課時有限、本科生水平有限的情況下,單個項目的訓練周期過長、練習的項目數量過少,無法令學生的實踐能力產生質變。這與最初設計靈活教學架構的目標相背馳。
綜合以上討論,靈活化的教學內容設計只適合學習能力強、課時時間長的高校學生,大部分高校的學生反而不適應這種方案。因此,普通高校的本科機器學習教育最重要的是要為學生提供系統完善的課堂內容,保證基礎教育的完善。
從學校課程設置的特點來看,機器學習的教學內容包含理論教學和實驗教學的部分。該課程的理論龐雜且獨立。各個學習方法在模型準備和模型評價部分的方法較為統一,可以進行集中教學,然而在模型訓練方面的知識點相互獨立,并且知識點對應的先行課往往來源于不同課程,這種特性加重了理論教學環節困難程度,也會影響學生對機器學習的興趣,因此為了減少不必要的理論阻力,教師有必要根據學生對于先導課的掌握安排學習順序。本次選取聚類、單變量決策樹、支持向量機和神經網絡,將其需要的先行知識點列為表1。

表1 機器學習方法與先導課關系
根據表1 討論課程的內容安排順序。聚類作為一種易于理解的算法,可以作為教學內容的第一個專題。由于在建立模型的過程中不需要先導課,在做專題時可以連帶加入樣本空間、數據清理、降維、交叉驗證、歸納偏好、泛化能力等普適性基礎概念術語,由此展示一個完整機器學習處理數據的流程,為學生形成全局觀。接下來可以專注于各個模型建立的方法,根據學生先導課的上課進度,先安排上過先導課,或者對應知識點只應用到先導課基礎概念的部分。比如單變量決策樹模型,其生成邏輯和思考選擇邏輯類似,在這個階段只需要講解信息熵的知識點,后續內容都易于理解。支持向量機、神經網絡都涉及最優化和概率論的較多重要知識點。由于一般的計算機學院不會在教學編排過程中考慮最優化作為必修課,因此只能在課堂補充相關知識,比如最優化基礎模型、正則化概念、約束設置問題。此外,概率論作為各大理工學院的基礎課,為神經網絡和支持向量機的教學提供了良好的條件。由于機器學習是應用性質較強的學科,為了鞏固學生的理解,仍然需要在課前集中從先驗概率和后驗概率在數據統計中的作用、貝葉斯理論在估計數據中的作用等應用角度集中講述。
機器學習是一個理論緊密聯系實踐的學科。然而,僅僅以實現某個算法為目標的實驗教學對學生實戰能力鍛煉的提高程度有限。在互聯網開源代碼和Python 強大庫的影響下,最大的阻礙是,如果實驗題庫不及時更新,學生更傾向于拷貝代碼而非自主思考。比如在學習過聚類的基礎步驟之后,學生對聚類的算法形成大體的了解。在實驗過程中,直接調用Python 的scikit-learn就可以直接得到聚類函數,之后只需要了解如何調參,就可以讓學習者初步使用聚類方法。在這種情況下,如果不加以干擾,在學習聚類算法的道路上,有極大比例的學生止步于此,不能形成更深入地理解。這就導致之后再次遇到這個應用場景時,學生對應用的細節把控能力較弱。所以在實驗教學加大設計而非驗證的實驗比例,并為學生指出算法的改進方向是有必要的。

圖2 實驗設計流程
固定實驗設計流程如圖2 所示。主題分成A、B、C、D 等4 個流程,分別是數據預處理、數據集劃分、訓練模型、模型分析與反饋。其中A和B 兩個部分的知識點雜亂無章,對經驗依賴性強。A 流程接觸最初的數據集,大小有數十G 以上,人工分析比較困難。這時候可以通過Pandas和 NumPy 庫來實現求最大最小值、修改字段、條件選擇、構建數據框架、清理分散的亂碼字段的任務。數據清理的方式決定了模型的精度和泛化能力,這是實訓過程中最考察設計能力的一環。然而教程中的數據多是干凈數據,A 也是最容易忽略的一環。
數據清理完成后,就要面對根據數據類型選擇模型的任務。如在西瓜數據集3.0 中,樣本中有離散值和連續值兩種屬性。首先,可以選擇映射規則,將離散值轉化成連續值,進而選取適合連續值的模型。其次,也可以選擇多變量的決策樹算法。最后,可以采用按照數據類型分別建模的方法,并通過集成學習的方法得出結論。教師應在這一環節充分體現機器學習算法實驗的設計性,為學生打開思路,以一個問題或者數據集為實驗對象而不是以某個方法為練習對象。
為了證明設計內容的有效性,設計一組對比實驗。目前,設計有2 組學生,第1 組的9 人基于機器學習教程的順序學習理論,并將教程中的數據作為實驗對象;第2 組的9 人根據文中提出的順序進行理論學習,理論學習結束后,再以原始數據集為實驗對象做練習。
為了測試學生的學習水平,設計如下考核:首先,由課堂小測的平均分得到理論成績。然后,根據每次實驗題結果的精度進行打分,得到每位同學的實驗成績。最后,在期末考試時,由教師從MINST 數據集設題,要求學生描述解決問題的思路,并給出驗證集的輸出結果。教師判斷思路是否完善,并根據驗證集的正確率給出綜合考核分數。
為了體現同一水平學生在不同教學思路下的成果,本文按照4-3-3 比例加權計算得到最終成績,并根據最終成績分數對學生進行升序排序,編號越靠后越優秀。然后將1、2 組成績歸納到同一張雷達圖中,得到結果如圖3 所示,用灰色和黑色分別表示兩組學生的成績。

圖3 兩組學生成績的雷達圖
由圖3 可見:①第2 組的第1、2 位學生(較差)表現優于第1 組,說明本文提出的教學方法能夠明顯提升22%差生的學習能力;②從第6位學生起,學生差距不明顯,表明較優秀的學生對教學方法的敏感度不高。
以往對于機器學習方法的分類大都是基于數據和模型的性質,如樣本是否有標簽、模型是否為線性可分等,這些分類方法固然對讀者產生框架層面的幫助,但對未接觸過機器學習及相關先導課的學生來說,是在用未了解的概念來規劃未了解的概念,對數據項目的流程和細節把控不牢。
從先導課知識出發,總體將機器學習算法歸納成數據處理基礎+部分先導知識格式的框架,能夠讓學生對機器學習理論的交叉性和實驗部分的靈活性有深入的理解。另外,這種框架還方便學生按照先導課知識點對自己的預備知識系統查漏補缺,減輕自學的負擔,更能體現大學教學中教師“教”和學生“學”的有機結合,提高了機器學習課程在大學環境的適應力。