HealthFog:一种基于集成深度学习的智能医疗系统,用于物联网与雾计算环境集成下的心脏病自动诊断

摘要

云计算通过互联网提供资源,并允许大量应用程序被部署以向不同行业提供服务。当前这些云框架面临的主要瓶颈是其有限的可扩展性,因而无法满足基于集中式物联网(IoT)计算环境的需求。主要原因是,健康监测和监控系统等延迟敏感型应用现在需要对传输到中心化数据库以及从数据库到云数据中心的大量数据(大数据)进行计算,从而导致此类系统性能下降。雾计算和边缘计算的新范式通过将资源更贴近用户,提供了相比云领域更低延迟和更节能的数据处理解决方案。然而,当前的雾计算模型仍存在诸多局限性,通常仅从单一角度关注结果准确率或响应时间的降低,而无法兼顾两者。我们提出了一种名为HealthFog的新型框架,用于在边缘计算设备中集成深度学习,并将其部署于自动心脏病分析的实际应用中。HealthFog利用物联网设备将医疗保健作为雾服务提供,并高效管理作为用户请求传来的心脏病患者数据。采用支持雾计算的云框架FogBus来部署并测试所提出模型在功耗、网络带宽、延迟、抖动、准确率和执行时间方面的性能。HealthFog可配置为多种操作模式,能够在不同的雾计算场景和用户需求下,按需提供最佳的服务质量或预测准确率。

关键词

雾计算、物联网、医疗保健、深度学习、集成学习、心脏病患者分析

1. 引言

雾计算和云计算范式已成为现代经济的支柱,并利用互联网向用户提供按需服务[1]。这两个领域均受到了工业界和学术界的广泛关注。但由于时延较高,云计算并不适合需要实时响应的应用。边缘计算、雾计算、物联网(IoT)和大数据等技术因其鲁棒性以及根据目标应用提供多样化响应特性的能力而变得愈发重要[2]。这些新兴技术为边缘设备,它们促进并增强了移动性、隐私、安全、低延迟和网络带宽,从而使雾计算能够完美匹配对延迟敏感或实时的应用 [2, 6, 10, 12, 27, 40, 45, 46, 47, 48]。如今,云计算框架还通过服务和基础设施扩展支持物联网、雾计算、边缘和大数据等新兴应用范式 [3, 4]。雾计算利用路由器、计算节点和网关提供服务,以实现尽可能低的能耗、网络延迟和响应时间。

Mutlag 等人 [40]探讨了雾计算在医疗应用中面临的挑战,并指出延迟和响应时间是实时雾环境中最重要且最难优化的服务质量(QoS)参数。医疗保健是需要准确且实时结果的主要应用领域之一,人们已将雾计算引入该领域,从而取得了积极进展。通过雾计算,我们将资源更靠近用户,从而降低延迟,进而提升安全措施。对于危重心脏病患者而言,更快地获得结果意味着能够迅速采取行动。然而,仅快速交付结果还不够,因为对于如此敏感的数据,我们不能牺牲结果的准确率。获得高准确率的一种方法是使用先进的分析软件,通常采用基于大型数据集训练的深度学习及其变体。近年来,深度学习[5]已经在从计算机视觉[6]到语音识别的各个领域都经历了指数级增长,但最近已被证明在自然语言处理、序列预测和混合模态数据设置中同样有效。此外,集成学习[7]被用于整合多个分类器的优势。其中一种集成方法称为装袋分类器,该估计器在数据的随机子集上训练基础分类器,然后通过投票或平均其个体预测结果来获得最终预测。这类估计器通过在数据集分布过程中引入随机性,有助于降低与单一估计器相比的方差。深度学习的另一项进展是在医疗数据的预测与分类方面实现了极高的准确率[5]。然而,当前用于医疗应用的深度学习模型非常复杂,在训练和预测过程中都需要大量的计算资源[8]。训练这些复杂的神经网络并使用它们分析数据也需要大量时间。所需的准确率越高,网络越复杂,预测时间[9]也越长。这对于需要实时获取结果的医疗保健及类似的物联网应用来说是一个主要问题。由于边缘计算在降低响应时间方面具有显著优势,这为将复杂的集成深度学习模型与边缘计算相结合的研究提供了新的方向,从而实现实时获得高准确率的结果。

本工作的基本目标之一就是弥合这一差距,提供一个计算平台,不仅能够利用边缘资源实现低延迟的结果输出,还能采用基于深度学习的框架提供高度准确的结果。已有部分研究致力于将计算推向更靠近患者的边缘设备,以减少结果传递时间。但其中一些研究仍依赖于仿真[10],尚未提供可部署框架。本工作还旨在填补医疗行业中的这一空白。

