[0007] 本发明针对传统的癫痫检测方法中存在的问题,提出了一种基于深度自编码的脑电特征优化与癫痫发作检测方法。
[0008] 如图1所示,本发明的技术方案主要包括以下几个步骤:
[0009] 步骤1:将原始脑电信号进行预处理,然后按顺序排列脑电信号的通道,以每4s的脑电图为一个数据样本,进行离散傅里叶变换,并获得样本的幅值谱,将样本的幅值谱整理成合适的特征矩阵;
[0010] 步骤2:设置卷积自编码器的网络结构。
[0011] 步骤3:通过步骤1中的数据训练卷积自编码器,再将数据输入训练好的卷积自编码器的编码器对特征矩阵进行降维,得到低维特征。
[0012] 步骤4:使用低维特征训练基于最近邻分类器的纠错输出编码模型。最后使用整个模型对新的脑电图进行癫痫发作检测,测试模型性能。
[0013] 所述步骤1的具体实现步骤如下:
[0014] 1‑1.按顺序排列脑电信号的通道,将脑电信号ref导联的21个通道按照从左到右、从前到后的顺序排列,并将长时间的脑电图分割成若干时长为4秒的数据样本,每两个相邻的样本中间有50%的重叠部分。
[0015] 1‑2.定义癫痫发作前的十分钟为发作前期,癫痫发作时记为发作期,癫痫发作前后四小时以外的时间记为癫痫发作间期。
[0016] 1‑3.使用采样率为1000Hz的脑电图,每一个4秒的样本为21*4000的实数矩阵,将样本中的每个通道进行离散傅里叶变换(DFT):
[0017]
[0018] 其中,N表示每帧的长度,k=0,...,N‑1。并由下式获取各通道的幅值谱P(k):
[0019] P(k)=|Xk|
[0020] 其中,Xk为离散傅里叶变换的结果。将得到的幅值谱去除直流分量和工频干扰,并取87Hz以下的信息,即可得到21*336维(即7056维)的原始幅值谱特征。
[0021] 1‑4.整理原始幅值谱特征,将21*336的特征矩阵按列平均分成4部分,即4个21*84的矩阵,再拼接成84*84的正方形特征矩阵。
[0022] 步骤2中所述的设置卷积自编码器的网络结构,具体实现如下:
[0023] 2‑1.卷积自编码器包含编码器和解码器。本发明中的卷积自编码器,编码器(编码函数)主要由卷积层和池化层组成,解码器(解码函数)由反卷积层和反池化层组成。如图3所示的编码器为3层的自编码器,它是以模型的分类效果为标准选取的。虚线框内是一个卷积自编码器模型,它由编码器(Encoder)和解码器(Decoder)两部分组成,编码器将输入信号x变换成编码信号y,而解码器将编码信号y转换成输出信号z。
[0024] y=f(x)
[0025] z=g(y)=g(f(x))
[0026] 2‑2.图2中显示了卷积自编码器结构,图中的矩形代表自编码器每层的输出矩阵。编码器中包含一个输入层、3个卷积层和3个最大池化层,解码器包含4反卷积层和3个上采样层。卷积层中的计算公式为:
[0027]
[0028] 其中 和表 示卷积层的第k个输入映射和第i个输出映射。符号 表示卷积运算,f是激活函数,Wki是第k个输入映射和第i个输出映射之间的卷积滤波器,bi表示第i个输出映射相对应的神经元的第i个偏移矩阵。本发明中的反卷积层的输入和输出是尺寸相同的矩阵,则可以使用卷积层代替反卷积层。
[0029] 在每个卷积层后,使用下采样降低特征维数或使用上采样还原特征维数。这里使用最大池化层完成下采样,即滤波器的输出为输入数据的最大值,最大池化层的计算公式如下:
[0030]
[0031] 和表 示卷积层的第k个输入映射和第i个输出映射。上采样层中使用最临近插值算法进行上采样,最临近插值算法在输入矩阵中找到最临近的一个点,然后把这个点的值插入到输出矩阵中。计算公式如下:
[0032] xi=round(xo(wi/wo))
[0033] yi=round(yo(hi/ho))
[0034] 其中,(xi,yi)、(xo,yo)为输入和输出矩阵元素坐标,wi、wo、hi和ho是输入和输出矩阵的行数和列数。
[0035] 2‑3.设置网络参数,网络参数如图3。其中矩阵边缘需要补0填充,表格中”same”表示填充后该层的输出矩阵的尺寸与输入矩阵相同。这里的网络参数决定了特征降维后的特征维数。如图2所示,原本的特征矩阵为84*84,而第三个最大池化层的输出(即编码器部分的输出)为3个21*21的特征矩阵,即特征矩阵经过编码器编码后,特征维数从原始7056维降至1323维。
[0036] 步骤3中使用步骤1中所述的数据训练卷积自编码器,再将数据输入训练好的卷积自编码器的编码器对特征矩阵进行降维,得到低维特征,具体实现方法如下:
[0037] 3‑1.卷自动编码器是从训练数据中自动学习的,训练自编码器时只需适当的训练数据而不需要数据的标签。自编码器训练时可以使用随机梯度下降优化编码/解码函数的参数以最小化特征重建损失。
[0038] L(x,z)=L(x,g(f(x)))
[0039] L表示损失函数,这里以交叉熵误差(cross entropy loss)作为损失函数。使用adam作为优化器,训练卷积自编码器。卷积自编码器训练完成后,其中的编码器就是特征降维模型,解码器中第三个最大池化层的输出即特征降维模型的输出。
[0040] 3‑2.将步骤1中整理好的特征矩阵输入模型,进行特征重建,得到低维特征。
[0041] 步骤4中使用低维特征训练基于最近邻分类器的纠错输出编码模型。最后使用整个模型对新的脑电图进行癫痫发作检测,测试模型性能,具体实现方法如下:
[0042] 4‑1.使用低维特征和数据的标签训练基于最近邻分类器的纠错输出编码模型。该模型中采用一对一编码,使用10个最近邻分类器进行分类,得到编码矩阵M,根据以下公式预测样本所属类别:
[0043]
[0044] 其中,mkl为编码矩阵M中的元素,对应第k类第l个分类器的编码;sl为第l个分类器的分类结果;函数g功能为计算mkl和sl间的海明距离;为预测类别。
[0045] 4‑2.将新的脑电图数据按照同样的方式计算幅值谱并整理成84*84的特征矩阵。输入训练好的编码器中,得到低维特征。
[0046] 4‑3.将降维后的低维特征输入基于最近邻分类器的纠错输出编码模型,得到测试样本的类别。
[0047] 本发明有益效果如下:
[0048] 本发明使用卷积自编码器滤除干扰特征,降低了模型过拟合风险,提高了癫痫发作检测精度;同时卷积自编码器减少特征维数,降低了模型学习复杂度。
[0049] 将本发明所述的方法应用在癫痫患者的脑电图中,得到的总体识别率为93.25%,在相同的数据集上,若直接使用原始幅值谱进行癫痫发作检测,总体识别率仅为85.80%。对比它们对癫痫发作检测的效果,基于卷积自编码器的癫痫发作检测特征降维方法提升了总体识别率7.45%。在提高识别率的同时,卷积自编码器将原始7056维的幅值谱降维至
1323维,滤除了干扰特征,降低了模型过拟合风险,减小了分类模型的计算复杂度。实现了高精度的癫痫发作检测。