基于采样通道融合深度神经网络的自动心律失常分析方法与流程

文档序号:15853362发布日期:2018-11-07 10:32阅读:213来源:国知局
基于采样通道融合深度神经网络的自动心律失常分析方法与流程

本发明涉及医学信号处理技术领域,更确切地说,本发明涉及一种基于采样通道融合深度神经网络的自动心律失常分析方法。

背景技术

近些年,针对心电图的辅助诊断设备发展迅速,随着信息领域的科技进步,特别是随着模式识别技术的进展,心电图设备的功能不再是仅仅获取心电信号、打印心电图,而是向着挖掘心电图中的有效数据以及自动识别、统计心拍信息方向发展。带自动识别心拍功能的分析设备能够为医生提供更直观有效的心电图信息,有效节省诊断时间,提高医生的诊断效率,是重要的辅助医疗设备之一。

工作在计算器件上的自动心律失常分析系统是此类设备的核心,技术途径有两种,一是通过提取表征了心电图有效信息的特征向量,输入到分类器算法得到心拍的类别;二是通过深度学习技术自动学习特征并进行识别,得到心拍的类别。

基于深度学习技术的心律失常分析系统可以利用数据红利,有效提高识别精度,然而目前的心律失常分析系统尚不足以满足临床应用的准确率需求。



技术实现要素:

本发明的目的是为解决现有心律失常分析系统尚不足以满足临床应用的准确率需求的问题,而提供一种基于采样通道融合深度神经网络的自动心律失常分析方法。

一种基于采样通道融合深度神经网络的自动心律失常分析方法,它包括:

1)采用三种采样方式进行复合采样,生成多通道心电图样本;

a.对每个导联的心电信号,前后各取100个点再重采样到固定维度600;

b.对每个导联的心电信号,前取2个周期的r-r波区间,后取1个周期的r-r波区间,再重采样到固定维度600;

c.对每个导联的心电信号,前取2个周期的r-r波区间并重采样到300维,后取1个周期的r-r波区间并重采样到300维,最后将前后重采样的信号拼接形成600维信号;

由此三种采样方式所得的600维心电信号分别为inputk1,inputk2和inputk3,k为ⅰ、ⅱ、ⅲ、…,是原始心电信号的导联编号,每一个input的大小为600*1维,此时每导联心电信号由600*1维扩增为600*3维,此时的3表示每一个导联的心电信号拥有3个子导联。当使用的数据集中原始心电信号拥有2个导联时,将原始每个导联的心电数据经过所述复合采样方式形成上述2*3*(600*1)维的心电信号样本x,作为深度神经网络模型的输入input;

2)搭建深度神经网络

深度神经网络包括多个依次并联的导联通道,每一个导联通道由串联的卷积层单元组成,在每一路导联通道的输出端有一个合并层,将每一路导联通道的特征图沿最后一个维度合并,即特征图的深度所在维度。在每导联通道输出端的合并层和lstm层单元间有attention层作为连接单元;每个所述卷积层单元包括一个卷积层以及该卷积层输出端依次串联的一激励单元操作和一池化层操作;所述卷积层单元使用的是一维卷积,用于提取一维心电信号的特征;

lstm层单元的输出串联一个激励单元为softmax的全连接层;输出;

3)学习深度神经网络的参数;

4)对样本进行自动识别;

所述的搭建深度神经网络,当心电数据集拥有两导联信号时,输入信号维度为2*3*600*1。将由不同采样方式扩展出的多个导联输入信号通过合并层分别合并最后一个维度后输入到一路导联通道中,则每一个导联通道的输入信号大小为600*2,共3个导联通道,其中2指的是通道数。即将由不同采样方式扩展出的多个导联分别合并通道后作为一路导联通道;每一路导联通道中每一层卷积层单元的输出端依次串联一激励单元操作和一池化层操作;第一个卷积层单元的卷积核数为32个,卷积核大小为4,其后的激励单元为relu函数,池化层单元的池化核大小为6,池化步长为3;经过第一层池化单元后的特征图维度为200*32;第二个卷积层单元的卷积核数为64个,卷积核大小为5,其后的激励单元为relu函数,池化层单元的池化核大小为6,池化步长为3;经过第二层池化单元后的特征图维度为67*64;

所述的深度神经网络为两个依次串联的卷积层单元和lstm层单元;

每一路导联通道中两层卷积单元的输出通过合并层合并最后一个维度,即合并输出特征图的深度所在维度,合并后的特征图大小为67*192;

