论文阅读:Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks

简介

建立了一个病人数量是现有数据集500倍以上数据集;
一个34层的卷积神经网络;
在敏感度和准确度方面都超过了心脏病专家的平均表现。

数据的不平衡问题是这么解决的:

“We intentionally select patients exhibiting ab- normal rhythms in order to make the class balance of the dataset more even and thus the likelihood of observing un- usual heart-activity high.”(我们有意选择心律失常的患者,以使数据集的类别平衡更加均匀,从而提高观察到异常心脏活动的可能性。)

模型

问题定义

心电心律失常检测任务是一个序列对序列的任务。输入ECG序列 X=[x1,xk]X =\left[x_{1}, \ldots x_{k}\right],输出label序列r=[r1,rn]r=\left[r_{1}, \ldots r_{n}\right]。每个输出标签对应于输入的一段,所有的输出标签一起就覆盖了整个序列。模型优化的交叉熵为L(X,r)=1ni=1nlogp(R=riX)\mathcal{L}(X, r)=\frac{1}{n} \sum_{i=1}^{n} \log p\left(R=r_{i} \mid X\right)其中p()p(·)是网络的第i个输出的概率riri

模型的结构和训练

输入ECG信号采样频率300Hz,长度为30s,需要规范化,模型一秒给出一个预测值。
该网络由16个残差块组成,每个块有2个卷积层。每个卷积层都有长度为16的64k个滤波器,其中k从1开始,每4个残差块递增。
每两个残差间使用一次最大池化(pool_size=2, strides=2),为了实现残差连接,每个残差块的输出都要进行最大池化(pool_size=2, strides=2)。
最终全连接层用softmax**,为每个时间步产生14个输出类别。
使用Adam优化器,当验证损失停止改善时,将学习率降低10倍。
论文阅读:Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks

数据

训练集

64121个数据来自29163个病人,采样频率200Hz,一个导联。
训练集中一个数据长度为30s,包含多个rhythm type。
每个数据都由临床心电图专家注释:专家突出并将其标记与14个心律类别之一相对应的片段。

测试集

336个数据来自328个病人;
3个认证的心脏病专家组成委员会负责测试集的不同分割和注释;
另外6个心脏病专家单独给出6份对测试集诊断结果,用于比较专家与模型那个表现更好。

Rhythm类别

12个心律失常,窦性心律和噪声共14个输出类别
论文阅读:Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks
论文阅读:Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks

结果

两个指标来衡量模型的准确性,心脏病专家的注释作为groud true。

序列级准确度(F1):对于每个记录,模型大约每秒进行一次预测(每256个样本点)。测量预测值与真值序列标签之间的平均重叠。
集合水平准确度(F1):将每个30秒记录中唯一出现的所有心律失常视为一个标注。一个记录有多种心律失常的情况怎么处理的?
在序列和集合情况下,我们分别计算每个类的F1分数。然后我们计算整体F1(以及精确度和召回率)作为类频率加权平均值。
论文阅读:Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks
模型在大多数心律失常方面的表现优于心脏病专家的平均表现;
模型在精确度和召回率方面都优于心脏病专家的平均水平。

分析

测试集的confusion matrix:
论文阅读:Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks
总的来说***室性心律总被误判为其他心律失常的类别***,具体情况和原因分析如下:
(1) 混淆Wenckebach和VB Type2
原因是心电图记录中心律失常的确切发生和偏移位置有时不明确, 这两种节律通常具有非常相似的ECG形态。
(2) 室上性心动过速(SVT)和心房颤动(AFIB)常与心房扑动(AFL)混淆
它们都是房性心律失常, 难以区分。
(3) 室性心律(IVR)有时被误认为是V型室性心动过速(VT)
鉴于两者只是心率不同,很难在接近每分钟100次的范围内区分开来。
(4) 异位心房节律(EAR)和窦性心律混淆
这种节律的主要判别标准是不规则P波。特别是当P波振幅很小或信号中存在噪声时,这一点很难检测。

相关工作

(1)从R峰特征提取对心率和心率变异性的准确估计。
特征工程算法通常用于粗粒度心律分类,包括检测心动过速(快心率)、心动过缓(慢心率)和不规则节律。然而,这些特征并不足以区分大多数心律失常,因为需要基于心脏心房活动的特征以及与QRS形态相关的其他特征。

(2)自动特征提取器提取其他特征
搏动分类、心律检测、心房颤动和窦性心律分类

(3)具有参考意义的深度卷积神经网络和递归神经网络处理时间序列的自动语音识别工作

critical thinking

(1)没有太多的新东西,在一个大数据集的训练下,实现了高精度分类
(2)按照作者的分析,当两个类别的ECG信号相似度到一定程度时,CNN和人眼一样难以区分。
(3)值得借鉴和学习的地方是论文的写作方式,当模型没有太多创新时,但是结果很好时,按照这个套路写paper。

代码实现

仅参考:https://github.com/jianning-li/Andrew-Ng-ECG/blob/master/Model.py