楊如民,雷倩,余成波
(重慶理工大學(xué)電氣與電子工程學(xué)院,重慶 400054)
隨著社會(huì)的發(fā)展,職場(chǎng)壓力不斷加大,從事腦力工作的人數(shù)和工作時(shí)間都大幅增加,越來(lái)越多的人正在經(jīng)歷著過(guò)勞現(xiàn)象。精神疲勞會(huì)使人產(chǎn)生倦怠情緒,心煩意亂、注意力降低、判斷決策能力低下等心理問(wèn)題,長(zhǎng)期疲勞更會(huì)間接導(dǎo)致心腦血管疾病、糖尿病和癌癥等一系列慢病疾病風(fēng)險(xiǎn)[1-3]。經(jīng)研究表明,過(guò)度工作導(dǎo)致的精神疲勞會(huì)引發(fā)中風(fēng)和過(guò)勞死,高強(qiáng)度的工作也會(huì)增加心血管疾病的發(fā)生概率。因此,能夠有效地檢測(cè)并避免精神疲勞是非常值得研究的[4-5]。
目前評(píng)估精神疲勞的方法主要分為主觀(guān)表量法和客觀(guān)測(cè)量法。主觀(guān)表量法即為通過(guò)自己對(duì)自身情況的評(píng)估和他人根據(jù)被試者的當(dāng)前生理表現(xiàn)(眨眼頻率、打哈欠次數(shù)、表情是否麻木、目光是否呆滯等)來(lái)判斷。常用的疲勞量表有斯坦福嗜睡量表(Stanford sleepiness scale,SSS)、查爾德疲勞量表(Chard fatigue scale,CFS)等[6]。客觀(guān)測(cè)量法即為通過(guò)儀器設(shè)備對(duì)人體生理參數(shù)的記錄來(lái)評(píng)判疲勞程度。目前通用的檢測(cè)疲勞的方法有腦電、肌電、心電、眼電檢測(cè)[7]。其中,主觀(guān)表量法雖簡(jiǎn)單高效,但人為因素導(dǎo)致測(cè)量精度較低。客觀(guān)測(cè)量法有較強(qiáng)的說(shuō)服性和較高的準(zhǔn)確性,但需要復(fù)雜的測(cè)量?jī)x器及繁瑣的信號(hào)采集方式。
光電容積脈搏傳感器是一種非侵入性光電測(cè)量技術(shù),具有裝置簡(jiǎn)單、結(jié)構(gòu)緊湊、易于攜帶且不會(huì)對(duì)人體造成損傷的優(yōu)點(diǎn)[8]。利用光電容積脈搏波信號(hào)(photoplethysmographic,PPG)進(jìn)行疲勞檢測(cè)已成為中外學(xué)者研究熱潮。于露等[9]利用光電容積脈搏波對(duì)有限空間的載人進(jìn)行實(shí)驗(yàn),比較疲勞與未疲勞狀態(tài)下信號(hào)特征參數(shù),得出在疲勞狀態(tài)下,脈搏波傳導(dǎo)周期增大;同時(shí),脈搏信號(hào)下降沿斜率增大表征著外周血管阻力增大;脈搏信號(hào)上升沿斜率增大表征著心臟收縮射血量減小及射血速度減慢等有益結(jié)論。Dang等[10]對(duì)脈搏信號(hào)采用自適應(yīng)尋峰算法提取R峰,根據(jù)R-R間期計(jì)算心率從而進(jìn)行人體疲勞檢測(cè)。Dibyanshu等[11]根據(jù)PPG信號(hào)重建呼吸模式來(lái)評(píng)估人體精神疲勞。以上方法在疲勞檢測(cè)中都取得了較好的成果,不足之處在于采用單一的特征來(lái)表征疲勞狀態(tài),從而導(dǎo)致檢測(cè)精度較低。李鑫等[12]使用波形分析方法提取表征駕駛疲勞的特征指標(biāo),構(gòu)建駕駛疲勞等級(jí)特征指標(biāo)集,在此基礎(chǔ)上引入證據(jù)理論建立了基于多特征融合的駕駛疲勞檢測(cè)模型,使疲勞檢測(cè)精度提高到91.8%。但由于對(duì)特征值選擇和分類(lèi)分散進(jìn)行,造成特征值過(guò)度冗余,計(jì)算量大。
綜上所述,現(xiàn)有的疲勞檢測(cè)算法普遍存在精度低、而計(jì)算復(fù)雜度高的問(wèn)題,難以對(duì)精神疲勞進(jìn)行精準(zhǔn)量化評(píng)估。為此,提出了一種基于BA-RFC和脈搏波的疲勞檢測(cè)模型。針對(duì)傳統(tǒng)的單特征算法精度較差的問(wèn)題,利用光電容積脈搏傳感器提取脈搏波的多個(gè)特征建立特征集;針對(duì)傳統(tǒng)多特征融合算法冗余度高計(jì)算量大的缺點(diǎn),先利用蝙蝠算法(bat algorithm,BA)進(jìn)行迭代搜索,得到全局最優(yōu)解坐標(biāo)——即全局最優(yōu)決策樹(shù)樹(shù)數(shù)和全局最優(yōu)分類(lèi)特征數(shù)。進(jìn)而把這些最優(yōu)參數(shù)代入隨機(jī)森林分類(lèi)算法(random forest classification,RFC)對(duì)原特征向量集合進(jìn)行排序、篩選,得出疲勞相關(guān)性較高的特征組,并進(jìn)行疲勞檢測(cè)。
實(shí)驗(yàn)數(shù)據(jù)采集裝置為AFE4403EVM套件,該套件使用(serial peripheral interface,SPI)與外部主機(jī)處理器通信,可用于脈搏波信號(hào)實(shí)時(shí)采集。實(shí)驗(yàn)采集對(duì)象為25名無(wú)重大疾病(心臟病、高血壓等)的健康大學(xué)生,年齡在20~26歲,實(shí)驗(yàn)前要求被試者正常作息,不喝咖啡、茶、功能飲料等提神飲品。實(shí)驗(yàn)分為3個(gè)時(shí)間段(8:00—9:00、13:00—14:00、20:00—21:00)進(jìn)行,每個(gè)時(shí)間段進(jìn)行一次實(shí)驗(yàn)。實(shí)驗(yàn)過(guò)程中被試者除了正常吃飯、學(xué)習(xí)、工作,還額外安排了大量論文閱讀。實(shí)驗(yàn)分為兩步進(jìn)行,第一部分為PPG信號(hào)的測(cè)量,使用采集裝置采集2~3 min的脈搏波形,共采集3次;第二部分為當(dāng)前疲勞程度主觀(guān)判斷,首先被試者需要完成一套測(cè)評(píng),計(jì)算測(cè)評(píng)得分在九級(jí)(Karolinska sleepiness scale,KSS)疲勞量表(表1)上對(duì)應(yīng)的等級(jí)來(lái)記錄當(dāng)前自測(cè)疲勞等級(jí)K1,其次安排一位觀(guān)察員來(lái)對(duì)被試者進(jìn)行問(wèn)題詢(xún)問(wèn)和觀(guān)測(cè),通過(guò)詢(xún)問(wèn)結(jié)果得到進(jìn)行評(píng)價(jià)并記錄下他測(cè)疲勞等級(jí)K2。最后綜合自測(cè)和他測(cè)結(jié)果綜合判斷當(dāng)前疲勞等級(jí),若K1、K2值相等則任取一個(gè),若兩者不相同則通過(guò)式(1)計(jì)算出當(dāng)前疲勞等級(jí)K。
表1 九級(jí)KSS疲勞量
K=[0.4K1+0.6K2]
(1)
式(1)中:[·]表示取整。
由于PPG信號(hào)是微弱信號(hào),采集的信號(hào)會(huì)有較大誤差,需要PPG信號(hào)通過(guò)濾波過(guò)濾掉噪聲以得到較完整的波形,再?gòu)闹刑崛√卣鼽c(diǎn)并計(jì)算表征生理參數(shù)特征。大量的人體生理信息可以在脈搏波中體現(xiàn),疲勞狀態(tài)也不例外,隨著人體疲勞程度的變化,脈搏波也會(huì)隨之變化。因此,可以根據(jù)脈搏波特征來(lái)判斷人體疲勞狀況。PPG信號(hào)主要分為時(shí)域特征和頻域特征,時(shí)域特征是對(duì)脈搏波信號(hào)時(shí)域圖中在時(shí)間軸上通過(guò)對(duì)脈搏波的周期、夾角、速度、面積、波形幅值等參數(shù)的分析[13],通過(guò)相關(guān)計(jì)算得到的特征。如脈搏波相對(duì)幅值、心動(dòng)周期、收縮壓舒張壓面積、每搏輸出量、心跳間隔、脈搏壓變異率、心率、血氧飽和度值等。頻域特征是對(duì)時(shí)域波形進(jìn)行傅立葉變化得到,其主要頻域特征包含功率譜值,倒譜,譜能比等。擬提取的20個(gè)PPG特征如表2所示。
表2 脈搏波特征
隨機(jī)森林(random forest,RF)是由決策樹(shù)組合的集成學(xué)習(xí)模型,決策樹(shù)是一種樹(shù)形結(jié)構(gòu),其內(nèi)部各節(jié)點(diǎn)表示各類(lèi)屬性判斷,各分支表示各判斷結(jié)果的輸出,各葉節(jié)點(diǎn)代表各分類(lèi)結(jié)果。但由于用單個(gè)決策樹(shù)來(lái)分類(lèi)存在較大方差,因此,隨機(jī)森林的引入便能跨越單決策樹(shù)的限制,減少方差,達(dá)到更佳的分類(lèi)精度。隨機(jī)森林在多棵決策樹(shù)的思想上提出了兩個(gè)隨機(jī),一是訓(xùn)練集的隨機(jī)生成,通過(guò)bootstrap從原始數(shù)據(jù)有放回地集中隨機(jī)抽取產(chǎn)生每棵樹(shù)的訓(xùn)練數(shù)據(jù);二是特征子集的隨機(jī)選擇,從N個(gè)特征變量中,隨機(jī)抽取小于n(n 圖1 隨機(jī)森林原理圖 蝙蝠算法是基于群體智能理論所提出的啟發(fā)式尋優(yōu)算法,是基于粒子群算法的改進(jìn)提高[15]。蝙蝠算法是通過(guò)模擬蝙蝠獵食過(guò)程來(lái)實(shí)現(xiàn)尋優(yōu),所有的蝙蝠都是以固定頻率fi、在位置xi處速度vi來(lái)隨機(jī)飛行的,在飛行過(guò)程中通過(guò)回聲定位及自動(dòng)調(diào)節(jié)波長(zhǎng)和響度來(lái)判斷獵物的位置。蝙蝠在捕獵初期會(huì)發(fā)出發(fā)射率小,響度大的脈沖來(lái)搜索獵物,而靠近獵物時(shí),蝙蝠則會(huì)調(diào)節(jié)脈沖變?yōu)榘l(fā)射率逐漸升高、響度變小去接近捕捉獵物。其迭代原理如下。 (2) 用式(2)在搜索空間隨機(jī)產(chǎn)生。 xij=Lj+rand(Uj-Lj) (3) 式中:n為所求問(wèn)題的維度;xij為蝙蝠i第j代的位置坐標(biāo);Lj和Uj分別為xij的上下界;M為蝙蝠的種群數(shù);j=1,2,…,n;rand為[0,1]中符合均勻分布的隨機(jī)數(shù)。 隨后,根據(jù)式(3)~式(8)對(duì)參數(shù)進(jìn)行更新[16]。 fi=fmin+(fmax-fmin)β,β∈[0,1] (4) (5) (6) Xnew=X*+εAT,ε∈[-1,1] (7) (8) (9) 隨機(jī)森林算法中多個(gè)參數(shù)的設(shè)定都會(huì)對(duì)整個(gè)模型輸出結(jié)果產(chǎn)生一些影響,如決策樹(shù)數(shù)目L、分裂特征數(shù)m、預(yù)測(cè)試樣本數(shù)X、剪枝閾值ε′。傳統(tǒng)的參數(shù)設(shè)定都是根據(jù)經(jīng)驗(yàn)而來(lái),為了提高輸出結(jié)果分類(lèi)精度,引入蝙蝠算法來(lái)優(yōu)化參數(shù)L和m。 優(yōu)化后的隨機(jī)森林算法中,將RF中的L、m兩參數(shù)作為蝙蝠算法中的蝙蝠的兩個(gè)坐標(biāo)位置,每個(gè)蝙蝠都具有速度和位置兩個(gè)屬性,分別代表蝙蝠移動(dòng)的快慢和方向。每個(gè)蝙蝠在解空間中單獨(dú)搜尋最優(yōu)解記為當(dāng)前極值,找到局部最優(yōu)。等到下次循環(huán)時(shí),與其他蝙蝠共享,通過(guò)學(xué)習(xí)自身歷史經(jīng)驗(yàn)和種群歷史經(jīng)驗(yàn),與上一次位置比較后調(diào)整自己的位置和速度,最終找到一個(gè)全局最優(yōu)解。優(yōu)化算法具體步驟如下,算法原理如圖2所示。 圖2 BA-RFC算法原理圖 步驟1參數(shù)初始化,設(shè)定算法的最大迭代次數(shù),群體規(guī)模為M,每個(gè)蝙蝠的位置為xi,速度為vi,其中蝙蝠位置由RF中的L、m賦值。 步驟2設(shè)置蝙蝠當(dāng)前位置為個(gè)體最優(yōu)位置,將蝙蝠代入隨機(jī)森林模型中,計(jì)算每個(gè)蝙蝠的適應(yīng)度,即袋外數(shù)據(jù)誤差eodb記任一個(gè)適應(yīng)度值作為當(dāng)前全局極值Pbest。 步驟3對(duì)每個(gè)蝙蝠比較其適應(yīng)度值和個(gè)體極值,取大值記為當(dāng)前個(gè)體極值Pg。 步驟4迭代計(jì)算,更新蝙蝠位置、速度。 步驟5將每次RF算法運(yùn)行的結(jié)果反饋到蝙蝠算法中,更新適應(yīng)度值。 步驟6將更新后的每個(gè)蝙蝠的Pg與全局極值Pbest比較,取大值來(lái)更新Pbest。 步驟7是否達(dá)到最大迭代次數(shù)或Pbest不再更新,則終止,否則返回到步步驟4。 步驟8輸出此時(shí)的L和m。 最后用優(yōu)化后的隨機(jī)森林進(jìn)行建模。由于從脈搏波形中提取到的特征眾多,但并不是所有特征都能夠作為判別疲勞等級(jí)的依據(jù),為了避免維度災(zāi)難(特征維度增加反而使得分類(lèi)準(zhǔn)確度降低,將進(jìn)行特征選擇。用優(yōu)化后的隨機(jī)森林算法先對(duì)采集到的20個(gè)PPG特征根據(jù)疲勞檢測(cè)相關(guān)度高低進(jìn)行排序,篩選出前10個(gè)特征,再用篩選后的特征進(jìn)行疲勞檢測(cè)。 25名被試者分別在2 d的3個(gè)時(shí)間段進(jìn)行6次實(shí)驗(yàn),每次實(shí)驗(yàn)多次測(cè)量,在排除設(shè)備不穩(wěn)定性及其他特殊情況所導(dǎo)致的異常值和缺失值后,取最好一組波形用于后續(xù)研究。綜合主觀(guān)量表結(jié)果和檢測(cè)波形,最終獲取150組帶疲勞標(biāo)簽的數(shù)據(jù)。 疲勞檢測(cè)是將KSS主觀(guān)量表檢測(cè)結(jié)果與該結(jié)果對(duì)應(yīng)的脈搏波結(jié)合進(jìn)行疲勞分析。KSS主觀(guān)量表將疲勞等級(jí)分為了九級(jí),劃分過(guò)于詳細(xì),而在實(shí)際應(yīng)用中多將疲勞分為是、否兩類(lèi)。因此,將該量表進(jìn)行了簡(jiǎn)化,將疲勞狀態(tài)分為“清醒”“臨界疲勞”“疲勞”3種狀態(tài),如表3所示。再用化簡(jiǎn)后的疲勞等級(jí)進(jìn)行疲勞分類(lèi)。 表3 簡(jiǎn)化后三級(jí)疲勞狀態(tài) 采用隨機(jī)森林算法進(jìn)行疲勞檢測(cè),隨機(jī)森林參數(shù)選擇會(huì)直接影響隨機(jī)森林預(yù)測(cè)結(jié)果。從圖3可以看出,隨機(jī)森林預(yù)測(cè)的準(zhǔn)確率會(huì)因隨機(jī)森林的樹(shù)數(shù)和分裂特征數(shù)改變而改變。圖3為操作員手動(dòng)變化參數(shù)設(shè)定值得到的疲勞檢測(cè)精度結(jié)果,隨機(jī)森林中兩參數(shù)選擇過(guò)少或過(guò)多都會(huì)導(dǎo)致疲勞檢測(cè)精度降低,選擇樹(shù)數(shù)為20棵,特征分裂數(shù)選擇在5個(gè)時(shí)疲勞監(jiān)測(cè)準(zhǔn)確度最高。 圖3 參數(shù)選擇對(duì)疲勞檢測(cè)精度影響 但是手動(dòng)對(duì)參數(shù)尋優(yōu)又過(guò)于復(fù)雜且不準(zhǔn)確,為了尋求隨機(jī)森林算法最優(yōu)參數(shù),采用蝙蝠算法對(duì)隨機(jī)森林的參數(shù)進(jìn)行迭代,尋求全局最優(yōu)解即找到最優(yōu)樹(shù)數(shù)和特征分裂數(shù)。如表4所示,BA-RFC算法在5次實(shí)驗(yàn)中最優(yōu)解都不同,所得最優(yōu)樹(shù)數(shù)在15~35棵,最優(yōu)特征分裂數(shù)在4~7個(gè),該算法尋優(yōu)結(jié)果與手動(dòng)尋優(yōu)結(jié)果范圍接近。因此,蝙蝠算法能夠找到隨機(jī)森林的最優(yōu)參數(shù)。 表4 BA-RFC參數(shù)尋優(yōu)結(jié)果 用表2中特征提取公式對(duì)預(yù)處理后的脈搏信號(hào)進(jìn)行特征提取,得到20維特征向量。但不是所有特征向量都能表征疲勞,為了找到與疲勞相關(guān)性較高的特征向量,將用優(yōu)化后的BP-RFC算法對(duì)20組特征向量進(jìn)行表征疲勞重要程度排序。由圖4可以看出,每個(gè)特征表征疲勞程度能力越強(qiáng),柱形圖幅值越高,說(shuō)明該組特征集合對(duì)當(dāng)前樣本有更好的區(qū)分能力即與疲勞相關(guān)度越高。第4、6、7、8、11、12、13、14、17、19組特征表征疲勞能力的貢獻(xiàn)重要程度在3~14,有較好的表征疲勞能力,其中最優(yōu)的是第14組。 圖4 疲勞特征重要度占比 20維特征向量表征疲勞程度能力有高有低,因此這20特征向量中很可能包含了大量無(wú)關(guān)信息和冗余信息,若直接用于疲勞檢測(cè)不僅增加了模型的計(jì)算復(fù)雜度甚至可能會(huì)使模型的精度下降,因此特征選擇顯得尤為重要。根據(jù)上圖排序結(jié)果可篩選出的前10組重要性較高的特征:NNmean、PNN50、SDNN、LF/HF、CTR、Wi、SV、CO、S∧R、LF。 為了驗(yàn)證排序結(jié)果的準(zhǔn)確性,分別用這10組特征單獨(dú)進(jìn)行疲勞檢測(cè),檢測(cè)結(jié)果如圖5所示??梢钥闯觯S著特征重要程度增加,單獨(dú)特征疲勞檢測(cè)結(jié)果雖然有微小波動(dòng),但整體趨勢(shì)和原始數(shù)據(jù)趨勢(shì)相似,都呈上升狀態(tài)。因此,優(yōu)化后的隨機(jī)森林算法對(duì)特征表征疲勞狀態(tài)能力排序結(jié)果準(zhǔn)確。 圖5 特征重要程度排序?qū)Ρ?/p> 通過(guò)對(duì)比特征選擇前后疲勞程度識(shí)別結(jié)果,用20維特征向量平均識(shí)別準(zhǔn)確率為95.82%,10維特征向量平均識(shí)別準(zhǔn)確率為96.67%。特征選擇后不僅提高了識(shí)別精度,還降低了模型計(jì)算復(fù)雜度。因此,將選擇這10組特征向量進(jìn)行后續(xù)疲勞檢測(cè)。 為了提高疲勞檢測(cè)精度,引入蝙蝠算法進(jìn)行優(yōu)化隨機(jī)森林算法,并分別用優(yōu)化前后隨機(jī)森林算法檢測(cè)疲勞。由圖6對(duì)比可得,兩算法中疲勞數(shù)據(jù)與分類(lèi)標(biāo)簽基本重合,都有較好的識(shí)別能力,但RFC算法還有少量數(shù)據(jù)并未重合。再由分類(lèi)結(jié)果計(jì)算出識(shí)別精度可得,RFC算法的識(shí)別精度為93.33%,BA-RFC算法的識(shí)別精度為96.77%,優(yōu)化后的疲勞檢測(cè)精度有明顯提升。 圖6 優(yōu)化前后疲勞識(shí)別結(jié)果對(duì)比 基于PPG信號(hào)分析,通過(guò)光電容積脈搏波采集設(shè)備為當(dāng)代腦力工作者精神疲勞實(shí)時(shí)監(jiān)測(cè)提供了一種可行性方案。在模擬腦力工作場(chǎng)景下,通過(guò)主觀(guān)表量法和客觀(guān)測(cè)量法結(jié)合進(jìn)行疲勞檢測(cè)。為解決單特征算法精度差及多特征融合算法冗余度高計(jì)算量大的問(wèn)題。提出了一種基于BA-RFC和脈搏波的疲勞檢測(cè)模型。本文模型首先用光電容積脈搏傳感器提取脈搏波的多個(gè)特征建立特征集;再用蝙蝠算法迭代尋取隨機(jī)森林算法最優(yōu)參數(shù)—全局最優(yōu)決策樹(shù)樹(shù)數(shù)及全局最優(yōu)分裂特征數(shù)。并用優(yōu)化后的BA-RFC算法對(duì)多特征集合進(jìn)行特征選擇及疲勞狀態(tài)識(shí)別。得出如下結(jié)論。 (1)用BA-RFC算法基于檢測(cè)精度篩選得到表征疲勞重要程度前10種特征:NNmean、PNN50、SDNN、LF/HF、CTR、Wi、SV、CO、S∧R、LF。并對(duì)比特征選擇前后疲勞檢測(cè)結(jié)果,發(fā)現(xiàn)降維后疲勞檢測(cè)用時(shí)更短、識(shí)別精度有所提高。 (2)采用改進(jìn)后的BA-RFC算法有效提高了疲勞檢測(cè)精度,且精度達(dá)到了96.77%,比RFC算法的檢測(cè)精度平均提高了3.44%。 因此,本文模型在提高疲勞檢測(cè)精度的同時(shí)還解決了計(jì)算復(fù)雜度較高的問(wèn)題。但特征選擇的維數(shù)是根據(jù)經(jīng)驗(yàn)而定,還不夠嚴(yán)謹(jǐn),該維數(shù)還可以通過(guò)算法計(jì)算得出,因而還具有進(jìn)一步優(yōu)化的空間。人體精神疲勞不僅會(huì)影響工作、學(xué)習(xí)效率,而且長(zhǎng)期的精神疲勞會(huì)對(duì)危害人體健康,研究疲勞狀態(tài)識(shí)別具有重大的現(xiàn)實(shí)意義。將人體微弱信號(hào)與人體精神疲勞的關(guān)系進(jìn)行了探索分析,對(duì)未來(lái)進(jìn)一步研究人體精神疲勞、有效預(yù)測(cè)并防御等問(wèn)題提供了參考。2.2 蝙蝠算法
2.3 基于蝙蝠算法參數(shù)尋優(yōu)的隨機(jī)森林優(yōu)化算法
3 疲勞監(jiān)測(cè)結(jié)果與分析
3.1 BA-RFC算法驗(yàn)證
3.2 基于BA-RFC算法疲勞檢測(cè)
4 結(jié)論