合并层后串联一个attention单元,attention单元构造了一个维度同样为67*192的权重矩阵与卷积后的特征图对应元素点乘,加权后的特征图输出维度为67*192。这个权重矩阵的元素由神经网络训练得来,矩阵元素初始值为范围在0-1之间的随机数。将加权后的特征图输入到lstm层单元中,取lstm层单元的隐藏层数为128,lstm层单元输出特征图维度为128。lstm层单元的输出串联一个激励单元为softmax的全连接层,全连接层的输出维度为4,即类别数。最终所述深度神经网络模型输出预测向量维度;

所述的深度神经网络输出的预测向量维度为4;使用keras开源框架和python语言搭建,使用交叉熵作为损失函数,使用adam优化器优化损失函数;

所述的学习深度神经网络的参数为:初始化所述深度神经网络的训练参数,将采样好的信号划分为训练集样本和测试集样本;即从总体样本中随机抽取一部分数目的样本当作训练集,对于其他未选中的样本视为测试集。再将训练集中的多通道心电信号x输入到初始化后的深度神经网络中,以最小化代价函数为目标进行迭代,以生成所述深度神经网络并保存下来;其中,每迭代一次则更新一次所述训练参数,直至最后所述的深度神经网络的损失值和准确率稳定在某一数值附近,即可停止训练并保存当前网络的训练参数和模型结构信息;

所述的对样本进行自动识别为:将划分好的测试集样本全部输入到已保存的所述神经网路中,运行所述深度神经网络即可获得测试集样本对应的4维预测值向量输出,将测试集样本的标签使用one-hot编码的方法生成4维的标签向量,再通过将输出的预测值与测试集样本的标签比对来检查是否分类正确。

附图说明

图1为深度神经网络结构图。

具体实施方式

实施例1基于深度神经网络的自动心律失常分析方法

下面结合附图和具体的实施方式对本发明作进一步说明。

具体实例为国际通行心电图数据库mit-biharrhythmiadatabase(mitdb),该数据库的数据及使用说明公开于行业内周知的physionet.org网站;数据库包含47位患者两导联方式的半小时360hz心电图记录,并已通过了心脏病医生手动标注;从所述数据集中选出四种按照aami标准划分的心拍类别组合作为效果评估依据,包括n类(正常心拍或束支传导阻滞心拍)、s类(室上性异常心拍)、v类(心室异常心拍)、f类(融合心拍);这四种类别的标签以及与mitdb数据集中类别的对应关系如表1;在本实例中,通过工作在计算机上的软件系统和行业内所周知的matlab和python仿真环境进行实现。

本实施例的详细步骤如下:

一.采用复合采样方式生成多通道心电图样本的实现

将所述的mitdb数据集中的原始信号去噪后,采用如下三种采样方式扩增信号的通道数:

(1)采样方式一为:对每个导联的心电信号,前后各取100个点再重采样到固定维度600;生成图1中的inputⅰ1和inputⅱ1;

(2)采样方式二为:对每个导联的心电信号,前取2个周期的r-r波区间,后取1个周期的r-r波区间,再重采样到固定维度600;生成图1中的inputⅰ2和inputⅱ2;

(3)采样方式三为:对每个导联的心电信号,前取2个周期的r-r波区间并重采样到300维,后取1个周期的r-r波区间并重采样到300维,最后将前后重采样的信号拼接形成600维信号;生成图1中的inputⅰ3和inputⅱ3;

由此三种采样方式所得的600维心电信号分别为inputk1,inputk2和inputk3,k为ⅰ、ⅱ,是mitdb数据集中原始心电信号的导联编号,每一个input的大小为600*1维,此时每导联心电信号由600*1维扩增为3*(600*1)维,此时的3表示每一个导联的心电信号拥有3个子导联。因为mitdb数据集中原始心电信号拥有2个导联,将原始每个导联的心电数据经过所述复合采样方式形成上述2*3*(600*1)维的心电信号样本x,作为深度神经网络模型的输入。

二.搭建深度神经网络

(1)所述深度神经网络的具体结构

