关键词:脑电信号;睡眠分期;空洞卷积;类别失衡;焦变函数
0引言
睡眠占据了人一生的1/3,现代生活中的睡眠质量在一定程度上反映了人体的健康状况,研究发现,睡眠阶段之间的转换遵循一定的规律。当人处于睡眠状态时,一些清醒时不易察觉的脑部疾病可以通过睡眠阶段转换的方式观察得到。通过对睡眠脑电信号的处理和分析,了解睡眠过程中各睡眠阶段之间转换的周期性,对于更客观、准确地评估睡眠状态、有效控制疾病具有重要意义。
多导睡眠图(Polysomnography,PSG)记录来自身体各个部位的电信号,包括脑电图(Electroen-cephalogram,EEG)、肌电图(Electromyography,EMG)、眼电图(Electrooculogram,EOG)和心电图(Electrocardiogram,ECG)。在以往的研究中,通常将30s的PSG信号划分为一个片段,由睡眠专家根据睡眠分期标准将该片段进行阶段标定。对于一晚上的数据,往往需要2~3名医生花费数小时进行分类,且分类准确率仅为83%。另外,PSG监测设备体积大,测量参数多,导联方法复杂。在监测期间患者受到很大影响。会感应出多种干扰信号,监控周期长且一次只能监控一个对象,监控效率低。
事实上,现在大多数的研究都是基于PSG信号,通过提取时域和频域特征,处理睡眠分期任务。在过去十年中,传统的机器学习方法如Tsinalis等通过仅分析原始信号的时频域特征实现了78.9%的分类精度。借助支持向量机、随机森林等机器学习方法也达到了不错的性能。但机器学习的算法性能很大程度上取决于特征工程的选择是否合理,这增加了实际应用的难度。随着深度学习的广泛应用,处理睡眠分期任务的方法也变得多样。用于解决睡眠分期的主流网络大多基于递归神经网络(Recurrent Neural Network.RNN)和卷积神经网络(Convolutional Neural Network,CNN),其中CNN通常用于捕捉脑电信号的波形特征,RNN用于建模脑电信号的时序的动态变化。在RNN中,有2种典型的结构常被用于睡眠分期任务。例如,在Deep-SleepNet中,使用双向长短期记忆(Bi-directionalLong Short Term Memory,Bi-LSTM)神经网络和快捷连接结构,在SeqSleepNet中,使用双向门循环单元(Bi-directional Gate Recurrent Unit, Bi-GRU)。然而,在RNN的训练过程中,不可避免地会出现梯度消失、梯度爆炸等问题,导致深度RNN模型难以训练,实际应用较为困难。
与RNN相比,CNN在并行计算方面具有更高的性能。但是,使用单通道EEG信号对于睡眠分期任务来说并不理想。Joint-PreCNN引入了联合分类和预测公式,基于睡眠周期依赖性,联合分类输入周期并预测它们在上下文输出中的相邻标签,在数据集Sleep-EDF中实现了79.8%的准确率。Multi-DeepCNN设计了一个深度CNN,验证了网络性能增益主要依赖于网络深度,而不是使用多通道信息,仅使用EEG信号使模型性能达到了81.0%的准确率。NAS-Sleep使用神经架构搜索通过综合使用扩张卷积和残差连接等基本模块来实现了82.7%的准确率。U-Net在图像分割领域使用下采样集中信息,跳跃连接来融合不同层次的特征以获得更好的分割效果。参考U-Net架构,U-time使用编解码结构提取经过有限长冲击响应滤波器处理后的PSG信号,将任意长度的顺序输入映射到类别标签序列,最终达到79%的准确率。上述研究表明,睡眠分期任务可以使用全卷积网络来实现,但还有很大的改进空间。
除此之外,睡眠数据各个类别之间数量差异很大。通常,一整夜的睡眠包括N1、N2、N3和R四个睡眠阶段,分别占5%、50%、20%~25%和20%~25%。由于CNN在进行睡眠分期任务时,当数据集中某个类别标签的样本数量远高于其他类别时,模型的分类结果会偏向于样本数量较多的类别,增加了睡眠分期任务的难度。因此,有必要设计使用单个脑电信号的自动睡眠分期网络,以缓解类别不均衡问题提高睡眠分期精确度,
总结前期工作,存在3个亟待解决的问题:①RNN在训练过程中会出现梯度消失、梯度爆炸等问题;②原始数据类别不平衡问题,导致N1阶段的准确率低;③复杂的网络结构带来精确度增加的同时也加大模型训练的难度。为了解决上述问题,提出了基于单通道EEG信号的上下文编码轻量化模型,称为CL-Sleep,用于自动睡眠阶段分期。总的来说,提出的方法的主要贡献可以总结如下。
①以U型全卷积网络为主体,采用跨通道融合增加通道连接,构建端到端的自动分期模型。构建并行扩张融合(Parallel Expansion Fusion,PEF)模块,使用并行空洞卷积提取复杂的脑电信号特征。
②放弃传统的RNN结构,使用多尺度时序提取(Multiscale Temporal Extraction,MTE)模块来学习睡眠转换规则。同时使用瓶颈结构(Bottleneck)减少模型的参数数量。
③使用焦变损失函数减少类别不平衡的影响。所提出的模型对原始单通道EEG数据进行端到端学习。实验结果表明,CL-Sleep模型在Sleep-EDF数据集上的表现优于其他先进的模型,有效缓解了睡眠分期中类别不平衡的问题。
1基于CL-Sleep网络的睡眠分期模型总体框架
为了解决收集PSG信号困难、RNN不利于实际应用、类别不平衡和模型参数量大等问题,本文提出的CL-Sleep模型如图1所示。为了增强模型的实用性和易操作性,模型摒弃了RNN结构采用全卷积网络,仅需要输入EEG信号到小卷积核中进行处理,借助瓶颈结构和空洞卷积有效地解决了模型参数量大和RNN训练难度高的问题。同时,使用焦变函数作为损失函数缓解类别不平衡问题。本文所提出的模型是由特征提取模块、并行扩张融合模块、MTE模块和分段分类器组成的全卷积网络。简单来说,使用全卷积编码器一解码器网络和PEF模块对高级语义特征进行编码以捕获单通道EEG信号的显著波,使用MTE模块学习信号的多尺度睡眠过渡规则,使用段分类器对像素进行分类,完成睡眠分期任务。下面将详细介绍模型结构。
1.1编解码特征提取模块
给定信号XEEC,特征编码模块将其转换为编码特征图,解码模块用于恢复从特征编码器模块和上下文提取器模块提取的高级语义特征。其中,编码模块由2个卷积层和一个最大池化层组成。卷积块采用ReLU-BN结构,保证下一层的输入为零均值。零均值的输入可以避免下一层的连接权值梯度同号,出现“之”的情况,使得训练效率更高,收敛速度更快。解码器的基本单元与编码器类似。为了保证通道间的信息融合,编码器采用最大池化操作,解码器采用上采样操作。
编解码器结构如图2所示。其中,图2(a)所示的编码子模块使用大小为3,步长为1的卷积核进行卷积,最大池化层用于下采样;图2(b)所示的解码器子模块使用上采样和大小为3的卷积核来处理特征信息。在特征提取模块中,共有5个解码子模块和4个编码子模块组成一个完整的编解码结构。图中Conv2D表示卷积核,ReLU表示激活函数,Maxpooling表示最大池化层,Up-sampling表示上采样。
1.2多尺度扩张融合模块
信息传递的过程本质上是信息重构的过程。为了防止信息传输过程中部分信号永久丢失,本文设计了全卷积PEF模块,旨在增加感受野范围,融合多序列信号特征。具体来说,不同的卷积膨胀率按照规则以级联的方式进行叠加。
PEF由4个级联分支组成。级联分支随着扩张卷积的数量逐渐增加。Dconv,是指扩张因子为r的空洞卷积,使用式(1),可以得到每个分支的感受野分别为3、7、9和19。通过将空洞卷积与不同的扩张率使用Concat操作进行拼接,PEF模块能够提取更丰富的信号特征。
1.3MTE模块
睡眠转换规则对于睡眠分期非常重要。使用RNN学习睡眠转换规则是解决此类问题的主流方法。RNN模型难以调整和优化,影响了模型的性能和实际应用。为此,本文放弃了RNN结构。考虑到上采样是根据采样点周围的信息得到一个新的更长的序列,必然会导致噪声放大等问题。本文通过MTE模块增加了前后序列之间的连接,减少深度网络带来的梯度消失和梯度爆炸问题连续池化和卷积操作带来的信息损失。图4展示了MTE模块结构。
MTE模块通过扩张率不同的空洞卷积捕捉不同尺度感受野的特征。为了降低分支计算的代价,将卷积核设置为3,使用不同的膨胀因子获得更大的感受野,构建多尺度时间序列层,得到短、中、长3个尺度的过渡信息。其中,卷积核大小为1的卷积层用于增加非线性能力,减少参数量和计算旦里。将不同尺度感受野学习到的特征图并行拼接得到多尺度特征图。此外,使用瓶颈结构减少级联特征图的通道并使模型轻量级。受Conv-Net的影响,瓶颈结构具有3个卷积层,输出特征层比例为1:4:1。
由于视觉域中的当前检测模型在像素级操作,因此不直接适用于生理信号的分类和检测。受Sa-lientSleepNet的启发,本文采用了一种分段分类器,该分类器将逐像素特征映射到一系列分段的预测标签中。段分类器定义如下:
1.4损失函数
睡眠分期数据存在类别不平衡问题。研究人员选择不同的损失函数来解决上述问题。加权交叉熵损失函数通过赋予不同的权重值来改善样本分类不平衡的影响,在睡眠分期任务中取得了较好的效果。具体地,加权交叉熵损失函数定义如下:
在本文中,焦变函数被用作损失函数。焦变函数最早针对稠密物体检测任务提出,用来解决样本不平衡的问题。焦变函数可以自适应地改变难分类样本和易分类样本在损失函数中的权重,不需要计算复杂的权重映射来解决严重的样本不平衡问题。焦变函数表示为:
2实验设置
2.1数据集和评估指标
为了验证提出的模型的有效性,在Sleep-EDF数据集上进行了实验。该数据集包括20名健康受试者,男女分布相同,25~34岁。除第13例受试者因设备故障外,其余受试者均进行了两天一夜的PSG信号记录,数据集中共有39个完整的PSG数据。为了客观地评估分类性能,使用AASM转换规则作为分类标准。具体来说,就是将Ramp;K手动评分数据中N3和N4阶段合并为标记为N3阶段。排除了在每个睡眠数据的开始和结束时标记为运动或未知的任何运动伪影外不执行任何其他信号处理。
2.2实验具体设置
使用Ge Force RTX 2060显卡,在Python 3.7编程环境下中对其编程。网络训练参数包括训练集的大小、优化器选择、学习率和提前停止机制。训练数据的数据量与模型获得有效信息成正比。同样,训练样本越多,模型训练所需的时间越长。因此,需要通过探索训练样本与测试样本之间的比值关系,找到训练时间与训练精度的平衡状态。图5揭示了训练集的数量与模型的平均精度和迭代所需的时间的关系。
随着训练迭代次数的增加,平均准确率的增长变得缓慢。在训练样本与测试样本的比值为24:1的情况下,观察到边际负增长现象,可能是由于较多的训练样本导致模型过多地学习次要特征,忽略了主要特征。值得注意的是,随着训练样本的增长,训练所需的时间也在不断增加,但二者的增长速度不同。为了在性能和复杂性之间取得平衡,本文选择了19:1的比率来划分数据,同时使用Adam优化器训练模型。
训练样本的目的是学习样本的显著信息,通过不断地测试,来获取最佳的样本特征。通常训练过程中会出现波动,但总体趋势应该是向上的。若模型的验证损失持续上升,可能出现过拟合现象。本文通过提前停止来解决这一问题,设置不同大小的耐心值节省训练资源。表1展示了不同耐心之下模型的识别性能。其中,平均精度指的是20轮交叉验证的平均值,平均迭代次数指的20轮交叉验证的平均训练轮数。
实验结果表明,耐心值越高,模型训练次数越多,能够获得越高的准确度。由表1可以看出,最佳训练结果是在耐心值为5和平均56轮训练时获得的。将耐心值设置为7时,迭代次数等于训练轮次。在这种情况下,所得到的模型的准确度比耐心值设置为5时略低。因此,在该模型中选择耐心值为5的早期停止。
3实验结果与讨论
3.1实验结果
为了减轻有限数据对模型的影响,本研究采用了20倍交叉验证方法进行训练,并客观地评估了分类性能。表2展示了CL-Sleep的实验结果,其中行标签指示个实际类别,并且列对应于混淆矩阵中的预测类别。
实验结果表明,CL-Sleep能够准确地识别个大多数睡眠阶段。具体而言,W阶段的准确度达到93.56%,N2、N3和R阶段的准确度也超过85%,证明了所提出模型的有效性。值得注意的是,该模型在N1阶段的性能相对较低,准确度仅为59.49%。这可能是由于N1阶段的样本量小,其波形与W和N2阶段有多个相似特征,可能导致混淆和不准确的分类。图6展示了模型睡眠分期阶段的对比(1h=120个epoch)。其中,在270~410epoch处于睡眠的中间阶段,睡眠转换较为稳定,模型准确率较高;580~610epoch处于睡眠的后半阶段,N2和N3阶段转换频繁,在这一时期,模型的准确率较低。总的来说,尽管N1阶段和其他阶段之间的分类性能存在显著差异,但总体结果仍然实现了高水平的分类准确性。
表3比较了所提出的模型与相关的先进研究,使用客观的评价指标,以评估其有效性。粗体表示模型的最佳性能。C-R指模型网络由CNN和RNN组成,C-C/R-R指模型网络由多个CNN和RNN组成,C指模型网络仅由CNN组成。PSG意味着输入信号是多通道的睡眠信号,相关先进模型描述如下。
DeepSleepNet:使用深度学习处理睡眠分期问题的经典网络。
SleepEEG:使用编解码结构和Bi-LSTM,重点捕捉EEG信号长短期上下文之间的联系,证明了利用睡眠信号间转换规律的重要意义。
IITNet:基于改进的Resnet-50网络和Bi-LSTM结构,提出时期内和时期间水平的时间上下文学习。
TinySleep:简化了DeepSleepNet模型,对PSG信号使用单向RNN结构,减小了模型的参数量。
CCRRSleep:将多尺度空洞卷积块融合信号特征,多个串行的Bi-LSTM结构捕捉PSG信号的时序特征。
Multi-DeepCNN:摒弃了RNN结构,使用全卷积结构提取PSG信号特征,证明了网络的性能增益主要依赖于网络深度。
NAS-sleep:使用神经搜索的方式,通过对残差连接、空洞卷积等传统的模块的排列组合确定模型最终结构。
U-time:使用对称的编码结构,采用全卷积结构提取信号特征,将图像处理的方式用于睡眠分期任务。
实验结果表明,所提出的CL-Sleep模型实现了87.5%的平均准确率优于其他先进模型。虽然模型在N3阶段的F,分数是次优的,但是所有其他Fi分数达到最优水平,证明了该模型能够有效捕获EEG特征信息。尤其是R阶段有显著的提高。事实上在医学中,R是诊断几种睡眠障碍的重要阶段,这表明,本文提出的模型有利于睡眠障碍的实际诊断和评估。此外,图7展示了不同模型的参数量对比结果。观察图7可以发现,该模型的数据量仅为0.6Mb,是DeepsleepNet模型的参数量的2.86%。本文提出的模型使用较小的参数量实现了较高的性能,特别是N1和R阶段的准确度得到了提升。因此,本文所提出的模型可以在所有睡眠阶段获得良好的分类结果,提高了应用于实践的可能。
3.2模型稳定性
深度学习的有效性依赖于训练数据的高质量,当输入的信号具有异常值、类别不平衡问题时,表现在验证曲线上为波动较大,甚至会出现尖刺的情况。为了检验本文提出模型的稳定性,对训练和验证过程的精度和损失曲线可视化。图8显示了Sleep-EDF数据集其中一次交叉实验的训练和测试过程中的相关曲线。
观察图8(a),发现模型训练了57个epoch后停止训练,训练损失曲线为接近0.1,表明模型充分提取了数据的特征,损失曲线在验证阶段波动较小,整体趋势向下。图8(b)测试阶段的精度有一定的波动,波动幅度在0.15左右,属于正常值。从图像上看,该模型性能稳定、准确率高,有利于后续的继续研究并最终落地与实际。
3.3损失函数有效性验证
损失函数通过反映模型与实际数据之间的差距来衡量模型的性能。在一定程度上,损失函数决定了模型训练的方向,损失函数是否与问题本身相匹配,直接决定了模型能否取得良好的性能。本文使用焦变函数作为模型损失函数的进行训练,以提高分类准确率,减少类别不平衡。为了证明损失函数的有效性,本文将其与加权交叉熵损失函数训练的模型结进行了比较,图9为采用不同损失函数训练的混淆矩阵结果。
由图9可以看出,与加权交叉熵损失函数相比,使用焦变函数的模型在睡眠分期的各个阶段都有一定的提升,尤其在N1阶段,焦变函数能够更好地解决低幅值、分割难度大和样本数少的问题,较好地分辨出N1和N2阶段,提高了Nl和N2阶段的分类准确率。实验结果表明,焦变函数可以使模型更接近于理论预测模型的极限值,有助于更准确地睡眠分期。
3.4消融实验
为了进一步验证CL-Sleep模型每个模块的有效性,对模型的每个组件进行了消融研究,如下所示:
基本模型A:该模型由一个独立的U形结构组成,仅使用简单的跳跃连接。
变型B(+PEF模块):该模型将PEF模块添加到基本模型,并使用空洞卷积集成上下文信息。
变体C(+MTE模块):该模型将MTE模块添加到基本模型中捕捉睡眠信号的过渡信息。
变体D(CL-Sleep):该模型使用PEF模块和MTE模块,结合U形结构来捕获波形特征。
基于其解决类别平衡问题的能力及其在睡眠分期准确性方面的总体性能来评估每个变体。将PEF和MTE模块与U形结构相结合的CL-Sleep模型取得了最佳结果,证明了提出的用于EEG睡眠信号分类的方法的有效性。
图1 0显示了不同变体的训练结果,突出了每个模块的有效性。如基本模型图10(a)所观察到的,大多数类别被正确分类,但是由于类似的波形特征,N1、R阶段的准确率较低。PEF模块的加入,融合了上下文丰富的信息,更好地辨别波形,显著提高了N1和R阶段的准确率。然而,许多N3阶段被错误地识别为N2阶段,可能是由于PEF错误地放大了波。MTE模块的加入提高了分辨N1和N2阶段的能力,借助过渡时期的转换规则,能够有效地分辨N3和R阶段。综合使用PEF和MTE模块,通过PEF模块获取丰富的特征信息,和MTE模块学习到的过渡规则对特征进行进一步筛选,取得了良好的分类效果。实验结果证明,本文所提出的模块可以有效地处理睡眠分期任务。
4结束语
针对脑电睡眠信号中类别不平衡、递归网络优化困难和参数量较大等问题,建立了基于单通道EEG信号的上下文编码轻量化模型。该模型放弃了RNN结构,使用全卷积网络来处理原始EEG,消除了由RNN结构引起的梯度问题。此外,CL-Sleep模型利用EEG而不是PSG信号,降低了数据的收集难度并增加了实际应用。原始EEG信号被输入到对称设计的编码和解码结构中,PEF模块融合上下文信息,MTE结构借助并行的扩张卷积获得过渡规则。同时使用瓶颈结构减小模型的参数体积。在仅0.6Mb参数的情况下,利用焦变函数来缓解类不平衡的问题。多轮交叉实验结果表明,CL-Sleep模型表现出87.5%的平均准确性,有效地解决了分类不平衡的问题,并显示出优异的总体分期性能。