0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于残差神经网络的心脏病预测系统的设计与实现

现代电子技术 来源:郑州轻工业大学 计算机与 作者:蔡增玉 ,崔梦梦 2022-10-12 16:04 次阅读

作者:蔡增玉 ,崔梦梦 ,侯佳林 ,张建伟

引 言

心脏病已经成为威胁人类生命的一项重大疾病,目前中国的心血管疾病预防工作虽然取得了初步成效,但是仍旧面临严峻的挑战,中国心血管疾病的患病率及死亡率仍处于上升阶段。防治心血管病的态势已经刻不容缓,每10例死亡患者中,就有 4例是心血管疾病患者,心脏病的致死率占心血管疾病的50%以上。

目前我国有多种方式检测患者是否患有心脏病,如动态心电图、CTA、ECG、UCG等。患者首先需要去医院做心电图检查,经验丰富的医师通过查看患者的心电图是否有心房颤动、房性前收缩、房室和束支传导阻滞等症状,以此对患者是否患有心脏病做出诊断。传统的心脏病诊断方式会因各种主观因素对结果造成影响,许多学者对此进行了深入的研究,并将机器学习的方法引入到心脏病预测中,提出了各种基于机器学习的心脏病预测方法[1⁃10]。比较典型的方法有用支持向量机和人工神经网络两种不同的模型对数据进行建模[11];使用基于聚类和 XGboost算法进行建模[12]。其中,文献[11]中设计的模型具有较高的查重率,但训练过程中容易产生过拟合问题,造成模型的泛化能力不强;文献[12]基于聚类和XGboost 算法虽然有较高的准确率,但是当有大量的训练数据时,训练速度将变得十分缓慢。

1、 基于残差神经网络的心脏病预测系统

1.1 系统功能设计

本文主要将系统分成:用户模块、病历模块、数据预处理模块、模型训练模块和预测模块,其总体的功能结构图如图1所示。

1)用户模块。该模块包含用户注册和用户登录两个部分。用户在注册部分通过注册操作把个人的账号、密码等信息以密文的形式写入数据库;用户在登录部分输入之前注册过的账号和密码信息,通过数据库验证系统使用权限。

2)病历模块。该模块同样包含建立病历和查看病历两个部分。用户可以通过该模块收集和查看患者的个人信息以及既往病史,方便对患者的信息进行管理,还可以对用户当前的就诊情况进行记录。

3)数据预处理模块。该模块主要通过对要训练的数据进行整理,把患者的心电图与其对应的种类标签结合在一起,为之后的训练模型做准备。

4)模型训练模块。该模块通过对大量数据的学习,提取其中的规律、准则,最终形成一个能够预测心电图的模型。

5)预测模块。该模块利用之前形成的模型对患者的心电图进行分析之后,得出患者最终是否患有心脏病以及种类和概率的结论。

1.2 系统流程设计

系统的模型构成大体可以分为4个步骤,分别为数据预处理、卷积层、池化层、全连接层。本文构建的是一个16层的卷积神经网络,如图2所示。

为了取得更好的模型训练效果,数据集选用 2017年度 PhysioNet 计算心脏病学挑战赛提供的官方数据。首先对心电图数据进行预处理,把要训练的心电图数据集贴上对应种类的标签,形成一个整体的数据+标签的标准化数据集合,为后续的训练作准备;然后将标准化的数据输入卷积神经网络模型中迭代进行卷积、池化操作,同时为了解决网络退化问题,加入残差模块,将残差模块的数据和迭代得到的数据汇总,经过运算后输入全连接层最终得到分析结果。

1.2.1 数据预处理

数据预处理模块对数据整理起到重要作用,本文训练中用到的数据来自2017年度 PhysioNet计算心脏病学挑战赛提供的官方数据,根据官方提供的参考文档,将这些心电图贴上相应种类的标签,最终形成一个trainingset,为后续的训练做准备。该模块界面设计简单,方便用户操作。

1.2.2 卷积层

对图片进行卷积运算,第一个参数是输入心电图数据,第二个参数是卷积核,卷积具体运算就是卷积核与对应图片的像素点进行相乘然后累加之后的数值,作为特征映射的值。本系统卷积层以一维卷积的方式进行卷积,卷积核大小选取 3×1,步长为 1,通过训练网络将卷积核中的每一个数值训练出来,以期达到最好的效果。本系统在卷积的过程中,当出现卷积核的大小超过图片区域时,用 0进行边缘填充,因为 0填充的方式不会对卷积产生影响,只是辅助卷积完成。

1.2.3 池化层

池化操作对不同大小的输入具有调和作用,当需要对输入大小不同的图像进行处理时,若对输入图像的大小有限制,可以通过对池化区域的偏置进行调整,就可以使不同大小的图片在调整后达到一致。池化操作一般有两种,即最大池化和平均池化。最大池化选择该区域中最大值作为池化后的值,反向传播时,梯度通过前向传播过程的最大值反向传播,其他位置梯度为0;平均池化选择区域中的平均值作为池化后的值。本系统采用最大池化,选用滤波器大小为2×1,池化步长为2,与卷积操作相互配合,形成一个卷积、池化迭代的深层网络。

