◎程繼洪 王紅艷 (山東省煙臺市煙臺南山學院)
機器學習是大數據技術、數據科學、人工智能等專業的必修課程,是現代計算機教育的熱門課程。高職院校的機器學習教育也發展得如火如荼。那么,如何把握高職學生的特點,做好高職教育中的機器學習教學,是本文探論的重點。
高職院校大部分學生的基礎比較薄弱,尤其是數學和英語,而這些恰恰又是機器學習的基礎。數學主要用來描述模型(算法)的原理,英語主要用在學習編程語言,兩者在機器學習中的地位非常重要。這就形成一個非常尖銳的矛盾;一方面,機器學習課程需要學生擁有良好的數學和英語基礎;另一方面,學生的數學和英語基礎卻比較薄弱。
要解決這一主要矛盾,就必須進行學情分析。教學分為兩個方面;教與學。首先,分析一下學生的具體情況。
基礎教育不單單是掌握高等教育所需要的基礎知識,更重要的是培養學習習慣、學習方法和思維方式。許多高考生失敗的直接原因就是沒有養成良好的學習習慣,沒有掌握有效的學習方法以及正確的思維方式。
學生上課“只帶”耳朵,“不帶”腦子。只是機械地聽老師講話,而抓不住老師講的重點,總覺得一堂課下來老師說的全是廢話,殊不知知識點全藏在這些“廢話”里,只是學生不擅于發現并學習而已。前面的知識點沒有學會,直接影響后續的學習,這就形成了一個惡性循環,最終導致學生失去學習興趣和動力。
正確的學習方法應該是掌握知識—總結考試規律—尋找應對方法。首先,學生應該掌握基本的知識點。其次,研究知識點考查的方式和方法,也就是考試規律。再次,針對每種考查方法尋找解決策略,總結每種題型的解決方法。只有掌握了正確的學習方法,才容易在考試中取得好成績。
每個學科都有其特有的學習方法。如果不具備科學的學習方式,就會造成“不能以科學的方式組織思維材料(學過的知識)解決面臨的問題”。也就是說,有些考生可能已經掌握了必要的知識,卻不能用知識解決實際問題,原因就是沒有形成科學的思維方式。
以上就是教學中“學”的學情分析,那么面對這樣的學情,“教”應該怎樣應對呢?簡單概括為三個方面;宏觀與微觀相結合;抽象與具體相結合;必要的重復。
感知機是機器學習中最為簡單的算法之一,從感知機開始學習,難度小,學生易于接受。學會感知機對后續的機器學習算法有參考和指導作用,利于后續內容的教學。所以,以感知機為例討論高職機器學習的教學方法。
宏觀指的是“大范圍的,涉及整體的”,微觀指的是“小范圍的或部分的”。學生在學習過程中容易犯的錯誤就是太專注于細節的學習,而忽略了宏觀上的知識點之間聯系的把握,造成學過的東西“一盤散沙”,不能聯系起來綜合使用。同時還會造成知識點學習困難。以感知機的實現代碼為例,雖然只有25行,但學生還是很難理解。
如何才能讓學生掌握感知機的實現代碼呢,我們可以采用宏觀與微觀相結合的方法。首先,從宏觀上根據感知機的實現原理將實現分為“求輸入信號”“擬合”(也稱為學習)和“預測”三大部分。此外為了能在計算機中實現這一算法,就必須在執行前使計算機處于一個“需要”的狀態,這一過程稱為“初始化”。這樣就可以將感知機的實現歸納為四個組成部分,如圖1所示。

圖1 感知機的宏觀結構
也就是說,宏觀上感知機實現由這四部分組成,即初始化、輸入信號、擬合和預測。有了宏觀上的指導,學生可以更好地掌握知識點。
所謂的微觀結構可以是指宏觀結構中的每一部分詳細細節。為了節約篇幅,只對感知機最難于理解的部分——擬合(也稱為學習)過程進行討論。
感知機的擬合比較簡單,對于每個樣本只需要做以下兩步;計算機樣本xi的預測值?;更新權重。更新權重的公式如下;

η為學習率,其值為[0.0,1.0]之間的一個常數。i指樣本的編號,wj表示第j個特征的權重系數。根據對感知機“微觀結構”的分析,總結得到的感知機如圖2所示。具體的實現過程在抽象與具體相結合中進行討論。

圖2 感知機的宏觀+微觀結構
抽象指的是“因無形而看不見的”,具體是指“不抽象,不籠統,細節很明確”。抽象的東西不具體,不好理解,其優點在于指導性。具體指的是細節,有具體的形態,易于理解。對于感知機的實現而言,如果僅憑這些抽象的描述,學生很難明白感知機的實現,因此,需要將這些抽象的東西變成具體的,也就是每個功能(步驟)落實到代碼上是如何實現的。下面僅以擬合為例討論抽象與具體的實施過程。
擬合(或學習)的過程是這里面最難的,但實現也僅有兩步,也就是實現式1-1和式1-2。學生難于理解的地方在于矩陣(向量)相乘,雖然這些知識在數學中已經學習過,但大部已經遺忘,所以必須在這里重復講解,關于“必要的重復”在下節討論。擬合的過程;計算每個樣本xi的預測值?;更新權重。所以這里必定有一個循環,以計算數據集中每個樣本的預測值?,具體實現如圖3所示。

圖3 感知機抽象+具體實現過程
根據心理學家測試,一個單詞經過7次重復識記,就可形成永久記憶。所以重復是保證學生學習效果的法寶。下面以Python數組(列表)廣播為例進行說明。
擬合實現的過程中,self.w_[1;] +=update * xi這條語句,大部分學生都難以理解。所以,對于這條語句在授課時必須重復且詳細地講解它的執行過程。廣播機制其實很簡單,就是將相同的運算分別作用于數組中的每一個元素,只要掌握了這一點,這條語句就非常容易理解了。整條語句的執行過程如圖4所示。

圖4 語句self.w_[1:] +=update * xi廣播執行流程
按圖4所示,self.w_的更新流程就很清楚了。self.w_[1]=0.2+0.01*0.1,self.w_[2]=0.4+0.01*0.3,依次類推,將self.w_中的每個系數都更新一遍,這就是Python數組的廣播機制。
本文從高職生的學習現狀出發,針對現狀給出了相應的對策。以感知機為例對“宏觀與微觀相結合”“抽象與具體相結合”和“進行必要的重復”進行了詳細討論具體教學實施過程。高職院校機器學習教學是個探索的過程,因此高職院校的教師需根據實際情況不斷進行總結和反思,以提升機器學習教學效果。※