针对前额单通道脑电信号特征提取能力不足,导致疲劳检测精度降低的问题,本文提出一种基于有监督对比学习的疲劳特征提取及分类算法。首先,通过经典模态分解对原始信号进行滤波,提高信噪比;其次,考虑到一维信号在信息表达上的局限性,利用有重叠采样将信号转换为二维结构,同时表达信号短期内和长期间变化;由深度可分离卷积构建特征提取网络,加速模型运算;最后,通过联合有监督对比损失与均方误差损失对模型进行全局优化。实验表明,该算法对三种疲劳状态分类的平均准确度可达75.80%,相较于其它先进算法均有较大幅度提高,显著提高了单通道脑电信号进行疲劳检测的准确性与可行性。本文研究为单通道脑电信号应用提供了有力支持,也为疲劳检测研究提供了新思路。
引用本文: 杨慧舟, 刘云飞, 夏丽娟. 前额单通道脑电信号的疲劳特征提取及分类算法. 生物医学工程学杂志, 2024, 41(4): 732-741. doi: 10.7507/1001-5515.202312026 复制
0 引言
近年来,随着机动车保有量的快速增加,交通事故的发生数量也在不断增加。据统计,交通事故的首要原因是疲劳驾驶,约有20%~30%的事故发生在驾驶员降低警惕时[1]。因此,在驾驶过程中及时地向驾驶员提供警惕提醒至关重要。
目前针对驾驶员疲劳检测的研究,主要基于非生理性信息与生理性信息。基于非生理性信息的研究,大多从车辆的驾驶状态[2-4]与驾驶员的面部动作[5-7]进行判断,但获取相关信息时易受光线干扰,影响检测准确度[8]。相较于非生理性信息,生理性信号记录人体生理变化,能够更加客观地反映驾驶员的状态。尤其是脑电图(electroencephalography,EEG)直接记录神经信号,被认为是疲劳检测的黄金标准[9]。
在基于EEG信号的疲劳检测算法中,有效的特征提取是提高检测精度的关键因素。当前研究中的特征提取方式主要分为两种:手动特征提取和基于深度学习的自动特征提取。手动提取的特征集中在信号时域、频域和时频域上,以时频特征的应用最为广泛。Shi等[10]提出使用微分熵(differential entropy,DE)进行疲劳检测,并与其它四个特征的性能进行比较,实验证明DE是反映疲劳变化最稳定的EEG特征。Wu等[11]通过短时傅里叶变换提取EEG信号中的功率谱密度(power spectral density,PSD)特征,与DE特征相结合用于疲劳检测,结果显示相较于其它方法,平均误差有所减少。尽管手动提取特征在疲劳检测中已经被证实为有效方法,但该过程很大程度上依赖于专家经验,而且只能提取固定的一类或几类特征,无法完全表征EEG信号。此外,手动提取的特征在不同样本个体上的检测精度存在较大差异,鲁棒性不佳。鉴于上述问题,一些学者研究基于深度学习的特征提取网络,从EEG信号中自适应地实现特征提取,以提高算法对不同个体的适应性。Lawhern等[12]提出针对EEG信号的紧凑型神经网络(EEGNet),将EEG信号直接输入到网络中实现特征提取与分类,并使用交叉熵(cross entropy,CE)损失函数减小预测结果与真实标签的差异。Ko等[13]首先从EEG信号中提取DE特征,然后通过警戒卷积神经网络(vigilance convolutional neural network,VIGNet)进一步提取深层次特征,该方法与传统方法相比更具解释性和鲁棒性。Shi等[14]提出自动编码长短期记忆网络(autoencoder to long short-term memory network,CAE-LSTM),首先通过自动编码器对手动提取的EEG特征进行编码,然后利用长短期记忆网络(long short-term memory,LSTM)进行疲劳识别,最后使用均方误差(mean square error,MSE)作为损失函数提高分类精度,实验证明所提算法检测精度有所提高。Zhang等[15]提出LSTM与胶囊网络相结合的胶囊记忆模型(LSTM with attention capsule network,LSTM-AttCaps),通过低级胶囊层和高级胶囊层挖掘特征中的关键局部信息和全局信息。总结上述方法可知,基于深度学习的特征提取方式,除了与网络本身设计有关,还依赖于损失函数对于网络的优化,但常用的CE损失与MSE损失是通过提高预测精度间接提高网络提取特征能力,而非直接根据提取的特征对网络进行优化,因此在这些损失优化下提取出的特征,表征准确性仍有提升的空间。
目前,大多数有关EEG信号的疲劳检测研究都基于国际10-20标准导联系统,采集头皮上多通道信号。这种穿戴设备体积较大、不易移动,难以日常佩戴以检测疲劳[16-17]。已有研究证明,从人体前额能采集到高质量EEG信号,并且其单通道的设置减小了算法运算量及设备功耗,具有极高的实用价值[18-20]。但单通道EEG信号在疲劳检测时的精度普遍较低,还需进一步提升[21-23]。
针对上述问题,本文将对前额单通道EEG信号下的特征提取及分类算法展开研究,提出基于深度学习的特征提取网络,以期对特征进行自适应地提取;同时希望对信号进行一定预处理,以提高信号的质量和数量,使网络尽可能获取足够多的深层信息。此外,为进一步加强网络提取有效特征的能力,可从特征本身考虑,直接根据提取出的特征设计相应损失函数反馈至网络,以提高特征表征疲劳的准确性。期望通过本文研究,能找到更为有效的特征提取方法,进一步提高单通道EEG信号的疲劳检测精度,为EEG疲劳检测提供新思路。
1 模型和方法
1.1 整体框架
本文所提出算法主要包括数据处理与特征提取两部分,整体流程如图1所示。在数据处理阶段, EEG信号首先通过经典模态分解(empirical mode decomposition,EMD)滤除高频噪声,其次将信号根据所属的疲劳程度类别进行数据增强,以平衡不同类别间的数据量,最后对信号进行有重叠的采样,实现从一维信号到二维输入的转变。在特征提取阶段,构建以深度可分离卷积为核心的神经网络来加快模型运行速度,并通过卷积、池化等方式实现对特征的有效提取。最后,通过全连接层得到分类结果。为提高分类效果,由有监督对比学习(supervised contrastive learning,SCL)损失和MSE损失共同构成的损失函数,对特征提取网络进行参数优化。