1.2.4 残差神经网络

为了解决出现的网络退化问题,在卷积神经网络中加入恒等映射模块,也称残差单元。像神经网络那样,如果直接累加上一层所学的模型,会使模型训练的难度加大,但增加带有捷径连接的残差模块时,结果就会产生不同。假设某个神经网络的输入值为x,期望输出值为H(x),训练的结果是F(x),学习率为0.01,在没加入残差模块时,输入是x=1,期望值是1.01,从1.01学习到1.02,映射输出增加为0.011.01=1%;当引入残差模块时,映射F(x)是从0.01到0.02,映射输出为0.010.01=100%,后者输出变化对权重的调整作用更明显。换句话说,残差单元的思想是差分放大器,通过去掉上层输入的相同部分,从微小变化中提升学习能力。通过这种方式解决了随着层数的加深准确率和精准度减小的问题,同时还降低了梯度消失和梯度爆炸的风险。残差网络的提出将深度学习的性能提高了一个层次,使得网络层数可以从几十层上升到几千层,为残差网络在图像领域的应用奠定了基础。

1.2.5 全连接层

通过对卷积、池化操作形成的局部特征进行权值矩阵的重组,并整合成多个完整的图像,与标准图像进行对比,如果结果一样,则反向激活相应图的权值。把原始数据经过卷积、池化操作后映射到特征平面中,全连接层会提取分布式特征,全连接层把特征整合到一起,能够极大地减少特征位置给分类产生的影响。全连接层一般设置为两层,用来解决非线性问题。由于最终得出的预测结果的类别是互斥的,所以本文的全连接层采用 softmax回归进行分类,模型优化采用adam优化器。

2、 基于残差神经网络的心脏病预测系统设计与实现

2.1系统实现

2.1.1模型训练实现 模型训练是整个预测系统的基础,该部分的主要功能是为之后的预测模块提供一个泛化能力强的模型。该功能利用tensorflow框架实现了参数可调整,通过对Batch、epochs、卷积窗口大小、池化窗口大小进行调整,可以不断提高模型的准确度,不断进行训练,直到达到模型的最优性能。

2.1.2 预测分析功能实现 预测功能是整个系统的核心部分,也是系统的主界面。该功能通过载入患者的心电图数据,然后利用训练好的模型进行结果预测。该模块实现了查找用户心电图功能,系统操作人员根据患者的名字就可以把患者的心电图数据载入模型中,方便医生操作。同时,该模块还实现了心电图预览功能。通过设置显示心电图按钮,点击之后可以先粗略地观察心电图,了解一些情况。最后实现分析功能,对患者的心电图进行分析,生成最后的分析报告。

2.2 系统性能调参测试 2.2.1 Batch 大小最优测试Batch大小即批处理的尺寸大小,它的大小决定着下降的方向。选择合适的批处理大小可以迅速找到合适的学习率,加快模型的收敛。如果批处理尺寸太大的话,虽然可以提高内存的利用率,但是会减小相应的精度,对参数的修正也更加缓慢;如果批处理尺寸太小,不仅会使学习的时间增加,甚至会使模型不收敛。Batch大小一般设置成16的倍数,便于机器的处理,通过控制其他变量不变,改变 Batch尺寸大小,查看对模型准确率的影响,如图3所示。

通过测试发现,当Batch的大小选择为32时,模型的准确率最高,再增加Batch大小会使模型的准确率降低,所以本文选定的Batch大小为32。

2.2.2 卷积核大小最优测试

卷积核大小对模型的影响至关重要。如果卷积核的尺寸选得太大的话,会使整个模型的复杂度急剧增加;如果卷积核的尺寸选得太小的话,又会使训练的速度降低。所以选择合适的卷积核大小比较重要。通常卷积核的大小设置成偶数,形成正方形。本文采用一维卷积,通过控制其他变量不变,改变卷积核的大小查看对模型准确率的影响,如图4所示。

通过测试发现,当卷积核的大小选择为16 时,模型的准确率最高,选择小于或者大于 16 的尺寸时,模型的准确率会降低,所以本文选择卷积核大小为16。

2.2.3 池化窗口大小最优测试

池化窗口的大小也会影响着模型的准确率。当池化层的窗口选择太大的话,会在一定程度上损失信息。如果选择太小的话,会影响感受野的大小变化。本文通过控制其他变量不变,改变池化窗口的尺寸观察其对模型准确率的影响,如图5所示。

通过测试发现,当池化窗口大小为4时,模型的准确率最高,再增加池化窗口的大小时会导致模型的准确率下降。

3、 结 语

本文采用残差神经网络以心电图的方式进行机器学习,对患者是否患有心脏病进行预估。利用残差网络具有快捷连接和恒等映射的特点,解决了网络退化、网络深度限制的问题,为学习心电图的深层次特征提供了巨大的帮助。此外,本文采用PhysioNet计算心脏病学挑战赛官方提供的8528个数据进行学习,将心脏病分为4个种类,进行实验验证。其中构建了一个16层的卷积神经模型,首先将数据以300×30大小的方式输入卷积层,然后用 16×1的卷积核进行一维卷积,经过4×1大小的滤波器进行最大池化,加上批标准化处理迭代至16层,最后加上全连接层构成16层卷积神经网络。通过整体的训练后,对未训练的一批数据进行预测,其结果准确率达到76.5%。最终,利用该技术设计了一种心脏病智能预测系统,实现了对心脏病的实时预测,提供了对患者病情的详细分析报告。利用该系统可以减轻医生的负担,给医生对病情的诊断提供了辅助判断,提高了就诊的效率,对社会医疗体系提供了帮助。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4574

    浏览量

    98749
  • 机器学习
    +关注

    关注

    66

    文章

    8123

    浏览量

    130567

原文标题:论文速览 | 基于残差神经网络的心脏病预测系统的设计与实现

文章出处:【微信号:现代电子技术,微信公众号:现代电子技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    有提供编写神经网络预测程序服务的吗?

    有提供编写神经网络预测程序服务的吗?
    发表于 12-10 13:50

    关于BP神经网络预测模型的确定!!

    请问用matlab编程进行BP神经网络预测时,训练结果很多都是合适的,但如何确定最合适的?且如何用最合适的BP模型进行外推预测
    发表于 02-08 14:23

    labview BP神经网络实现

    请问:我在用labview做BP神经网络实现故障诊断,在NI官网找到了机器学习工具包(MLT),但是里面没有关于这部分VI的帮助文档,对于”BP神经网络分类“这个范例有很多不懂的地方,比如
    发表于 02-22 16:08

    Keras之ML~P:基于Keras中建立的回归预测神经网络模型

    Keras之ML~P:基于Keras中建立的回归预测神经网络模型(根据200个数据样本预测新的5+1个样本)——回归预测
    发表于 12-20 10:43

    模拟电路软故障诊断的小波与量子神经网络方法设计

    ,使之能够适用于解决模拟电路故障诊断中的容和非线性问题,但在软故障实际检测中,由于不同的分类故障之间又不可避免地存在着模糊性,即不同的分类故障可能有相同或相近的故障特征向量,而这仅仅靠神经网络的泛化
    发表于 07-05 08:06

    详解高危心脏病人远程实时监护系统

    病况,具有病发突然、随机、高猝死率特点,通常在急性症状出现后1小时内就可能引起死亡,恶性的室性纤颤甚至在12分钟内引起病人猝死,患有上述严重心脏病的患者即为高危心脏病人[1]。 因此,如何对高危心脏病
    发表于 07-29 08:20

    人工神经网络实现方法有哪些?

    人工神经网络(Artificial Neural Network,ANN)是一种类似生物神经网络的信息处理结构,它的提出是为了解决一些非线性,非平稳,复杂的实际问题。那有哪些办法能实现人工神经
    发表于 08-01 08:06

    【AI学习】第3篇--人工神经网络

    `本篇主要介绍:人工神经网络的起源、简单神经网络模型、更多神经网络模型、机器学习的步骤:训练与预测、训练的两阶段:正向推演与反向传播、以TensorFlow + Excel表达训练流程
    发表于 11-05 17:48

    什么是深度收缩网络

    。  在一定程度上,深度收缩网络的工作原理,可以理解为:通过注意力机制注意到不重要的特征,然后通过软阈值化将它们置为零;或者说,通过注意力机制注意到重要的特征,将它们保留下来,从而加强深度
    发表于 11-26 06:33

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输
    发表于 07-12 08:02

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络实现是如何一直没有具体实现一下:现看到一个简单的神经网络模型用于训
    发表于 08-18 07:25

    基于BP神经网络的PID控制

    最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。神经网络具有任意非线性表达能力,可以通过对系统性能的学习来
    发表于 09-07 07:43

    使用keras搭建神经网络实现基于深度学习算法的股票价格预测

    本文使用keras搭建神经网络实现基于深度学习算法的股票价格预测。本文使用的数据来源为tushare,一个免费开源接口;且只取开票价进行预测。import numpy as npim
    发表于 02-08 06:40

    卷积神经网络模型发展及应用

    地介绍了卷积 神经网络的发展历史,然后分析了典型的卷积神经 网络模型通过堆叠结构、网中网结构、结构以及 注意力机制提升模型性能的方法,并
    发表于 08-02 10:39

    《 AI加速器架构设计与实现》+第一章卷积神经网络观后感

    连接块是一种模块,通常用于深度卷积神经网络中,特别是在网络(Residual Network,ResNet)中广泛使用,也是我比较熟悉的。组卷积块是一种卷积
    发表于 09-11 20:34