郝霖霖
(復旦大學體教部 上海 200433)
對大學生體質(zhì)進行評價并給予針對性的鍛煉指導是高校體育工作的一部分,由于人體的運動能力與各影響因素之間是復雜的非線性關(guān)系,人為評價學生體質(zhì)健康具有較大的困難,而利用人工神經(jīng)網(wǎng)絡進行評價能夠降低人為因素的影響,能夠較好地保證評價結(jié)果的客觀性和準確性[1,2]。該研究利用K-means 聚類算法和BP神經(jīng)網(wǎng)絡對學生體質(zhì)類型進行評價,驗證BP神經(jīng)網(wǎng)絡評價大學生體質(zhì)類型的可行性,為指導大學生體育鍛煉提供參考,同時促進大數(shù)據(jù)、機器學習等新興技術(shù)與體育的結(jié)合,豐富體育與計算機交叉學科研究領(lǐng)域的理論成果。
通過查閱大學生課外體育鍛煉指導、大學生體質(zhì)健康等方面的相關(guān)文獻資料,借鑒前人的研究方法和研究成果,在此基礎(chǔ)上逐步形成該研究的思路、框架和創(chuàng)新點。研讀機器學習、人工神經(jīng)網(wǎng)絡方面的相關(guān)書籍著作,了解BP人工神經(jīng)網(wǎng)絡的基本原理和使用方法,為該研究中大學生體質(zhì)類型評價模型的構(gòu)建提供參考。
1.2.1 數(shù)據(jù)收集和預處理
測試和統(tǒng)計1000 余名大學生體質(zhì)健康數(shù)據(jù),計算數(shù)據(jù)平均值、標準差,并正向化處理以及Z-score 標準化處理。
1.2.2 K-means聚類分析
運用聚類分析,將預處理好的數(shù)據(jù)作為自變量,將具有較高相似度的數(shù)據(jù)對象劃分至同一類簇,將具有較高相異度的數(shù)據(jù)對象劃分至不同類簇,最終將大學男生和女生分成不同的類型(見圖1)。
圖1 大學生體質(zhì)類型K-mean聚類分析
1.2.3 BP神經(jīng)網(wǎng)絡建模
BP神經(jīng)網(wǎng)絡是一種多層的前饋神經(jīng)網(wǎng)絡,具有任意復雜的模式分類能力和優(yōu)良的多維函數(shù)映射能力,BP神經(jīng)網(wǎng)絡在體育研究和實踐中具有廣泛的應用[3,4]。在聚類分析完成后,每一名學生的體質(zhì)測試數(shù)據(jù)及體質(zhì)類型成為{x1,x2,...,xi}→yj映射,將訓練數(shù)據(jù)集帶入到BP神經(jīng)網(wǎng)絡進行訓練,訓練結(jié)束后得到成熟的關(guān)系映射模型,利用測試數(shù)據(jù)集對模型進行測試并觀察精度和誤差。
該研究利用BP 神經(jīng)網(wǎng)絡對大學生身體素質(zhì)進行分類,準確地識別體質(zhì)類型。(1)構(gòu)建大學生的身體素質(zhì)評價指標體系,該指標體系將作為K-means 聚類分析的變量以及構(gòu)建人工神經(jīng)網(wǎng)絡的輸入層神經(jīng)元。(2)采用K-means 聚類將數(shù)據(jù)劃分成K 類,每一名學生的體質(zhì)測試數(shù)據(jù)及體質(zhì)類型成為{x1,x2,...,xi}→yj映射。(3)設(shè)置神經(jīng)網(wǎng)絡的各項參數(shù),包括網(wǎng)絡層數(shù)量、輸入層神經(jīng)元數(shù)量、輸出層神經(jīng)元數(shù)量、隱藏層神經(jīng)數(shù)量、學習率,等等,將訓練數(shù)據(jù)集輸入到人工神經(jīng)網(wǎng)絡進行訓練,使之形成一個成熟的x(體質(zhì)測試指標)→y(體質(zhì)類型)映射機制(見圖2)。最后,對模型評估、保存和實施預測。數(shù)據(jù)的處理過程如圖3所示。
圖2 神經(jīng)網(wǎng)絡結(jié)構(gòu)
圖3 數(shù)據(jù)處理過程
結(jié)合學校體育鍛煉活動的實際需求,遵照安全性、簡易性、可靠性、實用性的原則制定指標體系?!秶覍W生體質(zhì)健康標準(2014年修訂)》中測試指標包括:身體形態(tài)類中的身高、體重,身體機能類中的肺活量,以及身體素質(zhì)類中的50m跑、坐位體前屈、立定跳遠、1000m跑(男生)、800m跑(女生)、引體向上(男生)、仰臥起坐(女生)。該研究部分指標采用體質(zhì)健康測試指標,避免重復測量。
為了較為細致地反映學生力量素質(zhì)和柔韌素質(zhì),參考《健身解剖指南》《肌肉力量訓練彩色圖譜》等資料的肌肉群劃分方法[5,6],將力量素質(zhì)指標進一步分為胸部、手臂、腹部、腰臀部、背部、腿部六部分,并借鑒眾多力量訓練教材中的各肌肉力量評測方法,初步擬定力量素質(zhì)測試指標。人體柔韌素質(zhì)主要體現(xiàn)在肩部、軀干及髖關(guān)節(jié)柔韌性,柔韌素質(zhì)指標擬定為轉(zhuǎn)肩、俯臥背伸、坐位體前屈。
設(shè)計《大學生力量素質(zhì)、柔韌素質(zhì)、靈敏素質(zhì)測試方法篩選問卷》,并發(fā)放給專家進一步篩選,問卷回收后,保留選擇頻數(shù)最多的指標及測試方法,結(jié)合《國家學生體質(zhì)健康標準》中的指標,最終形成該研究《大學生體質(zhì)健康指標體系及測試方法》(見表1)。
表1 大學生體質(zhì)健康指標體系及測試方法
力量素質(zhì)(或柔韌素質(zhì))的總得分計算公式如下:
其中,E為總得分,n為二級指標數(shù)量,xi為第i個二級指標的標準分,ηi為第i個二級指標的權(quán)重。
依照指標體系及測試方法獲取原始數(shù)據(jù),測試對象為493名男生和513名女生(見圖4)。
圖4 測試現(xiàn)場
3.2.1 數(shù)據(jù)預處理
對原始數(shù)據(jù)進行清洗和標準化處理,使數(shù)據(jù)格式符合模型的設(shè)定[7]。首先,查找并剔除重復、異常及空缺數(shù)據(jù)。其次,采用倒數(shù)法將“轉(zhuǎn)肩”“1000m跑”“800m跑”“50m跑”轉(zhuǎn)為高優(yōu)指標。最后,對數(shù)據(jù)進行Z-Score標準化,使數(shù)據(jù)無量綱化。Z-Score 標準化公式為:z=(x-μ)/σ,其中μ 為總體平均值,σ 為總體標準偏差。依據(jù)權(quán)重計算力量素質(zhì)和柔韌素質(zhì)的總得分。經(jīng)過預處理后的數(shù)據(jù)格式如表2所示。
表2 預處理后的數(shù)據(jù)格式
3.2.2 基于K-means聚類算法的樣本數(shù)據(jù)分類處理
K-means算法,又稱為K-均值算法,是一種基于劃分聚類算法,即根據(jù)相似性原則,將具有較高相似度的數(shù)據(jù)對象劃分至同一類簇,將具有較高相異度的數(shù)據(jù)對象劃分至不同類簇。K-means 算法中的K 代表類簇個數(shù),means代表類簇內(nèi)數(shù)據(jù)對象的均值。K-means聚類算法步驟如下。
(1)有樣本集X={xi|i=1,2,...,N},K 個類別為Cj(j=1,2,...,K),K個聚類中心為Aj=(j=1,2,...,K)。從樣本X隨機選取k個對象作為初始聚類中心。
(2)依據(jù)公式d(xi,xj)=計算每個樣本與各個聚類中心的歐式距離,把每個對象劃分到距離聚類中心最近的類別。
(3)利用公式Aj=,將每個類簇中的所有樣本點的均值作為新的聚類中心。
(4)重復(2)(3)步驟,直到聚類中心不再發(fā)生變化或者迭代次數(shù)達到預設(shè)的最大迭代次數(shù)。
K-means算法中K值可運用手肘法確定,核心思想是,隨著聚類數(shù)K 的增大,樣本劃分會更加精細,每個簇的聚合程度會逐漸提高,誤差平方和SSE 會逐漸變小。當K 小于真實聚類數(shù)時,由于K 的增大會大幅增加每個簇的聚合程度,故SSE的下降幅度會很大,而當K到達真實聚類數(shù)時,再增加K所得到的聚合程度回報會迅速變小,所以SSE 的下降幅度會驟減,然后隨著K值的繼續(xù)增大而趨于平緩[8]。因此,SSE和K的關(guān)系圖近似手肘的形狀,肘部對應的K 值就是數(shù)據(jù)的真實聚類數(shù)。計算誤差平方和SSE的公式如下:
Ci是第i 個簇,p是Ci中的樣本點,mi是Ci的質(zhì)心(Ci中所有樣本的均值),SSE 是所有樣本的聚類誤差,代表了聚類效果的好壞。
借助Python計算機語言的Sklearn插件包對預處理后的體質(zhì)健康測試數(shù)據(jù)進行K-means 聚類分析,分別計算1 到16 個類的關(guān)系圖,觀察拐點。其計算結(jié)果如圖5所示。
圖5 K值與SSE關(guān)系圖(左:男生,右:女生)
從圖中可見,在男生及女生的體質(zhì)類型聚類結(jié)果中,當K取值在8左右,曲線開始逐漸平緩,因此可分8個類較為合適。
Z-Score 標準分反映的是所得數(shù)據(jù)距離平均值有幾個標準差,Z-Score標準分距離0值越遠,數(shù)據(jù)距離平均數(shù)就越大,說明該素質(zhì)越優(yōu)秀或越差。
由表3 可知,第一類男生的體型偏離1.251 個標準差,速度和耐力數(shù)值低于一個標準差以上,其他指標也比平均值低,該類型男生屬于體型偏胖型,肥胖限制了他的活動能力。第二類男生整體指標均低于平均成績,體型偏瘦,耐力較差,心肺功能較弱。第三類男生體型低于平均值0.752個標準差,力量及機能低于平均值0.261 個標準差,該類型男生體型偏瘦,雖然較為靈活,且短距離速度較快,但缺乏力量,并且心肺功能薄弱。第四類男生的機能、力量、體型在平均之上,而速度、靈敏、耐力指標低于平均值,尤其是耐力指標低于平均值1.561 個標準差,該類型男生較為強壯,肌肉強健有力,但耐力較差,移動速度差,屬于耐力缺乏型。第五類男生的速度素質(zhì)、靈敏素質(zhì)較為優(yōu)秀,而機能、耐力和體型指標低于平均值,該類型男生體型偏瘦,體脂率較低,屬于身手矯健型,爆發(fā)力較高,但耐力略差。第六類男生的大部分數(shù)據(jù)都高于平均水平,尤其是速度、耐力、靈敏方面較強,體脂率較低,耐力較好。第七類男生的速度、力量、柔韌、體型高于平均水平,耐力、機能、靈敏略差,屬于爆發(fā)力型。第八類男生的體質(zhì)狀況較為平庸,沒有特別差的方面,但也沒有特別突出的方面。
表3 K-means聚類后男生的各體質(zhì)類型的Z-Score標準分平均值
由表4可知,第一類女生的耐力素質(zhì)較強,高于平均水平0.603 個標準差,機能、速度、靈敏能力較強,體態(tài)偏瘦,輕盈的體態(tài)讓她善于奔跑,因此耐力素質(zhì)較好,但相對來說力量發(fā)展偏弱。第二類女生力量素質(zhì)較差,耐力素質(zhì)相對較好。第三類女生的各個指標均低于平均水平,尤其是耐力素質(zhì)低于平均值1.270個標準差,屬于瘦弱型,整體素質(zhì)偏低,體質(zhì)健康水平較差。第四類女生體型數(shù)值高于平均值0.538個標準差,耐力素質(zhì)數(shù)值低于平均數(shù)值0.903個標準差,機能高于平均水平0.895個標準差,該類型女生體型偏胖,肺活量大,有一定的力量,但耐力水平較低。第五類女生的體型高于平均水平1.736個標準差,耐力素質(zhì)及速度素質(zhì)很差,該類型女生屬于肥胖型。第六類女生女體身體素質(zhì)較好,多數(shù)指標高于平均值,屬于爆發(fā)力型。第七類女生的機能、耐力、力量指標高于平均水平,但速度和靈敏較差。第八類女生的各個指標數(shù)據(jù)距離平均水平相差不大,多數(shù)指標標準差不超過0.1。
表4 K-means聚類后女生的各體質(zhì)類型的Z-Score標準分平均值
3.2.3 基于BP 人工神經(jīng)網(wǎng)絡的體質(zhì)評價模型訓練與預測
BP神經(jīng)網(wǎng)絡是一種有監(jiān)督學習網(wǎng)絡,是1986年由Rumelhart 和McClelland 為首的科學家提出的概念,是一種按照誤差反向傳播算法訓練的多層前饋神經(jīng)網(wǎng)絡,是目前應用最廣泛的神經(jīng)網(wǎng)絡[9,10]。
基本BP 算法包括信號的正向傳播和誤差的反向傳播2 個過程(見圖6)。正向傳播過程,即前饋過程,輸入信號通過隱藏層作用于輸出節(jié)點,經(jīng)過非線性變換,產(chǎn)生輸出信號[11]。在正向傳播過程中,隱藏層各個神經(jīng)節(jié)點的計算公式如下:
圖6 BP神經(jīng)網(wǎng)絡訓練學習過程
式(3)中,輸入層共有n個節(jié)點,Xi為輸入層第i個的輸入值,vij輸入層節(jié)點i 至隱藏層節(jié)點j 之間的權(quán)重,f(·)為激活函數(shù),bj為偏置,Hj為隱藏層第j個神經(jīng)元輸出。輸出層各個節(jié)點計算公式同隱藏層。
一次正向傳播結(jié)束后,計算期望輸出與實際輸出之間的總誤差,公式如下:
公式中,Tk為第k 個節(jié)點的期望輸出,Ok為第k 個節(jié)點的實際輸出,若實際輸出與期望輸出不相符,誤差未達到期望值,則轉(zhuǎn)入誤差的反向傳播過程。誤差反傳是將輸出誤差通過隱藏層向輸入層逐層反傳,并將誤差分攤給各層所有單元,以從各層獲得的誤差信號作為調(diào)整各單元權(quán)值的依據(jù)。
計算隱藏層和輸出層之間的權(quán)重wjk對整體誤差產(chǎn)生的影響,可以用總誤差對wjk求偏導,該偏導可以使用鏈式法表示,具體如下:
求導后得到
最后新的Wjk調(diào)整為
公式中,η為學習率,影響著網(wǎng)絡學習速率,如果學習速率太小,則會使收斂過慢,如果學習速率太大,則會導致代價函數(shù)振蕩。
用同樣的方法可以更新其他權(quán)重的值,在實際訓練中不停地迭代,通過調(diào)整輸入節(jié)點與隱層節(jié)點的權(quán)重,隱層節(jié)點與輸出節(jié)點的權(quán)重以及閾值,使誤差沿梯度方向下降,最終使得總誤差達到期望值,訓練即告停止。此時,經(jīng)過訓練的神經(jīng)網(wǎng)絡,即能對類似樣本的輸入信息,自行處理輸出誤差最小的經(jīng)過非線性轉(zhuǎn)換的信息。
該研究運用Python 語言及Keras 人工神經(jīng)網(wǎng)絡框架,進行學習模型的設(shè)計、調(diào)試、評估、應用等操作。首先,運用Keras 框架構(gòu)建前饋神經(jīng)網(wǎng)絡,建立全連接網(wǎng)絡層(Dense 層)。其次,將男、女學生的預處理后的數(shù)據(jù)作為輸入,K-means聚類分析結(jié)果作為輸出,訓練網(wǎng)絡,得到數(shù)學模型。最后,使用測試樣本數(shù)據(jù)集輸入網(wǎng)絡模型,將模型預測得到的類型與實際類型進行比較,以此驗證模型的準確度和誤差,如果獲得的模型預測結(jié)果準確度較差,可以通過調(diào)整模型參數(shù)或是加大樣本量,再次訓練網(wǎng)絡,通過不斷地調(diào)整、優(yōu)化,使網(wǎng)絡模型達到理想狀態(tài)。
從網(wǎng)絡訓練結(jié)果可知(見表5),男生數(shù)據(jù)經(jīng)過20次迭代后,在測試數(shù)據(jù)集上預測精度達到94.3%,女生數(shù)據(jù)經(jīng)過20次迭代后,在測試數(shù)據(jù)集上預測精度達到93.7%。說明模型對學生體質(zhì)類型判別的準確性較高。將訓練好的Keras 神經(jīng)網(wǎng)絡模型保存為單個HDF5 文件中。當利用該模型判斷某名學生體質(zhì)類型時,運用load_model(filepath)方法加載模型,并使用model.predict()方法進行判斷(見圖7和圖8)。
圖7 男生神經(jīng)網(wǎng)絡訓練精度與損失
圖8 女生神經(jīng)網(wǎng)絡訓練精度與損失
表5 BP神經(jīng)網(wǎng)絡訓練及測試結(jié)果
K-means 聚類分析結(jié)果表明,男女大學生體質(zhì)可分為八類,不同類型具有不同的體質(zhì)特點。利用聚類分析數(shù)據(jù)訓練BP 神經(jīng)網(wǎng)絡,建立體質(zhì)評價模型,精確度達到94%以上。由此可知,基于K-means 聚類和BP神經(jīng)網(wǎng)絡建立的體質(zhì)評價模型,能夠較為準確地判斷大學生的體質(zhì)類型,可以作為自動化、精準化評價大學生體質(zhì)類型的基礎(chǔ)算法。