王 濤,潘和平,蔡成梅
(1.安徽建筑大學 教務處,安徽 合肥 230601; 2.合肥師范學院 教務處,安徽 合肥 230601)
隨著計算機大數(shù)據(jù)存儲技術在高校深入應用,學生的成績實現(xiàn)了電子形式的完整保存,但大量的成績數(shù)據(jù)卻沒得到很好的利用。對于每個學生來講,僅能查詢到自己的目前成績,無法知道自己當前學習狀態(tài)及將來學習成績的趨勢。對于教學管理者,僅是通過個人的工作經(jīng)驗對學生進行指導,無可以支持的數(shù)據(jù),無法提供有效合理的學習建議。因此,學業(yè)預警已經(jīng)成為高校學生管理的熱點,然而學業(yè)預警的難點是發(fā)現(xiàn)科學、有效和精準的學分績點預測方法。本文利用計算機存儲的學生歷史成績數(shù)據(jù)和課程之間關系,構建了基于神經(jīng)網(wǎng)絡的學分績點預測模型,經(jīng)過數(shù)據(jù)對比測試,發(fā)現(xiàn)利用L-M優(yōu)化算法的預測模型結果與實際情況符合度最高,能夠應用于學生學業(yè)預警。
根據(jù)我校教學管理規(guī)定,本科生授予學士學位其中一個重要標準是當學生完成學業(yè)時需平均學分績點學達到1.8。平均學分績點為課程學分績點總數(shù)除以修讀的課程學分總數(shù)[1],其計算公式為:
平均學分績點=∑課程學分績點/∑課程學分=∑(課程績點×課程學分)/∑課程學分
學校制定教學培養(yǎng)方案時,不僅規(guī)定了課程類型和性質,而且設置了課程開課順序。因此,學生在學習選課的時候,需要了解課程間的內在聯(lián)系和課程間的前導后繼關系。我校土木工程專業(yè)的通識課程和專業(yè)基礎課程是專業(yè)的主干和核心課程,需在前四個學期完成,這些課程之間彼此聯(lián)系,同時又是其他課程的前導課程。例如,高等數(shù)學A1和高等數(shù)學A2之間是前導后續(xù)關系,高等數(shù)學A1學習結果直接影響高等數(shù)學A2,同時他們又一起影響大學物理B的學習,而大學物理B又會關系到理論力學、材料力學A、結構力學專業(yè)基礎課程的學習,因此,課程之間有明顯的層次和網(wǎng)絡關系。
學生最終學業(yè)平均學分績點是所在專業(yè)全部修讀課程的學分累積。所有的課程彼此緊密相關,當一門課程是其他課程的前導課程時,如果該課程成績不理想,后續(xù)課程成績將會受到影響,最終學分績點比較低。表1是我校土木工程專業(yè)某位學生部分通識教育和專業(yè)主修課程成績表,發(fā)現(xiàn)其前期主干課程未獲得較好成績,隨后相關聯(lián)課程成績都不理想。
表1 某學生考核成績表
課程與課程之間、課程及學分績點之間的聯(lián)系非常緊密,因此構建課程與課程之間、課程及學分績點之間的關系模型,確定課程間的關聯(lián)系數(shù),我們就可以根據(jù)前導課程的成績和績點預測后續(xù)課程成績和學分績點,從而在學生學習進程中間進行預測、警示。具體方法如下:
設預測一個學生某門課程Bn的成績和績點:
其前導課程為:A1,A2,…An;
Bn關于A1,A2,…An的關聯(lián)系數(shù)向量為:β=β1,β2,…,βnT;
待測學生的課程A1,A2,…An的成績?yōu)椋篠1,S2,…Sn;
事實上在實際預測的時候,這種方法存在諸多問題,一方面,一定要求前導課程的成績S1,S2,…Sn中不能有缺失項;另一方面,需要確定課程相關性,弄清所有課程間的“前導后繼”關系,構建所有課程之間的關系圖表;其次,需要準確設定課程之間的關系系數(shù)取值。但是這些都是非常困難的,利用課程關聯(lián)系數(shù)預測學分績點的模型是有局限性,因此可以借助機器學習工具來模擬學分績點預測模型[2]。
學生完成學業(yè)后最終的平均學分績點,是將全部修讀課程的學分進行累計核算的,如果在學習過程中提前預測每個學生平均學分績點,采用上述的課程關聯(lián)系數(shù)模型,就需要預測未學習的課程成績,而BP神經(jīng)網(wǎng)絡特點能夠適應學分績點統(tǒng)計過程中,課程之間存在著相互關聯(lián)的關系,非常適合進行學分績點的預測。
模型的確定
(1)輸入、輸出的確定
學分績點預測模型的具體設計是:每學期所學習課程成績S1,S2,…Sn作為輸入項,完成學業(yè)后最終的平均學分績點Gn結果作為輸出項,模型學習訓練后,得到每學期課程成績與平均學分績點之間的關系。對于待預測學生,將已獲得學分的課程成績作為輸入,經(jīng)過訓練好的績點預測模型,可以得到該學生完成學業(yè)后最終的平均學分績點[3]。
(2)隱含層的確定
在BP神經(jīng)網(wǎng)絡中,對于隱含層節(jié)點數(shù)的確定是難點也是重點。如果隱含層節(jié)點數(shù)過少,將會導致網(wǎng)絡性能不好甚至無法訓練;如果隱含層節(jié)點數(shù)過多,能夠減小神經(jīng)網(wǎng)絡的系統(tǒng)誤差,但是增加了網(wǎng)絡訓練時間,導致局部極小點,使網(wǎng)絡的容錯性、泛化能力變弱。所以,選擇準確的隱含層節(jié)點數(shù)是非常重要的。因網(wǎng)絡的輸入層和輸出層是課程成績和學分績點,這兩層的節(jié)點數(shù)一般是相對固定的,不能隨意改變,所以整個網(wǎng)絡結構中需要確定的是隱含層的層數(shù)及其節(jié)點數(shù)目。通常,根據(jù)以下幾個經(jīng)驗公式進行三層BP網(wǎng)絡的隱含層節(jié)點數(shù)的確定[9]。
1)k=n-1,其中n為輸入層節(jié)點數(shù);
2)k=log2n,其中k為隱含層節(jié)點數(shù),n為輸入層節(jié)點數(shù);
假設輸入層節(jié)點數(shù)n=10,輸出層節(jié)點數(shù)m=1,則根據(jù)經(jīng)驗公式可知隱含層節(jié)點數(shù)k為4至13 之間,然后在神經(jīng)網(wǎng)絡中分別進行訓練實驗,以確定隱含層節(jié)點數(shù)目,選取最大訓練次數(shù)5000次,固定目標函數(shù)(均方誤差)為0.001來開始實驗,訓練實驗結果具體如下:
表2 隱含層節(jié)點數(shù)
根據(jù)表2實驗結果,當BP網(wǎng)絡的隱含層神經(jīng)元個數(shù)為9時,其對函數(shù)的逼近效果達到最好,因為它的誤差最小[5]。
①輸入數(shù)據(jù)處理
教學計劃中每門課程的成績真實反映了學生的該門課程學習情況,因此模型采用課程成績作為輸入。模型訓練的輸入數(shù)據(jù)需要歸一化處理,本文是利用下面的公式:
其中x為課程成績,xmin是課程成績最小值,一般為0;xmax是課程成績最大值,一般為100;P是課程成績歸一化后在(0, 1)之間的值。
②輸出數(shù)據(jù)處理
模型采用平均學分績點作為模型輸出,對我校教學管理系統(tǒng)中的數(shù)據(jù)庫進行分析,成績數(shù)據(jù)庫包含了每位學生所選課程的學分、成績及績點,根據(jù)這些數(shù)據(jù)和績點計算公式可以計算出學生的平均學分績點。 本文是利用下面的公式對模型的輸出數(shù)據(jù)進行歸一化在[0,1]之間:
其中y為平均學分績點,ymin是平均學分績點最小值,一般為0;ymax是課程成績最大值,一般為5;T是課程成績歸一化后在(0, 1)之間的值。
本文使用MATLAB7.1神經(jīng)網(wǎng)絡工具箱進行具體預測系統(tǒng)的實現(xiàn),采用NEWFF函數(shù)創(chuàng)建10×9×1的三層BP神經(jīng)網(wǎng)絡結構,其中輸入層有10個神經(jīng)元,中間隱含層有9個神經(jīng)元,輸出一個結果,如圖1。神經(jīng)網(wǎng)絡的輸入層、隱含層神經(jīng)元設定為雙曲線正切S型傳遞tansig函數(shù),輸出結果歸一化到[0,1] 之間,輸出層神經(jīng)元的傳遞函數(shù)設定為對數(shù)S型傳遞logsig函數(shù)[6]。
圖1 神經(jīng)網(wǎng)絡結構
1.模型的實現(xiàn)
MATLAB7.1程序提供了函數(shù)變量工作區(qū)workspace,workspace用于保存當前計算的變量和結果變量。工作區(qū)瀏覽器采用可視化的圖形用戶界面,用戶不僅能夠查詢和管理MATLAB工作空間的內容,還可以執(zhí)行與clear, load, open, and save 函數(shù)同樣的功能。
MATLAB支持工作區(qū)的保存。用戶可以通過文件的形式保存工作區(qū)或工作區(qū)中的變量,當需要時可以再次導入數(shù)據(jù)。保存工作區(qū)有兩種方式:菜單選擇和窗口命令執(zhí)行[10]。
變量工作區(qū)workspace進行輸入、輸出數(shù)據(jù)矩陣的創(chuàng)建,如圖2。
圖2 輸入、輸出數(shù)據(jù)矩陣的創(chuàng)建
模型實現(xiàn)的MATLAB程序代碼:
>>clear all;
%網(wǎng)絡創(chuàng)建
net = newff(minmax(P),[10,1],{'tansig' 'logsig'},'trainlm');
%網(wǎng)絡參數(shù)設置
net=init(net);
net.trainParam.goal=0.001;
net.trainParam.epochs=3000;
net=train(net,P,T);
%仿真
Y=sim(net,P);
plot(P,T,'-o',P,Y,'o')
%訓練誤差
Z=sim(net,P);
error=Z-T;
res=norm(error);
res
2.模型的算法選擇
在網(wǎng)絡的輸入層輸入學生課程成績的數(shù)據(jù)集,模型的訓練樣本采用50名學生10門課程成績,訓練次數(shù)設置最多為3000次,分別選用L-M優(yōu)化算法、有動量的梯度下降法、可變學習速率的梯度下降法和彈性梯度下降法等進行學習訓練網(wǎng)絡,訓練過程如圖3所示。
圖3 人工神經(jīng)網(wǎng)絡訓練過程
從網(wǎng)絡訓練過程圖上的誤差性能變化,我們看到有動量的梯度下降法經(jīng)過3000次迭代后,依然無法實現(xiàn)期望的誤差;可變學習速率的梯度下降法,經(jīng)過109次迭代實現(xiàn)誤差性能,收斂速度較慢;彈性梯度下降法,實現(xiàn)了誤差期望并且收斂速度較快,但是網(wǎng)絡出現(xiàn)了較大振蕩變化,穩(wěn)定較差;當學習訓練算法選擇L-M優(yōu)化算法的時候,網(wǎng)絡的預測效果最為理想,收斂速度快,實現(xiàn)了誤差性能[7]。
為了測試學分績點預測模型基本性能,在MATLAB中運用sim函數(shù)進行仿真,檢測所訓練網(wǎng)絡的準確性。將樣本的課程成績輸入到模型的輸入層,通過模型運行,在輸出層得到輸出結果。將實際輸出與期望輸出進行比較,若兩者之間的誤差滿足要求,說明該模型準確性較高,否則就需要對參數(shù)重新設定,并進行訓練,直到誤差符合要求[8]。
表3列舉比較了模型的實際輸出和期望輸出,從兩組數(shù)據(jù)對比可知,在實際輸出與期望輸出之間有一些差別,但誤差值很小,絕對誤差的平均值為0.02%,相對誤差的平均值為0.37%??傮w而言,兩者反映的信息可以認為是相同的,因此本文認為該模型能夠用于學分績點的預測。
表3 測試樣本的神經(jīng)網(wǎng)絡預測模型輸出和實際輸出值比較
本文構建了基于BP神經(jīng)網(wǎng)絡的平均學分績點預測模型,學生每學期獲得成績作為模型輸入,學生平均學分績點值作為模型輸出。當隱層節(jié)點數(shù)為9時,模型滿足了網(wǎng)絡的實際輸出與期望輸出的誤差要求,即該模型能夠映射課程成績與平均學分績點之間的函數(shù)關系。最后,經(jīng)過實驗測試結果表明,在學分績點預測模型構建中L-M優(yōu)化算法優(yōu)于其他算法,可以應用于智能學業(yè)預警,具有一定的理論和實際應用價值。
[1] 方祥玉. 學分績點制在武漢七所部屬高校的實踐與探索[J]. 河南教育學院學報(哲學社會科學版). 2012:131-132.
[2] 翟雪松,尹吉明,林莉蘭. 結構方程視角下我國翻轉課堂滿意度模型構建[J]. 高教探索,2015,(05):65-72.
[3] 陸玉嬌,趙雪花,安莉莉. 快速BP算法在年徑流預測研究中的應用[J].水資源與水工程學報. 2012:96-97.
[4] 劉磊. BP神經(jīng)網(wǎng)絡在極限承載力預測中的應用[J].河南科技. 2012:01-15.
[5] 馬正華,王騰,周炯如. 基于BP神經(jīng)網(wǎng)絡的太湖富營養(yǎng)化時空變化預測[J]. 常州大學學報(自然科學版). 2013:63-64.
[6] 王濤, 翟雪松. 基于神經(jīng)網(wǎng)絡的智能課程推薦模型[J]. 合肥學院學報(自然科學版). 2016.1:32-34.
[7] 董升偉. 基于改進BP神經(jīng)網(wǎng)絡的軌道交通短時客流預測方法研究[D]. 北京交通大學. 2013.
[8] 俞克強,宮寧生,丁磊. 一種神經(jīng)網(wǎng)絡控制模型的研究與應用[J]. 計算機應用與軟件. 2013:61-62.
[9] 周志華,曹存根,主編.神經(jīng)網(wǎng)絡及其應用[M].北京:清華大學出版社, 2004.
[10] MartinT.Hagan,HowardB.Demuth,MarkH.Beale,著.神經(jīng)網(wǎng)絡設計[M].北京:機械工業(yè)出版社, 2002.