本发明属于模式识别领域,具体涉及一种基于频域特征与深度学习的心肌梗塞识别分类方法。
背景技术:
心电图作为临床上检测心血管疾病的无创心电检测技术之一,一方面蕴含着丰富的生理和病理信息,另一方面无创方便易行、检测价格低廉,在各类心血管疾病的诊断和评价中具有重要意义。本发明方法提出了基于频域特征与深度学习的心电信号分类方法,首次对心电信号分频段提取频域特征图,然后利用并行多cnn算法对特征图进行识别分类,识别出高危个体与健康个体,这种多cnn的方式可以一定程度上解决原始数据正负样本严重不平衡的问题,提高了模型的鲁棒性。
技术实现要素:
本发明的目的是克服现有技术存在的问题,提出了基于频域特征与深度学习的心肌梗塞识别分类方法,首次将分频段的频域特征图运用在心电图分类上,并采用多cnn并行的模型,很大程度上避免了对不平衡数据识别过于倾向某一类的问题。提供一种更为深层的描述心电信号特征的基于频域变换与深度学习的心肌梗塞识别分类方法。
本发明的具体技术方案通过如下步骤实现:
步骤一:对原始心电数据进行滤波去噪处理。
步骤二:对滤波去噪后的样本(12导联心电数据)进行频域处理,从而获得心电信号频域特征图,并对频域特征图进行0-255归一化处理,对频域特征图进行上采样,获得频域特征图的数据集,以便于增加网络的深度,并对每个样本设置其对应的标签。
步骤三:构建多cnn模型,包括不同结构的卷积神经网络和一个全连接神经网络;其中不同结构的卷积神经网络用于对步骤二中得到的数据集进行第二次特征提取,将不同结构的卷积神经网络提取的特征进行特征拼接作为全连接神经网络的输入。
步骤四:多cnn模型的训练与测试,划分训练集与测试集,采用反向传播优化算法对模型进行迭代,得到训练完成的模型后使用测试数据对模型进行评估。
本发明步骤一具体实现步骤如下:
通过巴特沃斯滤波器对原始心电数据进行高通与低通滤波处理,对肌电干扰与工频干扰达到较好的去噪效果:
其中,n为滤波器阶数,ωc为截止频率,ωp为通带边缘频率。然后通过如下的中值滤波对原始心电数据进行滤波处理,对基线漂移达到较好的去噪效果:
y(ξ)=med{s(ξ-v),…,s(ξ-1),s(ξ),s(ξ+1),…,s(ξ+v)}(2)
其中,ξ∈p,
本发明步骤二具体实现步骤如下:
对于每一个样本,将样本中的每个通道进行快速傅里叶变换,并由下式获取各通道的幅度谱p(k):
p(k)=|xk|(3)
其中,xk为快速傅里叶变换的结果;将频率信号分为22个频段,并由以下公式计算这22个频段的平均振幅谱:
masi=mean(p(k),k∈ki)(4)
其中i=1,2,...,22表示第i个频率子带,ki表示第i个子带进行快速傅里叶变换时k值的集合;将得到的矩阵在0到255区间内进行归一化,如此便将癫痫预测所需的每个样本转化为12*22的灰度图像,为了便于增加网络的深度,对每个特征图进行上采样至48*48。
对于正常样本设置其标签为0,异常样本设置其标签为1,并对标签进行onehot编码,转化为与softmax相同的概率分布形式,以适用于损失的计算。
步骤三所述的构建多cnn模型将设置两种不同结构的卷积神经网络,并对步骤二中所述的特征图进行第二次特征提取,具体实现如下:
首先构建第一种结构的卷积神经网络,在图像输入层后连接第一个卷积层,第一个卷积层设置64个3*3的卷积核,步长为1,零填充,卷积层通过如下公式计算:
其中符号
hout=average(hin)(6)
下面是第二个卷积层,它有128个5*5的卷积核,后面连接有与之前相同的激活层和平均池化层;下面是第三个卷积层,它有256个3*3的卷积核,后面连接有与之前相同的激活层和平均池化层;下面是第四个卷积层,它有512个3*3的卷积核,后面连接有与之前相同的激活层和平均池化层;之后连接256个神经元的全连接层;最后连接2个神经元的softmax层,该层通过以下公式输出样本的概率向量:
其中,t表示最后一层的神经元个数,取值为2;aj表示最后一层输出特征向量的值。
然后构建第二种卷积神经网络,第二种卷积神经网络在第一种卷积神经网络的基础上,将激活层函数替换为lrelu:
将所有平均池化层改为最大池化层,最大层的规则如下所示,每个区域的最大值将被保留并用作下一层的输入
hout=subsampling(hin)(9)
在每个最大池化层之后加入batchnormalization层进行批量标准化,该层通过如下公式进行批量标准化:
其中,e[x(k)]表示是每一mini-batch数据x(k)的均值,而
yi表示真实标签,pi表示模型输出的预测标签,在原始的交叉熵上乘以一个权重系数,使得少的一类分错后的损失函数值增大。本发明中选择weight=10。完成所有卷积神经网络的预训练后,再将全部训练数据输入模型后,即可在全连接层得到模型对每个样本的特征向量输出,将预训练模型获取的特征进行拼接,可以获得一个维度为512的融合特征。利用一个全连接神经网络进行特征学习和分类,获得识别准确率、灵敏度与特异性。
步骤四所述的多cnn模型训练与测试具体实现如下:
将步骤二中得到的频域特征图数据划分为训练集与测试集,将训练集输入到步骤三所构建的模型中进行训练,训练过程基于前向和后向传递的迭代完成,使用权重交叉熵作为损失函数,设置反向传播算法训练批量,学习率参数和迭代次数。
将未参与训练的测试集数据输入到所得到训练完成的模型中,通过多cnn模型输出概率向量,识别出高危个体和健康个体,并用灵敏度、特异度和准确率来评估模型的性能。
本发明与现有技术相比,具有如下优点和有益效果:
1、与传统的基于时域信号的心电图分类方法相比,本发明方法首次将分频段提取的频域特征图运用到心电图分类,能够提取到不易提取的深层特征。
2、运用上述并行卷积神经网络,可以使整个系统可以融合每种不同结构深度网络提取的特征,提高模型的泛化能力,提高整个系统的识别效果。
附图说明
图1是本发明实施例的基于频域特征与深度学习的心电信号分类方法流程图。
图2是实施例所用频域特征图提取流程图。
图3(a)是实施例所用心电异常个体频域特征图二维可视化显示示意图。
图3(b)是实施例所用正常对照组频域特征示意图。
图4是本发明实施例中心电异常个体频域特征图的分类识别结果。
具体实施方式
下面结合附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本发明第一个主要步骤为对原始心电数据进行滤波去噪处理,其具体实现步骤如下:
1-1通过6阶70hz巴特沃斯高通滤波器去除高频噪声,48~52hz巴特沃斯带阻滤波器去除50hz工频干扰,对肌电干扰与工频干扰达到较好的去噪效果,具体数学描述如下:
其中,n为滤波器阶数,ωc为截止频率,ωp为通带边缘频率
1-2通过窗宽为625的中值滤波器对原始数据进行滤波处理,对基线漂移达到较好的去噪效果,具体数学描述如下:
y(ξ)=med{s(ξ-v),…,s(ξ-1),s(ξ),s(ξ+1),…,s(ξ+v)}
其中,ξ∈p,
步骤二所述的获取频域特征图步骤如下:
2-1对于每一个样本,将样本中的每个通道进行快速傅里叶变换,并由下式获取各通道的幅度谱p(k):
p(k)=|xk|
其中,xk为快速傅里叶变换的结果;将频率信号分为22个频段,并由以下公式计算这22个频段的平均振幅谱:
masi=mean(p(k),k∈ki)
其中i=1,2,...,22表示第i个频率子带,ki表示第i个子带进行快速傅里叶变换时k值的集合;将得到的矩阵在0到255区间内进行归一化,如此便将癫痫预测所需的每个样本转化为12*22的灰度图像,
2-2为了便于增加网络的深度,对每个特征图进行上采样至48*48。
2-3将正常信号标签设置为0,异常信号标签设置为1,然后对标签采用onehot编码,转化为[1,0]与[0,1]。
步骤三所述的构建多cnn模型将设置两种不同结构的卷积神经网络,并对步骤二中所述的特征图进行第二次特征提取,具体实现如下:
3-1第一种结构的卷积神经网络:在图像输入层后连接第一个卷积层,第一个卷积层设置64个3*3的卷积核,步长为1,零填充,卷积层通过如下公式计算:
其中符号
hout=average(hin)
下面是第二个卷积层,它有128个5*5的卷积核,后面连接有与之前相同的激活层和平均池化层;下面是第三个卷积层,它有256个3*3的卷积核,后面连接有与之前相同的激活层和平均池化层;下面是第四个卷积层,它有512个3*3的卷积核,后面连接有与之前相同的激活层和平均池化层;之后连接256个神经元的全连接层;最后连接2个神经元的softmax层,,该层通过以下公式输出样本的概率向量:
3-2第二种卷积神经网络在第一种卷积神经网络的基础上,.第二种卷积神经网络在第一种卷积神经网络的基础上,将激活层函数替换为lrelu:
将所有平均池化层改为最大池化层,最大层的规则如下所示,每个区域的最大值将被保留并用作下一层的输入
hout=subsampling(hin)
在每个最大池化层之后加入batchnormalization层进行批量标准化,该层通过如下公式进行批量标准化:
其中,e[x(k)]表示是每一mini-batch数据x(k)的均值,而
3-3全连接网络在特征拼接层后连接第一个含有1024个神经元的全连接层;接着设置激活函数为lrelu的激活层;激活层接着参数为0.3的dropout层;下面是第二个含有1024个神经元的全连接层,后面接着与之前同样的激活层与dropout层;最后连接2个神经元的softmax层;将步骤二中的到的数据进行打乱,并4:1随机划分训练集与测试集,再将训练集1:1划分以适用于两个卷积神经网络的输入。为了解决样本分布不均衡问题,模型内使用权重交叉熵作为损失函数:
yi表示真实标签,pi表示模型输出的预测标签,在原始的交叉熵上乘以一个权重系数,使得少的一类分错后的损失函数值增大。本发明中选择weight=10。完成所有卷积神经网络的预训练后,再将全部训练数据输入模型后,即可在全连接层得到模型对每个样本的特征向量输出,将预训练模型获取的特征进行拼接,可以获得一个维度为512的融合特征。利用一个全连接网络进行特征学习和分类,获得每个样本以及总的识别准确率。
4-1在本发明实施例中采用的反向传播算法为adam优化算法。训练过程基于前向和后向传递的迭代完成,使用权重交叉熵作为损失函数,采用的反向传播算法训练批量为64,学习率参数设置为0.0001,总共进行了256次训练,使得模型得到更好的训练效果。对未参与训练的数据进行分类预测,识别出高危个体和健康个体。
在本发明实施例中,对ptb数据集进行处理,共获得545条原始心电数据,其中健康人数据有65条,异常数据有480条。在实施例中用总数据的80%(435条)数据用来训练模型,总数据的20%(110条)数据用来进行测试,其中包含11条健康人数据和99条异常数据。
为了验证本发明方法的有效性,使用灵敏度、特异度和准确率来评估模型的性能。灵敏性是指通过模型正确分类的实际有疾病的百分比,特异度是指被模型正确分类的无疾病的百分比,准确率是指通过模型正确分类的百分比。灵敏度、特异度和准确率的定义如下:
其中,tp,tn,fp,fn分别代表真阳性,真阴性,假阳性和假阴性的数量。
在本发明实施例中通过对心肌梗塞频域特征图特征数据的实验,得到的准确率、灵敏度和特异性分别为96.36%、81.82%、97.98%。对于同样的数据,将原始心电信号直接利用支持向量机(svm)进行分类获得的总体识别率为74.54%;将预处理获得的mas特征利用单cnn进行分类获得的总体识别率为89.78%。通过结果对比,证明了本发明的有效性。
综上所述,本发明提出的基于频域特征与深度学习的心电信号分类方法,相比于传统的方法有更好的特征表达能力;同时采用了更优的网络结构,提高了心肌梗塞识别的准确率。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。