士紫薇,張仕光,李燕培,晉潔,牛永博,范靜
(河南師范大學(xué)計算機與信息工程學(xué)院,新鄉(xiāng)453007)
手機的面世和不斷地更新?lián)Q代,極大地方便了我們的生活。但同時,人們對手機的依賴性也前所未有地增加。中國是世界上近視發(fā)病率最高的國家之一,近視眼人數(shù)居世界第一。2017年,世界衛(wèi)生組織研究報告稱,中國近視患者多達六億。其中,我國高中生和大學(xué)生的近視率均已超過七成,并逐年增加,中國青少年近視率高居世界第一。
學(xué)生群體對手機過度的依賴是顯而易見的。對于手機不離身的學(xué)生來說,娛樂遠遠大于工作。在這種平均每六分鐘低頭一次的“低頭族”時代,手機除了為我們帶來了便捷,還帶來了什么?
在對這一現(xiàn)象的研究中,本文基于BP神經(jīng)網(wǎng)絡(luò)[1]和支持向量機對其進行分析和研究。BP神經(jīng)網(wǎng)絡(luò)實質(zhì)上實現(xiàn)了一個從輸入到輸出的映射功能,具有較強的非線性映射能力和高度自學(xué)習(xí)和自適應(yīng)的能力。而且,BP神經(jīng)網(wǎng)絡(luò)還具有將學(xué)習(xí)成果應(yīng)用于新知識的能力和一定的容錯能力。將此方法應(yīng)用于智能手機對大學(xué)生影響的研究中,頗為有用。
神經(jīng)網(wǎng)絡(luò)在半個世紀以來,理論和技術(shù)基礎(chǔ)已達到了一定規(guī)模,就應(yīng)用的技術(shù)領(lǐng)域而言有語言的識別、理解與合成,優(yōu)化計算,模式識別,知識推理專家系統(tǒng)與人工智能[2]等。與傳統(tǒng)的統(tǒng)計方法相比,神經(jīng)網(wǎng)絡(luò)具有很強的學(xué)習(xí)能力,極大地提高了分類的精度和預(yù)測的準測度。
本文將以本校大學(xué)生群體為研究對象,通過網(wǎng)上發(fā)表調(diào)查問卷,收集手機對大學(xué)生視力方面影響的數(shù)據(jù),并利用BP神經(jīng)網(wǎng)絡(luò)和支持向量機[3]等工具,研究和分析智能手機對大學(xué)生的影響。
本次收集數(shù)據(jù)的方式為線上線下問卷調(diào)查,為方便答題和節(jié)省時間,問卷的設(shè)計主要以選擇為主。調(diào)查對象為高校學(xué)生。
(1)基本信息統(tǒng)計
100名大學(xué)生中,男生占32%,女生占68%。其中大一學(xué)生占12%;大二學(xué)生占19%;大三學(xué)生占65%;大四學(xué)生占4%。
(2)使用習(xí)慣
91%的被調(diào)查者表示手機是他們的必帶物品。被調(diào)查者中只有2%的表示一直堅持做眼保健操、滴眼藥水等保護眼睛的習(xí)慣,從來不做的占比31%。大部分被調(diào)查者將手機放置在眼前30厘米以內(nèi)的位置。專家建議,在使用手機眼睛與手機應(yīng)保持30~50cm的距離,而在調(diào)查中能做到的僅有一人。
(3)使用目的
在上課時,59%的被調(diào)查者會經(jīng)常使用手機,用于聽音樂、打游戲、購物、查資料、看小說等方面。沒有一位被調(diào)查者表示課堂上從不使用手機,其中,僅有29%表示課堂上使用手機是用來查知識。
(4)使用頻率
據(jù)數(shù)據(jù)顯示,對于手機一天的使用頻率來說,38%的被調(diào)查者每天使用手機時間大于6小時,晚上玩手機的大部分時長都在2小時之內(nèi),10%的時長會大于2小時;84%的被調(diào)查者晚上熄燈后會繼續(xù)玩手機,大部分的被調(diào)查者在4小時內(nèi)會感到疲憊;而34%的被調(diào)查者表示玩手機長于4個小時后才會感到疲憊。
(5)視力下降程度
據(jù)數(shù)據(jù)顯示,34%的被調(diào)查者的視力下降的度數(shù)小于100度,15%的被調(diào)查者視力下降的度數(shù)大于400度。
在本次調(diào)查中,為保證調(diào)查的可靠性,我們分別對四個年級,共100名在校大學(xué)生進行了調(diào)查,并設(shè)置了5個指標作為分析依據(jù)。其中,因素一:大學(xué)生在白天玩手機的時長;因素二:大學(xué)生在晚上玩手機的時長;因素三:手機的放置距離;因素四:代表大學(xué)生玩手機后對眼睛的保護頻率;因素五:大學(xué)生玩手機感到疲憊的時間,而結(jié)果就是視力下降的實際值。
為方面統(tǒng)計和編碼實現(xiàn)功能,將各個因素劃分為四個等級,并合理取值
原數(shù)據(jù)形式如圖1所示:
圖1 原數(shù)據(jù)形式
在MATLAB中對其進行歸一化處理,如圖2所示。歸一化函數(shù)采用MATLAB中自帶的函數(shù)mapminmax。此函數(shù)默認將數(shù)據(jù)歸一化到[-1 1],在這里選擇將其歸一到(0,1)。歸一化可以使后面數(shù)據(jù)的處理方便,其次是保正程序運行時收斂加快。mapminmax(Input,0,1)實現(xiàn)輸入數(shù)據(jù)歸一化;mapminmax(Output,0,1)實現(xiàn)輸出數(shù)據(jù)歸一化。將數(shù)字歸一化,可以避免不同數(shù)量級的數(shù)字之間相互影響,也可以加快網(wǎng)絡(luò)學(xué)習(xí)速度。
圖2 原數(shù)據(jù)
歸一化處理后的數(shù)據(jù)格式如圖3所示:
圖3 歸一化處理后數(shù)據(jù)形式
表1 等級劃分
圖4 歸一化處理后數(shù)據(jù)
(1)BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
圖5 神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
xj表示輸入層第 j個節(jié)點的輸入 j=1,2,...,M;
wij表示隱含層第i個節(jié)點到輸入層第j個節(jié)點之間的權(quán)值;
θi表示隱含層第i個節(jié)點的閾值;
F(x)表示隱含層的激勵函數(shù);
wkj表示輸出層第k個節(jié)點到隱含層第i個節(jié)點之間的權(quán)值, i=1,...,q;
ak表示輸出層第 k個節(jié)點的閾值, k=1,...,L;
Y(x)表示輸出層的激勵函數(shù);
ok表示輸出層第k個節(jié)點的輸出。
(2)關(guān)于手機使用所導(dǎo)致的視力下降程度的神經(jīng)網(wǎng)絡(luò)預(yù)測模型
①模型結(jié)構(gòu)
本課題的目標為通過神經(jīng)網(wǎng)絡(luò)模型分析手機對大學(xué)生視力的影響,問題核心是找到主成分分析除的特征變量(手機使用時長、黑暗環(huán)境下手機使用時長、放置距離、護眼行為頻率、感到疲憊時間)與導(dǎo)致視力下降程度之間的映射關(guān)系,這里確定網(wǎng)絡(luò)模型的輸入為已選定的五個特征變量,輸出為加深程度的范圍。通過問卷調(diào)查收集的相應(yīng)的數(shù)據(jù),我們將這五個因素具體量化,并將對應(yīng)的視力下降程度分四個等級。100份有效數(shù)據(jù)中,95份用來訓(xùn)練,5份用來預(yù)測。
對BP神經(jīng)網(wǎng)絡(luò)進行指定參數(shù)的訓(xùn)練,這里采用traingd(梯度下降算法)、traindm(棟梁梯度下降算法)、trainda(變學(xué)習(xí)率梯度下降算法)、traindx(變學(xué)習(xí)率動量梯度下降算法)。調(diào)用newff函數(shù),傳輸函數(shù)使用tansig、purelin,選取“trainlm”函數(shù)來訓(xùn)練,其算法對應(yīng)的是Levenberg-Marquardt算法。利用神經(jīng)網(wǎng)絡(luò)進行預(yù)測,首先需要根據(jù)輸入輸出來確定網(wǎng)絡(luò)的結(jié)構(gòu)。由以上討論,需有5維輸入、一維輸出,并選擇中間層隱節(jié)點為7,因此確定此BP神經(jīng)網(wǎng)絡(luò)為5-7-1的結(jié)構(gòu)。
②參數(shù)的初始化
調(diào)用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱,直接可初始化輸入層與隱含層之間的權(quán)值、輸入層與隱含層之間的閾值、輸出層與隱含層之間的權(quán)值、輸出層與隱含層之間的閾值。而初始值為隨機選定的,在后來訓(xùn)練數(shù)據(jù)的過程中,根據(jù)網(wǎng)絡(luò)預(yù)測誤差調(diào)整網(wǎng)絡(luò)的權(quán)重和閾值[5]。具體參數(shù)設(shè)置如下:
輸入樣本數(shù) Input_Num=95,預(yù)測樣本數(shù)量Sim_Num=5
輸入節(jié)點Input_Num 5
中間層隱節(jié)點Hidd_Num 7
網(wǎng)絡(luò)輸出維度Out_Num 1
最多訓(xùn)練次數(shù)MaxEpochs 50000
學(xué)習(xí)速率lr 0.01
目標誤差 E0 0.45*10(-2)
初始化輸入層與隱含層之間的權(quán)值:
W1=0.5*rand(Hidd_Num,Input_Num)-0.1
初始化輸入層與隱含層之間的閾值:
B1=0.5*rand(Hidd_Num,1)-0.1;
初始化輸出層與隱含層之間的權(quán)值
W2=0.5*rand(Out_Num,Hidd_Num)-0.
初始化輸出層與隱含層之間的閾值
B2=0.5*rand(Out_Num,1)-0.1;
③測試和預(yù)測
用測試數(shù)據(jù)測試神經(jīng)網(wǎng)絡(luò)的性能。用剩下五組數(shù)據(jù)當做被預(yù)測數(shù)據(jù)。比較誤差,評價此模型的準確性。
支持向量機和支持向量機回歸[6]是統(tǒng)計學(xué)習(xí)理論的重要組成部分。和感知機模型一樣,SVM(支持向量機模型)也是旨在求出n維空間的最優(yōu)超平面將正負類分開。這里的達到的最優(yōu)是指在兩類樣本點距離超平面的最近距離達到最大,間隔最大使得它區(qū)別于感知機學(xué)習(xí),SVM中還有核技巧,這樣SVM就是實際上的非線性分類器函數(shù)。
假設(shè)給定一個特征空間上的訓(xùn)練數(shù)據(jù)集:
其中,表示N個樣本實例,xi為第i個特征向量(實例),yi為 xi的類標記。xi∈X=Rn,yi∈Y={+1,—1},i=1,2,3,…,N,表示N個樣本實例,xi為第i個特征向量(實例),yi為 xi的類標記。
量機模型參數(shù)的設(shè)置:svm類型選擇2(one-class-SVM),核函數(shù)使用徑向基函數(shù)是高斯核函數(shù)(RBF核),其中函數(shù)值設(shè)置為0.07,degree設(shè)置為3,coef設(shè)置為0。
其中C與g采用交叉驗證選擇最佳參數(shù)。對于參數(shù)與核函數(shù)的設(shè)置如前面所敘述方法選取。
另外針對研究問題這里采用間接法的SVM多分類
(1)間接法:
主要是通過組合多個二分類器來實現(xiàn)多分類器的構(gòu)造,常見的方法有one-against-one和one-against-all兩種。
(2)一對多法(one-versus-rest,簡稱 OVR SVMs)
訓(xùn)練時依次把某個類別的樣本歸為一類,其他剩余的樣本歸為另一類,這樣k個類別的樣本就構(gòu)造出了k個SVM。分類時將未知樣本分類為具有最大分類函數(shù)值的那類。
假如有四類要劃分(也就是4個Label),它們是A、B、C、D。于是在抽取訓(xùn)練集的時候,分別抽取
①A所對應(yīng)的向量作為正集,B,C,D所對應(yīng)的向量作為負集;
②B所對應(yīng)的向量作為正集,A,C,D所對應(yīng)的向量作為負集;
③C所對應(yīng)的向量作為正集,A,B,D所對應(yīng)的向量作為負集;
④D所對應(yīng)的向量作為正集,A,B,C所對應(yīng)的向量作為負集。
使用這四個訓(xùn)練集分別進行訓(xùn)練,然后得到四個訓(xùn)練結(jié)果文件。在測試的時候,把對應(yīng)的測試向量分別利用這四個訓(xùn)練結(jié)果文件進行測試。最后每個測試都有一個結(jié)果 f1(x),f2(x),f3(x),f4(x)。于是最終的結(jié)果便是這四個值中最大的一個作為分類結(jié)果。
為了增加預(yù)測結(jié)果的準確性和模型的可行性,分別用可高度非線性化映射的BP神經(jīng)網(wǎng)絡(luò)和支持向量機對人工數(shù)據(jù)進行訓(xùn)練預(yù)測以及分類。
對調(diào)查問卷所得的數(shù)據(jù)進行整理以及對主成分進行數(shù)據(jù)化。共收集得100組數(shù)據(jù),使用95組數(shù)據(jù)作為訓(xùn)練樣本,所剩作為測試樣本,用以測試訓(xùn)練的函數(shù)的性能。采用2.1小節(jié)中的描述算法確定參數(shù)以及選取訓(xùn)練函數(shù)。
圖6 數(shù)據(jù)訓(xùn)練相關(guān)系數(shù)
圖8 訓(xùn)練數(shù)據(jù)的梯度和均方誤差之間的關(guān)系圖
圖9 殘差的正態(tài)的檢驗圖
由平均均方差與殘差以及training曲線可觀察到BP算法訓(xùn)練后的網(wǎng)絡(luò)的逼近能力與對數(shù)據(jù)的泛化都有不錯的效果,可以調(diào)用訓(xùn)練完成的網(wǎng)絡(luò)準確預(yù)測出綜合因素影響下的結(jié)果。
針對研究問題采用SVM算法對數(shù)據(jù)非線性建模,訓(xùn)練時依次把某個類別的樣本歸為一類,其他剩余的樣本歸為另一類,這樣k個類別的樣本就構(gòu)造出了k個SVM。分類時將未知樣本分類為具有最大分類函數(shù)值的那類。即把問題歸結(jié)為多次分類的二分類問題,先將 50~150標簽為 1,150~400標簽為 0,每組數(shù)據(jù)五十份,完成之后再次對一類數(shù)據(jù)進行分類,重復(fù)至完成。
圖10 SVM對數(shù)據(jù)的分類和預(yù)測如果圖
由圖觀察第一次二分類結(jié)果圖,問題基于SVM算法對數(shù)據(jù)的分類以及分類后的預(yù)測有較好的反映。從而可根據(jù)此算法依次對所給數(shù)據(jù)多次分類選擇出綜合因素影響的結(jié)果區(qū)間。
預(yù)測性能評價指標[7]:
預(yù)測性能的評價,一般用基于預(yù)測值y1’和測量值y2間的相似度來度量。即:
最常用的評價度量的指標是平均值絕對誤差(Mean Absolute Error,MAE);相對平均值絕對誤差(Mean Absolute Percentage Error,MAPE;根平方值誤差(Root Mean Square Error,RMSE);標準誤差(Standard Error of Prediction,SEP),是預(yù)測誤差中應(yīng)用比較廣泛的方法。
對神經(jīng)網(wǎng)絡(luò)模型預(yù)測以及SVM分類預(yù)測性能的指標的對比。這里選取Accuracy(準確率),均方誤差(Mean-Square Error,MSE),以及常用的評價度量的指標是平均值絕對誤差(Mean Absolute Error,MAE):
表2
圖11 SVM模型分類預(yù)測結(jié)果