使用卷积神经网络进行专家级别的心率不齐检测

2024-02-15 07:30

本文主要是介绍使用卷积神经网络进行专家级别的心率不齐检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用卷积神经网络进行专家级别的心率不齐检测:Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks

摘要:

我们开发了一种能够检测多种心率不齐的算法(基于穿戴式心电图监测器采集的信号),该算法的性能超过了心脏病医师。我们构建了的数据集比前人大500倍。在此数据集上,我们训练了一个34层的卷积神经网络,其以心电图(ECG)序列为输入,输出类别(rhythm classes)。顶级心脏病专家对测试集的标记为 ground truth,在测试集上,我们将本文算法与6个心脏病医师进行了性能比较。本文的算法在召回率(灵敏度)和准确率(预测正确的比例)上都超过了心脏病医师。

1. 简介

本文的算法性能之所以好,主要有两个原因:1. 使用了深度卷积神经网络(CNN);2. 本文的数据集比前人的大两个数量级。

为了通过心电图检测心率不齐,算法必须能够识别不同类型的波,并且判断它们在时间上的复杂关系(discern the complex relationships between them over time)。这是困难的,因为不同的病人,心电图的波形不一样、噪声水平也不一样。

本文训练的 34 层 CNN 以任意长度的心电图信号为输入来检测心率不齐。图1展示了本文模型的流程。除了分类噪声和窦性心律,本文的网络还学习去分类和分割十二种心率不齐的类型(the network learns to clasify and segment twelve arrhythmia types present in the time-series)。模型在采样率为 200Hz 的心电图信号数据集上进行端到端的训练,心电图的每一秒都进行了标注,因此数据的标签是一个序列(a sequence of annotations for every second of the ECG as supervision)。

使得

图1. 我们训练的卷积神经网络从可穿戴心脏监测器采集的 ECG 信号中正确检测出了 sinus rhythm (SINUS) 和 Atrial Fibrillation (AFIB)

我们构建的数据集的大小是前人的 500 倍。该领域,最常用的 MIT-BIH 数据集包括 47 位病人的心电图信号。在本文,我们从使用 Zio Patch 监测器的 30 万位病人中收集、标记了 3 万位病人的心电图作为本文的数据集。为了使数据集内的类别平衡,本文特意选择了一些已经出现了心率不齐的病人。

我们在测试集上,将本文算法与认证医师的预测结果进行了对比。三位专家级的心脏病医师对测试集的 336 个样本的标记作为 ground truth。本文的算法在召回率(灵敏度)和准确率(预测正确的比例)上都超过了心脏病医师。

2. 模型

2.1 问题陈述

通过心电图检测心率不齐是一个序列到序列的任务,其以心电图信号 X = [ x 1 , . . . x k ] X=[x_{1},...x_{k}] X=[x1,...xk] 为输入,输出一个序列标签 r = [ r

这篇关于使用卷积神经网络进行专家级别的心率不齐检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/710753

相关文章

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

使用Python实现网络设备配置备份与恢复

《使用Python实现网络设备配置备份与恢复》网络设备配置备份与恢复在网络安全管理中起着至关重要的作用,本文为大家介绍了如何通过Python实现网络设备配置备份与恢复,需要的可以参考下... 目录一、网络设备配置备份与恢复的概念与重要性二、网络设备配置备份与恢复的分类三、python网络设备配置备份与恢复实

C#中的 StreamReader/StreamWriter 使用示例详解

《C#中的StreamReader/StreamWriter使用示例详解》在C#开发中,StreamReader和StreamWriter是处理文本文件的核心类,属于System.IO命名空间,本... 目录前言一、什么是 StreamReader 和 StreamWriter?1. 定义2. 特点3. 用

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage