基于蝙蝠算法-随机森林分类算法和脉搏波的精神疲劳检测算法

2022-02-28 08:58杨如民雷倩余成波
科学技术与工程 2022年4期
关键词:脉搏特征向量蝙蝠

杨如民,雷倩,余成波

(重庆理工大学电气与电子工程学院,重庆 400054)

随着社会的发展,职场压力不断加大,从事脑力工作的人数和工作时间都大幅增加,越来越多的人正在经历着过劳现象。精神疲劳会使人产生倦怠情绪,心烦意乱、注意力降低、判断决策能力低下等心理问题,长期疲劳更会间接导致心脑血管疾病、糖尿病和癌症等一系列慢病疾病风险[1-3]。经研究表明,过度工作导致的精神疲劳会引发中风和过劳死,高强度的工作也会增加心血管疾病的发生概率。因此,能够有效地检测并避免精神疲劳是非常值得研究的[4-5]。

目前评估精神疲劳的方法主要分为主观表量法和客观测量法。主观表量法即为通过自己对自身情况的评估和他人根据被试者的当前生理表现(眨眼频率、打哈欠次数、表情是否麻木、目光是否呆滞等)来判断。常用的疲劳量表有斯坦福嗜睡量表(Stanford sleepiness scale,SSS)、查尔德疲劳量表(Chard fatigue scale,CFS)等[6]。客观测量法即为通过仪器设备对人体生理参数的记录来评判疲劳程度。目前通用的检测疲劳的方法有脑电、肌电、心电、眼电检测[7]。其中,主观表量法虽简单高效,但人为因素导致测量精度较低。客观测量法有较强的说服性和较高的准确性,但需要复杂的测量仪器及繁琐的信号采集方式。

光电容积脉搏传感器是一种非侵入性光电测量技术,具有装置简单、结构紧凑、易于携带且不会对人体造成损伤的优点[8]。利用光电容积脉搏波信号(photoplethysmographic,PPG)进行疲劳检测已成为中外学者研究热潮。于露等[9]利用光电容积脉搏波对有限空间的载人进行实验,比较疲劳与未疲劳状态下信号特征参数,得出在疲劳状态下,脉搏波传导周期增大;同时,脉搏信号下降沿斜率增大表征着外周血管阻力增大;脉搏信号上升沿斜率增大表征着心脏收缩射血量减小及射血速度减慢等有益结论。Dang等[10]对脉搏信号采用自适应寻峰算法提取R峰,根据R-R间期计算心率从而进行人体疲劳检测。Dibyanshu等[11]根据PPG信号重建呼吸模式来评估人体精神疲劳。以上方法在疲劳检测中都取得了较好的成果,不足之处在于采用单一的特征来表征疲劳状态,从而导致检测精度较低。李鑫等[12]使用波形分析方法提取表征驾驶疲劳的特征指标,构建驾驶疲劳等级特征指标集,在此基础上引入证据理论建立了基于多特征融合的驾驶疲劳检测模型,使疲劳检测精度提高到91.8%。但由于对特征值选择和分类分散进行,造成特征值过度冗余,计算量大。

综上所述,现有的疲劳检测算法普遍存在精度低、而计算复杂度高的问题,难以对精神疲劳进行精准量化评估。为此,提出了一种基于BA-RFC和脉搏波的疲劳检测模型。针对传统的单特征算法精度较差的问题,利用光电容积脉搏传感器提取脉搏波的多个特征建立特征集;针对传统多特征融合算法冗余度高计算量大的缺点,先利用蝙蝠算法(bat algorithm,BA)进行迭代搜索,得到全局最优解坐标——即全局最优决策树树数和全局最优分类特征数。进而把这些最优参数代入随机森林分类算法(random forest classification,RFC)对原特征向量集合进行排序、筛选,得出疲劳相关性较高的特征组,并进行疲劳检测。

1 人体疲劳状态数据采集及特征提取

1.1 数据准备

