国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于多層感知器神經(jīng)網(wǎng)絡(luò)的學(xué)生校內(nèi)消費(fèi)評(píng)估研究

2018-08-01 07:13:08馬曉娜
中國(guó)教育信息化 2018年14期
關(guān)鍵詞:感知器貧困生神經(jīng)元

武 斌 ,馬曉娜

(1.安徽理工大學(xué) 現(xiàn)代教育技術(shù)中心,安徽 淮南 232001;2.安徽理工大學(xué) 測(cè)繪學(xué)院,安徽 淮南 232001)

一、引言

隨著我國(guó)教育事業(yè)的不斷發(fā)展,越來(lái)越多的公民實(shí)現(xiàn)了高等教育,招生人數(shù)的增加給學(xué)校管理與決策帶來(lái)了挑戰(zhàn)。如何快速、科學(xué)、可靠地了解學(xué)生的相關(guān)情況顯得尤為重要。學(xué)生的校內(nèi)消費(fèi)數(shù)據(jù)中隱含了大量信息,通過(guò)對(duì)它的分析評(píng)估,可以獲取學(xué)生多個(gè)方面的信息,為后續(xù)的諸如貧困生認(rèn)定、學(xué)校資源配置優(yōu)化等提供參考。數(shù)據(jù)分析評(píng)估可以有多個(gè)方向,本文以貧困生認(rèn)定為例。

貧困生的認(rèn)定指標(biāo)體系中有家庭、個(gè)人、學(xué)校、社會(huì)等幾個(gè)方面,其中學(xué)生校內(nèi)消費(fèi)是家庭與個(gè)人方面的重要體現(xiàn)。因此,我們可以通過(guò)分析評(píng)估學(xué)生的校內(nèi)消費(fèi)數(shù)據(jù)挖掘出隱藏的信息,為認(rèn)定工作提供數(shù)據(jù)支持。有部分高校嘗試大數(shù)據(jù)統(tǒng)計(jì)分析方法,如決策樹(shù)算法[2]、關(guān)聯(lián)規(guī)則算法[3]、層次分析算法[4]、數(shù)據(jù)挖掘算法[5]、聚類分析算法[6]等。這些算法雖然可以獲取信息,但是他們的底層核心算法還是基于傳統(tǒng)的單個(gè)評(píng)估指標(biāo)的排列組合與邏輯判斷。而這些單個(gè)評(píng)估指標(biāo)如何確定、準(zhǔn)確與否同樣是需要解決的問(wèn)題。為此筆者提出了采用機(jī)器學(xué)習(xí)中的多層感知器神經(jīng)網(wǎng)絡(luò)算法,通過(guò)學(xué)習(xí)已給定學(xué)生的校內(nèi)消費(fèi)數(shù)據(jù),建立多層感知器神經(jīng)網(wǎng)絡(luò)模型,最后用建立完成的模型去評(píng)估并輸出結(jié)果。

二、神經(jīng)網(wǎng)絡(luò)

神經(jīng)網(wǎng)絡(luò)是一種模擬人腦的神經(jīng)網(wǎng)絡(luò)系統(tǒng),以期能夠?qū)崿F(xiàn)類人工智能的機(jī)器學(xué)習(xí)技術(shù)。

1.神經(jīng)元基本結(jié)構(gòu)

神經(jīng)元模型是一個(gè)包含輸入、輸出與計(jì)算功能的模型。輸入可以類比為神經(jīng)元的樹(shù)突,而輸出可以類比為神經(jīng)元的軸突,計(jì)算則可以類比為細(xì)胞核。一個(gè)典型的神經(jīng)元模型如圖1所示。

圖1 神經(jīng)元基本結(jié)構(gòu)

圖 1中,SUM為求和,SGN為非線性函數(shù)g,I為輸入,w為權(quán)重,則神經(jīng)元的輸出為:

當(dāng)大量的神經(jīng)元疊加、具有多個(gè)層次的時(shí)候,就構(gòu)成了神經(jīng)元網(wǎng)絡(luò)。

2.多層感知器

將前一個(gè)神經(jīng)元的輸出作為后一個(gè)神經(jīng)元的輸入,得到的輸出再作為后一個(gè)神經(jīng)元的輸入,不斷疊加,就構(gòu)成了多層感知器(Multilayer Perceptron),如圖2所示。

圖2 多層感知器(Multi-layer Perceptron)示意圖

