肖 宇
(上海對外經貿大學統計與信息學院 上海 201620)
隨著大數據與人工智能時代的到來,業界對數據分析相關人才需求激增。數據挖掘、機器學習、統計學習、深度學習和數據庫管理等數據分析與處理核心課程備受重視,各高校非計算機類學科也積極跟進,重新布局針對新時代背景下的培養方案。在此背景下,有針對性地重新思考數據分析相關課程的教學方法非常有必要。
機器學習主要研究如何基于計算機自動學習現實世界規律,從而實現對現實場景的解釋與預測[1]。機器學習模型與算法是實現人工智能的基礎之一,理解其核心概念與背后的理論基礎具有基礎性意義。相應地,機器學習課程的教學任務重點幫助學生理解機器學習算法背后的前提假設、訓練目標、實現過程以及適用場景等。如何在有限學時內完成以上核心內容的有效傳遞是一個難題[2]。
常用的機器學習教學方法主要從數學角度講授機器學習算法的模型形式、訓練目標、求解算法和應用場景等,缺乏對算法編程實現過程的深入解析。因此可以圍繞編程實現展開課程教學,以一種互動的形式傳遞機器學習模型與算法的核心內容。以下內容首先介紹以編程實現為核心的機器學習教學方法流程,然后通過案例展示了該流程,最后對本文內容進行總結。
對于算法學習而言,通過某種編程語言實現算法是掌握算法的必要前提之一。因此,提出以編程實現為核心的機器學習教學方法。需要注意的是,以編程實現為核心的機器學習教學并不否認其它環節的重要性,而是強調算法學習的檢驗與反饋。
以編程實現為核心的機器學習教學方法包含以下流程:
(1)算法的相關概念,即用于算法模型決策可靠性的直覺?算法屬于什么類別?算法可以解決什么哪些問題?以線性回歸模型為例,該模型來源于經驗時間的事件之間的簡單影響關系,屬于回歸模型,可以解決對因變量的預測問題。
(2)算法的數學形式,即如何形式化表示機器學習算法?線性回歸模型可以利用向量形式簡潔地表示出來,假定了輸入變量與輸出變量之間存在線性關系,在滿足一定條件下可以推斷出變量之間的影響關系。在該環節,可以基于不同的編程模式構建線性回歸模型,例如基于循環或者基于向量運算計算自變量與權重之間的乘積。
(3)算法的決策準則,即如何算法的目標函數是什么?線性回歸模型的決策準則通常包含兩種,一種為最小化均方誤差,另一種為最大化似然率。從最大化似然率出發,通過一定的數學推導,可以得到與最小化均方誤差相同的決策目標函數。在該環節,基于決策準則的數學形式構建函數。
(4)算法的求解方法,即采用何種優化算法尋找決策準則下的最優解;線性回歸的求解算法大致可以分為封閉形式解和數值形式解,給學生解釋為什么需要利用數值形式迭代逼近最優解。在該環節,分別構建封閉形式解的求值代碼,以及數值形式的求值代碼。
(5)算法的集中測試。在完成以上對應函數的構建之后,構建人工數據集以測驗模型和方法的正確性。具體而言,可以設定輸入參數值,經過程序求解過程后驗證是否可以推斷得到該參數值。
算法的編程實現貫穿于步驟(2)至(5)。其中,前三個步驟中程序與算法數學形式相互印證,以達到從兩個角度共同講解算法,進而加深學生對關鍵概念理解的目的。步驟(5)結合具體的數據集,檢驗模型的整體實現。
為了更加具體、形象的呈現以編程實現為核心的機器學習教學方法,以下以線性回歸模型的教學過程為例進行簡要說明。算法的Python實現涉及第三方庫pytorch。使用pytorch的:
(1)算法的相關概念。線性回歸輸出是一個連續值,因此適用于解決回歸問題。回歸問題在實際中很常見,如預測房屋價格、氣溫、銷售額等連續值的問題。

(3)算法的決策準則。均方誤是回歸任務中最常用的性能衡量指標,因此可以讓均方誤差最小化:,其中m為樣本數量。令,對求導可得。算法實現如下:

(4)算法的求解方法?,F實任務中f(XTX)往往不是滿秩矩陣,而且隨著數據量的增加,計算量呈現大幅增長。因此,往往使用梯度下降算法迭代求解。算法實現如下:

(5)算法的集中測試。結合函數linearModel和加入擾動項生成測試數據集,用于驗證算法流程的正確性。過程如下:


最后,如果程序運行成功,且估計值與[2,-3.4,4.2]相差較小,則說明流程的正確性;否則,需重新通過單元測試檢查程序各環節。
本文提出了一種圍繞編程實現的教學方法。該方法包含算法的相關概念、算法的數學形式、算法的決策準則、算法的求解方法和算法的集中測試等關鍵步驟,其中算法的編程實現貫穿在步驟2至5。從學生的整體反饋而言,該教學方法言之有物,可以加深了對機器學習算法的理解。