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

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

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删