多層感知器是一種前向的神經(jīng)網(wǎng)絡(luò),它的輸入是一組向量,輸出為另一組向量。多層感知器由輸入層(Input Layer)、 隱藏層 (Hidden Layer) 和輸出層(Output Layer)構(gòu)成。其中,隱藏層又可以包含多層。每層由多個(gè)節(jié)點(diǎn)構(gòu)成,每層又可以傳遞給下一層,直到輸出層。除去輸入節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都是一個(gè)帶有非線性激活函數(shù)的神經(jīng)元(或稱處理單元)。它的輸出為:

公式2中,wnj為節(jié)點(diǎn)權(quán)重,bjk為偏差。

3.求解器

由神經(jīng)網(wǎng)絡(luò)的輸出表達(dá)式公式2可以看出,求解權(quán)重和偏差是建立神經(jīng)網(wǎng)絡(luò)模型的關(guān)鍵。求解器即是神經(jīng)網(wǎng)絡(luò)模型在學(xué)習(xí)時(shí)通過(guò)算法求解出權(quán)重與偏差的值。這里使用Adam算法求解。

Adam算法來(lái)源于自適應(yīng)矩估計(jì) (Adaptive Moment Estimation),是梯度下降算法的優(yōu)化,根據(jù)損失函數(shù)對(duì)每個(gè)參數(shù)的梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整針對(duì)于每個(gè)參數(shù)的學(xué)習(xí)速率,使參數(shù)比較平穩(wěn)。算法如下:

算法中 η 是學(xué)習(xí)率,gt是梯度函數(shù),mt、nt分別是對(duì)梯度的一階矩估計(jì)和二階矩估計(jì),可以看作對(duì)期望E|gt|、,的估計(jì);是對(duì)、mt、nt的校正,這樣可以近似認(rèn)為是期望的無(wú)偏估計(jì)。同時(shí),學(xué)習(xí)率η也有了限制。

三、Python編程實(shí)現(xiàn)

1.Python簡(jiǎn)介

Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,其語(yǔ)法簡(jiǎn)潔清晰,具有豐富和強(qiáng)大的庫(kù)。由于其簡(jiǎn)潔性、易讀性以及可擴(kuò)展性,現(xiàn)今用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,并且眾多開(kāi)源的科學(xué)計(jì)算軟件包都提供了Python的調(diào)用接口,例如NumPy、SciPy和matplotlib都分別為Python提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能。這里使用Python編程實(shí)現(xiàn)多層感知器神經(jīng)網(wǎng)絡(luò)模型,并用于評(píng)估。

2.消費(fèi)數(shù)據(jù)預(yù)處理

學(xué)生的校內(nèi)消費(fèi)數(shù)據(jù)主要來(lái)自于校園一卡通系統(tǒng)。這里采用校內(nèi)食堂、超市消費(fèi)數(shù)據(jù)。食堂消費(fèi)每天有早中晚三餐,每餐有消費(fèi)次數(shù)與金額,學(xué)生每學(xué)年度在校時(shí)間九個(gè)月,這樣每位學(xué)生每學(xué)年的消費(fèi)數(shù)據(jù)就有3×2×30×9=1620條目,作為輸入向量數(shù)據(jù)量過(guò)大。為此,采用以月份為單位,統(tǒng)計(jì)出每月早中晚消費(fèi)次數(shù)與金額,這樣每位學(xué)生的年度數(shù)據(jù)只有72條目,便于輸入多層感知器神經(jīng)網(wǎng)絡(luò)模型。

在統(tǒng)計(jì)學(xué)生消費(fèi)數(shù)據(jù)時(shí),會(huì)存在沒(méi)有早飯等數(shù)據(jù)缺失的情況,查詢數(shù)據(jù)庫(kù)會(huì)返回空值。我們需要將空值替換為0,才能輸入多層感知器神經(jīng)網(wǎng)絡(luò)使用。

為了使多層感知器神經(jīng)網(wǎng)絡(luò)模型更好地適應(yīng)計(jì)算,輸入的數(shù)據(jù)必須進(jìn)行歸一化處理。歸一化處理在sklearn庫(kù)中有標(biāo)準(zhǔn)的方法,即sklearn.preprocessing.scale()方法。但該方法需要計(jì)算數(shù)據(jù)總量的均值,當(dāng)數(shù)據(jù)量較大,分批次輸入數(shù)據(jù)時(shí),會(huì)存在標(biāo)準(zhǔn)不統(tǒng)一的問(wèn)題,同時(shí)數(shù)據(jù)不服從高斯正態(tài)分布也會(huì)出現(xiàn)數(shù)據(jù)失真問(wèn)題,為此,通過(guò)觀察輸入數(shù)據(jù),發(fā)現(xiàn)只需同時(shí)除以某固定值即可解決這個(gè)問(wèn)題。這里取消費(fèi)次數(shù)除100,消費(fèi)金額除400。

