1. 引言
癫痫,表现为大脑神经元突发性异常放电,是一项重要的公共卫生问题,据国际卫生组织统计全世界大约有五千万癫痫患者 [1]。癫痫发作可能会导致严重的后果且有相当多的耐药性癫痫是药物无法控制的。因此及时检测发作期就成为一个关键的问题。通过脑电图识别癫痫是现有检测手段中准确率最高的方法,1929年英国的Hans Berger教授最先将脑电图应用在脑部的检查中 [2],从此后脑电图被医学界熟知且被认为是一种优秀的检查手段,然而癫痫的发作具有偶然性、无规律性等问题 [3]。通常,癫痫患者在一天内仅有几分钟间歇性癫痫发作,这非常影响人工识别的效率以及准确率 [4]。在这种情况下,癫痫识别亟待开发自动检测算法去替代人工识别。常用的自动识别算法主要从时域方面 [5] 与频域方面 [6] 入手,传统算法中通常将癫痫信号以时域、频域等多种方式 [7] 进行特征提取并完成分类过程,上述方法在早期脑电(EEG)癫痫识别中占据了主要的位置。近些年随着深度学习的大热越来越多的深度学习方法被应用在EEG癫痫信号自动处理中 [8] [9] [10] [11],Mengni Zhou等应用CNN模型通过时域与频域将EEG分类为发作间期与发作前、发作间期与发作期并在CHB-MIT数据库取得了一定的效果 [12];李营等最小二乘支持向量机(LS-SVM)方法,得到了癫痫发作间歇期和发作期的识别结果平均准确度高达98% [13]。而现有的CNN模型由于体积大、结构复杂,不适合在硬件处理器中实现。
结合上述研究,本文提出了一个基于一维卷积神经网络(1DCNN)的脑电(EEG)癫痫发作识别模型,同时设计一个专用的硬件处理器执行识别过程。本文从EEG癫痫发作特征和卷积特征提取原理出发,研究基于CNN的癫痫发作识别模型,该模型适合于在嵌入式设备中进行实时检测。同时本文从硬件卷积展开原理出发,研究基于CNN的EEG癫痫识别硬件处理器,该处理器可以高效完成EEG癫痫具体识别运算过程,提升EEG癫痫的识别效率。该处理器最终在FPGA平台上实现,其最高工作频率为100 MHz,完成一轮原始数据的识别仅需要0.6 ms。
2. 癫痫数据集和数据预处理
CHB-MIT数据库 [14] 是由波士顿儿童医院收集的,包括患有顽固性癫痫的儿童受试者的脑电图记录。受试者在停用抗癫痫药物后被监测了数天,以确定他们癫痫发作的特征,并评估他们是否适合手术干预。这些记录包括198起癫痫发作。所有信号采样速率为每秒256次采样,分辨率是16位。其中大部分样本包含23个脑电信号,所以这23个通道信号作为原始脑电信号的输入。图1为CHB-MIT数据库截图,可以直观看出正常的脑电图主要以BETA节律构成,而癫痫发作时期的脑电图就明显有大量高幅值的异常电位信号存在,这些就是所需要检测EEG癫痫发作的特征信息。
该数据集有千余小时的多通道EEG原始数据,然而198起癫痫的发作时长之和也只有几个小时,也即患者处于癫痫状态的采集数据不足整个数据集的1%,如果直接使用CHB-MIT数据集作为训练与评价的数据集,则会导致二分类过程中的极度不平衡 [15]。因此需要进行数据平衡的数据预处理操作。具体做法是使用全部的癫痫发作期数据,而同时正常时段脑电数据按照300:1的比例进行等比例抽样,这样平衡处理后可生成一个癫痫状态与正常状态比例为1:1.5的全新数据集,并将其按照比例分割为训练集、验证集两个部分,训练集占总数据集的90%,验证集占总数据集的10%,其中占比最多的训练集作为癫痫识别特征学习的来源,验证集用于检验最终网络模型的学习结果,观察该网络模型在全新未知环境下实际表现效果。

Figure 1. CHB-MIT electroencephalogram fragment map
图1. CHB-MIT脑电图片段图
3. 癫痫发作识别网络模型
本文提出的模型主要由四个卷积层组成,该卷积网络模型的结构图如图2所示。该网络模型中的输入信道数等于CHB-MIT数据集中的EEG信号信道数,即23个输入信道,卷积核尺寸均为5,卷积层起到提取原始数据特征信息的效果,保留主干信息的同时降低输入信号的噪声,多层的卷积运算可以将癫痫状态特征与正常状态特征从繁杂的原始输入中凸显出来。使用SAME作为卷积层的填充方式,目的是保证网络模型在每一个卷积层运算前与运算后形状保持一致,在硬件运算过程中方便读取与写回的统一调度处理。池化采用最大池化,这里使用最大池化方式的目的在于降低后续层的输入特征图大小,最大池化尺寸为2,步长为2,在实现下采样的同时也能够尽可能保存有用特征信息。使用ReLU函数作为激活函数,ReLU是目前激活函数中效果最好也是实现最为简单的方式,在硬件实现中只需要基于符号位选择输出。

