论文阅读笔记
0.Abstract
作者提出了一个使用深度卷积神经网络(Deep CNN)自动对住院病人ECG信号进行分类的Method,主要关注对Inter-patient arrhythmias的分类,最终达到的效果如下表所示,达到了与manual feature engineering同等的水平。
Classification | Sensitivity | Positive Predictivity | False Positive Rate |
normal heartbeats | 92% | 97% | 23% |
supraventricular ectopic beat | 62% | 56% | 2% |
ventricular ectopic beat | 89% | 51% | 6% |
注意:心电数据分类的问题 Inter-patient Or Intra-pateint
①Inter-patient :对不同的病人(records)进行特征提取和分类,即The data from a patient used in the test phase is not used to train the model;
②Intra-patient :通过训练同一个病人的部分心拍,再对同一个病人的其余心拍进行测试。
1 Introduction
ECG信号的获取分3类:in-the-person、on-the-person和off-the-person ECG-measurement,本文采用on-the-person测量法。
①in-the-person:测量装置被植入病人体内;
②on-the-person:使用附着在病人皮肤的电极测量;
③off-the-person:无需皮肤接触,e.g. capacitive(电容性的) measurement。
ECG信号由3种波组成:P波、QRS波和T波。
P波 | 心房除极 |
PR段 | 心电在房室结、希氏束、左右束支传导 |
P-R间期 | 心房除极开始至心室除极开始 |
QRS波群 | 心室除极 |
ST段 | 心室缓慢复极 |
T波 | 心室复极 |
Q-T间期 | 心室除极和复极全过程 |
U波 | 产生机制不清,可能与心室舒张有关 |
【自动检测和分类ECG信号的异常情况】-Previous Work
文献[5]、[6]使用R峰的间距作为最主要的特征来对不同异常进行分类,此外在一个完整的心跳过程中,不同segments之间的时间间隔也常被用于辅助ECG信号分类,例如文献[7]使用QRS振幅、QRS长度、R-R间距等特征对异常进行分类。文献[8]、[9]是近期最先进的基于人工特征工程的ECG异常分类方法,文献[8]使用temporal vectorcardiogram(时间心电向量图)作为ECG feature,文献[9]则使用inter-beat intervals、intra-beat intervals以及morphological areas等特征。
相比于先前提到的许多经典的分类方法,神经网络无需过多的领域知识和手动设计特征提取器,能够直接从数据中学习表示,因此许多使用神经网络进行ECG异常信号分类的方法不断被提出。文献[10]提出使用1D CNN进行自动特征提取,但是在训练的过程中使用了针对性的病人数据(patient-specific data),这意味着心脏病医生需要对patient-specific data的segment进行注释,因此最终异常分类的效果能够达到论文中描述的水平。文献[11]也使用了1D CNN,但是对数据集的分割(training or testing)没有遵循inter-patient paradigm。
【自动检测和分类ECG信号的异常情况】-This Work
基于AAMI标准,作者提出的ECG异常分类方法将信号分为5类,使用Deep CNN来从预处理后的ECG信号中自动提取特征,然后用多层感知器网络来对CNN提取的特征进行最终的分类。实验中选择MIT-BIH Arrhytmia database和文献[15]中的评测标准(重点:inter-patient paradigm for data division),是第一个运用 "inter-patient" (病人间)分类标准对基于1D CNN的机器学习解决方案进行评估的paper。
论文的主要贡献在于:
①提出基于1D CNN和多层感知器网络进行ECG信号全自动分类的模型;
②在对模型进行评价时使用inter-patient标准分割训练和测试数据集。
2 Data
2.1 MIT Arrhythmia database
该数据集收集了从1975年到1979年间47个不同病人的48个半小时(half-hour)的双通道(two-channel:A,B)ECG记录。每一个记录包含30分钟的ECG原始数据。信号以每通道(Channel)每秒360采样点的规格进行数字化,具有11位分辨率,表示范围超过10毫伏,整个数据集包含超过109,000个单独的心跳。
在大部分ECG数据中导联A(lead A)常被称为导联Ⅱ(lead Ⅱ),电极被放在病人的胸部;导联B(lead B)常被称为导联Ⅴ1。通常QRS波在lead Ⅱ中最明显,因此常使用lead Ⅱ来检测心跳。由于MIT-BIH对ECG的数据标注明确地指出了R波峰的位置,因此无需单独的QRS检测算法。
2.2 Arrhythmia classes
AAMI 推荐心率失常被分为以下5个大的类别:
Class | Symbol | Members |
Normal | N | N Normal beat L Left bundle branch block beat R Right bundle branch block beat e Atrial escape beat j Nodal (junctional) escape beat |
Supraventricular Ectopic Beat | SVEB | A Atrial premature beat a Abberated atrial premature or ectopic beat S Supraventricular premature or ectopic beat (atrial or nodal) |
Ventricular Ectopic Beat | VEB | V Premature ventricular contraction E Ventricular escape beat |
Fusion beat | F | F Fusion of ventricular and normal beat |
Unknown beat | Q | /Pcaed beat f Fusion of paced and normal beat Q Unclassifiable beat |
2.3 Inter-patient paradigm
使用文献[2]提出的标准对数据集进行分类,该文献中强调了在训练集和测试集中同时使用来自同一个病人的心电数据将会导致有偏见的结果:如果分类模型在训练时已经见过某一个病人的心电数据,那么模型很可能已经习得了该病人的特点。
心电数据的分类有以下两种方式
①Intra-patient paradigm:训练集和测试集包含了来自相同病人的心电数据。
②Inter-patient paradigm:训练集和测试集里的心电数据来自不同的病人。
本文使用Inter-patient paradigm方式将MIT-BIH数据集分为两个大小基本相同(记录的心跳数量大致相等)的数据集,分别记为DS1和DS2。并且又将DS1细分为DS11(在训练阶段使用)和DS12(在验证阶段使用),最终的评估阶段使用DS2数据集。数据集的具体划分情况如下表所示。
Dataset | Patient numbers in MIT-BIH Arrhythimia database |
DS1 | 101,106,108,109,112,114,115,116,118,119,122,124,201,203,205,207,208,209,215,220,223,230 |
DS11 (training) | 101,106,108,109,114,115,116,122,209,223 |
DS12 (validation) | 112,118,124,201,203,205,207,208,215,220,230 |
DS2 | 100,103,105,11,113,117,121,123,200,202,210,212,213,214,219,221,222,228,231,232,234 |
3 Approach
作者首先对MIT-BIH的数据进行了预处理 (Preprocessing) ,过程中滤去了包含很多噪音的低质量信号,并且将信号归一化。然后对ECG信号在R峰附近进行加窗操作(ECG Windowing),随后按照2.3节所描述的标准将数据集划分为DS1 (DS11和DS12) 和DS2。接着使用DS1 (DS11 for Training,DS12 for Validation) 数据集训练分类模型,分类模型共包含三层:FF (Feed Forward) layers、1-D CNN layers和FF layers,第一个FF层和1-D CNN层从ECG信号学习和构建有价值的特征,最后一个FF层 (output layer)利用前面构建的特征将心电信号划分到对应的5个不同类别中去。
3.1 Preprocessing
follow文献[16]提出的对ECG信号去噪的流程,除了滤去伪影(Artifacts)以外还对信号进行了归一化:将数据的特征标准化到相同的阈值内。在论文中,作者使用如下的方程将信号rescale为[-1,1]:
其中是来自同一个病人的样本数组,
是第N个特征的值。
注:在检测过程中病人移动、呼吸等因素造成信号中存在运动伪影,在极端的情况下,QRS波形会完全淹没在伪影中,给信号的检测和分析带来极大的困难。
3.2 Automatic feature extraction
在论文中,作者使用了3层1-D CNN,穿插max pooling层和dropout层,CNN层被用来从ECG信号中自动地提取特征。
注:max pooling层在保留主要特征的同时减少参数和计算量,防止过拟合,提高模型泛化能力;dropout层在模型训练时随机让某些神经元失效,通过这样阻止特征检测器(隐层节点)的共同作用来提高网络的性能,防止最终训练的模型过拟合。
论文中作者训练的模型如上图所示,3个1-D CNN层分别有16、32、64个神经元,第一个CNN层的输入大小为1个心跳长度,共有130个样本。dropout层的失效率设定为20%,max pooling的pool size为4,并在特征提取的部分使用ReLU激活函数。
3.4 ECG Classification
使用多层感知器(MLP,Multilayer Perceptron) 分类器利用从CNN层中提取的特征将ECG信号分为5个不同的心电类型(见2.2节)。分类器的第一层(Flatten)将来自CNN层的输出平铺,使其适合于稠密层(Dense layer)的输入。MLP分类器中有一层包含128个神经元的隐藏层,在训练的时候设定学习率(Learning rate)为0.001,使用tanh作为激活函数,并采用文献[19]中的Adam进行优化。
4 Results
下图是使用DS2数据集进行预测得到最终的混淆矩阵(Confusion matrix):
由上面的混淆矩阵可以计算相应的性能指标,具体的计算规则如下:
【正确识别真阳性的比率(在所有患病病人中正确识别出患病病人的比率)】
Sensitivity(Se) = True Positives / (True Positives + False Negatives)
【检测结果阳性的患者中正确诊断的比例(诊断出患病的人中确实患病的比率) 】
Positive predictivity(+P) = True Positives / (True Positives + False Positives)
【在已知无疾病的患者中阳性结果的比率(将无病病人诊断为有病的比率)】
False positive rate(FPR) = False Positives / (True Negatives + False Positives)
Confusion Matrix | Target | ||
Positive | Negative | ||
Model | Positive | True Positive | False Positive |
Negative | False Negative | True Negative |
与其他模型比较性能优劣的最终结果如下图所示: