作者提出了一种利用隐马尔可夫模型进行序列解码、利用深度学习网络进行后处理的混合机器学习系统,并在 TUH 脑电图数据集进行训练和评估;
这种方法提供了 90% 以上的敏感性,而保持 5% 以下的特异性,可以检测三种临床感兴趣的事件:
(1)尖峰和/或锐波;
(2)周期性偏侧癫痫样放电;
(3)全身性周期性癫痫样放电;
还可以检测用于建模背景噪声的三个事件:
(1)伪影;
(2)眼动;
(3)背景;
提出了一种基于隐马尔可夫模型和深度学习的混合机器学习系统来实现 EEG 的自动解释,研究结果在 TUH 脑电图数据集上测试,该语料库是世界上最大的可公开获取的脑电图记录数据库;
得出的结论是:使用大数据和深度学习,该系统性能接近临床接受的要求;
数据集使用的是 TUH EEG 数据集,详细情况请移步我的这几篇博客:
【基于深度学习的脑电图识别】数据集篇:TUH EEG 数据集: 脑电信号自动判读的大数据
【基于深度学习的脑电图识别】TUH EEG 脑电图数据下载方法
【基于深度学习的脑电图识别】使用TUH 提供的工具为 EDF 格式的脑电图数据进行标注并保存为.lbl文件
基于深度学习的 EEG 分析系统的特征提取往往依赖于信号的时频表示;
基于倒谱的滤波器组或小波滤波器等技术在许多信号处理应用中是当前流行的分析技术,包括脑电图分类,因此该系统使用了一种标准的基于线性倒谱系数的特征提取方法;
作者对 EEG 使用线性频率标度,因为几乎没有证据表明非线性标度与此问题相关,而且在实践中线性标度的性能稍好一些;
而且近期使用不同类型的特征或直接使用采样数据的实验并没有通过消除特征提取过程和直接使用采样数据来显著改善性能;
在 LFCC 方法中,通过计算高分辨率的快速傅里叶变换来计算倒谱系数是很常见的,通常使用基于一组重叠带通滤波器的过采样方法对这种表示进行下行采样,并使用离散余弦变换将输出转换成倒谱域;
在本研究中,通过计算采样后过采样滤波器组输出的平方和,丢弃零阶倒谱项,代之以频域能量项:
E f = l o g ( ∑ k = 0 N − 1 ∣ X ( k ) ∣ 2 ) E_f=log(\sum_{k=0}^{N-1}|X(k)|^2) Ef=log(k=0∑N−1∣X(k)∣2)
为了更好地区分瞬态类脉冲事件和静止背景噪声,作者还引入了一个差分能量项,它试图模拟能量的长期变化;
这个术语在以当前帧为中心的 M 帧范围内检查能量,并计算在此区间内的最大值和最小值之间的差异:
E d = m a x m ( E f ( m ) ) − m i n m ( E f ( m ) ) E_d=max_m(E_f(m))-min_m(E_f(m)) Ed=maxm(Ef(m))−minm(Ef(m))
其中用来计算这一项的滑窗的间隔是 0.9 s;
在特征提取过程中的最后一步是使用回归方法计算特征导数:
d t = ∑ n = 1 N m ( c t + n − c t − n ) 2 ∑ n = 1 N n 2 d_t=\frac{\sum_{n=1}^Nm(c_{t+n}-c_{t-n})}{2\sum_{n=1}^Nn^2} dt=2∑n=1Nn2∑n=1Nm(ct+n−ct−n)
其中 d t d_t dt 是一个 δ 系数,是从坐标系 t t t 计算的从 c t + n c_{t+n} ct+n 到 c t − n c_{t-n} ct−n 静态系数,这些特征通常被称为增量,因为它们测量特征随时间的变化,;
在 EEG 处理中,一阶导数 N 的取值通常为 9(对应0.9秒),二阶导数 N 的取值通常为 3,导数的引入有助于系统区分稳态行为(如脉冲信号)或非稳态信号(如峰值信号和眼球运动信号);
作者将这种方法再次应用到这些导数上,以获得特征的二阶导数的估计值,即 δ-δ,这个过程使特征向量的大小增加了三倍(添加 δ 和 δ-δ),并在性能方面提供了小而可测量的改进;
作者在研究中发现最佳的性能可以通过使用一个长度为 26 的特征向量,包括:
隐马尔可夫模型(HMMs)是当今最强大的统计建模工具之一,是一类离散状态序列(被建模称为马尔可夫链)的双随机过程,能将时频信号分解为能量和频率谱;
与语音识别系统一样,作者假设脑电图信号是由一个或多个符号序列编码的某种信息的实现;
作者将 EEG 建模为六个符号中的一个序列:SPSW、PLED、GPED、EYEM、ARTF 和 BCKG(可以看数据集中的具体解释),并假设每个事件由一系列特征向量或观测值 O 表示,定义为:
O = o 1 , o 2 , … , o T O = o_1,o_2,…,o_T O=o1,o2,…,oT
其中 o t o_t ot 是在时间 t t t 观察到的特征向量;
然后考虑 S i S_i Si 是事件的有序集合中的第 i i i 个元素,那么就可以把原本孤立的事件识别问题转换成,在给定先验概率 P ( s ) P(s) P(s) 找到最可能的事件的问题,即预测基于概率 P ( O ∣ S i ) P(O|S_i) P(O∣Si) 的先验概率 P ( S i ) P(S_i) P(Si);
因此可以为每个事件训练一个 HMM 模型;
一个简单的用于解码 EGG 时序信号的 GMM-HMM 模型如上图所示;
典型的 GMM-HMM 模型包括:
考虑:
那么 t t t 时刻从状态 i i i 过渡到状态 j j j 的概率就可以定义为:
γ i ( i , j ) = α ( i , t − 1 ) a i j b i j ( O t , μ i j , ∑ i j ) β ( j , t ) ) P ( O ∣ M ) \gamma_i(i,j)=\frac{\alpha(i,t-1)a_{ij}b_{ij}(O_t,\mu_{ij},\sum_{ij})\beta(j,t))}{P(O|M)} γi(i,j)=P(O∣M)α(i,t−1)aijbij(Ot,μij,∑ij)β(j,t))
过渡概率的重估公式为:
a i j = ∑ t γ i ( i , j ) ∑ t ∑ j γ i ( i , j ) a_{ij}=\frac{\sum_t\gamma_i(i,j)}{\sum_t\sum_j\gamma_i(i,j)} aij=∑t∑jγi(i,j)∑tγi(i,j)
如果输出向量 O t O_t Ot 遵循一个 n n n 维正态分布,那么密度函数的输出如下:
b i j ( o t , μ i j , ∑ i j ) = e x p { − ( o t − μ i j ) t ∑ i j − 1 ( o t − μ i j ) / 2 } ( 2 π ) n / 2 ∣ ∑ i j ∣ 1 / 2 b_{ij}(o_t,\mu_{ij},\sum_{ij})=\frac{exp\lbrace -(o_t-\mu_{ij})^t\sum^{-1}_{ij}(o_t-\mu_{ij})/2\rbrace}{(2\pi)^{n/2}|\sum_{ij}|^{1/2}} bij(ot,μij,ij∑)=(2π)n/2∣∑ij∣1/2exp{−(ot−μij)t∑ij−1(ot−μij)/2}
其中 μ \mu μ 是均值, ∑ i j \sum_{ij} ∑ij 是协方差矩阵,由此可以计算高斯混合模型中每个组件的参数:
μ i j = ∑ t γ i ( i , j ) o t ∑ t γ i ( i , j ) , \mu_{ij}=\frac{\sum_t\gamma_i(i,j)o_t}{\sum_t\gamma_i(i,j)}, μij=∑tγi(i,j)∑tγi(i,j)ot,
∑ i j = ∑ t γ i ( i , j ) ( o t − μ i j ) ( o t − μ i j ) t ∑ t γ i ( i , j ) \sum_{ij}=\frac{\sum_t\gamma_i(i,j)(o_t-\mu_{ij})(o_t-\mu_{ij})^t}{\sum_t\gamma_i(i,j)} ij∑=∑tγi(i,j)∑tγi(i,j)(ot−μij)(ot−μij)t
在信号建模的第一关中,我们将 EEG 信号的每个通道划分为 epoch,然后每个 epoch 由一系列帧表示,其中每个帧由一个特征向量表示;
在训练时,我们通过遍历训练数据集估计 K 个模型的参数( a i j , b i j , μ i j , ∑ i j a_{ij},b_{ij},\mu_{ij},\sum_{ij} aij,bij,μij,∑ij);
解码通常使用 Viterbi 算法,然后每个事件使用一个 HMM 模型,为每个模型生成一个后验概率,并选择对应于最高概率的事件;
深度学习允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示,并通过使用反向传播算法来指示机器应该如何改变其内部参数来发现大数据集中复杂的结构;
图中的第二关处理的目标是整合空间和时间背景来改进决策,因此,深度学习系统对每个信道的每个 epoch 的长度为 6 的后验概率向量输出进行后处理;
作者在这里使用了一种特殊类型的深度学习网络,称为堆叠去噪自编码器(SdA);
从结构上看,SdAs 是一种叠加去噪自编码器的形式,利用底层去噪自编码器的潜在表示作为当前层的输入,从而形成一个深度网络;
自编码器接收输入向量 x ∈ [ 0 , 1 ] x\in[0,1] x∈[0,1],并通过一个确定的映射将它映射到一个隐藏特征 y ∈ [ 0 , 1 ] y\in[0,1] y∈[0,1];
即:
y = f θ ( x ) = s ( W x + b ) y=f_{\theta}(x)=s(Wx+b) y=fθ(x)=s(Wx+b)
其中 θ = { W , b } \theta=\lbrace W,b\rbrace θ={W,b}, W W W 是一个 d ′ × d d^{'}×d d′×d 大小的权重矩阵, b b b 是偏置向量, s s s 是非线性函数(比如 Sigmoid);
隐藏特征 y y y 然后被译码器映射到与输入 x x x 大小相同的向量 z z z:
z = g θ ′ ( y ) = s ( W ′ y + b ′ ) z=g_{\theta^{'}}(y)=s(W^{'}y+b^{'}) z=gθ′(y)=s(W′y+b′)
反向映射的权重矩阵 W ′ W^{'} W′ 可以在 W ′ = W T W^{'}=W^T W′=WT 的约束条件下优化,即具有相关权重;
可以利用损失函数 L L L 对模型参数进行优化,使平均重构误差最小,如重构交叉熵:
θ ∗ , θ ′ ∗ = arg min θ , θ ′ 1 n ∑ i = 1 n L ( x ( i ) , g θ , ( f θ ) ) \theta^{*},\theta^{'*}=\argmin_{\theta,\theta^{'}}\frac{1}{n}\sum^n_{i=1}L(x^{(i)},g_{\theta},(f_{\theta})) θ∗,θ′∗=θ,θ′argminn1i=1∑nL(x(i),gθ,(fθ))
首先通过随机映射 x ~ = q D ( x ~ ∣ x ) \widetilde{x}=q_D(\widetilde{x}|x) x =qD(x ∣x) 获取初始输入 x x x 的加噪声数据 x ~ \widetilde{x} x ;
然后将这个损坏的输入映射到一个隐藏的表示 y = f θ ( x ~ ) = s ( W x ~ + b ) y=f_{\theta}(\widetilde{x})=s(W\widetilde{x}+b) y=fθ(x )=s(Wx +b);
最后通过映射 z = g θ ′ ( y ) = s ( W ′ y + b ′ ) z=g_{\theta^{'}}(y)=s(W^{'}y+b^{'}) z=gθ′(y)=s(W′y+b′) 重建向量 z z z;
第二阶段处理的框图如图所示,这一阶段包括三个并行的S dAs,旨在整合空间和时间背景,以改进决策;
这些 SdAs 采用不同的窗口大小来实现,以有效地执行信号的多时间尺度分析,并将事件标签映射到单个复合 epoch 标签向量上;
第一个SdA,被称为 SPSW-SdA,负责将标签映射到两个类中的一个:癫痫病样和非癫痫病样;
第二个SdA,被称为 EYEM-SdA,负责将标签映射到背景(BCKG)和眼动(EYEM)类;
第三个SdA,被称为 6W-SdA,负责将标签映射到六个可能的类中的任何一个;
前两个sda使用相对较短的窗口上下文,因为 SPSW 和 EYEM 是局部事件,只有在有足够的时间分辨率时才能检测到;
这三个 SdA 网络的训练分为两个步骤:预训练和微调;
去噪的自编码器被堆叠起来形成一个深度网络,这种体系结构的无监督预训练一次完成一层,每一层都通过最小化重构其输入(即前一层的输出 z z z)的损失函数来实现被训练成一个去噪的自动编码器;
一旦所有层都进行了预训练,网络就会经历第二个阶段的训练,称为微调(fine-tuning);
在这里作者考虑了监督微调,即最小化监督任务的预测误差;
因此首先在网络上添加一个逻辑回归层,然后像训练多层感知器一样训练整个网络;
此外,从图中可以看出,在将深度学习网络的输入数据应用到这些 SdAs 之前,也可以使用全局主成分分析(PCA);
PCA 通过将每个通道的输出连接到一个超向量中,然后在输入到 SdA 之前降低它的维数,从而应用于每个单独的 epoch;
并且对于罕见的和局部的事件,如 SPSW 和 EYEM,作者使用样本外技术(out-of-sample)来增加训练样本的数量;
最后,使用一个称为增强器的模板将这三个 SdAs 的输出组合起来,以获得最终的决策;
为了将这三个输出相加,作者使用 6 路分类器的输出初始化最终的概率输出;
对于每个 epoch,如果其他两个分类器检测到癫痫病或眼球运动,并且 6 路分类器与此不一致,我们根据 2 路分类器的输出更新输出概率;
因此第二阶段的总体结果是一个 6 维的概率向量,其中包含每个事件在 epoch 中的概率;
神经学家在解读脑电图时,通常会对事件施加一定的限制,例如,PLED 和 GPED 不会在同一个会话中发生,然而前面的处理阶段都没有解决这个问题,在建立长期时间环境模型方面效果不是很好。第三阶段的处理解决了这个问题,并通过使用基于统计语言模型的有限状态机改进了总体检测性能:
如图所示,第三阶段的后处理是为了对第二阶段的输出施加一些上下文限制,这些上下文关系涉及信号的长期行为,并以数据驱动的方式进行学习;
这种方法也借鉴了语音识别,在语音识别中使用概率语法,即通过使用施加特定语法约束的有限状态集合将左右上下文与标签结合起来;
在本研究中,作者利用训练资料集并与 THU 神经科医师协商,建立一个二元概率语法模型,提供从一种类型的元到另一种类型的元的概率转换;
下表显示了 6 个类中每个类的两元图概率,它对从一个事件到下一个事件的所有转换概率进行了建模,来模拟神经学家使用的上下文知识;
例如:
由于 PLED 是长期事件,因此从一个事件转换到下一个事件的概率很高,大约为 0.9;
如果在出现的峰值是 PLED 或 GPED,那么从它们转换为 SPSW 的概率是 0.0;
因此在编译概率表之后,一个长窗口以每个 epoch 为中心,并且通过将左上下文和右上下文作为先验来更新该 epoch 的后验概率向量(本质上是通过其左上下文和右上下文来预测当前 epoch);
并且在算法的单次迭代中,也可以使用贝叶斯框架更新该语法的概率:
该算法不断迭代,直到基于概率向量解码的事件分配收敛;
作者与数名神经科医生和本科生标注员合作,手动标注 TUH 数据集并进行评测:
训练集包含 359 个样本的片段,而评估集包含 159 个样本;
需要注意的是,这些注释是在通道的基础上创建的——对观察到的事件的特定通道进行了注释;
6 类事件在训练评价集中出现的频率分布如表所示:
训练集的设计目的是提供足够数量的示例来训练诸如 HMMs 之类的统计模型;
注意,在现实中,99% 的数据都分配给了 BCKG 类,因此需要高性能的分类器来检测需要处理不经常发生的事件,因为大量的数据是不提供信息的,这通常被称为不平衡数据问题;
所有 EEG 均采用标准10-20系统记录,每个EEG有 22 个通道的信号数据;
一组简单的初步实验确定,计算复杂度和性能之间的合理权衡是将 10 秒的窗口分割为 1 秒的时间间隔,并将这些时间间隔进一步细分为 0.1 秒的帧;
因此,使用 0.2 秒重叠分析窗口每,0.1秒计算一次特征,即每个通道中每 0.1 秒对应一个 26 维的特征向量;
利用 HMMs 模型进行实验,每个状态使用 8 个高斯混合分量和一个对角协方差假设;
模型使用所有通道上的所有事件进行训练,得到所谓的的通道无关模型,而依赖于通道的模型还没有被证明能够提高性能并且会增加系统的复杂性;
第一次处理的结果如下表所示:
而通过将三个背景类合并成一个类别,可以构造一个更有信息性的性能分析;
因此作者将第二阶段的评估范式指定为四分类任务:SPSW、GPED、PLE 和 BACKG,后一个类包含三个背景类,分类结果如下表所示:
最后,为了生成 DET 曲线,作者还报告了一个双向分类结果,即将数据分解为目标类(TARG)和背景类(BCKG),结果如下表所示:
需要注意的是,所有这些表的分类结果都是通过将每个通道的每个 epoch 作为独立事件计数来度量的,因为每个 epoch 都为每个通道分配一个基于其类标签的概率向量;
处理的第一阶段的输出是一个矢量,即每个 epoch 中的每个通道的 6 个分概率;
因此,如果有 22 个通道和 6 个类,那么每个 epoch 的维数为 6 x 22 = 132,这个 132 维的向量是在不考虑邻近时间的相似向量的情况下计算出来的;
由于每个通道都对应于颅骨上特定的电极位置,因此同一 epoch 内其他通道提供的信息被称为空间上下文,从其他时代获得的信息被称为时间上下文,那么这一阶段处理的目标就是将空间和时间背景结合起来以改进决策;
为了整合上下文,到第二阶段的深度学习系统的输入是一个 6×22×窗口长度的向量,这种输入维度较高,为了解决这一问题,作者采用了一种标准方法,即在每个 SdA 之前使用主成分分析(PCA);
PCA 对于用于查找 SPSW 和 EYEM 的 SdA 检测器输出一个 13 维的向量,对于用于查找 6 路分类的 SdA 分类器输出一个 20 为维的向量;
此外,由于在训练数据集中没有足够的 SPSW 和 EYEM 事件,作者使用了样本外技术;
作者使用了一个开源工具包 Theano以实现SdAs,并利用交叉熵损失函数对模型参数进行优化,使平均重建误差最小;
在优化过程中使用了小批量随机梯度下降,从而减少了梯度估计中的方差,并且通常更好地利用了现代计算机中的分层存储组织;
每一层的参数如下:
第二阶段处理的输出是一个矢量,每个epoch有6个分数(即概率),也是处理的第三阶段的输入;
第三的优化参数是:
6路分类任务可以构造成几个子任务,当然,由于信号是背景的概率很高,系统对背景模型的选择有很大的偏差,因此,我们可以看到 BACKG 的性能相当高,但是BCKG经常与SPSW混淆;
SPSW事件持续时间短,在BCKG中有许多类似于SPSW事件的瞬态事件,这是添加ARTF和EYEM模型的原因之一,这样可以减少所有类与短脉冲SPSW事件的混淆;
GPED最常与PLED事件混淆,这两个事件的持续时间都比SPSWs和人工事件长;从结果中可以看出,这两个类的性能通常很高;
GPED和ple之间的主要区别是持续时间,因此作者设计了一个后处理来学习这个区别;例如,在第二轮处理中,作者实现了41秒的窗口持续时间,这样SdA系统就可以暴露在长期的时间环境中;
作者还设计了三个独立的SdA网络来区分短期和长期环境;
虽然全面的性能提高了,但是通过添加第二轮后处理,SPSW的性能下降了,这反映了数据的不平衡;因此即使使用了样本外技术来增加SPSWs的训练样本数量,但是也不能解决缺少带注释的SPSW数据的问题;
不同处理阶段的结果摘要如下表所示:
可以看出多通道混合 HMM/DL 分类系统的总体性能是有希望的:敏感性超过90%,特异性低于5%;
由于误报率随灵敏度的变化非常大,因此作者使用DET曲线来测试性能:
从图中可以很明显地看出,当我们增加检测率时,后处理显著地提高了保持低误报率的能力;
本研究表明,需要大量的语境处理才能达到5%的特异性;
本文提出了一种能对临床相关脑电图事件进行高效分类的三通系统,该系统结合了 HMMs 进行精确的时间分割和深度学习进行高性能的分类:
本文的混合 HMM/DL 系统提供了90%以上的敏感性,同时保持了5%以下的特异性,使自动化分析成为临床医生可行的选择;