所述深度神经网络输入为各个导联各个通道的心电信号x,因为mitdb数据集拥有两导联信号,所以输入信号维度为2*3*600*1。将由不同采样方式扩展出的多个导联输入信号通过合并层(merge层)分别合并最后一个维度后输入到一路导联通道中,则每一个导联通道的输入信号大小为600*2,共3个导联通道,其中2指的是通道数。即将由不同采样方式扩展出的多个导联分别合并通道后作为一路导联通道。对应图1中,将iuput1,input4合并后作为一个导联通道,将iuput2,input5合并后作为一个导联通道,将iuput3,input6合并后作为另一个导联通道。每一路导联通道由串联的两层卷积层单元组成,每一层卷积层单元的输出端依次串联一激励单元操作和一池化层操作;第一个卷积层单元的卷积核数为32个,卷积核大小为4,其后的激励单元为relu函数,池化层单元的池化核大小为6,池化步长为3;经过第一层池化单元后的特征图维度为200*32;第二个卷积层单元的卷积核数为64个,卷积核大小为5,其后的激励单元为relu函数,池化层单元的池化核大小为6,池化步长为3;经过第二层池化单元后的特征图维度为67*64;

每一路导联通道中两层卷积单元的输出通过合并层(merge层)合并最后一个维度,即合并输出特征图的深度所在维度,合并后的特征图大小为67*192。合并层后串联一个attention单元,所述的神经网络中attention单元构造了一个维度同样为67*192的权重矩阵与卷积后的特征图对应元素点乘,加权后的特征图输出维度为67*192;这个权重矩阵的元素由神经网络训练得来,矩阵元素初始值为范围在0-1之间的随机数。将加权后的特征图输入到lstm层单元中,取lstm层单元的隐藏层数为128,lstm层单元输出特征图维度为128;lstm层单元的输出串联一个激励单元为softmax的全连接层,全连接层的输出维度为4,即类别数。最终所述深度神经网络模型输出的预测向量y_pred维度为4。

(2)所述深度神经网络的具体实现

所述模型使用keras开源框架和python语言搭建,网路结构参数如表3。所述深度神经网络使用keras框架中的函数式模型搭建,即从keras.models模块中导入model函数,设置model的输入为所述经过复合采样后的多通道心电信号x,输出为维度为4的预测向量y_pred;通过导入keras.layers模块中的convolution1d函数构造一维卷积层,通过导入keras.layers模块中的maxpool1d函数构造一维最大化池化层,通过导入keras.layers模块中的lstm函数构造lstm层单元,并设置lstm函数中的dropout参数和recurrent_dropout参数为0.2。

三.学习深度神经网络的参数

首先初始化所述深度神经网络的训练参数,将采样好的信号划分为训练集样本和测试集样本,划分后的数据集如表2所示。将训练集中使用复合方式采样后的多通道心电信号输入到初始化后的深度神经网络中,所述深度神经网络中使用交叉熵作为代价函数;keras中使用categorical_crossentropy函数,所述深度神经网络中通过构建的函数式模型model实例化一个对象model,在model.compile函数中设置参数loss为'categorical_crossentropy';并使用adam优化器以最小化代价函数为目标进行迭代,通过在model.compile函数中设置参数optimizer为‘adam’进行优化,以生成所述深度神经网络并保存为hd5后缀的文件model1.hd5;其中,每迭代一次则更新一次所述训练参数;直至最后所述的深度神经网络的损失值和准确率稳定在某一数值附近,即可停止训练并保存当前网络的训练参数和模型结构信息;所述深度神经网络共训练了3000个批次,每个批次为64个样本。

四.对样本进行自动识别

将划分好的测试集样本全部输入到已保存的所述神经网路model1.hd5中,运行所述深度神经网络即可获得测试集样本对应的4维预测值向量输出y_pred,将测试集样本的标签使用one-hot编码的方法生成4维的标签向量y_label,在keras.utils模块中提供np_utils.to_categorical函数对输入的测试集标签进行one-hot编码,再通过将输出的预测值与测试集样本的标签比对来检查是否分类正确,即统计y_pred和y_label对应位置值相同的样本个数num,用num除以测试集样本总数即为最终的准确率。

按照表1,将aami标准下四种类型的心拍进行标记。

按照表2所示的数量,随机抽取所有心拍中的一部分作为实施例的分类训练集;在剩余的心拍中,除去训练集以外的所有心拍作为测试集。

按照表3所列的网络结构参数,网络每层的层类型如type列中对应位置的参数值,每层的层类型如outputlayer列中对应位置的参数值,将网络每层的核大小设为kernelsize中对应位置的参数值,将网络每层核的移动步长设为strides中对应位置的参数值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1