基于卷积神经网络的心电图自动识别算法

文档序号:31936176发布日期:2022-10-26 01:49阅读:127来源:国知局
基于卷积神经网络的心电图自动识别算法

1.本发明涉及心电图自动识别算法领域,尤其涉及一种基于卷积神经网络的心电图自动识别算法。


背景技术:

2.心电图(ecg)是利用心电图机从体表记录心脏每一心动周期所产生的电活动变化图形的技术。
3.对心电图数据进行准确识别是一个较为重要的问题,而现有的识别准确率有待提升。
4.为解决上述问题,本技术中提出一种基于卷积神经网络的心电图自动识别算法。


技术实现要素:

5.(一)发明目的
6.为解决背景技术中存在的技术问题,本发明提出一种基于卷积神经网络的心电图自动识别算法,本发明识别类型多,识别准确率高。
7.(二)技术方案
8.为解决上述问题,本发明提供了一种基于卷积神经网络的心电图自动识别算法,包括:
9.构件数据库:
10.所用的数据库为心律失常数据库;
11.预处理:
12.对所选择导联的心电信号进行预处理;
13.数据扩增:
14.通过改变样本均值和方差的方法将样本量较少的心搏类型进行数据扩增;
15.网络结构:
16.网络结构包含3个卷积层,3个池化层和3个全连接层采用误差反向传播算法最大化验证准确率;
17.训练算法流程如下:假设输入某个样本(x,y),其中x、y均为矢量,f表示非线性映射,w表示卷积层的连接权,u表示全连接层的连接权,b表示各个层的偏置,l表示网络的层数,即第l层网络,l表示当前层中的输出通道,即第1个输出通道,a表示各个层的输出,i表示各个层的输入。
18.(1)随机初始化各卷积层的连接权w
ll
、偏置b(此时,l=2,4,6;对应卷积层的第l个输出通道),以及全连接层的连接权偏置(此时,l=8,9,10;i、j分别表示当前层的第i个神经元和当前层上一层的第j个神经元);
19.(2)输入样本前向传播:a表示第l层,第l个输出通道的第i个输出(此时,l=1,2,3,4,5,6,7);全连接层的输出另表示为a;(此时,l=8,9,10,11);
20.输入层:
21.卷积层:
22.此时,l=2,4,6,w;为该层(卷积层)的通道l和该层的输入层(池化层或输入层)的通道i’之间的卷积核;其中,m为该卷积核的长度,k表示该层的输入层(池化层或输入层)的通道个数;
23.池化层:
[0024][0025]
此时,l=3,5,7;k为池化步长;
[0026]
全连接层:
[0027][0028]
此时,l=9,10,1,a8为a7的各个输出通道收尾串联而得,a
l
的第i个输出记为r为a
l-1
长度;
[0029]
(3)误差反向传播:δ
l
记为其中e为输出误差,i
l
为第l层的输入,对应不同层的误差具体如下所示;
[0030]
全连接层:
[0031][0032]
此时,l=11,符号表示对应位置相乘得到的新矢量,
[0033][0034]
此时,l=9,10,t表示转置操作,因此得到:
[0035][0036][0037]
池化层:误差由上层(卷积层)传过来,δ7为δ9按照原连接次序再断开得到,
[0038][0039]
此时,l=3,5,符号*表示卷积,即和的卷积;为上层(卷积层)的通道l

和该池化层的通道l之间的卷积核;flip为为对输入一维数据进行倒序操
作;
[0040]
卷积层:
[0041][0042]
此时,l=2,4,6;其中upsample为上采样,对于本文采用平均池化,上采样采样即误差反向传播时由上层(池化层)误差δ
l+1
均分到该层相应的神经元;
[0043]
和的卷积:
[0044][0045][0046]
(4)含有p个样本的批次训练参数t时刻更新量为:
[0047][0048][0049]
(5)t时刻权值更新:
[0050]wl
(t)=w
l
(t)-αδw
l
(t)-μw
l
(t-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0051]bl
(t)=b
l
(t)-αδb
l
(t)-μb
l
(t-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0052]
其中,α为学习率,u为动量项系数;
[0053]
(6)不断重复(1)~(5)更新参数,直到更新量小于设定的某个较小阈值或到达训练次数时得到网络模型。
[0054]
优选的,心率失常数据库包含48个记录,每个记录含有两个导联,采样率为360hz,每个数据长度约为30min,一共包含约109000个心搏,其中约70%为正常心搏,心电信号对应的心搏类型、节律信息和信号质量等都保存在注释文件中。
[0055]
优选的,选择bior小波进行8阶小波变换,去除了1层和2层高频噪声和8层低频信息然后重构,去除基线漂移和高频噪声干扰;训练网络阶段,由于注释文件中已给出r波的位置,所以未检测r波,在具体实测过程中,采用差分阈值法检测r波,然后以r波为中心对心电数据分割,每条分割片段长为440个采样点,通常包含了超过一个完整心搏的形态信息,对每个分割后的心搏片段进行标准化处理,使其均值为0,标准差为1。
[0056]
优选的,将输入层设为第1层,第2、4、6层为卷积层,一维卷积核长度分别为21、13和12,对应的输出通道数为10、12和8,第3、5、7层为平均池化层,池化步长为2,最后是神经元个数分别为90、40和13的多层感知器。
[0057]
优选的,初始的学习率α为0.5,随着训练周期降低学习率,为了加快训练速度,加入了动量项,其系数u设为0.8,此外采用小批量训练的方法,将批量大小p设为64。
[0058]
优选的,扩增的心搏类型包含(括号内表示该心搏类型的对应符号):心室扑动(!)、室性融合波(f)、交界性早博心搏(j)、加速的房性逸搏心搏(a)、真性起搏融合心搏
(f)、交界性逸搏心搏(j)和未下传的p波(x),而样本量较多的心搏类型则不进行扩增处理,包含:正常心搏(n)、左束支阻滞心搏(l)、右束支阻滞心搏(r)、房性早搏心搏(a)、室性早搏心搏(v)和起搏心搏(/)。
[0059]
优选的,为了避免数据不平衡的问题,从扩增的数据中随机选取了每类心搏中的2000个样本组成26000个样本集,为了更加客观的评价模型的性能,本文采用十折交叉验证来评价模型1,即将所有样本均分为10部分,依次将其中一份作为测试数据,另外9份作为训练数据,经过10次测试的平均结果来评价模型,即每次的训练集为23400个随机样本,测试集为2600个随机样本。
[0060]
本发明的上述技术方案具有如下有益的技术效果:
[0061]
本文使用cnn算法识别心搏类型,网络包含3个卷积层、3个池化层和3个全连接层,通过cnn自学习提取输入分割的心电信号特征,然后利用多层感知器对输入的特征进行识别分类,采用误差反向传播的方法训练模型,最后测试得到的平均准确率达到99.24%,特异度平均达到99.59%以上,阳性预测结果和敏感度平均为95.0%和95.06%,对于加噪信号,本网络仍具有较高的准确率,这对于实际使用过程中的动态心电图测试具有重要意义,采用一种端对端学习卷积神经的网络能以较高的准确率识别多达13种心搏,其识别心博种类多、可靠性高、快速和使用简便等特点可以在未来的心律失常的自动诊断中发挥重要作用。
附图说明
[0062]
图1为本发明提出的一种基于卷积神经网络的心电图自动识别算法的心搏识别流程图。
具体实施方式
[0063]
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图1,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0064]
如图1-所示,本发明提出的一种基于卷积神经网络的心电图自动识别算法,其特征在于,包括:
[0065]
构件数据库:
[0066]
所用的数据库为心律失常数据库;
[0067]
预处理:
[0068]
对所选择导联的心电信号进行预处理;
[0069]
数据扩增:
[0070]
由于所用数据库各个心搏类型的样本量不均匀,只考虑样本量相对较多的13类心搏,对于这13类心搏,样本量之间的差别仍然很大,为了使各类心搏的样本量均衡,通过改变样本均值和方差的方法将样本量较少的心搏类型进行数据扩增。扩增的心搏类型包含(括号内表示该心搏类型的对应符号):心室扑动(!)、室性融合波(f)、交界性早博心搏(j)、加速的房性逸搏心搏(a)、真性起搏融合心搏(f)、交界性逸搏心搏(j)和未下传的p波(x),
而样本量较多的心搏类型则不进行扩增处理,包含:正常心搏(n)、左束支阻滞心搏(l)、右束支阻滞心搏(r)、房性早搏心搏(a)、室性早搏心搏(v)和起搏心搏(/)。
[0071]
为了避免数据不平衡的问题,从扩增的数据中随机选取了每类心搏中的2000个样本组成26000个样本集,为了更加客观的评价模型的性能,本文采用十折交叉验证来评价模型1,即将所有样本均分为10部分,依次将其中一份作为测试数据,另外9份作为训练数据,经过10次测试的平均结果来评价模型,即每次的训练集为23400个随机样本,测试集为2600个随机样本。
[0072]
网络结构:
[0073]
cnn是近年来发展最快的人工神经网络之一,它可被视为一种特殊结构的多层感知器,常用于图像识别、自然语言处理等领域,络通常包含卷积层、池化层和全连接层,卷积层和池化层交替重复堆叠在网络前端提取输入数据的特征,卷积层的输出经过了激活函数的非线性化映射,然后输出到池化层,池化层能降低数据维数,避免过拟合,增强网络的鲁棒性,常用的池化操作有最大池化和平均池化,本文使用平均池化,将最后一个平均池化层的各个输出通道串联起来得到的一维信号作为全连接层的输入,多个全连接层组成多层感知器分类得出识别结果。
[0074]
本文的网络结构包含3个卷积层,3个池化层和3个全连接层,将输入层设为第1层,第2、4、6层为卷积层,一维卷积核长度分别为21、13和12,对应的输出通道数为10、12和8,第3、5、7层为平均池化层,池化步长为2,最后是神经元个数分别为90、40和13的多层感知器。
[0075]
采用误差反向传播算法最大化验证准确率,初始的学习率α为0.5,随着训练周期降低学习率,为了加快训练速度,加入了动量项,其系数u设为0.8,此外采用小批量训练的方法,将批量大小p设为64。
[0076]
本网络为处理一维数据的cnn,其训练算法流程如下:假设输入某个样本(x,y),其中x、y均为矢量,f表示非线性映射,w表示卷积层的连接权,u表示全连接层的连接权,b表示各个层的偏置,l表示网络的层数,即第l层网络,l表示当前层中的输出通道,即第1个输出通道,a表示各个层的输出,i表示各个层的输入;
[0077]
(1)随机初始化各卷积层的连接权w
ll
、偏置b(此时,l=2,4,6;对应卷积层的第l个输出通道),以及全连接层的连接权偏置(此时,l=8,9,10;i、j分别表示当前层的第i个神经元和当前层上一层的第j个神经元)。
[0078]
(2)输入样本前向传播:a表示第l层,第l个输出通道的第i个输出(此时,l=1,2,3,4,5,6,7);全连接层的输出另表示为a;(此时,l=8,9,10,11);
[0079]
输入层:
[0080]
卷积层:
[0081]
此时,l=2,4,6,w;为该层(卷积层)的通道l和该层的输入层(池化层或输入层)的通道i’之间的卷积核;其中,m为该卷积核的长度,k表示该层的输入层(池化层或输入层)的通道个数;
[0082]
池化层:
[0083][0084]
此时,l=3,5,7;k为池化步长。
[0085]
全连接层:
[0086][0087]
此时,l=9,10,1,a8为a7的各个输出通道收尾串联而得,a
l
的第i个输出记为r为a
l-1
长度;
[0088]
(3)误差反向传播:δ
l
记为其中e为输出误差,i
l
为第l层的输入。对应不同层的误差具体如下所示;
[0089]
全连接层:
[0090][0091]
此时,l=11,符号表示对应位置相乘得到的新矢量。
[0092][0093]
此时,l=9,10,t表示转置操作,因此得到:
[0094][0095][0096]
池化层:误差由上层(卷积层)传过来,δ7为δ9按照原连接次序再断开得到,
[0097][0098]
此时,l=3,5,符号*表示卷积,即和的卷积;为上层(卷积层)的通道l

和该池化层的通道l之间的卷积核;flip为为对输入一维数据进行倒序操作;
[0099]
卷积层:
[0100][0101]
此时,l=2,4,6;其中upsample为上采样,对于本文采用平均池化,上采样采样即误差反向传播时由上层(池化层)误差δ
l+1
均分到该层相应的神经元;
[0102]
和的卷枳:
[0103][0104][0105]
(4)含有p个样本的批次训练参数t时刻更新量为:
[0106][0107][0108]
(5)t时刻权值更新:
[0109]wl
(t)=w
l
(t)-αδw
l
(t)-μw
l
(t-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0110]bl
(t)=b
l
(t)-αδb
l
(t)-μb
l
(t-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0111]
其中,α为学习率,u为动量项系数。
[0112]
(6)不断重复(1)~(5)更新参数,直到更新量小于设定的某个较小阈值或到达训练次数时得到网络模型。
[0113]
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1