实验数据采集装置为AFE4403EVM套件,该套件使用(serial peripheral interface,SPI)与外部主机处理器通信,可用于脉搏波信号实时采集。实验采集对象为25名无重大疾病(心脏病、高血压等)的健康大学生,年龄在20~26岁,实验前要求被试者正常作息,不喝咖啡、茶、功能饮料等提神饮品。实验分为3个时间段(8:00—9:00、13:00—14:00、20:00—21:00)进行,每个时间段进行一次实验。实验过程中被试者除了正常吃饭、学习、工作,还额外安排了大量论文阅读。实验分为两步进行,第一部分为PPG信号的测量,使用采集装置采集2~3 min的脉搏波形,共采集3次;第二部分为当前疲劳程度主观判断,首先被试者需要完成一套测评,计算测评得分在九级(Karolinska sleepiness scale,KSS)疲劳量表(表1)上对应的等级来记录当前自测疲劳等级K1,其次安排一位观察员来对被试者进行问题询问和观测,通过询问结果得到进行评价并记录下他测疲劳等级K2。最后综合自测和他测结果综合判断当前疲劳等级,若K1、K2值相等则任取一个,若两者不相同则通过式(1)计算出当前疲劳等级K。

表1 九级KSS疲劳量

K=[0.4K1+0.6K2]

(1)

式(1)中:[·]表示取整。

1.2 PPG信号预处理及特征提取

由于PPG信号是微弱信号,采集的信号会有较大误差,需要PPG信号通过滤波过滤掉噪声以得到较完整的波形,再从中提取特征点并计算表征生理参数特征。大量的人体生理信息可以在脉搏波中体现,疲劳状态也不例外,随着人体疲劳程度的变化,脉搏波也会随之变化。因此,可以根据脉搏波特征来判断人体疲劳状况。PPG信号主要分为时域特征和频域特征,时域特征是对脉搏波信号时域图中在时间轴上通过对脉搏波的周期、夹角、速度、面积、波形幅值等参数的分析[13],通过相关计算得到的特征。如脉搏波相对幅值、心动周期、收缩压舒张压面积、每搏输出量、心跳间隔、脉搏压变异率、心率、血氧饱和度值等。频域特征是对时域波形进行傅立叶变化得到,其主要频域特征包含功率谱值,倒谱,谱能比等。拟提取的20个PPG特征如表2所示。

表2 脉搏波特征

2 优化随机森林疲劳检测方法

2.1 随机森林算法