Figure 2. The structure diagram of network model
图2. 网络模型结构图
4. 处理器结构
图3显示了本文提出的硬件处理器的整体架构。它主要由控制单元、存储器、输入延时、运算阵列、激活、池化模块组成。控制单元是硬件处理器的关键,由状态机、地址信号生成器、控制信号生成器以及启停单元组成;存储器模块负责存储输入、卷积核权值和卷积核偏置数据,由多块片上存储器构成。输入延时模块负责生成所需的输入流,由寄存器组构成;卷积运算阵列实现具体的卷积运算操作,由片上缓冲区以及运算单元组成;ReLU函数在激活模块中执行;池化模块由寄存器与比较器构成,用于执行下采样操作并将输出流送回存储器。

Figure 3. The architecture diagram of hardware processor
图3. 硬件处理器架构图
加载完所需的数据后,该处理器将开始执行识别任务。权值和偏差从存储器读取到卷积运算阵列并等待运算。原始输入数据从存储器中读出,并通过输入延时模块形成输入流送入卷积运算阵列。完成乘法与加法后,根据当前层的具体要求激活并汇集,最后写入存储。完成一轮识别任务后,从输入/输出端口发送结果。
5. 复用原理与输入延时设计
输入延时模块是本文提出的硬件处理器的形成输入延时的结构。它负责在输入数据存储器中读取输入数据,形卷积运算阵列需要的输入流。
图4显示了本文提出的输入延时模块的电路结构图。它主要的结构是10个大小一致的寄存器。输入数据从存储器读出后从输入端口送入该模块,此时可以直接从输出1输出,同时每一个延时寄存器的数据按照箭头所示进行数据移动,就形成了运算阵列所需要的输入流。
该结构的优点是,在卷积过程中,卷积运算单元利用率非常高,有效利用硬件乘法与加法资源。在此基础上,输入数据、卷积核权值与偏置将被充分的复用,以减少大量的片外访问操作。具体原理如图5和图6所示。
图5显示,在不同的输出特征图之间可以共享一个像素。图6显示,相同的权值可以在一轮输入特征图中连续重复使用。此外,像素可以在5个连续的时钟周期中复用5次。

Figure 5. The principle of input data reuse
图5. 输入数据复用原理

Figure 6. The principle of input and weight data reuse
图6. 输入和权值数据复用原理
6. 实验结果
6.1. 癫痫识别网络模型性能评估与比较
对于模型的评价这里使用EEG癫痫识别通用的评价指标:准确性、特异性、敏感性。大多数先进的癫痫发作检测模型也使用这些指标,使用这些指标来评估本文提出的模型有助于与它们进行合理的比较。
(1)
(2)
(3)
TP (真阳性)为正确识别出癫痫状态次数,TN (真阴性)为正确识别出非癫痫状态次数,FP (假阳性)指正常状态但归类为癫痫状态的次数,FN (假阴性)指癫痫状态但归类为正常状态的次数。
选择带有默认设定参数的Adam优化器作为训练过程的梯度优化器,对该模型的进行训练。完成模型的训练后,使用验证集对预训练完成的模型进行评估。
测量和比较结果如表1所示。在 [4] 中提出的模型是目前准确率较高的二维CNN网络模型,与此相比,本文提出的模型的精度下降了2%,但模型大小仅为它的20%,在嵌入式设备等对于空间和功耗要求更加严苛的平台上拥有着更佳的表现。

Table 1. Evaluation and comparison of EEG epileptic seizure recognition model indicators
表1. EEG癫痫发作识别模型指标评估与比较
6.2. 处理器性能表现与资源消耗
根据癫痫识别网络模型参数配置处理器并在FPGA平台上进行实现。将所需原始EEG输入、网络模型的卷积核权值与偏置转换为二进制并写入至FPGA指定BRAM中,并配置数字信号处理单元(DSP)作为卷积运算阵列的运算单元,进行逻辑综合布局布线并使用逻辑分析仪查看最终识别结果。同样使用验证集中800组EEG原始数据作为测试输入,得到了如下表2的软硬件评估与比较表。
如表2所示,处理器能够正常完成识别任务,由于使用了16 bit定点数精细量化方案,准确度相较于软件执行的64 bit浮点数运算仅仅下降了0.7%,没有较为严重的精度损失。仅需要使用2890个查找表、1240个寄存器片以及64个DSP单元就可以完成这个EEG癫痫发作识别的处理器结构实现,最高工作频率100 MHz,执行一轮原始EEG数据的识别运算仅需要0.6 ms,相较于传统的EEG癫痫识别方式具有更高的效率以及更低的资源消耗。

Table 2. Evaluation and comparison of hardware and software execution results
表2. 软硬件执行结果评估与比较
7. 结论
基于传统EEG癫痫识别方案所存在的各种问题,本文给出了一种基于深度学习的EEG癫痫识别的软硬件协同设计。软件部分提出了一种基于一维CNN的模型结构,保证高识别率的同时减少了模型所需要的运算资源,更加适用于嵌入式设备使用。同时给出了一种专用的硬件处理器结构,通过复用片上数据、减少数据的片外交换次数来提升硬件处理器的执行效率。通过这种软硬件协同优化的实现方法,构建了一套高能效的EEG癫痫识别系统。本文所提出的基于深度学习的癫痫识别软硬件协同设计虽然在CHB-MIT数据集上取得了较为不错的效果,但是数据集的覆盖的患者范围依然是有限的,还需要在更多癫痫数据集上验证网络模型的泛化能力,能够更加准确地评估临床识别效果。
NOTES
*通讯作者。