通常,检测心脏问题很困难[49, 50],很多时候人们甚至无法意识到自己处于危急状态,直到出现心动过速或中风等心脏相关问题。传统上,心脏问题的症状难以识别,需要经验丰富的医生观察患者才能确定其是否患有心脏问题。由于医生短缺,这种做法在实践中难以实现,因为大多数国家仍然不信任计算机系统能够以医疗标准化机构所要求的准确率和可解释性[51, 52]来检测心脏问题。现有的部署在物联网驱动的雾或云计算框架上的医疗系统,通过连接预配置设备进行患者数据处理,确保结果能在截止时间内传递给用户。许多先前的研究尝试利用物联网预测与心脏相关的健康问题,但无法达到医疗标准化机构严格规定所要求的准确率。近年来,随着深度学习的普及,一些较新的技术甚至可以在心脏病检测准确率方面超过医生 [53, 54]。本工作旨在将深度学习与物联网在医疗行业相结合,希望推动医疗标准化机构采纳该模型,以提供低延迟和高准确率,从而缓解相关问题医生短缺的问题。目前很少有研究致力于将这两种范式结合,例如[19],,但没有工作利用边缘计算的分布式特性,通过集成深度学习模型来提高准确率。我们在第2节和第7.9节中提供了更全面的比较。此外,扩展深度学习模型以实现结果集成是一项非平凡的扩展,因为它需要在准确率提升和延迟增加之间进行仔细权衡,以提供最理想的 服务质量 。此外,在先前工作如[2, 19, 46],的基础上,HealthFog 提供了一种新颖的医疗保健计算架构,能够整合或利用多种后端框架,如 FogBus [27] 和 Aneka [28],使其成为一个可扩展的模型。

先前的研究报告指出,针对心脏病患者使用不同设备(物联网传感器和文件输入数据)的医疗数据收集方案主要有两种类型。第一种是小数据,在雾节点进行处理;第二种是大数据,在云计算中心(CDC)处理[1, 3]。医疗患者数据以高速度(每分钟250兆字节或更高)被网络接收[1]。现有的框架尚不够灵活,无法同时捕获并提供这两种数据场景的结果,因此需要利用边缘和云资源,以满足具有此类数据量的应用需求。数据从物联网网络的智能设备收集并聚合后,存储和处理于边缘节点或云服务器上。

为了向心脏病患者及其他需要实时结果的用户提供高效的计算服务,需要一种集成的基于边缘‐雾‐云的计算模型,以低响应时间、最低能耗和高准确率提供医疗保健及其对延迟敏感的结果。目前缺乏能够同时结合深度学习模型高准确率和边缘计算节点低延迟优势的此类模型或框架,这促使了本研究工作的开展。

在本研究中,我们提出了一种基于雾的智能医疗系统——HealthFog,用于通过深度学习和物联网实现心脏病的自动诊断。HealthFog 提供了轻量级的雾服务形式的医疗保健,并高效管理来自不同物联网设备的心脏病患者数据。

HealthFog 通过使用 FogBus 框架[27]提供该服务,并展示了利用雾资源实现应用启用和工程简易性的能力。

本文的关键贡献包括:

  • 提出一种用于在雾计算上开发集成深度学习的通用系统架构
  • 开发了一种轻量级自动心脏患者数据诊断系统,该系统采用名为HealthFog的集成深度学习方法。
  • 使用FogBus框架部署HealthFog,以实现物联网‐边缘‐云的集成,用于实时数据分析。
  • 展示了HealthFog部署在准确率、响应时间、网络带宽和能源消耗等各种性能指标方面的表现并进行了分析。

所有分析均针对心脏病患者数据进行,以预测患者是否患有心脏问题。

本文的其余部分组织如下。第2节介绍了现有医疗系统相关工作。第3节提供了FogBus和Aneka的背景信息。第4节提出了模型,第5节描述了其设计与实现。第7节描述了实验设置并展示了性能评估的结果。第8节给出了结论并提出了未来工作。

2. 相关工作

雾计算环境是一种用于高效处理来自不同物联网设备的医疗数据的新兴范式。雾计算能够在具有强大计算能力的边缘设备或雾节点上处理心脏病患者数据,从而降低延迟、响应时间或延迟,因为边缘设备比云数据中心更靠近物联网设备。

Gia 等人 [11]提出了一种低成本健康监测( LCHM)模型,用于收集不同心脏病患者的健康信息。此外,传感器节点以实时方式监控和分析心电图(ECG),以便高效处理心脏病患者数据,但LCHM的响应时间较长,降低了性能。进一步地,传感器节点采集心电图、呼吸频率和体温,并通过无线通信模式将数据传输至智能网关,以快速做出自动决策来帮助患者。基于Orange Pi One的小规模测试平台被用于测试LCHM模型在执行时间方面的性能,但LCHM在数据采集和传输过程中消耗更多能量。

He 等人 [12]提出了一种基于物联网的健康管理模型 FogCepCare,该模型集成云层与传感器层,以确定心脏病患者的健康状况,并减少运行时任务处理的执行时间。FogCepCare采用分区与聚类方法以及通信和并行处理策略来优化执行时间。通过模拟云环境将FogCepCare的性能与现有模型进行比较,结果表明其能够优化执行时间,但该研究缺乏在功耗、延迟、准确率等关键QoS参数方面的性能评估。Ali 和 Ghazal [13]提出了一种基于软件定义网络(SDN)的物联网电子健康服务应用,该应用通过智能手机以语音控制形式收集数据,并判断患者的健康状况。此外,该物联网电子健康服务通过基于移动应用的概念模型识别心脏病发作类型,但所提应用在云环境下的性能尚未得到评估。Akrivopoulos 等人 [14]提出了一种基于心电图的医疗(ECGH)系统,利用心电图诊断心脏异常 [15],但由于直接获取数据而未使用数据分析或其他特征提取技术,导致检测异常事件的准确率较低且响应时间较高。此外,当大量请求发生时,数据传输到云服务器会增加延迟并导致更高的能耗,从而降低系统性能。Manikandan 等人 [16]为医疗物联网(IoMT)提出了一种自主监控系统(AMS)模型,以提供医疗服务。在该研究工作中,设计了一种基于奖励的机制,利用层次分析法(AHP)在节点间公平分配能源。通过模拟云环境对AMS模型在能耗方面的性能进行测试,结果显示AMS模型的表现优于FGCS方法,但节点之间的通信时间导致处理患者请求时延迟较高。

Choi 等人 [17]提出了一种用于医疗表征学习的基于图的注意力模型(GRAM),该模型通过医学本体中的层次信息补充电子健康记录。此外,GRAM 在训练准确率方面进行了性能优化。GRAM 使用预测分析来预测心脏病发作的可能性,并使用非常小的数据集将 GRAM 与循环神经网络(RNN)进行性能比较,在训练准确率方面优于 RNN。然而,在大数据集情况下,GRAM 的性能可能会下降。Nicholas 等人 [18]提出了一种用于可穿戴物联网设备端到端分析的智能雾网关(SFG)模型,并展示了 SFG 在协调数据预处理、智能过滤、智能分析以及选择性传输至云以实现长期存储和时间变异性监测过程中的作用。SFG 模型在执行时间和能耗方面优化了性能,但未将延迟作为性能参数考虑。Iman 等人 [19]提出了一种基于分层边缘的深度学习(HEDL)的医疗物联网系统,以研究部署基于卷积神经网络(CNN)分类模型作为深度学习方法示例的可行性。此外,通过心电图分类的案例研究,从准确率和执行时间方面测试了所提系统的性能。Liangzhi 等人 [20]提出了用于智能制造的基于雾计算的高效制造检测(FEMI)系统,利用深度学习以高效方式处理大量数据。此外,FEMI 系统将 CNN 模型适配到雾计算环境,显著提高了其计算效率,并仅在测试准确率方面优化了性能。

Mahmud 等人 [21]提出了一种基于雾计算的物联网医疗(FIH)解决方案架构,并探索了在传统基于云的架构基础上扩展云‐雾服务集成的互操作性医疗解决方案。此外,使用 iFogSim 模拟器 [43] 仅从功耗和延迟方面测试 FIH 解决方案的性能。FIH 解决方案的性能还可以通过执行时间和准确率进行评估。Rabindra 和 Rojalina [22] 提出了一种基于雾计算的机器学习模型,用于智能系统的大数据分析,称为 FogLearn,该模型应用于恒河盆地管理中的 K‐均值聚类以及真实世界特征数据中糖尿病患者糖尿病 mellitus 的检测。Alvin 等人 [23] 提出了一种可扩展且精确的深度

Work Fog
计算
IoT 学习 学习 预测 系统 功率 消耗 延迟 执行 Time 仲裁 Time 网络 带宽 抖动 测试 准确率 训练 准确率
LCHM [11] X X
FogCepCare [12] X X
物联网电子健康服务[13] X X
ECGH [14] X X X
AMS [16] X X
GRAM [17] X X X
SFG [18] X X X X
HEDL [19] X X X X X
FEMI [20] X X X
FIH [21] X X X X
FogLearn [22] X
SADL [23] X X
CoSHE [39] X
事物边缘计算 [41]
基于服务等级协议的医疗大数
X
据分析 [42]
X
X X
基于云雾架构 [43] X X
HealthFog(本工作) X X X X X X X X X X X X X

表1:现有模型与HealthFog的比较

基于快速医疗互操作性资源(FHIR)格式的患者电子健康记录,提出了一种用于学习(SADL)的模型。该 SADL模型中采用FHIR表示的深度学习方法能够准确预测来自多个中心的多种医疗事件,而无需针对特定站点进行数据协调。此外,所提出的方法使用来自两个美国学术医疗中心的216,221名住院时间至少为24小时的成年患者的去标识化电子健康记录(EHR)数据进行了验证,并提高了预测的准确性。表1将提出的模型(HealthFog)与现有模型进行了比较。

Pham等人[39]提出了一种基于云的智能家居环境 (CoSHE),用于提供家庭医疗保健,向人类提供上下文信息,并通过机器人助手监控生命体征。最初, CoSHE使用非侵入式可穿戴传感器收集音频、运动和生理信号,并以居民日常活动的形式传递上下文信息。此外, CoSHE允许医疗保健专业人员探索患者的行为变化和日常活动,以定期监控其健康状况。此外,还通过使用谷歌 APIs展示了机器人辅助的案例研究,以测试CoSHE的性能。然而,CoSHE是一种通用的医疗保健应用,仅在小规模上收集和处理患者数据,缺乏数据分析功能,并且未在真实云环境中进行评估,因此未对其QoS参数方面的性能进行测试。

Alam等人[41]提出了一种通用的面向事物边缘计算 (EoTC)框架,用于医疗保健服务提供,以优化数据处理成本。此外,还提出了一种投资组合优化方案,用于虚拟机(VM)的选择,并设计了基于交替方向乘子法( ADMM)的分布式提供技术,以高效处理医疗数据。进一步的实验结果表明,EoTC框架在成本方面优于贪婪方法,但该框架在QoS参数方面的性能评估存在不足。

Sahoo等人[42]提出了一种基于服务等级协议的医疗大数据分析(SLA‐HBDA)架构,用于对患者数据进行排序,从而提高其性能处理速度。此外,开发了一种高效的数据分发技术,利用 Spark平台分配批处理和流式数据,以预测患者的健康状况。与朴素贝叶斯(NB)算法相比,SLA‐HBDA架构在准确率方面提升了性能,但未考虑延迟和其他重要的 QoS参数。

Abdelmoneem等人[43]提出了一种基于云雾架构 (CFBA),用于物联网医疗应用,以监控患者的健康状况。此外,还提出了一种任务调度与分配机制,通过高效分配医疗任务来处理医疗数据。CFBA的性能通过 iFogSim模拟器[44]仅以延迟指标进行评估。现有研究工作[39, 41, 42, 43]主要开发了小规模的通用医疗应用,尚未有研究工作专注于心脏病患者相关的医疗应用以诊断心脏病患者的健康状况。

Sanaz 等人 [46] 提出了一种用于支持移动性的医疗物联网的端到端安全方案,该方案使用数据报传输层安全 (DTLS)握手协议在各个互连的智能网关之间建立安全通信,而无需在设备层进行任何重新配置。此外,该方案通过仿真环境(Cooja)实现,并证明所提出的方案可将通信开销降低 26%,延迟降低 16%。在此工作基础上, HealthFog 旨在将医疗应用部署在真实系统和雾节点上,提供更具前景的解决方案。

Amir 等人 [2]提出了一种名为智能电子健康网关的系统,利用网关在网络边缘的战略位置,提供嵌入式数据挖掘、实时本地数据处理和本地存储等各种服务。此外,该系统通过在云和传感器节点之间创建一个地理分布式的智能中间层,分担了各种传感器的负担,从而提高了可靠性、节能性和可扩展性。进一步地,该系统通过基于物联网的早期预警评分(EWS)健康监测移动应用进行了验证。在此工作基础上,Health‐Fog 架构提供了更多功能,能够

使用分布式深度学习模型以集成方式进一步提高预测准确率,为危重心脏病患者提供更精确的结果。

需要解决以下挑战[24, 25, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26, 39, 42, 43, 44],以充分发挥基于物联网的雾计算在医疗系统中的潜力: (a)需要一种高效的基于物联网的医疗保健应用,能够以最低能耗和较短响应时间处理大量心脏病患者数据; (b)需要一种有序的资源调度技术,用于雾计算环境,以最大资源利用率执行用户工作负载,满足工作负载截止时间;(c)需要一种基于集成深度学习的雾计算模型,以实时自动诊断患者心脏疾病的严重程度。

3. 背景技术

FogBus [27]是一个用于开发与部署集成雾‐云环境的框架,支持结构化通信和应用程序的平台无关执行。FogBus 连接各种物联网传感器(如医疗传感器)和网关设备,以将数据和任务发送到雾工作节点。资源管理和任务启动由雾代理节点完成。为确保数据完整性、隐私与安全,FogBus 采用区块链、认证和加密技术,从而提高雾环境的可靠性与鲁棒性。FogBus 使用 HTTP RESTful API 进行通信,并通过 Aneka软件平台[28] 将雾环境设置与云无缝集成。

Aneka [28]是一个软件平台与框架,旨在促进分布式应用程序在云上的开发与部署。Aneka 为开发者提供了用于利用云上虚拟资源的 API。Aneka 框架的核心组件以面向服务的方式进行设计和实现。动态资源供给是指动态获取资源并将其集成到现有基础设施和软件系统中的能力。在最常见的情况下,这些资源是从基础设施即服务(IaaS)云提供商处获取的虚拟机(VMs)。Aneka 中的动态资源供给作为 Fabric 服务的一部分,通过提供资源供给服务,从公有云提供商处分配虚拟节点来补充本地资源。这主要是通过调度服务与资源供给服务之间的交互实现的。Aneka 目前支持四种不同的编程模型 [28]:任务集模型、分布式线程模型、MapReduce 模型和参数扫描模型。在 HealthFog 中,我们使用了任务集模型在云虚拟机之间进行任务分发。HealthFog 使用 FogBus 来利用雾资源,使用 Aneka 来利用云资源。

4. 系统架构

HealthFog模型是一种用于医疗保健的基于物联网的支持雾计算的云计算模型,能够管理数据有效监测心脏病患者的健康状况,并诊断以确定心脏病严重程度。HealthFog通过软件组件集成多种硬件设备,实现边缘‐雾‐云的结构化和无缝端到端集成,以快速准确地交付结果。图1展示了HealthFog的架构,其中包括各种硬件和软件组件,下文将对其进行描述。

4.1. HealthFog硬件组件

HealthFog模型包含以下硬件组件:

  1. 体域传感器网络 :该组件由三种不同类型的传感器构成:医疗传感器、活动传感器和环境传感器。医疗传感器包括心电图(ECG)传感器、脑电图(EEG)传感器、肌电图(EMG)传感器、血氧传感器、温度传感器、呼吸频率传感器和血糖传感器。该组件感知心脏病患者的数据,并将其传输至连接的网关设备。

  2. Gateway :网关设备有三种不同类型(手机、笔记本电脑和平板电脑),它们作为雾设备,用于从不同的传感器收集感知数据,并将这些数据转发给代理/工作节点以进行进一步处理。

  3. FogBus模块 :FogBus框架包含以下内容:
    - 代理节点 :该组件从网关设备接收作业请求和/或输入数据。请求输入模块在传输数据之前,从网关设备接收作业请求。安全管理模块提供不同组件之间的安全通信,并保护所收集的数据免受未授权访问或恶意篡改,以提高系统可信度和数据完整性。仲裁模块(代理节点中资源管理器的一部分)接收所有工作节点的负载状态作为输入,并实时决定将作业发送到哪个节点或节点子集。
    - 工作节点 :这是执行代理节点的资源管理器分配的任务的组件。工作节点可以由嵌入式设备和单板计算机(SBC)如树莓派组成。在HealthFog中,工作节点可以包含复杂的深度学习模型,用于处理和分析输入数据并生成结果。此外,工作节点还可以包含用于数据处理、数据过滤与挖掘、大数据分析和存储的其他组件。工作节点直接从网关设备获取输入数据,生成结果并与之共享。在 HealthFog模型中,代理节点也可以充当工作节点。
    - 云数据中心 :当雾基础设施过载、服务为延迟容忍或输入数据大小远大于平均大小时,

示意图0

5. HealthFog设计

第4节中描述的雾计算模型从传感器获取心脏病患者数据作为输入,并返回结果,结果包含患者是否患有心脏病及其声明的置信度。该模型通过若干组件实现,包括数据预处理模块、集成深度学习模块以及接下来将描述的网关接口。

5.1. 心脏病患者数据预处理

从常见的脉搏血氧仪或心电图设备获取的数据为纯图形格式,需要进行预处理以提取输入到深度学习模型 [31, 32]的多个特征值。这需要将特定应用领域的知识输入系统。如图4所示,年龄数据略有偏斜,需进行标准化处理。同样,静息血压(BPS)数据也存在偏斜,患有心脏病的患者血压较高,相比之下未患心脏病的患者血压较低。患者的胆固醇水平也表现出一定的目标特异性行为,健康患者的分布呈尖峰态。在最大心率方面,健康人群的最大心率(约160)明显高于心脏病患者(约150)。其他特征如胸痛和空腹血糖需要从连续值转换为分类值。此外,还包括从铊扫描测试中获取的峰值运动ST段的斜率和心脏状态。

示意图1

5.2. 集成深度学习应用

我们使用了深度神经网络的集成模型来进行预测分析,对于我们的应用,该模型用于解决二分类问题。该模型首先在克利夫兰数据集中的心脏病患者数据及相应的已知输出类别上进行训练,然后利用训练好的模型对实时数据输入进行结果预测,如图5所示。

我们将数据按70:10:20的比例划分为训练集、验证集和测试集。训练集用于训练模型,验证集用于调参,测试集用于测试模型在新数据上的表现。训练好的模型可以先存储在公共数据库中,然后存储到所有具备处理能力的节点上。其他

示意图2

一种方法是通过将训练数据集的样本点分配到不同的模型上来分别训练模型。在分布式训练中,数据分布使用诸如 boosting之类的技术,从数据集中有放回地随机采样,并将样本发送到不同的边缘节点以训练各个模型[7]。在诊断时,当某个节点被分配任务后,它会获得患者的数据,即一个长度为13的向量。该数据作为输入提供给模型,在深度神经网络上进行前向传递,并输出1或0,表示患者是否患有心脏病。在诊断时,我们采用集成方法中的装袋方法(Bagging)来整合各个模型的结果,以提供更准确的预测结果。接收输入数据的工作节点将其多播到其他工作节点。每个工作节点将该数据添加到其队列中,并将各自工作节点的预测结果返回给负责该任务的工作节点。然后,通过装袋方法得到的多数预测类别会被发送到网关设备。HealthFog允许用户在结果对延迟敏感时禁用此功能。在第7节中,我们展示了集成学习能够提供更高的准确率,但也会带来更高的响应时间和网络开销。

5.3. 安卓界面与通信

一个名为FastHeartTest的安卓可执行文件被用于网关设备,以向代理/工作节点发送数据。该应用程序的界面如图6所示。此应用程序允许网关在体域传感器网络和工作节点之间充当中介。通信通过HTTP RESTful API实现。我们使用 HTTP POST将输入数据上传到中央数据中心,并将结果下载到网关设备。每个工作节点、代理节点和中央数据中心均包含一个预训练的深度学习模型和预处理软件。

示意图3

6. 实现

第5节中提到的组件使用了多种编程语言实现。预处理和集成深度学习组件是使用Python实现的。预处理模块根据数据集中字段参数的最大值、最小值及其分布对数据进行归一化。

集成深度学习应用使用了SciKit learn库[33]。我们使用了BaggingClassifier来实现投票方案。该模型接受基础分类器的类型(在本例中为深度神经网络)以及分类器的数量作为输入。然后,模型将数据随机分配给各个分类器以进行训练。在诊断时,模型接收所有预测类别作为输入,并输出多数预测结果。以下是调参后在我们的数据集上获得的最佳基础模型的参数:

  • 输入层大小:13(数据的特征数量)
  • 输出层大小:2(二分类;患者是否患有心脏疾病)
  • 隐藏层数量:3
  • 层描述:具有20个节点的全连接层,具有20个节点的全连接层和具有10个节点的全连接层
  • 优化器:Adam
  • 激活函数:ReLU
  • 学习率:0.0001

安卓应用使用MIT的App Inventor1构建,并与 FogBus代理节点进行通信。该安卓应用将数据属性保存在逗号分隔值(.csv)文件中,并通过HTTP POST上传至数据目录模块的代理节点。

代理节点还具有一个仲裁模块,该模块决定选择哪个工作节点来执行任务。此工作节点的选择过程遵循 FogBus默认策略,即选择CPU负载最小的工作节点。选定工作节点后,会向其发送CSV文件以进行数据分析。每个工作节点中的执行接口模块接收数据,并实例化集成深度学习代码以对数据进行分析。返回结果将被发送回发送数据文件的工作/代理节点。结果通过装袋策略进行集成,并转发至网关设备(安卓应用)。

示意图4
HealthFog评估的系统设置及硬件配置如下所述:

  • 网关设备 :三星Galaxy S7,搭载安卓9
  • 经纪人/主节点 :戴尔XPS 13,搭载英特尔酷睿i5‐7200处理器 @ 2.50GHz、8.00 GB DDR4内存和64位 Windows 10。部署使用了Apache HTTP服务器 2.4.34。
  • 工作节点 :树莓派 3B+,ARM Cortex‐A53 四核SoC CPU @ 1.4 GHz 和 1GB LPDDR2 SDRAM,支持IEEE 802.11 无线网络。运行RaspbianStretch操作系统的树莓派,搭载 Apache HTTP服务器 2.4.34。
  • 公有云 :Microsoft Azure B1s 虚拟机,1个虚拟CPU, 1GB 内存,2GB 固态硬盘,Windows Server 2016。

示意图5

7.2. 数据集

实验结果中,我们使用了心脏病患者数据来判断患者是否患有心脏病[26, 38, 31, 32],,其为一个整数值0(无病症) 或1(有病症)。实验采用的克利夫兰数据库[26]由匈牙利戈特塞根心脏病研究所的安德拉什·亚诺西医学博士( M.D.)及其他研究人员创建。患者姓名及其患者编号均保密。我们使用了14个重要的数据属性来评估患者的健康状况:
(1)年龄:以年为单位的年龄;
(2)性别:两个取值(1=男性; 0=女性);
(3)cp:胸痛类型:‐ 值1:典型心绞痛 – 值2:非典型心绞痛 – 值3:非心绞痛性疼痛 – 值4:无症状;
(4)trestbps:入院时的静息血压(单位为毫米汞柱);
(5)chol:血清胆固醇(单位为毫克/分升);
(6)fbs: 空腹血糖> 120毫克/分升(1=真; 0=假);
(7) restecg:静息心电图结果 – 值0:正常 – 值1:存在ST‐T波异常(T波倒置和/或ST段抬高或压低> 0.05毫伏) – 值2: 根据Estes标准显示可能或明确的左心室肥厚;
(8) thalach:达到的最大心率;
(9)exang:运动诱发心绞痛 (1=是; 0=否);
(10)oldpeak =相对于静息状态的运动诱发ST段压低;
(11)slope:峰值运动时ST段的斜率 – 值1:上斜 – 值2:平坦 – 值3:下斜;
(12)ca:通过荧光透视显影的主要血管数量(0‐3);
(13)thal: 3=正常; 6=固定缺陷;7=可逆性缺陷;
(14)target (num):心脏病诊断(血管造影疾病状态) – 值0:< 50% 直径狭窄 – 值1:> 50% 直径狭窄(在任何主要血管中)。表 2 描述了10名心脏患者的具体情况。

age sex cp 静息血压 chol fbs 静息心电图 最大心率 运动诱发心绞痛 ST段压低程度 ST段斜率 ca thal 目标
63 1 3 145 233 1 0 150 0 2.3 0 0 1 1
37 1 2 130 250 0 1 187 0 3.5 0 0 2 1
41 0 1 130 204 0 0 172 0 1.4 2 0 2 1
56 1 1 120 236 0 1 178 0 0.8 2 0 2 1
57 0 0 120 354 0 1 163 1 0.6 2 0 2 1
62 0 0 140 268 0 0 160 0 3.6 0 2 2 0
63 1 0 130 254 0 0 147 0 1.4 1 1 3 0
53 1 0 140 203 1 0 155 1 3.1 0 0 3 0
56 1 2 130 256 1 0 142 1 0.6 1 1 1 0
48 1 1 110 229 0 1 168 0 1 0 0 3 0

表 2:来自克利夫兰数据库的患者记录样本数据

7.3. 框架特性实验

使用第7.2节中提到的数据集,我们测试了我们的模型在根据每位患者指定的参数值预测其是否患有心脏疾病方面的表现。整个数据集被分为三部分,分别占总数据的70%、10%和20%。第一部分用于训练模型,第二部分用于验证和调整模型参数。最后一部分用于测试模型性能。为了衡量HealthFog模型的性能,观察并分析了以下特性:

  1. 预测准确率 :该数据集包含1807个样本,其中1355个用于训练模型,452个用于测试。训练样本被平均分配到所有工作/代理节点上,以获得各自训练的深度学习模型。随着雾节点数量的增加,为了充分利用所有资源,训练数据样本需要分发到所有节点。这会减少训练时间,但也会降低测试准确率。为了观察此类影响,我们分析了训练和测试准确率。我们将准确率更正式地定义为模型正确预测患者是否患有心脏病的患者占总患者数的百分比。我们通过改变边缘节点数量以及使用或不使用结果集成,比较不同雾计算配置下的准确率。

  2. 时间特性 :图3中所示的不同时序参数的一个代表性子集也被观察和研究。这些参数包括仲裁时间、延迟、执行时间和抖动。我们通过以下几种情况比较这些时序参数在不同雾计算配置下的表现:没有边缘节点、最多2个边缘节点(使用或不使用结果集成),或仅使用云端计算架构。

  3. 网络带宽使用 :由于场景(即仅代理、工作节点或云)以及工作节点的数量会影响网络消耗,因此对此进行了研究以了解不同情况下的网络使用情况。与针对时序参数的实验类似,我们比较了不同雾场景下的网络带宽消耗。此举旨在查明带宽消耗与HealthFog提供的不同雾配置之间的依赖关系。

  4. 功耗 :由于能源是促使从云向雾领域转移的关键原因,我们也研究了不同场景下的功耗。基于之前的功耗研究和其他实验,我们讨论了如何使用不同的HealthFog配置来满足各种用户和应用需求。

7.4. 预测准确率

图 9 显示了训练准确率随边缘节点数量(代理节点加工作节点)的变化情况。我们可以观察到,随着工作节点数量的增加,训练准确率逐渐提高。这是因为每个节点都进行学习模型对其接收到的数据进行训练,随着节点数量的增加,每个节点接收到的样本数量减少,因此对少量样本进行多轮训练会导致过拟合,从而导致训练准确率上升。图10显示了测试数据准确率随边缘节点数量增加的变化情况。正如预期,测试准确率随着节点数量的增加而下降,因为每个节点获得的训练数据子集更小,因此无法很好地泛化模型。另一个观察结果是,集成学习始终比不使用集成的情况(最佳或平均)具有更高的准确率。

示意图6

示意图7

7.5. 预测置信度

每当深度学习模型预测患者是否患有心脏病时,它都会生成两个概率:p0(无疾病的概率)和p1(心脏病的概率),使得p0 + p1 = 1。预测的置信度度量(p0, p1)被量化为 100 × (2 × max(p0, p1) − 1),因此其范围为[0,100]。因此,如果预测概率为(0.5, 0.5),则置信度为0;当预测概率为(0.9, 0.1)时,预测类别为0%,置信度为80%。图 11 显示了二分类器在整个测试数据集上的置信度变化情况,包括模型预测正确的子集和预测错误的子集。我们发现,对于预测正确的数据点,其置信度高于预测错误的数据点。模型预测错误时的最大置信度为49.7%,因此如果置信度低于 50%,则我们的模型建议患者咨询医生,因为该预测可能不可靠。

示意图8

7.6. 时序特性

图 12 显示了在不同雾计算场景下代理节点的仲裁时间变化:(1)仅代理,(2)单个工作节点,(3)两个工作节点,以及(4)云。我们看到,当任务直接发送到代理/主节点或云时,仲裁时间可以忽略不计(约115毫秒)。随着边缘节点数量的增加,代理需要检查每个工作节点的负载,并找到负载最小的工作节点来发送任务,因此仲裁时间随边缘节点数量的增加而增加。当数据被发送到工作节点进行集成学习时,由于多数类的选择由其中一个工作节点完成,代理无需进行任何负载检查,因此仲裁时间与未使用集成的情况相似。

示意图9

延迟是指通信时间与排队延迟之和。我们发现,如果任务被发送到经纪人或任何边缘节点,则延迟几乎相同,因为所有通信都通过单跳数据传输完成。在集成情况下,延迟略高。对于云设置,由于数据在局域网外的多跳传输,延迟非常高。

示意图10

抖动是指连续作业请求的响应时间变化。对于包括健康数据分析在内的大多数实时应用而言,这是一个关键参数。图14(对数垂直刻度)显示了抖动随雾配置的变化情况。我们观察到,仅代理情况下的抖动高于将任务发送到工作节点的情况。这是因为经纪人还需执行仲裁、资源管理和安全检查等其他任务。随着工作节点数量增加,由于两个边缘节点的工作节点负载差异,抖动相较于单个边缘节点略有上升。集成情况下抖动也较高。当任务被发送到中央数据中心时,抖动非常高。

示意图11

图15展示了执行时间的变化。正如预期的那样,由于云设置具有更高的资源可用性,其执行时间非常低。经纪人的执行时间少于工作节点,因为HealthFog工作节点是树莓派,其处理器具有低时钟频率。此外,当启用集成预测时,执行时间更高,因为工作节点现在需要检查在所有预测类别中哪个类别占多数。

示意图12

7.7. 网络带宽使用特性

图16显示了不同场景下所有边缘节点的网络带宽使用的变化情况。我们看到,随着工作节点的增加,网络使用也随之增加,因为需要更多的心跳包、安全检查以及与云的数据传输。在集成情况下,由于数据被发送到所有工作节点,网络带宽消耗最高。

示意图13

7.8. 功耗特性

我们还测试了HealthFog框架在不同场景下的能耗特性。中央数据中心的功耗与代理节点(笔记本电脑)或工作节点(树莓派)相比非常高。这导致云模式下的功耗远高于边缘模式。随着工作节点数量的增加,HealthFog框架的功耗也随之增加。

示意图14

7.9. 与相关工作的分析

其他提出用于雾计算中医疗应用的计算模型的研究并未考虑HealthFog所涉及的多个方面。许多先前的工作 [13, 16, 17, 22, 23,39, 42]未充分利用靠近网络边缘的资源。如图13所示,此类模型由于所有计算均在云上完成,导致数据传输时间更长,因而延迟显著更高。随着基于深度学习的预测模型的发展,HealthFog能够采用最先进的神经网络模型实现高精度预测患者健康特征的。其他类似 [2, 46] 或 [11, 12, 13, 14, 16, 18, 41, 43] 的工作缺乏集成此类模型的能力,因此提供的疾病检测准确率较低。这对于关键医疗应用中提供低延迟且高准确性的结果至关重要,尤其是涉及心脏病发作、中风或心律失常等心脏相关问题的应用。此外,使用深度学习 [17, 19, 20] 的研究未采用集成方法,从而未能利用雾资源进行并行计算以获得更优的结果,并实现显著更高的准确率。如第7.4节的结果所示,在使用 5个边缘节点的情况下,采用集成方法后预测准确率提高了16%,远高于现有系统(未利用集成深度学习)所能达到的水平。此外,与之前的工作不同,HealthFog 使用 FogBus 框架 [27] 提供多种配置,这些配置具有不同的准确率、响应时间、网络和功率使用特性。根据不同的应用和用户需求,可以使用不同的配置,如下一节所述。这允许用户根据自身需求定制框架。这种在雾计算节点之间进行集成和同步的非平凡扩展,支持基于集成的深度学习模型的执行,不仅提高了疾病检测准确率,还能适应多样化的需求。因此,HealthFog 提供了一种现有工作所不具备的医疗计算新型架构。

7.10 讨论与建议

在早期的工作中[27],,展示了FogBus的能力,并将其与之前的雾计算框架进行了比较,表明FogBus能够更高效地实现利用边缘和云资源的应用程序。该项工作基于 FogBus框架,以工程简易性和较短的时间开发了一种对延迟和准确率敏感的心脏病患者分析应用,从而高效利用边缘和云资源。该应用部署系统提供了不同的配置,可根据用户需求实现更高的准确率或更低的延迟。根据实验结果,我们建议根据目标应用的场景,在以下设置中使用 HealthFog:

  • 对于延迟敏感且轻量级的任务或能源受限的环境,应使用工作节点。由于工作节点距离较近,可实现非常低的结果传递时间。如果存在能源和网络带宽限制,则应禁用集成bagging;否则,启用装袋方法将获得更高的准确率。
  • 对于繁重且延迟容忍的任务,必须使用CDC配置,否则这些任务将无法在资源受限的边缘工作节点上成功完成。

8. 结论和未来工作

医疗即服务是一项庞大的工程。在本研究工作中,我们仅专注于心脏病患者的医疗保健方面,提出了一种基于雾计算的智能医疗系统,用于利用深度学习和物联网进行心脏病自动诊断,该系统称为HealthFog。HealthFog 将医疗保健作为雾服务提供,并高效管理来自不同物联网设备的心脏病患者数据。HealthFog将深度学习集成到边缘计算设备中,并将其部署于实际的心脏病分析应用中。以往针对此类心脏病患者分析的研究工作未使用深度学习,因此预测准确率非常低,在实际应用中几乎无用。基于深度学习的高准确率模型在训练和预测过程中都需要大量的计算资源(CPU和GPU)。本研究通过使用新型通信和模型分发技术(如集成方法),使得复杂的深度学习网络能够嵌入到边缘计算范式中,从而在极低延迟的情况下实现高准确率。我们还通过对流行数据集上的神经网络进行训练,并部署一个可运行的系统以实时提供预测结果,验证了该方法在真实心脏病患者数据分析中的有效性。我们使用FogBus框架在雾计算环境中对HealthFog进行了验证,并从功耗、网络带宽、延迟、抖动、训练准确率、测试准确率和执行时间等方面测试了所提系统的效率。

作为未来工作的一部分,我们建议扩展HealthFog,以在不同的服务质量特征和雾‐云成本模型下实现成本最优的执行。目前 HealthFog使用基于文件的输入数据,这些数据可以无缝转换为集成以直接从传感器获取数据,使其对用户更加友好。此外,当前使用的模型训练策略是在每个工作节点上进行独立训练。各个节点上训练的模型已通过多种bagging集成模型进行组合。可以部署更智能的集成模型以进一步提高准确率。此外,所提出的架构可以变得更加鲁棒和通用,以整合其他雾计算应用,如农业、医疗保健、天气预报、交通管理和智慧城市。HealthFog还可以扩展到医疗保健的其他重要领域,如糖尿病、癌症和肝炎,从而为相应患者提供高效服务。

软件可用性

我们将HealthFog作为开源软件发布。实现代码、实验脚本和结果可在GitHub仓库获取: https://github.com/ Cloudslab/HealthFog。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