1.2 EEG信号预处理
1.2.1 基于EMD的信号降噪
EMD能够根据信号自身特性,将信号自适应地分解为不同频率的多个分量,实现对特定频率的有效提取[24]。对EEG信号进行EMD算法分解后的结果如图2所示,第一纵列,依次为原始信号及原始信号分解后的6个固有模态函数(intrinsic mode function,IMF)分量(IMF1~IMF6)和一个残余量(residual),第二纵列为第一列中各信号对应的频域表达。

考虑到EEG信号中的噪声频率通常在50 Hz以上,因此在保留大部分低频信号的前提下,滤除IMF1分量实现对EEG信号的滤波。原始信号和重构信号的时域、频域结果如图3所示。从时域结果可以看出,重构后的信号毛刺更少。从频域结果比较可以看出,重构后的信号在保留了大部分低频有效信号的同时,有效抑制了高频噪声。此外,对原始信号和重构信号进行信噪比分析,将IMF1分量作为噪声信号,得到原始信号与重构信号的信噪比分别为16.49 dB和17.58 dB,信噪比的提升证明了滤波的有效性。

1.2.2 数据增强与数据重构
为了避免模型在训练过程中只专注于对某一类别的学习,需要确保不同类别数据的数量近似相等,从而实现对特征的有效提取。因此,在对信号进行特征提取前,需要进行数据扩充。本文使用窗口扭曲的方法对数据进行扩充,即以固定长度的时间序列窗口对信号进行随机选取,并对选中的数据进行拉伸或压缩[25]。本文中,时间序列窗口大小为信号数据量的10%,拉伸系数设置为2,压缩系数设置为0.5。数据增强应用于训练集中,以数量最多的一类数据作为目标数,扩充其它类别数据,实现数据平衡。
EEG信号作为时间序列信号,其传统的一维结构包含的信息量较少,只能呈现相邻时间点上的变化。目前已有研究证明,将信号由一维结构变化为二维结构,更有利于信息的表达与后续网络的特征提取[26]。因此,本文通过窗口大小为48,重叠大小为28的有重叠采样将一维信号转化为二维结构,打破原始一维结构中表示能力的瓶颈,同时表达短期内变化的信号与长期间变化的信息,使网络获得更多的信息量,以便进行下一步的特征提取。具体数据重构方式如图4所示。

1.3 疲劳特征提取网络设计
特征提取网络的设计如图1所示,具体的网络结构参数如表1所示。二维结构的信号首先经过卷积进行特征的初步提取,同时通过批归一化加速网络的学习速度。为了提高网络的运算速度,使用硬自门控激活函数(hardswish,HS)作为激活函数(以符号HS表示)[27],其计算方法如式(1)所示:

![]() |
其中,x代表该激活函数的输入值,即神经网络中某一层的输出值。
初步提取的特征经过两层深度可分离卷积层进行进一步的处理。与传统的卷积相比,深度可分离卷积将卷积分为两部分:深度卷积和逐点卷积,通过对每个通道单独进行卷积实现模型参数量的减少,降低计算成本。经过深度可分离卷积可得到尺寸为12 × 16 × 16的特征,为了进一步提高网络训练速度,使用平均池化层对样本进行降采样。通过卷积层与hardswish激活函数对降采样后的特征进行最终的提取,并通过全连接层得到最后的疲劳分类结果。
1.4 损失函数设计
为实现对特征的有效提取,本文提出使用SCL损失对特征提取网络进行优化。经典的对比学习在构建正负样本对时,通常将样本本身与其增强后的数据样本作为正样本对,而其它样本作为负样本对,这样的方式很容易忽略同一类样本的关联特征。因此,本文选择以样本标签作为条件的SCL损失进行特征提取(以符号LSCL表示)[28],其计算方法如式(2)所示:
![]() |
其中,M表示每个批次数据量的大小。yi和yj分别表示锚点样本i和样本j的标签。表示一个批次中标签为yi的样本数量。li ≠ j ∈{0, 1},
和
是相似的指标函数。例如,若i ≠ j,li ≠ j ∈{0, 1} = 1,否则li ≠ j ∈{0, 1} = 0。
为样本i和样本j之间的余弦相似度,其中Vi和Vj分别表示为样本i和样本j的高等特征向量,T为转置符号。同理,si,k表示样本i和样本k之间的余弦相似度。τ表示温度参数,用于调节相似度计算的敏感度,在本文中将其设置为0.07。
利用SCL损失进行特征提取,优化方式如图5所示。在采集EEG信号时,根据不同疲劳程度为其赋予相应的标签,即“标签0”、“标签1”和“标签2”。对EEG信号进行特征提取后,能够获得对应的特征值。取其中某个特征作为锚点,将与锚点具有相同标签的特征和锚点组成一对正样本对,与锚点具有不同标签的特征和锚点组成负样本对。所有特征嵌入到特征空间中,通过SCL损失最小化(min)正样本对之间的特征距离,同时最大化(max)负样本对之间的特征距离,实现对所提取特征的优化。

SCL损失需要对大量的特征样本进行比较,从不同类型特征的对比中挖掘有效信息。因此,需要保证同一批次中不同标签的样本数量均衡。针对这一问题,可采用前文所述的数据增强方式对样本量较少的类别进行扩充。此外,本文将批尺寸(batch size)设定为较大的数值,即256,以确保网络在训练过程中能够获取到足够数量的数据。
在使用SCL损失对特征提取进行训练的基础上,为了提高算法的分类精度,引入MSE损失(以符号LMSE表示),如式(3)所示:
![]() |
其中,M表示样本数量,un是第n个样本的真实标签,vn是第n个样本的预测标签。
因此,本算法的总损失函数L表示为SCL损失和MSE损失的和,如式(4)所示:
![]() |
1.5 实验数据
本文实验使用的EEG信号来自上海交通大学(Shanghai Jiao Tong University,JSTU)仿脑计算与机器智能研究中心(center for brain-like computing and machine intelligence,BCMI)构建的警觉度估计EEG数据集(the SJTU emotion EEG dataset-vigilance,SEED-VIG),该数据集可在BCMI主页进行公开下载[29]。数据集记录了23名测试者连续模拟驾驶2 h的EEG信号,采集的EEG通道包括头皮17个通道和前额4个通道。
为了研究本文提出的单通道EEG信号疲劳检测算法的有效性,根据已有研究选择前额通道 ⑤ 的信号作为算法输入,通道 ⑤ 电极位置与其它电极相对位置如图6所示[17, 30]。

数据集使用闭眼百分比(percent of eye closure,PERCLOS)算法(以符号PCS表示)作为疲劳程度标签,计算方式如式(5)所示:
![]() |
其数值为0~1之间的连续值,值越小表示测试者越清醒。根据阈值,可将疲劳程度分为三种状态:[0, 0.35)为清醒,[0.35, 0.7)为疲劳,[0.7, 1]为嗜睡。
2 实验结果与分析
2.1 评估指标
实验软件环境采用深度学习框架pytorch 1.12(Facebook Inc.,美国)。所提出模型使用自适应矩估计(adaptive moment estimation,Adam)优化算法,初始学习率为0.001,训练轮次为100轮,batch size设置为256。使用准确率(accuracy,ACC)和F1分数(F1 score,F1)两个指标进行评估,具体定义如式(6)~式(7)所示:
![]() |
![]() |
其中,TP为模型分类正确的正样本,FP为模型分类错误的负样本,TN为模型分类正确的负样本,FN为模型分类错误的正样本。表示模型的精确率,
表示模型的召回率。
2.2 同类算法对比
为了对所提出算法的有效性进行进一步的验证,将所提出算法与传统方法以及现有先进算法进行比较。使用支持向量机(support vector machine,SVM)代表传统方法进行对比,PSD和DE作为特征。特征提取方式为:经过EMD滤波后的单通道信号通过8 s非重叠窗口的短期傅里叶变换计算全频带的PSD和DE,然后以2 Hz 频率分辨率从总频段(1~50 Hz)中提取25个频带上的50个特征作为SVM的输入。在SVM中使用径向基函数(radial basis function,RBF)作为核函数,RBF尺度因子γ在[1.000, 0.100, 0.010, 0.001]内调整,惩罚因子C在[0.001, 0.010, 0.100, 1. 000]内调整。与现有先进算法如EEGNet[12]、VIGNet[13]、CAE-LSTM[14]和LSTM-AttCaps[15]进行比较,将卷积核由多通道空间卷积核变为1×1卷积核,使算法适用于单通道EEG信号的特征提取。
2.3 结果比较
为保证实验的准确性与可靠性,本文在SEED-VIG数据集中采用五折交叉的方式对不同算法进行验证。在对训练集与测试集进行划分时,保持EEG信号的时序结构,不对信号进行打乱处理。所提出算法与其它算法的平均精度如表2所示,每列最优值用加粗字体表示。

分析表2可知,本文算法相较于其它先进算法,准确度均值有所提高,最大值提升明显,证明了所提出特征提取及分类算法的有效性。同时,标准差的减小和综合指标F1的提高也说明了本文特征提取方法对不同样本个体的适应性,展现了良好的鲁棒性和泛化能力。
3 消融实验
为了验证所提出方法中各个模块的有效性,本文分别对滤波方式、数据增强和损失函数进行了消融实验,具体结果如表3所示,每列最优值用加粗字体表示。

不同于EEG信号处理中常用的带通滤波器,本文提出使用EMD对EEG信号进行滤波。因此在滤波模块的消融实验中,分别对不进行滤波、1~50 Hz带通滤波器和EMD滤波的效果进行比较。从结果可以看出原始信号中存在的高频噪声对检测精度有着较大的影响,对信号进行一定滤波处理是必要的。两种滤波方式的结果对比可知,使用EMD对信号进行自适应滤波的效果较好,提高的F1指标证明了该方法的鲁棒性。带通滤波器相较于EMD滤波,虽然计算方式较简单,但对噪声的抑制效果不理想,尤其是在噪声频率与目标信号频率存在重叠区域时。
从数据增强模块的消融实验结果中可以看出,在对数据进行增强后,ACC和F1均有极大的提升。相较于其它模块,有无数据增强对精度的影响最大,说明了该模块的重要性。数据增强可以很好地平衡不同类别内的数据量,使SCL损失在每一个批次内能够获取足够多的正负样本对,从而学习到能够区分不同类别的特征,提高疲劳检测的准确度。
本文提出使用SCL损失与MSE损失作为联合损失优化模型参数,而在一般的分类任务网络中,常用CE损失作为损失函数[12-13]。因此,本文对两种损失函数进行了实验比较。表3中的实验结果表明,本文提出的联合损失函数相较于CE损失,模型检测结果显著提升,验证了联合损失对网络的优化性能。为了进一步证明所提出损失类型在特征提取中的能力,分别对两组随机选取的测试集样本(测试集样本1、测试集样本2)中原始数据分布、CE损失优化下的特征和本文损失优化下的特征使用t-分布随机近邻嵌入(t-distributed stochastic neighbor embedding,t-SNE)方法[31]进行可视化,结果如图7所示。

