基于多导联和卷积神经网络的心律失常智能诊断方法与流程

文档序号:14719491发布日期:2018-06-17 01:38阅读:235来源:国知局
本发明涉及一种利用深度卷积神经网络(ConvolutionalNeuralNetwork,CNN)对多导联心电图进行心律失常智能诊断的方法。更具体的说,是利用大量带有心律失常标签的多导联心电图数据训练深度卷积神经网络,自动学习蕴含其中的心律失常信息,从而实现自动诊断的目的。。
背景技术
:心电图检查在医院已成为常见检验项目。临床上,医生主要通过心电图评估患者心脏健康情况,尤其对心律失常的诊断起到了关键性的作用,同时长期监测心电图是预防和及时治疗心律失常的有效手段,也给人们掌控自身心脏状况提供了可能。心电图信号是非平稳周期性生物信号,由心脏的电活动引起,蕴含大量心脏活动信息,其复杂性和专业性限制了心电图必须由受过培训的专业医师解读。心律失常类型较多,这是由心脏的复杂结构和活动规律决定的。同类型的心律失常在相同患者的不同阶段之间的心电图很可能有明显变化,不同患者同种类型的心律失常在心电图上的差异更大,这就在客观方面给心律失常的自动诊断造成很大难题。最早的研究把心电信号看作类似自然语言的带有信息的符号序列,结合心电图诊断专家的专业知识和丰富经验,利用语义方法自动分析心电图和波形。例如Stockman等人将心电图转化为异或网络,分析过程即为在这网络上的搜索。随着专家系统在人工智能领域的崛起,一类基于“if-then”规则的分析方法被引入心电图分析当中,其推理归因机制依赖专家经验。因为心脏活动的复杂性和心律失常的多变性,不可能把医生所有经验知识转化为计算机可利用的逻辑,且信息转化效率极低,这使得这些早期方法很不理想。二十世纪九十年代统计学习兴起,众多机器学习方法被提出,以支持向量机(SupportVectorMachine,SVM)为代表的新方法被引入心律失常自动诊断问题中,同时也有小部分研究人员尝试使用神经网络解决这一问题。这些方法以心电图数据为基础辅以离散小波变换等信号分析方法,凭借统计学习的进步,一定程度上摆脱了专业知识对心律失常自动诊断的限制,但依然需要根据心律失常的类型进行特征提取和统计分析工作。多数方法主要依靠医生和特征工程师对心电信号进行特征提取,根据先验知识建立心电信号的解析规则,在最新的基于离散小波分析的方法中,依然需要手工设计特征。这些方法最大的弊端是严重依赖特征的选择,而且工作量较大。CNN对复杂数据结构具有很强的自主学习能力,利用其通用性,可以建立针对心电信号特点的深度神经网络模型,通过已有的心电数据训练网络自动提取特征然后分类,既可以直接使用同一个网络进行分类,也可以把这些特征输入到其他诸如SVM等分类算法当中,从而省去了手工提取特征的环节,实现真正的智能诊断。技术实现要素:本发明为了克服上述技术问题的缺点,提供了一种基于多导联和卷积神经网络的心律失常智能诊断方法。本发明的基于多导联和卷积神经网络的心律失常智能诊断方法,其特征在于,设x为正常人的一个心跳周期内的多个导联心电图信号序列,则x可以表示为:Slead=[s1,s2,...si,…sn],其中Slead表示导联为lead的信号序列,si为一个心电信号值;假设任意一个心跳x有唯一对应的心律类型,要么为正常心律或者为异常心律,设为y,则y与x之间存在函数关系Γ,即y=Γ(x);利用心电图数据训练CNN,得到一个逼近Γ(x)的函数关系其中θ表示CNN的参数;对于待诊断的心电图数据,利用获取的函数关系实现心律失常的智能诊断,以作为诊断结果或供医生参考。本发明的基于多导联和卷积神经网络的心律失常智能诊断方法,通过以下步骤来实现:a).选取数据样本,以MIT-BIH心律失常数据库的心电记录为数据来源,每例记录由肢体II导联和胸部V1导联组成,将两个导联信号没有保持一致的记录剔除,剩余的记录作为训练样本;b).标注心律失常类型,专家对步骤a)选取的每例记录的肢体II导联、胸部V1导联数据形成的心律波中每个心跳的心律失常类型进行标注,所标注的心律失常类型为Arr={N,L,R,A,V},其中N为正常心律,L为左束支传导阻滞,R为右束支传导阻滞,A为房性早搏,V为室性早搏;c).截取导联的心跳信号,设一个标注点的标注信息为(arr,p|arr∈Arr,p∈Z+),arr表示心律失常类型,p表示标注位置,Z+表示正整数,p表示标注点为记录中的第几个点;心跳信号的截取时长设定为1秒,由于MIT-BIH心律失常数据库的采样频率为360Hz,即截取360个信号点;对于一个心跳信号,产生一个新的随机数m∈[120,200],在肢体II导联数据中,截取p之前的m-1个信号点和p之后的360-m的信号点,将获取的360个信号点组成肢体II导联的心跳信号SII,对于同一个心跳信号,保持m的值不变,采用相同的方法在胸部V1导联数据中截取相应的心跳信号SV1,同一标注点的心跳信号d).得到归一化的心跳集合,按照步骤c)遍历所有标注点,得到心跳集合ECG={(xi,y)|y=Γ(x)},i=0,1,2,...,k,k为所标记心跳的数目;由于MIT-BIH数据库所有记录信号值在-5mV到5mV之间,按照公式(1)将心跳集合ECG中的元素进行归一化处理:ximn=ximn+510---(1)]]>其中,ximn为第i个心跳信号xi中第m行、第n列的元素,m=1或2,1≤n≤360;经公式(1)的处理后,得到归一化后的心跳集合ECG,其所有元素缩放到[0,1]区间;e).构建隐层和输出层,构建由两个带max-pooling的卷积层和一个dropout为0.5的全连接层,激活函数如公式(2)所示:ReLU(z)=max(0,z)(2);构建由5个神经单元构成的输出层,激活函数如公式(3)所示:softmax(zj)=ezjΣjezj---(3)]]>其中zj表示第j个神经元的输入;f).设定目标函数,目标函数设定为如公式(4)所示的cross-entropy函数:C(x)=-[Γ(x)*lnΓ^(x)+(1-Γ(x))*ln(1-Γ^(x))]---(4);]]>g).样本训练,将集合ECG中的所有心跳信号按照2:1划分为训练集ECG_test和验证集ECG_val,每次从ECG_test中抽取一定数量的心跳信号根据步骤e)和步骤f)中的激活函数和目标函数训练CNN,当验证集ECG_val的分类经度达到99%时停止训练,得到一个逼近Γ(x)的函数关系:h).心律失常分类的应用,设采样频率为360Hz的心电图机G,由t1时刻开始到t2时刻结束产生的心电信号序列为S=G(t2)-G(t1),t2>t1;由零时刻到任意t时刻,肢体II导联信号序列为SII=GII(t),胸部V1导联信号序列为SV1=GV1(t),待分析心电信号t秒至t+1秒之间的心跳信号为:x=GII(t+1)-GII(t)GV1(t+1)-GV1(t)---(5)]]>将公式(5)获取的x输入至CNN,得到心律失常分类结果以作为病人心电信号的诊断结果或供医生参考之用。本发明的基于多导联和卷积神经网络的心律失常智能诊断方法,步骤a)中剔除的导联没有保持一致的记录如表1所示:表1其中,upper为高位信号,lower为低位信号。本发明的基于多导联和卷积神经网络的心律失常智能诊断方法,步骤b)中采用3名专家单独对心律波中每个心跳的心律失常类型进行标注,同一心跳的心律失常类型按照“少数服从多数”的机制确定,以保证诊断信息的可靠性。本发明的基于多导联和卷积神经网络的心律失常智能诊断方法,步骤c)中每个心跳信号的标注位置p均步选取为心跳信号的波峰位置。本发明的基于多导联和卷积神经网络的心律失常智能诊断方法,步骤e)中所构建的隐层和输出层的结构如表2所示:表2inputlayerII导联:360,V1导联:360c-layerfilter数量:32,filter大小:93-->max-poolinglayerpool大小:4c-layerfilter数量:32,filter大小:9max-poolinglayerpool大小:4f-layer神经元数量:256,dropout=0.5outputlayer神经元数量:5,激活函数:softmax。本发明的有益效果是:本发明的利用多导联心电图数据和卷积神经网络实现心律失常自动分类的方法,由于多导联心电图较单导联心电图蕴含更多信息,CNN对空间数据结构有很强的自主学习能力,利用多导联心电图数据训练CNN能够提高网络的学习效率和心律失常自动诊断的精度,实现了使用有心律失常类型标注多导联心电图数据训练CNN的通用框架和具体方法,可准确判断出待诊断心电信号的心律失常类型,可作为确诊结果或供医生参考。附图说明图1为本发明中CNN对多导联心电图分类示意图;图2为本发明中心跳信号截取示意图。具体实施方式下面结合附图与实施例对本发明作进一步说明。假设x为正常人的一个心跳周期内的多个导联心电图信号序列,则x可以表示为Slead=[s1,s2,...si,…sn],其中Slead表示导联为lead的信号序列,si为一个心电信号值。例如十二导联心电图的导联为六个肢体导联:I导联、II导联、III导联、aVL导联、aVR导联、aVF导联,以及6个胸部导联:V1导联、V2导联、V3导联、V4导联、V5导联、V6导联,则lead∈{I,II,III,aVL,aVR,aVF,V1,V2,V3,V4,V5,V6}。假设任意一个心跳x有唯一对应的心律类型,要么为正常心律或者为异常心律,设为y,则y与x之间存在函数关系Γ,即y=Γ(x)。实现心律失常的智能诊断,即为利用心电图数据训练CNN,得到一个逼近Γ(x)的函数关系其中θ表示CNN的参数。整个框架如图1所示,由底向上依次为输入层、隐藏层和输出层。c-layer表示卷积层,p-layer表示池层,f-layer表示全连接层。为了提高CNN的泛化能力,需要在输入层对数据进行归一化处理,使所有信号缩放到[0,1]区间。本实施例以MIT-BIH心律失常数据库的心电记录为数据来源,这个数据库有48例记录,每例记录由两个导联信号组成,记为upper信号和lower信号。由于数据库内某些记录的导联没有保持一致,同时每例记录包含多个心跳,因此在使用这些数据训练神经网络之前需要进行数据筛选和格式化。表1列出了所有例外导联的记录号,为了使训练数据保持一致,剔除了这些记录,选取剩余40例,即只使用肢体II导联和胸部V1导联。每例记录由3名专家单独进行心律失常信息标注,保证了诊断信息的可靠性,在标注的心律失常类型中选取标注信息较多的类型Arr={N,L,R,A,V},其中N为正常心律,L为左束支传导阻滞,R为右束支传导阻滞,A为房性早搏,V为室性早搏。表1记录100102103104114117123124upperIIV5IIV5V5IIIIIIlowerV5V2V2V2IIV2V5V4每个记录时常30分钟,采样频率为360Hz,根据标注信息截取所有属于Arr集合中的心跳,以一秒为时长,即360个信号点。设一个标注点的标注信息为(arr,p|arr∈Arr,p∈Z+),arr表示心律失常类型,p表示标注位置。如图2所示,首先根据(arr,p)确定标注点位置p,产生一个新的随机数m∈[120,200],截取p之前m-1个信号点和p之后的360-m的信号点,不改变m值,重复得到该心跳所有导联的心跳信号其对应的心跳类型y=arr。如此遍历所有标注点,得到心跳集合ECG={(xi,y)|y=Γ(x)},i=0,1,2,...,k,k为所标记心跳的数目。由于MIT-BIH数据库所有记录信号值在-5mV到5mV之间,按照公式(1)将心跳集合ECG中的元素进行归一化处理:ximn=ximn+510---(1)]]>其中,ximn为第i个心跳信号xi中第m行、第n列的元素,m=1或2,1≤n≤360;经公式(1)的处理后,得到归一化后的心跳集合ECG,其所有元素缩放到[0,1]区间。第二部分:CNN具体结构、配置和训练作为示例,一个可行的结构如表2所示。隐层由两个带max-pooling的卷积层和一个dropout为0.5的全连接层组成,激活函数为ReLU(z)=max(0,z)。输出层由5个神经单元构成,激活函数为softmax(zj)=ezjΣfezj,]]>其中zj表示第j个神经元的输入。目标函数设定为cross-entropy函数C(x)=-[Γ(x)*lnΓ^(x)+(1-Γ(x))*ln(1-Γ^(x))].]]>表2inputlayerII导联:360,V1导联:360c-layerfilter数量:32,filter大小:9max-poolinglayerpool大小:4c-layerfilter数量:32,filter大小:9max-poolinglayerpool大小:4f-layer神经元数量:256,dropout=0.5outputlayer神经元数量:5,激活函数:softmax训练时,采用小批量随机梯度下降法,将ECG中的所有心跳2:1划分为训练集ECG_test和验证集ECG_val。每次从ECG_test中随机抽取500个训练CNN,预设其在验证集的分类精度达到99%停止,得到第三部分:实施应用设采样频率为360Hz的心电图机G,由t1时刻开始到t2时刻结束产生的心电信号序列为s=G(t2)-G(t1),t2>t1。则由零时刻到任意t时刻,其肢体I导联信号序列sI=GI(t),胸部V1导联信号序列sV1=GV1(t),则x=GI(t+1)-GI(t)GV1(t+1)-GV1(t),]]>将x输入到CNN,得到心律失常分类结果设定心律失常检测采样频率tΔ,更新时间t:=t+tΔ,重复产生x,和其分类结果当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1