3.導(dǎo)出校內(nèi)消費(fèi)數(shù)據(jù)

由于需要統(tǒng)計(jì)的學(xué)生校內(nèi)消費(fèi)數(shù)據(jù)較多,且直接查詢一卡通數(shù)據(jù)庫(kù)不僅耗時(shí)較大,而且占用資源。這里采用統(tǒng)計(jì)一次、數(shù)據(jù)存儲(chǔ)、多次使用的方式,將初步統(tǒng)計(jì)的數(shù)據(jù)存儲(chǔ)在另一套數(shù)據(jù)庫(kù)中,供多層感知器神經(jīng)網(wǎng)絡(luò)模型使用。

新建一臺(tái)虛擬主機(jī),操作系統(tǒng)使用CentOS 7.1 x64版本,數(shù)據(jù)庫(kù)使用MySQL 5.7.18版本,建立用戶信息表(T_CUSTOMER)、月度消費(fèi)信息表(T_BLSMONTH)、年度消費(fèi)總和表(T_SUM),分別存儲(chǔ)學(xué)生基本信息、學(xué)生月度消費(fèi)數(shù)據(jù)、年度消費(fèi)總和等數(shù)據(jù)。

我校一卡通數(shù)據(jù)庫(kù)使用Oracle數(shù)據(jù)庫(kù),可以使用Python中的cx_Oracle庫(kù)連接,從而實(shí)現(xiàn)Python與Oracle數(shù)據(jù)庫(kù)的通信,以執(zhí)行SQL語(yǔ)句。新建的存儲(chǔ)數(shù)據(jù)庫(kù)使用pymysql庫(kù)來(lái)連接。這樣,將一卡通數(shù)據(jù)庫(kù)中的數(shù)據(jù)統(tǒng)計(jì)出來(lái),并做預(yù)處理,最后存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中待使用。

4.導(dǎo)出學(xué)習(xí)數(shù)據(jù)

有了學(xué)生的校內(nèi)消費(fèi)數(shù)據(jù),接下來(lái)就是分析使用。首先,需要導(dǎo)出多層感知器神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)的數(shù)據(jù)。這里采用先統(tǒng)計(jì)出年度消費(fèi)總和,再降序排列,并結(jié)合學(xué)生管理部門人工核實(shí),選取出適當(dāng)數(shù)量的具有代表性的學(xué)生,導(dǎo)出消費(fèi)數(shù)據(jù)。

為了提高模型的準(zhǔn)確度,還需要模型學(xué)習(xí)一些非代表性學(xué)生的消費(fèi)數(shù)據(jù)。采用MySQL數(shù)據(jù)庫(kù)的avg()函數(shù)計(jì)算出所有學(xué)生消費(fèi)的平均值,在此基礎(chǔ)上適當(dāng)添加偏移量bias,具體值可以根據(jù)每個(gè)學(xué)院的情況具體問(wèn)題具體分析確定。

5.多層感知器神經(jīng)網(wǎng)絡(luò)模型的創(chuàng)建、學(xué)習(xí)與持久化

根據(jù)多層感知器神經(jīng)網(wǎng)絡(luò)的原理,使用代碼編程構(gòu)建一個(gè)多層感知器神經(jīng)網(wǎng)絡(luò)模型。使用Python第三方sklearn機(jī)器學(xué)習(xí)庫(kù)中的neural_network模塊導(dǎo)入MLPClassifier類,通過(guò)實(shí)例化的方式構(gòu)建多層感知器神經(jīng)網(wǎng)絡(luò)。MLPClassifier類中的主要方法如表1所示。

表1 MLPClassifier類中主要方法

通過(guò)調(diào)用MLPClassifier類中的方法,可以方便快速地構(gòu)建和使用多層感知器神經(jīng)網(wǎng)絡(luò)。Python構(gòu)建多層感知器神經(jīng)網(wǎng)絡(luò)核心功能代碼如下:

輸入的原始數(shù)據(jù)inputx列表中包含了所有需要學(xué)習(xí)的學(xué)生數(shù)據(jù),其中每位學(xué)生是一個(gè)經(jīng)過(guò)預(yù)處理并歸一化后的72維向量;inputy則是學(xué)習(xí)時(shí)每位學(xué)生對(duì)應(yīng)的已知結(jié)果,這里取貧困生值為1,非貧困生值為0。選取2016年9月份至2017年6月份之間除去寒假2017年2月份共9個(gè)月份的校內(nèi)消費(fèi)數(shù)據(jù)。其中某學(xué)生的月度消費(fèi)數(shù)據(jù)如圖3所示。