随机森林(random forest,RF)是由决策树组合的集成学习模型,决策树是一种树形结构,其内部各节点表示各类属性判断,各分支表示各判断结果的输出,各叶节点代表各分类结果。但由于用单个决策树来分类存在较大方差,因此,随机森林的引入便能跨越单决策树的限制,减少方差,达到更佳的分类精度。随机森林在多棵决策树的思想上提出了两个随机,一是训练集的随机生成,通过bootstrap从原始数据有放回地集中随机抽取产生每棵树的训练数据;二是特征子集的随机选择,从N个特征变量中,随机抽取小于n(n

图1 随机森林原理图

2.2 蝙蝠算法

蝙蝠算法是基于群体智能理论所提出的启发式寻优算法,是基于粒子群算法的改进提高[15]。蝙蝠算法是通过模拟蝙蝠猎食过程来实现寻优,所有的蝙蝠都是以固定频率fi、在位置xi处速度vi来随机飞行的,在飞行过程中通过回声定位及自动调节波长和响度来判断猎物的位置。蝙蝠在捕猎初期会发出发射率小,响度大的脉冲来搜索猎物,而靠近猎物时,蝙蝠则会调节脉冲变为发射率逐渐升高、响度变小去接近捕捉猎物。其迭代原理如下。

(2)

用式(2)在搜索空间随机产生。

xij=Lj+rand(Uj-Lj)

(3)

式中:n为所求问题的维度;xij为蝙蝠i第j代的位置坐标;Lj和Uj分别为xij的上下界;M为蝙蝠的种群数;j=1,2,…,n;rand为[0,1]中符合均匀分布的随机数。

随后,根据式(3)~式(8)对参数进行更新[16]。

fi=fmin+(fmax-fmin)β,β∈[0,1]

(4)

(5)

(6)

Xnew=X*+εAT,ε∈[-1,1]

(7)

(8)

(9)

2.3 基于蝙蝠算法参数寻优的随机森林优化算法

随机森林算法中多个参数的设定都会对整个模型输出结果产生一些影响,如决策树数目L、分裂特征数m、预测试样本数X、剪枝阈值ε′。传统的参数设定都是根据经验而来,为了提高输出结果分类精度,引入蝙蝠算法来优化参数L和m。

优化后的随机森林算法中,将RF中的L、m两参数作为蝙蝠算法中的蝙蝠的两个坐标位置,每个蝙蝠都具有速度和位置两个属性,分别代表蝙蝠移动的快慢和方向。每个蝙蝠在解空间中单独搜寻最优解记为当前极值,找到局部最优。等到下次循环时,与其他蝙蝠共享,通过学习自身历史经验和种群历史经验,与上一次位置比较后调整自己的位置和速度,最终找到一个全局最优解。优化算法具体步骤如下,算法原理如图2所示。

图2 BA-RFC算法原理图

步骤1参数初始化,设定算法的最大迭代次数,群体规模为M,每个蝙蝠的位置为xi,速度为vi,其中蝙蝠位置由RF中的L、m赋值。

步骤2设置蝙蝠当前位置为个体最优位置,将蝙蝠代入随机森林模型中,计算每个蝙蝠的适应度,即袋外数据误差eodb记任一个适应度值作为当前全局极值Pbest。

步骤3对每个蝙蝠比较其适应度值和个体极值,取大值记为当前个体极值Pg。

步骤4迭代计算,更新蝙蝠位置、速度。

步骤5将每次RF算法运行的结果反馈到蝙蝠算法中,更新适应度值。

步骤6将更新后的每个蝙蝠的Pg与全局极值Pbest比较,取大值来更新Pbest。

步骤7是否达到最大迭代次数或Pbest不再更新,则终止,否则返回到步步骤4。

步骤8输出此时的L和m。

最后用优化后的随机森林进行建模。由于从脉搏波形中提取到的特征众多,但并不是所有特征都能够作为判别疲劳等级的依据,为了避免维度灾难(特征维度增加反而使得分类准确度降低,将进行特征选择。用优化后的随机森林算法先对采集到的20个PPG特征根据疲劳检测相关度高低进行排序,筛选出前10个特征,再用筛选后的特征进行疲劳检测。

3 疲劳监测结果与分析

25名被试者分别在2 d的3个时间段进行6次实验,每次实验多次测量,在排除设备不稳定性及其他特殊情况所导致的异常值和缺失值后,取最好一组波形用于后续研究。综合主观量表结果和检测波形,最终获取150组带疲劳标签的数据。

疲劳检测是将KSS主观量表检测结果与该结果对应的脉搏波结合进行疲劳分析。KSS主观量表将疲劳等级分为了九级,划分过于详细,而在实际应用中多将疲劳分为是、否两类。因此,将该量表进行了简化,将疲劳状态分为“清醒”“临界疲劳”“疲劳”3种状态,如表3所示。再用化简后的疲劳等级进行疲劳分类。

表3 简化后三级疲劳状态

3.1 BA-RFC算法验证

采用随机森林算法进行疲劳检测,随机森林参数选择会直接影响随机森林预测结果。从图3可以看出,随机森林预测的准确率会因随机森林的树数和分裂特征数改变而改变。图3为操作员手动变化参数设定值得到的疲劳检测精度结果,随机森林中两参数选择过少或过多都会导致疲劳检测精度降低,选择树数为20棵,特征分裂数选择在5个时疲劳监测准确度最高。

图3 参数选择对疲劳检测精度影响

但是手动对参数寻优又过于复杂且不准确,为了寻求随机森林算法最优参数,采用蝙蝠算法对随机森林的参数进行迭代,寻求全局最优解即找到最优树数和特征分裂数。如表4所示,BA-RFC算法在5次实验中最优解都不同,所得最优树数在15~35棵,最优特征分裂数在4~7个,该算法寻优结果与手动寻优结果范围接近。因此,蝙蝠算法能够找到随机森林的最优参数。

表4 BA-RFC参数寻优结果

3.2 基于BA-RFC算法疲劳检测

用表2中特征提取公式对预处理后的脉搏信号进行特征提取,得到20维特征向量。但不是所有特征向量都能表征疲劳,为了找到与疲劳相关性较高的特征向量,将用优化后的BP-RFC算法对20组特征向量进行表征疲劳重要程度排序。由图4可以看出,每个特征表征疲劳程度能力越强,柱形图幅值越高,说明该组特征集合对当前样本有更好的区分能力即与疲劳相关度越高。第4、6、7、8、11、12、13、14、17、19组特征表征疲劳能力的贡献重要程度在3~14,有较好的表征疲劳能力,其中最优的是第14组。

图4 疲劳特征重要度占比

20维特征向量表征疲劳程度能力有高有低,因此这20特征向量中很可能包含了大量无关信息和冗余信息,若直接用于疲劳检测不仅增加了模型的计算复杂度甚至可能会使模型的精度下降,因此特征选择显得尤为重要。根据上图排序结果可筛选出的前10组重要性较高的特征:NNmean、PNN50、SDNN、LF/HF、CTR、Wi、SV、CO、S∧R、LF。

为了验证排序结果的准确性,分别用这10组特征单独进行疲劳检测,检测结果如图5所示。可以看出,随着特征重要程度增加,单独特征疲劳检测结果虽然有微小波动,但整体趋势和原始数据趋势相似,都呈上升状态。因此,优化后的随机森林算法对特征表征疲劳状态能力排序结果准确。

图5 特征重要程度排序对比

通过对比特征选择前后疲劳程度识别结果,用20维特征向量平均识别准确率为95.82%,10维特征向量平均识别准确率为96.67%。特征选择后不仅提高了识别精度,还降低了模型计算复杂度。因此,将选择这10组特征向量进行后续疲劳检测。

为了提高疲劳检测精度,引入蝙蝠算法进行优化随机森林算法,并分别用优化前后随机森林算法检测疲劳。由图6对比可得,两算法中疲劳数据与分类标签基本重合,都有较好的识别能力,但RFC算法还有少量数据并未重合。再由分类结果计算出识别精度可得,RFC算法的识别精度为93.33%,BA-RFC算法的识别精度为96.77%,优化后的疲劳检测精度有明显提升。

图6 优化前后疲劳识别结果对比

4 结论

基于PPG信号分析,通过光电容积脉搏波采集设备为当代脑力工作者精神疲劳实时监测提供了一种可行性方案。在模拟脑力工作场景下,通过主观表量法和客观测量法结合进行疲劳检测。为解决单特征算法精度差及多特征融合算法冗余度高计算量大的问题。提出了一种基于BA-RFC和脉搏波的疲劳检测模型。本文模型首先用光电容积脉搏传感器提取脉搏波的多个特征建立特征集;再用蝙蝠算法迭代寻取随机森林算法最优参数—全局最优决策树树数及全局最优分裂特征数。并用优化后的BA-RFC算法对多特征集合进行特征选择及疲劳状态识别。得出如下结论。

(1)用BA-RFC算法基于检测精度筛选得到表征疲劳重要程度前10种特征:NNmean、PNN50、SDNN、LF/HF、CTR、Wi、SV、CO、S∧R、LF。并对比特征选择前后疲劳检测结果,发现降维后疲劳检测用时更短、识别精度有所提高。

(2)采用改进后的BA-RFC算法有效提高了疲劳检测精度,且精度达到了96.77%,比RFC算法的检测精度平均提高了3.44%。

因此,本文模型在提高疲劳检测精度的同时还解决了计算复杂度较高的问题。但特征选择的维数是根据经验而定,还不够严谨,该维数还可以通过算法计算得出,因而还具有进一步优化的空间。人体精神疲劳不仅会影响工作、学习效率,而且长期的精神疲劳会对危害人体健康,研究疲劳状态识别具有重大的现实意义。将人体微弱信号与人体精神疲劳的关系进行了探索分析,对未来进一步研究人体精神疲劳、有效预测并防御等问题提供了参考。

猜你喜欢
脉搏特征向量蝙蝠
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
克罗内克积的特征向量
一类三阶矩阵特征向量的特殊求法
用心感受狗狗的脉搏
《今日评说》评今日浙江 说时代脉搏
光电式脉搏波检测系统的研究
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
蝙蝠
蝙蝠女
蝙蝠为什么倒挂着睡觉?