目的:研究利用头皮脑电图(EEG)数据预测局灶性癫痫的假说。我们的第一个目标是了解区分间期和前期的特征。第二个目标是定义一个预测范围,其中预测是尽可能准确和尽早的,这显然是两个相互竞争的目标。
方法:利用脑电信号小波变换上的卷积滤波来定义和学习间隔期、前后期和前后期的定量特征。最佳发作预测水平也从数据中学习,而不是做一个先验的假设。结果:优化问题的计算解表明10分钟的癫痫预测水平。通过测量自动提取特征分布上的Kullback-Leibler散度来验证这一结果。结论:204份脑电图记录的脑电图数据库结果表明(i)预测相变发生在癫痫发作前约10分钟,(ii)在测试集上的预测结果是有希望的,灵敏度为87.8%,错误预测率为0.142 FP/h。我们的结果明显优于随机预测器和其他癫痫预测算法。意义:我们证明了可以从头皮脑电图中学习到一组描述局灶性癫痫发作前状态的强健特征。
在本研究中,我们在两个独立数据集上训练我们的模型并评估其性能:(i)从西奈山医院西奈山癫痫中心(MSSM)收集的数据,(ii)公共CHB-MIT脑电图数据库(CHB-MIT)[34],[35]的子集。数据集由两种类型的录音组成,无癫痫发作的间歇录音和有癫痫发作的录音。我们使用癫痫发作的记录来学习相关特征,确定发作前期时间,并评估模型的敏感性。时间间隔记录对于检验模型的特异性和估计错误预测率很重要。该系统在96个有癫痫发作的脑电图记录和20个无癫痫发作的脑电图记录上进行训练和交叉验证。对35例癫痫发作的脑电图记录和53例无癫痫发作的脑电图记录进行了测试。这项研究总共分析了131份有癫痫发作的录音和73份无癫痫发作的录音。录音收集使用标准的10-20系统电极放置与双极蒙太奇。作为数据准备步骤,采用128Hz低通滤波器对脑电图进行滤波,并使用相应的ARIMA模型[36]进行BDS非线性测试,验证其具有非线性结构。
MSSM数据集包含28例癫痫患者的86个头皮脑电图记录。这些记录来自连续的脑电图研究,使用XLTEK设备,22个输入,采样率为256Hz。连续脑电图研究持续时间从2-8天不等。对所有患者信息进行去识别,并使用欧洲数据共享格式[37]将相关脑电图活动转换为原始数据。
癫痫发作均为局灶性,发作区不同,主要是颞叶和额叶。所有的脑电图数据由两名脑电图学家选择、复查和去鉴别。排除了影响多个电极的电极伪影。然而,没有人试图去除睡眠-觉醒转换、眨眼、运动和咀嚼痕迹。每个受试者都被分配了1-28号号码,没有任何识别信息。86个记录中有61个记录了发作时间,其余的仅为间歇期数据。脑电图仪不能区分任何预先信号任何录音的原始脑电图间歇录音的长度通常为60分钟。在癫痫发作之前,包括75分钟的脑电图数据。
癫痫发作的类型包括亚临床和临床局灶性癫痫发作。无全身性发作的癫痫。本研究中的每位患者在记录期间都有一次以上的癫痫发作。
CHB-MIT数据库包含从22名患者收集的头皮脑电图数据,每个患者有9-42个记录,最初为癫痫检测问题[38]收集。136个录音包含一个或多个标记的癫痫发作,509个录音不包含癫痫发作活动。录音以256Hz的采样率采集。我们从这个数据集中选择了一个适合我们研究的录音子集,用于训练和测试。具体来说,我们从129份癫痫发作记录中选择了68份,这些记录满足以下两个要求:(a)只包含一次癫痫发作事件,(b)包含癫痫发作事件前至少30分钟的脑电图数据。我们还从CHBMIT数据库中随机选择了50个无癫痫发作的记录来测量模型的特异性。
脑电信号的小波变换将信号从时间视图转换为时间和频率视图的结合,在临床和计算分析中都很有用。对EEG的每个通道进行连续小波变换,得到一个三模小波系数张量;时间、尺度和通道如图1所示。
我们使用小波变换提供一个进入频域的窗口,以帮助我们的分析,并作为卷积神经网络(CNN)的输入。这是由于之前在癫痫检测问题[40]上使用张量分解和小波张量分析取得的成功,以及在基因组数据[1]上使用类似的方法。
使用这种转换信号的其他好处包括在每个时间点显示多尺度频率信息和隔离噪声[41]。理论上,所有这些好处都可以通过对原始脑电图信号[42]训练几个卷积层来实现,但代价是需要更多的训练数据和训练时间。在小波变换信号上进行训练,可以获得更深入的网络,而不需要训练额外的卷积层集,从而减少训练时间和数据损失。此外,对CNN的训练算法进行了扩展,引入了小波变换的尺度参数。
我们方法的第一个目标是从脑电图信号中提取特征,可以用来区分不同的功能状态。我们使用CNN从脑电图信号中提取特征,并专注于显式区分前期,发作期和间期示例。由于真实的预报周期长度是未知的,第二个目标是估计预报周期的长度和最佳预报水平。由于有许多可能的候选前期周期长度,我们使用交叉验证来选择合适的长度。
1)目标1:用于特征提取的卷积神经网络:
CNN已经证明了相当大的成功,因为它们能够在输入中建模局部依赖,并通过权值共享减少神经网络中训练参数的数量。我们利用这两种特性在小波变换脑电图。我们使用卷积滤波器来学习捕捉脑电图的短期时间依赖性的特征,同时寻找接近频带之间的关系。我们将简要描述我们在这里利用的深度CNN的一些特性,详细讨论请参见[29]。
除了学习过滤器映射,CNN还提供了另外两个常见组件;max-pooling和dropout。最大池化方法允许网络学习时间(或空间)不变的特征。然后,该网络可以识别小波张量系数中的模式,而无需考虑模式是出现在信号片的开始还是结束。Dropout[43]在训练期间将网络中单元的输出随机设置为零,防止这些单元影响更新步骤的输出或损失函数的梯度。这是一种正则化技术,通过确保网络不会依赖于特定的隐藏单元而过拟合,从而提高泛化能力。
训练的CNN有6个卷积层,后面有2个密集层,如图2所示。输出层由三个单元组成,soft-max激活表示三个类的概率分布。我们在尝试了许多不同的架构(有浅的也有宽的)之后,得出了这个架构。在可用的硬件上训练较深的模型被证明是困难的,而较浅的模型精确度较差。卷积层一个接一个地堆叠,减少了每层中的过滤器数量。滤波器的尺寸固定在3x3和2x2,因为使用较大的滤波器的实验显示没有改善。在每个卷积层之后插入Maxpooling层,在每个层之后添加dropout层。采用线性整流单元代替典型的s型非线性激活,它具有抑制梯度消失问题[44]的非饱和特性。
图2所示。卷积层学习一组过滤器(内核),这些过滤器与前一层(特征映射)的输出进行卷积。
最大池化层向下采样一个或两个维度的特征图。例)第三个卷积层学习一组由50个大小为3x3的核组成的集合,然后沿着时间维度跟随一个池化层。完全连接层与前一层输出的每个元素都有连接。例如,第一个全连接层有250个单元,每个单元都与前面特征图中的5*5*16个元素有加权连接。输出层中的每个单元输出属于三个类中的一个的概率。使用来自http://www.github.com/gwding/draw convnet的代码生成
在癫痫发作预测问题中,最关键的缺失信息是预发期的实际长度。在训练过程中,了解预周期的确切起点和终点将大大改进有监督的机器学习方法。
由于有监督的机器学习算法需要感兴趣的事件的标记示例形式的训练数据,缺少或不正确的标记会造成严重的问题。这在机器学习社区[45]中得到了很好的研究。在这种情况下,问题表现为两种形式。(a)假设癫痫发作前的预发作期延长了8分钟,但标签者将癫痫发作前15分钟的预发作期标记为属于预发作类。在这样的数据集上训练机器学习算法将导致在预设类上表现非常差,因为学习者得到了7分钟的间歇信号,但标记为预设类。这使得学习区分间隔类和前驱类是不可能的。(b)如果犯了相反的错误,只有8分钟被标记为预发作期,但预发作期在发作前延长了15分钟,那么学习者将再次失败。这是因为interictal类现在带有来自preictal类的错误标记示例。
在自动特征学习的背景下,这尤其是个问题。因为算法会找到在给定任务中表现良好的特征,在标签错误的数据存在的情况下,机器学会做的任务和我们想让它做的任务不一定是相同的。
文献提供了一些预期长度的估计,但估计没有显示为一般的[33]。我们处理这个问题的方法很简单,我们在学习过程中把预设长度作为一个参数,然后用网格搜索对它进行优化。为了进一步验证预长度的自动选择,我们分析了从不同预长度中提取的特征。
神经网络的输入通过对每个记录进行小波变换来生成如图1所示的张量。在[40]之后,我们使用一组从1到512的教学尺度和墨西哥帽母小波。引入纪元长度和重叠百分比两个参数,将张量分为长度为 e 秒的重叠窗口和重叠百分比为 o 的重叠窗口。每个窗口都成为神经网络的单独训练示例。我们通过在每个训练示例的每个通道上减去平均值并除以标准差进行归一化。
为了将这些例子划分为三类;在Interictal、preictal和ictal中,我们引入一个额外的参数l来表示假设的preictal长度。使用所提供的发作开始时间,我们将所有在发作开始时间前 l 分钟落下的窗口标记为preictal,将所有发作开始时间后的窗口标记为ictal(直到记录结束)。其余的窗口被认为是间期的intericta。
机器学习算法的一个常见问题是,为了从数据中学习非平凡的模式,它们需要平衡的数据集。由于容易获得间隔数据,数据集严重不平衡;间期示例的数量几乎是其他两个类的8倍。在不平衡类的情况下,分类器将通过简单地将所有示例分类为间隔性来实现较低的错误率。这是一个经过充分研究的问题,使用许多推荐的技术来平衡数据集[46]。这些方法的例子是对少数类进行过采样,对多数类进行过采样,或者两者的组合来平衡数据集[47]。我们对间期类采用一种简单的欠抽样方案,随机选取多个多数类实例,使类之间达到平衡。
在用标记的数据训练CNN之前,我们使用k-fold交叉验证将数据分割为一个训练和验证集。我们将k设为10,将数据分成90%作为训练数据,10%作为验证数据。我们使用验证集进行超参数优化,并监视验证集上的损失函数作为早期停止的标准。一些需要优化的重要超参数包括;历元长度、重叠百分比和前置长度。早期停止用于防止训练数据集过拟合,方法是在验证集上的损失开始增加时停止训练。采用自适应学习率[48]的随机梯度下降对深度卷积网络进行训练。使用Theano库[50]的Keras[49]包装器估计梯度。需要注意的是,训练的损失函数不是基于发作预测性能(网络在发作开始前检测到发作的能力)。取而代之的是在三个类别上使用分类交叉熵损失函数来训练网络。
训练完成后,网络进入分类阶段,它生成一个新的输入信号在三个类别上的概率分布。我们感兴趣的是患者何时离开间歇状态,并使用网络的输出概率来建模。假设p0、p1和p2分别作为间期、前间期和发作期类的输出概率,其中p0 + p1 + p2 = 1,我们计算即将发作的概率为p = p1 + p2 = 1−p0。
在此之前,每个输入窗口都是独立处理的。我们通过允许先前的预测影响当前的预测并产生平滑输出来引入相邻窗口之间的依赖关系
其中α为指数平滑参数。这有效地使输出随着时间的推移变得平滑,并允许我们控制预测器的灵敏度。当信号超过阈值时,系统宣布癫痫即将发作(在几分钟内)。我们使用经验确定的0.6阈值显示结果,但使用ROC曲线下面积(ROC- auc)评估系统的性能。
经过训练的网络的最后一个隐藏层,即图2所示的网络的100单元全连接层的输出表示输入信号的压缩版本。我们可以观察该层中每个单元在每个历元的输出,得到一个T x 100的提取特征矩阵。这对于分析中间态和前态之间的相变是很有用的。
超参数优化使用网格搜索每个变量的值范围。最后一组超参数被选为在10次交叉验证中获得最低平均验证损失的集合。训练后的最终超参数为e = 1秒epoch长度,o = 0%重叠窗口,α = 0.7, l = 10分钟pretal长度。将训练阶段通过交叉验证优化的前半部分长度设置为系统的预测水平。
除了在本节中描述系统在测试数据集上的性能外,我们还使用Kullback-Leibler (KL)散度验证了CNN学习到的特征捕获了区间相变到峰值相变。
通过对不同顶长下网络提取的特征进行分析,验证交叉验证得到的顶长值。具体来说,我们希望找到癫痫发作前提取的特征分布发生剧烈变化的最早时间点(即变化点)。在选择特征子集并进行去相关性后,估计提取特征中的两种分布;区间分布被多变量高斯分布所逼近,其均值为0,协方差为Σ0,由区间内的周期特征计算而来。类似地,我们通过计算从t−L到t的特征集的平均µ1和协方差Σ1来逼近特征在t处的分布,其中L为样本的数量。然后,我们用以下KL散度的形式测量区间分布与t点分布之间的散度,并将k设为特征的数量:
将该测量与上方的µ0、µ1、Σ0和Σ1一起使用,可以找到基线分布和电流分布显著不同的最早时间;图3显示了根据四个发作前长度的记录计算的该测量的示例。在记录的第一部分,分歧很小且不变,但在癫痫发作前约9-10分钟迅速增加。这意味着此时提取的特征的分布发生了变化。此外,无论发作前长度参数的值如何,移动都发生在相同的位置,这表明所学习的特征正在捕捉基础系统中的转变。相同的模式也一致地出现在来自验证集的其他记录中。这肯定了用交叉验证确定的预测范围,并表明这些特征捕捉到的从发作间期状态到发作前状态的相变发生在癫痫发作前约10分钟。
图3.确定发作前周期长度KL-发作间期特征分布和发作前特征分布之间的差异,在单个记录中,发作前长度分别为20、15、10和5分钟。请注意,无论发作前长度参数值如何,发作前9-10分钟左右(发作时用红色虚线标记),发作期的离散度突然增加。这种模式是在记录中观察到的,表明发作前的长度大约为10分钟。
MSSM和CHB-MIT测试集的结果分别汇总在表I和表II中。表三列出了测试集中每个患者的癫痫发作次数和录音总长度。表四比较了这项工作与其他三种癫痫发作预测方法的特异性和敏感性。敏感度被定义为正确预测癫痫发作的百分比。特异性由错误预测率(FPR)给出,错误预测率是错误预测的数量除以发作间歇期的总长度。图5显示了与发作开始时间对齐的每个被测试患者的癫痫发作预测时间。图4显示了系统使用固定阈值(τ=0.6)对癫痫发作记录生成的预测示例。
图4.癫痫发作记录示例发作(发作)记录显示的发作概率。X轴正上方的彩色水平条标记信号的发作间期(黑色)、发作前(蓝色)和发作(红色)区域。这条曲线是CNN生成的概率输出,其中绿色表示系统预测即将到来的癫痫发作;由阈值的显著跨越确定(虚线)。
除了测量癫痫发作预测性能外,我们还通过将原始脑电信号馈入网络(省略小波变换步骤)来对原始数据进行相同的CNN训练,以评估对小波变换数据进行训练的优势。在测试集上使用马修斯相关系数[51]对这两个网络进行比较,结果表明,使用小波变换的脑电作为网络的输入可以提高所有测试集记录的性能。这一改进的原因之一是小波变换的过滤效果允许CNN学习涉及多个频段的活动的特征。
这个测试集中的三段记录是发作间期的--仅来自三个不同的患者。剩下的15段录音包含了12名不同患者的癫痫发作。癫痫发作的平均预测时间为发作前8分钟。
在测试的15次癫痫发作中,有一次没有被系统预测到。错误预测率为0.128/小时。有趣的是,假阳性并不出现在仅有发作间歇期的记录中,而是发生在10分钟预测范围之前很久的癫痫记录中。
CHB-MIT测试集包括18个癫痫发作记录和50个发作间歇期记录,使我们能够准确地评估该系统的特异度和错误预测率。总共68次记录相当于大约70.5小时的脑电,其中50小时仅为发作间歇期。平均在癫痫发作前6分钟预测癫痫发作,18个癫痫发作中有3个没有预测。错误预测率为0.147/小时。在这组记录中,错误预测发生在只有发作间歇期的记录中。
对原始脑电信号的分析揭示了错误的一些原因,特别是假阳性。这可以从通过沿通道模式切片图1所示的小波张量而获得的小波矩阵的线性代数性质中看出。每个切片是一个T×10的小波系数矩阵。
在图6中,我们显示了这些矩阵的光谱带隙、数值排名和条件数的散点图。矩阵的光谱间隙可以使用矩阵的非零奇异值σ1,σ2,...,σr来计算,其中r≤10。光谱间隙由第一和第二奇异值的比率给出:
通过计算矩阵A的Frobenius范数和谱范数的平方比来估计矩阵的数值排名:
矩阵的条件数由最大奇异值和最小奇异值之比给出:
我们观察到,在MSSM测试集上产生的假阳性是由于矩阵的不良条件作用造成的。这些记录的低光谱带隙和高条件数表明了这一点,如图6中的蓝色五角形所示。来自CHBMIT数据集的假阳性没有遵循这种模式,并且无法与这个空间中没有错误的记录区分开来。来自两个数据集的假阴性也分散在记录中,没有错误地表明线性分析没有捕捉到潜在原因。
系统没有预测到的四次癫痫发作也进行了肉眼检查。从MSSM数据库中,未预测的单次癫痫发作是在低幅度脑电(≤15 UV)中叠加一些肌肉伪影。从CHB-MIT的数据库中,其中两次癫痫发作有大量的电极和运动伪影,很可能使预测变得不可能。第三次未预测的癫痫发作有多次睡眠/觉醒转换和频繁的癫痫样发作。在该程序成功的许多脑电中也发现了睡眠觉醒转换和癫痫样发作。失败研究的进一步数据可能有助于完善该计划。
系统的灵敏度如表四所示,以及非特异性随机预测器(σlow−σup)[23]的灵敏度范围。非特异性随机预测器被用作基线,以统计验证模型报告的敏感性为显著性。分析随机预测器的灵敏度是基于使用泊松过程产生预测的预测器的性能。这是由一些参数决定的;癫痫发作期(SOP -定义为预测后的持续时间,在此期间癫痫发作必须发生,以便预测正确),固定的错误预测率(FPr),以及分析的独立特征的数量(d),随机预测器的灵敏度范围为(K为分析的癫痫发作次数)[23]:
表四最后一列的范围采用SOP = 10 min计算,FPr设为表四中观察到的假预测率,显著性水平α = 0.05。独立特征的数量d很难估计,设置为d = 100的上界(对应于CNN的第二层到最后一层的单元数)。
在样本外的数据集上测试学到的特征,其结果的灵敏度和特异性优于其他已发表的癫痫预测方法[14],[2]。我们在我们的数据集(可在线访问http://www.dsrc.rpi.edu/?page=数据库)上评估了其他三种算法的性能。其中两种算法,表IV中的Kaggle1和Kaggle2,是Kaggle癫痫预测比赛[5](https://www.kaggle.com/c/seizureprediction)中的佼佼者。参与者被要求开发能够区分间歇期和前期脑电图样本的算法。Kaggle1算法结合所选频段的频谱熵、时间相关矩阵、频率相关矩阵、higuchi分形维数等时频域特征,以逻辑回归作为预测因子。Kaggle2算法使用了类似的方法,但具有较少的特征和支持向量机分类器。第三种算法是Cook等人提出的[6]算法,该算法计算每个通道上由6个滤波器组成的数组上的平均能量、Teager-Kaiser能量和行长。经过特征选择步骤后,采用混合决策树/k近邻分类器进行分类。因为我们不知道该算法的任何发布代码,所以我们用Python实现了该算法。如表四所示,每种方法的性能都优于非特异性随机预测器。与其他方法相比,我们的系统获得了更高的灵敏度(87.8%)和较低的错误预测率(0.142 FP/h)。
我们的研究结果表明,利用从信号中自动提取的特征,可以在头皮脑电图数据中观察到前置相变。结果还表明,典型的脑电图伪影和变化,如睡眠-觉醒转换,不会导致假阳性。此外,正如之前的研究[20]所报道的,相变发生在癫痫发作前约10分钟。然而,如图5所示,预测过渡时间的误差较大(σ = 98.7)。这种传播是对来自许多不同患者的数据进行培训的一个缺点,这是必要的,因为患者特定数据的数量有限。
本研究中使用的数据集只包含头皮脑电图记录,如前所述,这些记录更容易获得,但在信号质量方面存在缺陷。将我们的方法应用于颅内脑电图记录数据集,可以使系统学习到进一步提前检测到预测相变的特征,且变异性更小,类似于使用颅内脑电图的研究,该研究报告了一个小时或更长时间的预测水平[14]。
这些结果表明建立一个可靠的癫痫预测系统是切实可行的。他们的目标是创造一种可穿戴的非侵入性脑电图装置,它可以提醒患者、家庭成员和医生即将发生的癫痫。这有可能提高患者的安全性,降低癫痫患者(SUDEP)的意外猝死率,并可能允许一些患者只在需要时服用药物,而不是长期服用。
要实现一个完整的系统,仍然需要克服许多障碍。为了充分测试系统的泛化能力,需要对有限的头皮脑电图记录数据库进行扩展。此外,还需要清楚地了解ictal状态的结束方式。这些信息将允许预测器在发生重大事件后自动重置。创建端到端深度神经网络,直接优化预测任务是我们打算追求的另一个步骤