根据图7中特征的降维分布可看出,CE损失优化下提取的特征虽然能够大致区分不同疲劳程度,但划分边界不清晰,不同类别的特征存在混叠的情况。相较之下,本文所提出损失在SCL损失的影响下,不仅有效地缩小了同类别内特征的距离,同时显著扩大了不同类别间特征的距离,根据所提取的特征能够更加清晰地划分疲劳程度。此外,MSE损失的引入使网络持续减少预测类别与实际类别间的误差,进一步提高了网络检测精度。综上,本文所提出联合损失函数加强了算法鲁棒性和对不同样本个体数据的适应能力,具有良好的可解释性。
4 结束语
本文针对单通道EEG信号疲劳检测算法中的特征表达偏差问题,提出基于SCL损失的特征提取及分类算法。算法通过EMD滤波、数据增强、数据重构等预处理方法,显著提升了信号的质量、数量与信息表达量。同时,本文提出SCL损失与MSE损失相结合的联合损失函数,实现特征有效提取。本文所提算法与现有算法在公开数据集上进行对比实验,结果表明,本文算法显著提升了检测精度和鲁棒性。此外,消融实验和可视化结果验证了各模块的有效性。考虑到目前多模态融合在疲劳检测中的优异表现,在下一步的研究中,可以将EEG信号与其它信号的信息进行结合,进一步提高疲劳检测的准确度。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:所有作者都参与了本研究的构思和设计。杨慧舟负责编写模型代码和撰写论文初稿,刘云飞指导了论文写作并提出修改意见,夏丽娟完成了文章的审阅及校对。所有作者都阅读并批准了最终稿件。
0 引言
近年来,随着机动车保有量的快速增加,交通事故的发生数量也在不断增加。据统计,交通事故的首要原因是疲劳驾驶,约有20%~30%的事故发生在驾驶员降低警惕时[1]。因此,在驾驶过程中及时地向驾驶员提供警惕提醒至关重要。
目前针对驾驶员疲劳检测的研究,主要基于非生理性信息与生理性信息。基于非生理性信息的研究,大多从车辆的驾驶状态[2-4]与驾驶员的面部动作[5-7]进行判断,但获取相关信息时易受光线干扰,影响检测准确度[8]。相较于非生理性信息,生理性信号记录人体生理变化,能够更加客观地反映驾驶员的状态。尤其是脑电图(electroencephalography,EEG)直接记录神经信号,被认为是疲劳检测的黄金标准[9]。
在基于EEG信号的疲劳检测算法中,有效的特征提取是提高检测精度的关键因素。当前研究中的特征提取方式主要分为两种:手动特征提取和基于深度学习的自动特征提取。手动提取的特征集中在信号时域、频域和时频域上,以时频特征的应用最为广泛。Shi等[10]提出使用微分熵(differential entropy,DE)进行疲劳检测,并与其它四个特征的性能进行比较,实验证明DE是反映疲劳变化最稳定的EEG特征。Wu等[11]通过短时傅里叶变换提取EEG信号中的功率谱密度(power spectral density,PSD)特征,与DE特征相结合用于疲劳检测,结果显示相较于其它方法,平均误差有所减少。尽管手动提取特征在疲劳检测中已经被证实为有效方法,但该过程很大程度上依赖于专家经验,而且只能提取固定的一类或几类特征,无法完全表征EEG信号。此外,手动提取的特征在不同样本个体上的检测精度存在较大差异,鲁棒性不佳。鉴于上述问题,一些学者研究基于深度学习的特征提取网络,从EEG信号中自适应地实现特征提取,以提高算法对不同个体的适应性。Lawhern等[12]提出针对EEG信号的紧凑型神经网络(EEGNet),将EEG信号直接输入到网络中实现特征提取与分类,并使用交叉熵(cross entropy,CE)损失函数减小预测结果与真实标签的差异。Ko等[13]首先从EEG信号中提取DE特征,然后通过警戒卷积神经网络(vigilance convolutional neural network,VIGNet)进一步提取深层次特征,该方法与传统方法相比更具解释性和鲁棒性。Shi等[14]提出自动编码长短期记忆网络(autoencoder to long short-term memory network,CAE-LSTM),首先通过自动编码器对手动提取的EEG特征进行编码,然后利用长短期记忆网络(long short-term memory,LSTM)进行疲劳识别,最后使用均方误差(mean square error,MSE)作为损失函数提高分类精度,实验证明所提算法检测精度有所提高。Zhang等[15]提出LSTM与胶囊网络相结合的胶囊记忆模型(LSTM with attention capsule network,LSTM-AttCaps),通过低级胶囊层和高级胶囊层挖掘特征中的关键局部信息和全局信息。总结上述方法可知,基于深度学习的特征提取方式,除了与网络本身设计有关,还依赖于损失函数对于网络的优化,但常用的CE损失与MSE损失是通过提高预测精度间接提高网络提取特征能力,而非直接根据提取的特征对网络进行优化,因此在这些损失优化下提取出的特征,表征准确性仍有提升的空间。
目前,大多数有关EEG信号的疲劳检测研究都基于国际10-20标准导联系统,采集头皮上多通道信号。这种穿戴设备体积较大、不易移动,难以日常佩戴以检测疲劳[16-17]。已有研究证明,从人体前额能采集到高质量EEG信号,并且其单通道的设置减小了算法运算量及设备功耗,具有极高的实用价值[18-20]。但单通道EEG信号在疲劳检测时的精度普遍较低,还需进一步提升[21-23]。
针对上述问题,本文将对前额单通道EEG信号下的特征提取及分类算法展开研究,提出基于深度学习的特征提取网络,以期对特征进行自适应地提取;同时希望对信号进行一定预处理,以提高信号的质量和数量,使网络尽可能获取足够多的深层信息。此外,为进一步加强网络提取有效特征的能力,可从特征本身考虑,直接根据提取出的特征设计相应损失函数反馈至网络,以提高特征表征疲劳的准确性。期望通过本文研究,能找到更为有效的特征提取方法,进一步提高单通道EEG信号的疲劳检测精度,为EEG疲劳检测提供新思路。
1 模型和方法
1.1 整体框架
本文所提出算法主要包括数据处理与特征提取两部分,整体流程如图1所示。在数据处理阶段, EEG信号首先通过经典模态分解(empirical mode decomposition,EMD)滤除高频噪声,其次将信号根据所属的疲劳程度类别进行数据增强,以平衡不同类别间的数据量,最后对信号进行有重叠的采样,实现从一维信号到二维输入的转变。在特征提取阶段,构建以深度可分离卷积为核心的神经网络来加快模型运行速度,并通过卷积、池化等方式实现对特征的有效提取。最后,通过全连接层得到分类结果。为提高分类效果,由有监督对比学习(supervised contrastive learning,SCL)损失和MSE损失共同构成的损失函数,对特征提取网络进行参数优化。