圖3 某位學(xué)生月度消費(fèi)數(shù)據(jù)

由于程序不可能一直處在運(yùn)行狀態(tài),還需要將學(xué)習(xí)完成后的模型保存在磁盤上,供下次使用,這個(gè)過(guò)程即是模型的持久化。這里使用sklearn.externals庫(kù)中的joblib類的dump()方法實(shí)現(xiàn)。

6.多層感知器神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)的參數(shù)調(diào)優(yōu)

多層感知器神經(jīng)網(wǎng)絡(luò)MLPClassifier模型具有很多參數(shù)可以設(shè)置,主要參數(shù)如表2所示。

表2 MLPClassifier模型主要參數(shù)

針對(duì)表2中的MLPClassifier神經(jīng)網(wǎng)絡(luò)模型參數(shù),這里主要優(yōu)化隱藏層、激活函數(shù)和最大迭代次數(shù)參數(shù),即hidden_layer_sizes、activation、max_iter參數(shù)。

隱藏層參數(shù)hidden_layer_sizes的值是一維數(shù)組,數(shù)組長(zhǎng)度代表隱藏層個(gè)數(shù),每個(gè)值表示當(dāng)前層的神經(jīng)元節(jié)點(diǎn)數(shù)。取不同的隱藏層參數(shù),其余均為默認(rèn)值,使用另外一組測(cè)試數(shù)據(jù)實(shí)驗(yàn)。

實(shí)驗(yàn)結(jié)果表明,當(dāng)隱藏層層數(shù)固定,每層神經(jīng)元數(shù)量呈梯度遞減趨勢(shì)時(shí),對(duì)不同學(xué)生的區(qū)分度逐漸明顯;當(dāng)每層神經(jīng)元數(shù)目固定,隱藏層層數(shù)不斷增加時(shí),對(duì)不同學(xué)生的區(qū)分度逐漸明顯,但是超過(guò)一定層數(shù)后,會(huì)出現(xiàn)過(guò)擬合,反而使區(qū)分度下降。這里結(jié)合本研究實(shí)例,取隱藏層參數(shù)hidden_layer_sizes=(36,24,12),此時(shí),不同家庭條件學(xué)生有明顯的分層,且更加逼近該層次相對(duì)應(yīng)的評(píng)估值,能夠較好地區(qū)分出不同學(xué)生。

激活函數(shù)參數(shù)activation的值為一個(gè)非線性函數(shù)名,代表神經(jīng)網(wǎng)絡(luò)模型使用的激活函數(shù)。這里通過(guò)實(shí)驗(yàn)對(duì)比了 identity、logistic、tanh、relu 四種激活函數(shù)的學(xué)習(xí)結(jié)果。由實(shí)驗(yàn)結(jié)果可見(jiàn),只有l(wèi)ogistic激活函數(shù)學(xué)習(xí)效果較差,其它三個(gè)非線性激活函數(shù)均可以達(dá)到較好的學(xué)習(xí)效果,這里采用默認(rèn)值relu。

求解器最大迭代次數(shù)max_iter參數(shù)設(shè)置了求解器運(yùn)算的最大計(jì)算次數(shù)。它的值過(guò)小會(huì)造成神經(jīng)網(wǎng)絡(luò)無(wú)法收斂,過(guò)大則會(huì)出現(xiàn)過(guò)擬合問(wèn)題且求解時(shí)間過(guò)長(zhǎng)。不同值的學(xué)習(xí)結(jié)果如圖4。

圖4 不同求解器最大迭代次數(shù)參數(shù)學(xué)習(xí)結(jié)果

已知前18名為貧困生,中間15名為一般家庭條件學(xué)生,后7名為非貧困生。由圖4可見(jiàn),隨著迭代次數(shù)的增加,多層感知器神經(jīng)網(wǎng)絡(luò)逐漸收斂,不同學(xué)生區(qū)分度明顯,但是當(dāng)?shù)螖?shù)過(guò)大時(shí),出現(xiàn)過(guò)擬合,無(wú)法區(qū)分不同學(xué)生。此處,多層感知器神經(jīng)網(wǎng)絡(luò)在迭代200次左右即收斂,這里取max_iter參數(shù)為200。

