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