1.2 EEG信号预处理
1.2.1 基于EMD的信号降噪
EMD能够根据信号自身特性,将信号自适应地分解为不同频率的多个分量,实现对特定频率的有效提取[24]。对EEG信号进行EMD算法分解后的结果如图2所示,第一纵列,依次为原始信号及原始信号分解后的6个固有模态函数(intrinsic mode function,IMF)分量(IMF1~IMF6)和一个残余量(residual),第二纵列为第一列中各信号对应的频域表达。

考虑到EEG信号中的噪声频率通常在50 Hz以上,因此在保留大部分低频信号的前提下,滤除IMF1分量实现对EEG信号的滤波。原始信号和重构信号的时域、频域结果如图3所示。从时域结果可以看出,重构后的信号毛刺更少。从频域结果比较可以看出,重构后的信号在保留了大部分低频有效信号的同时,有效抑制了高频噪声。此外,对原始信号和重构信号进行信噪比分析,将IMF1分量作为噪声信号,得到原始信号与重构信号的信噪比分别为16.49 dB和17.58 dB,信噪比的提升证明了滤波的有效性。

1.2.2 数据增强与数据重构
为了避免模型在训练过程中只专注于对某一类别的学习,需要确保不同类别数据的数量近似相等,从而实现对特征的有效提取。因此,在对信号进行特征提取前,需要进行数据扩充。本文使用窗口扭曲的方法对数据进行扩充,即以固定长度的时间序列窗口对信号进行随机选取,并对选中的数据进行拉伸或压缩[25]。本文中,时间序列窗口大小为信号数据量的10%,拉伸系数设置为2,压缩系数设置为0.5。数据增强应用于训练集中,以数量最多的一类数据作为目标数,扩充其它类别数据,实现数据平衡。
EEG信号作为时间序列信号,其传统的一维结构包含的信息量较少,只能呈现相邻时间点上的变化。目前已有研究证明,将信号由一维结构变化为二维结构,更有利于信息的表达与后续网络的特征提取[26]。因此,本文通过窗口大小为48,重叠大小为28的有重叠采样将一维信号转化为二维结构,打破原始一维结构中表示能力的瓶颈,同时表达短期内变化的信号与长期间变化的信息,使网络获得更多的信息量,以便进行下一步的特征提取。具体数据重构方式如图4所示。

1.3 疲劳特征提取网络设计
特征提取网络的设计如图1所示,具体的网络结构参数如表1所示。二维结构的信号首先经过卷积进行特征的初步提取,同时通过批归一化加速网络的学习速度。为了提高网络的运算速度,使用硬自门控激活函数(hardswish,HS)作为激活函数(以符号HS表示)[27],其计算方法如式(1)所示:

![]() |
其中,x代表该激活函数的输入值,即神经网络中某一层的输出值。
初步提取的特征经过两层深度可分离卷积层进行进一步的处理。与传统的卷积相比,深度可分离卷积将卷积分为两部分:深度卷积和逐点卷积,通过对每个通道单独进行卷积实现模型参数量的减少,降低计算成本。经过深度可分离卷积可得到尺寸为12 × 16 × 16的特征,为了进一步提高网络训练速度,使用平均池化层对样本进行降采样。通过卷积层与hardswish激活函数对降采样后的特征进行最终的提取,并通过全连接层得到最后的疲劳分类结果。
1.4 损失函数设计
为实现对特征的有效提取,本文提出使用SCL损失对特征提取网络进行优化。经典的对比学习在构建正负样本对时,通常将样本本身与其增强后的数据样本作为正样本对,而其它样本作为负样本对,这样的方式很容易忽略同一类样本的关联特征。因此,本文选择以样本标签作为条件的SCL损失进行特征提取(以符号LSCL表示)[28],其计算方法如式(2)所示:
![]() |
其中,M表示每个批次数据量的大小。yi和yj分别表示锚点样本i和样本j的标签。表示一个批次中标签为yi的样本数量。li ≠ j ∈{0, 1},
和
是相似的指标函数。例如,若i ≠ j,li ≠ j ∈{0, 1} = 1,否则li ≠ j ∈{0, 1} = 0。
为样本i和样本j之间的余弦相似度,其中Vi和Vj分别表示为样本i和样本j的高等特征向量,T为转置符号。同理,si,k表示样本i和样本k之间的余弦相似度。τ表示温度参数,用于调节相似度计算的敏感度,在本文中将其设置为0.07。
利用SCL损失进行特征提取,优化方式如图5所示。在采集EEG信号时,根据不同疲劳程度为其赋予相应的标签,即“标签0”、“标签1”和“标签2”。对EEG信号进行特征提取后,能够获得对应的特征值。取其中某个特征作为锚点,将与锚点具有相同标签的特征和锚点组成一对正样本对,与锚点具有不同标签的特征和锚点组成负样本对。所有特征嵌入到特征空间中,通过SCL损失最小化(min)正样本对之间的特征距离,同时最大化(max)负样本对之间的特征距离,实现对所提取特征的优化。

SCL损失需要对大量的特征样本进行比较,从不同类型特征的对比中挖掘有效信息。因此,需要保证同一批次中不同标签的样本数量均衡。针对这一问题,可采用前文所述的数据增强方式对样本量较少的类别进行扩充。此外,本文将批尺寸(batch size)设定为较大的数值,即256,以确保网络在训练过程中能够获取到足够数量的数据。
在使用SCL损失对特征提取进行训练的基础上,为了提高算法的分类精度,引入MSE损失(以符号LMSE表示),如式(3)所示:
![]() |
其中,M表示样本数量,un是第n个样本的真实标签,vn是第n个样本的预测标签。
因此,本算法的总损失函数L表示为SCL损失和MSE损失的和,如式(4)所示:
![]() |
1.5 实验数据
本文实验使用的EEG信号来自上海交通大学(Shanghai Jiao Tong University,JSTU)仿脑计算与机器智能研究中心(center for brain-like computing and machine intelligence,BCMI)构建的警觉度估计EEG数据集(the SJTU emotion EEG dataset-vigilance,SEED-VIG),该数据集可在BCMI主页进行公开下载[29]。数据集记录了23名测试者连续模拟驾驶2 h的EEG信号,采集的EEG通道包括头皮17个通道和前额4个通道。
为了研究本文提出的单通道EEG信号疲劳检测算法的有效性,根据已有研究选择前额通道 ⑤ 的信号作为算法输入,通道 ⑤ 电极位置与其它电极相对位置如图6所示[17, 30]。

数据集使用闭眼百分比(percent of eye closure,PERCLOS)算法(以符号PCS表示)作为疲劳程度标签,计算方式如式(5)所示:
![]() |
其数值为0~1之间的连续值,值越小表示测试者越清醒。根据阈值,可将疲劳程度分为三种状态:[0, 0.35)为清醒,[0.35, 0.7)为疲劳,[0.7, 1]为嗜睡。
2 实验结果与分析
2.1 评估指标
实验软件环境采用深度学习框架pytorch 1.12(Facebook Inc.,美国)。所提出模型使用自适应矩估计(adaptive moment estimation,Adam)优化算法,初始学习率为0.001,训练轮次为100轮,batch size设置为256。使用准确率(accuracy,ACC)和F1分数(F1 score,F1)两个指标进行评估,具体定义如式(6)~式(7)所示:
![]() |
![]() |
其中,TP为模型分类正确的正样本,FP为模型分类错误的负样本,TN为模型分类正确的负样本,FN为模型分类错误的正样本。表示模型的精确率,
表示模型的召回率。
2.2 同类算法对比
为了对所提出算法的有效性进行进一步的验证,将所提出算法与传统方法以及现有先进算法进行比较。使用支持向量机(support vector machine,SVM)代表传统方法进行对比,PSD和DE作为特征。特征提取方式为:经过EMD滤波后的单通道信号通过8 s非重叠窗口的短期傅里叶变换计算全频带的PSD和DE,然后以2 Hz 频率分辨率从总频段(1~50 Hz)中提取25个频带上的50个特征作为SVM的输入。在SVM中使用径向基函数(radial basis function,RBF)作为核函数,RBF尺度因子γ在[1.000, 0.100, 0.010, 0.001]内调整,惩罚因子C在[0.001, 0.010, 0.100, 1. 000]内调整。与现有先进算法如EEGNet[12]、VIGNet[13]、CAE-LSTM[14]和LSTM-AttCaps[15]进行比较,将卷积核由多通道空间卷积核变为1×1卷积核,使算法适用于单通道EEG信号的特征提取。
2.3 结果比较
为保证实验的准确性与可靠性,本文在SEED-VIG数据集中采用五折交叉的方式对不同算法进行验证。在对训练集与测试集进行划分时,保持EEG信号的时序结构,不对信号进行打乱处理。所提出算法与其它算法的平均精度如表2所示,每列最优值用加粗字体表示。