7.導(dǎo)出待評(píng)估學(xué)生的數(shù)據(jù)

待評(píng)估的學(xué)生數(shù)據(jù)與用于學(xué)習(xí)的學(xué)生數(shù)據(jù)在數(shù)據(jù)預(yù)處理時(shí)進(jìn)行相同的操作,這樣,只需要根據(jù)學(xué)院提供的學(xué)生名單,重復(fù)上述步驟即可導(dǎo)出消費(fèi)數(shù)據(jù)。

8.實(shí)現(xiàn)評(píng)估

首先,通過(guò)sklearn.externals庫(kù)中joblib類的load()方法導(dǎo)入學(xué)習(xí)完畢的多層感知器神經(jīng)網(wǎng)絡(luò)模型。然后,將待評(píng)估的學(xué)生消費(fèi)數(shù)據(jù)矩陣變換為多層感知器神經(jīng)網(wǎng)絡(luò)輸入格式并輸入模型,再通過(guò)模型的計(jì)算,得到評(píng)估結(jié)果。該結(jié)果為一個(gè)0-1之間的置信值。隨機(jī)取校內(nèi)5個(gè)院系評(píng)估,并將評(píng)估結(jié)果反饋至相關(guān)院系,比對(duì)后得到結(jié)果如表3。

表3 多層感知器神經(jīng)網(wǎng)絡(luò)模型評(píng)估結(jié)果

四、結(jié)束語(yǔ)

通過(guò)上述實(shí)驗(yàn)方法,處理了學(xué)生的校內(nèi)消費(fèi)數(shù)據(jù),建立多層感知器神經(jīng)網(wǎng)絡(luò)模型并學(xué)習(xí)已認(rèn)定貧困生的消費(fèi)數(shù)據(jù),最后使用學(xué)習(xí)完畢的模型用于評(píng)估,得到了評(píng)估結(jié)果。在此過(guò)程中,全程使用計(jì)算機(jī)編程自動(dòng)處理,平均處理每位學(xué)生時(shí)間約為10秒,相比人工分析幾周時(shí)間,極大地縮短了時(shí)間、減輕了人力投入;同時(shí)避免了選取特定評(píng)估指標(biāo)標(biāo)準(zhǔn)以及人為主觀因素對(duì)結(jié)果的影響,為學(xué)校決策者和職能部門提供了有力的數(shù)據(jù)支持。

將神經(jīng)網(wǎng)絡(luò)模型評(píng)估的結(jié)果反饋至相關(guān)學(xué)院,對(duì)比可見(jiàn),模型篩選出0.8以上置信值的學(xué)生占真實(shí)人數(shù)的比例在80%以上,具有較強(qiáng)的可信度與準(zhǔn)確度。將此結(jié)果再結(jié)合成績(jī)、勤工助學(xué)、獎(jiǎng)學(xué)金等維度信息則可以更加準(zhǔn)確與全面地了解學(xué)生。

我們還可以將此方法泛化在其他方面。比如將具有某一特性的學(xué)生信息輸入模型進(jìn)行訓(xùn)練,則可用此模型評(píng)估目標(biāo)在該特性方面的結(jié)果,具有較大的使用價(jià)值。

猜你喜歡
感知器貧困生神經(jīng)元
《從光子到神經(jīng)元》書評(píng)
自然雜志(2021年6期)2021-12-23 08:24:46
火箭貯箱噴涂機(jī)器人直接示教運(yùn)動(dòng)感知器設(shè)計(jì)與分析
感知器在礦井突水水源識(shí)別中的應(yīng)用
AI超市
尿濕感知器
躍動(dòng)的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
基于二次型單神經(jīng)元PID的MPPT控制
毫米波導(dǎo)引頭預(yù)定回路改進(jìn)單神經(jīng)元控制
“貧困生班主任”李金林
十年籌資千萬(wàn)元 資助八千貧困生
冕宁县| 阿城市| 安塞县| 哈密市| 岑溪市| 福安市| 沙湾县| 漳州市| 海丰县| 麻阳| 宜黄县| 迭部县| 忻州市| 德兴市| 平乐县| 平陆县| 洛宁县| 清新县| 新田县| 花垣县| 崇州市| 乐至县| 汤阴县| 蓬莱市| 呼和浩特市| 徐州市| 邮箱| 北流市| 进贤县| 满城县| 周至县| 连州市| 建湖县| 喀喇| 宣城市| 金昌市| 鄂托克前旗| 聂拉木县| 新和县| 拉孜县| 大荔县|