分析表2可知,本文算法相较于其它先进算法,准确度均值有所提高,最大值提升明显,证明了所提出特征提取及分类算法的有效性。同时,标准差的减小和综合指标F1的提高也说明了本文特征提取方法对不同样本个体的适应性,展现了良好的鲁棒性和泛化能力。
3 消融实验
为了验证所提出方法中各个模块的有效性,本文分别对滤波方式、数据增强和损失函数进行了消融实验,具体结果如表3所示,每列最优值用加粗字体表示。

不同于EEG信号处理中常用的带通滤波器,本文提出使用EMD对EEG信号进行滤波。因此在滤波模块的消融实验中,分别对不进行滤波、1~50 Hz带通滤波器和EMD滤波的效果进行比较。从结果可以看出原始信号中存在的高频噪声对检测精度有着较大的影响,对信号进行一定滤波处理是必要的。两种滤波方式的结果对比可知,使用EMD对信号进行自适应滤波的效果较好,提高的F1指标证明了该方法的鲁棒性。带通滤波器相较于EMD滤波,虽然计算方式较简单,但对噪声的抑制效果不理想,尤其是在噪声频率与目标信号频率存在重叠区域时。
从数据增强模块的消融实验结果中可以看出,在对数据进行增强后,ACC和F1均有极大的提升。相较于其它模块,有无数据增强对精度的影响最大,说明了该模块的重要性。数据增强可以很好地平衡不同类别内的数据量,使SCL损失在每一个批次内能够获取足够多的正负样本对,从而学习到能够区分不同类别的特征,提高疲劳检测的准确度。
本文提出使用SCL损失与MSE损失作为联合损失优化模型参数,而在一般的分类任务网络中,常用CE损失作为损失函数[12-13]。因此,本文对两种损失函数进行了实验比较。表3中的实验结果表明,本文提出的联合损失函数相较于CE损失,模型检测结果显著提升,验证了联合损失对网络的优化性能。为了进一步证明所提出损失类型在特征提取中的能力,分别对两组随机选取的测试集样本(测试集样本1、测试集样本2)中原始数据分布、CE损失优化下的特征和本文损失优化下的特征使用t-分布随机近邻嵌入(t-distributed stochastic neighbor embedding,t-SNE)方法[31]进行可视化,结果如图7所示。

根据图7中特征的降维分布可看出,CE损失优化下提取的特征虽然能够大致区分不同疲劳程度,但划分边界不清晰,不同类别的特征存在混叠的情况。相较之下,本文所提出损失在SCL损失的影响下,不仅有效地缩小了同类别内特征的距离,同时显著扩大了不同类别间特征的距离,根据所提取的特征能够更加清晰地划分疲劳程度。此外,MSE损失的引入使网络持续减少预测类别与实际类别间的误差,进一步提高了网络检测精度。综上,本文所提出联合损失函数加强了算法鲁棒性和对不同样本个体数据的适应能力,具有良好的可解释性。
4 结束语
本文针对单通道EEG信号疲劳检测算法中的特征表达偏差问题,提出基于SCL损失的特征提取及分类算法。算法通过EMD滤波、数据增强、数据重构等预处理方法,显著提升了信号的质量、数量与信息表达量。同时,本文提出SCL损失与MSE损失相结合的联合损失函数,实现特征有效提取。本文所提算法与现有算法在公开数据集上进行对比实验,结果表明,本文算法显著提升了检测精度和鲁棒性。此外,消融实验和可视化结果验证了各模块的有效性。考虑到目前多模态融合在疲劳检测中的优异表现,在下一步的研究中,可以将EEG信号与其它信号的信息进行结合,进一步提高疲劳检测的准确度。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:所有作者都参与了本研究的构思和设计。杨慧舟负责编写模型代码和撰写论文初稿,刘云飞指导了论文写作并提出修改意见,夏丽娟完成了文章的审阅及校对。所有作者都阅读并批准了最终稿件。