1
“心迹”的计算:隐性知识的人工智能途径
1.5.2 4.2 症状诊断
4.2 症状诊断

诊断在根本上依赖于对特征的把握。临床医生做诊断时的视觉活动过程能否进一步细分或优化?可以从“知觉”和“注意”着手,设计认知心理学实验以图寻找医生诊断过程中视觉跟踪的机制和注意点,获得新的特征或者特征集。例如,利用眼动仪,分别记录普通人及专家读心电图时眼睛的运动、注意过程和聚焦点,甚至结合功能性磁共振成像技术同步记录大脑的活动情况,寻找心电图中被特别关注的特征集合。这也从一个方面表明,特征选择、特征识别、特征提取[18-20]十分关键,但它们都是为最后的分类服务的,如果没有分类性能的提高,特征选择之类的工作就缺乏实际意义。与分类测试一样,也许它们的结果就小规模数据而言有些变化,但在大规模数据面前性能反而下降。[8]

在科研活动中,抽象思维是必不可少的,它往往意味着概括、缩略、精简、归纳等,这同时也可能导致信息的不全或丢失。比如中国科学院苏州纳米技术与纳米仿生研究所,简称中科院苏州纳米所或纳米所,别人一听,就以为都是从事纳米科研的,实际上人工智能与“仿生”有关,与纳米无直接关系,由于简略的缘故,产生了误解或歧义。当然,人工智能离不开信号感知载体即传感器技术,这是与纳米技术有关的事情,这需要进一步解释才能被理解。很多所谓的知识的理解与应用也是这样。心血管系统专家王士雯院士就说过:“一个有经验的大夫和一个刚毕业的医生的重要区别是,刚毕业的医生主要是凭书本上的知识,于是容易犯简单化的毛病。”[21]

实际上,一系列密切相关的近代自然哲学实践的核心特点是,它的经验不仅依赖于自然获得的、关于世界在发生什么的经验,而且依赖于人为地、有目的地设计的实验,这些实验被用以产生在正常的自然过程中不能观察到或至少是难以观察到的现象。[22]教科书里现成的被整理好的规则是归纳出来的规范的知识,有代表性但往往是示例性的。正是不同数据集上不同方法的测试结果的性能不同,使得我们逐步体会和认识到了差异背后的原因,并导致对诊断规则的修改和精化。

这个过程更大程度上依靠医生自我的反思、追索和比照。构造主义心理学是冯特(Wilhelm Wundt)和他的学生铁钦纳(Edward Bradford Titchener)创立的第一个心理学学派,认为心理学的研究对象是意识经验或直接经验,而对主观经验进行观察的内省过程是其主要的实验途径。由内省而逐步了解细节,对人而言是明确的,同时又是困难的任务,钱学森先生早就强调过内省在思维科学中的价值,然而很多事情“妙不可言”,无法用语言描述或表达。《论语·颜渊》云:“内省不疚,夫何忧何惧?”提倡“见贤思齐焉,见不贤而内自省也”,其内省的出发点是为人处事的道德层面的完善或修正,反省的对象是每天的个人经历和内心世界,它们的内容可能是纷杂、零散的。而下棋、诊断等专业领域的隐性知识有针对性并有很多微妙之处,对其内省有助于将其转化成显式知识。

也有“内省”而不得结果的情景,比如对“畸形”之类的概念如何刻画就十分困难,目前没有良好的数学描述手段。而医生给出的判断规则并不能完全表达出医生的完整思维过程。我们只能以医生已经表达出的知识为基础,利用不同的方式去“学习”医生没有能表达出来的知识。若能保持诊断规则核心思想不变,设计间接规则进行判别也有效。比如期前收缩,若对前后相连心搏做相似性比较(间接规则),判定相对容易。因此,要根据不同的疾病特点,确定诊断规则。

以书本中关于窦性心搏的判断规则为例:

(1)P波形态正常。

(2)PR间期>0.12s。

(3)规则的PP间距突然出现窦性P波脱落,形成较长PP间距,且长PP间距与正常PP间期无倍数关系。

(4)过长PP间距之间可见逸搏或逸搏心律。

上述诊断规则中的“突然”“较长”“过长”等词语的含义均不具体,也难以由计算机处理。修改后的规则如下:

(1)P波出现在每个QRS波前,规则的PP间期中出现长PP间期(长PP间期:PP间期>1.5 s)。

(2)长PP间期不是正常PP间期的倍数。

(3)PR间期:0.12~0.20 s。

(4)QRS波<0.11 s。

此时就可以用程序实现了。我们在瑞金医院刘霞主任医师的指导下,根据书本整理了近30条常见心律失常的判读规则,然后据此在仿真环境得到初步结果,它们与医生的诊断间有差距。我们以医生关注的特征为线索和依据,以现有资料为参考,与刘医生等进行互动。一般来说,医生给出的诊断规则未必包含全部的特征细节,或包含了一定的冗余特征。严格按照医生规则来进行计算机分类,将难以处理不可避免的结果不一致问题。所以进行验证是必不可少的,这是一个实验运算、结果分析、矛盾发现、规则精化、再次实验的不断完善的过程。

我们的实践、医生的经验和对隐性知识的挖掘,使我们获得了一套符合实际情况的诊断规则。由于医生的整体思维过程是难以完全由规则本身表征的,因而另一方面,我们利用机器学习方法捕获难以被“和盘托出”的隐性知识。

而经典做法是先进行特征提取,再进行疾病分类。设特征提取函数为g(x),分类函数为h(x),则心电图决策函数f(x)即为复合函数h(g(x))。由前述分析可知,不分青红皂白先对原始数据提取数理特征的做法并不可取,简单的线性变换或积分变换不足以刻画本质,而将原始高维数据降为低维数据的过程难免丢失信息。同时,在某个数据集没有贡献的特征,在另一个数据集可能有贡献。在这种时候,再有效的分类器也无法拟合出真实的决策函数。自然地,应该回到对原始数据提取临床诊断特征上,一方面,这些特征的提取准确率是可控的,只要和医生标注做对比即可;另一方面,利用这些特征的判断是直接的,不需要样本训练,只需调整相关参数即可。

除了用特征提取函数g(x)和分类函数h(x)以复合方式拟合心电图决策函数f(x)外,也可以设法直接构造。从“分而治之”的角度看,可通过组合相对简单的函数来实现,如高斯核支持向量机的决策函数由多个高斯函数以组合方式拟合而成,人工神经网络的决策函数由多个激励函数以组合方式拟合而成等,从而更复杂的非线性函数就可通过组合和复合多个非线性分类器构造而成。

当然,每种方法只能一定程度上解决问题,以心率分类为例:临床上心率小于60次/分为心率过缓,大于100次/分为心率过速,处于60~100次/分为正常心率。因此,只需要检测R波,通过简单计算就可计算心率,即要充分考虑机器学习和规则推理能力的互补。从而,可依据心率范围将心电图分类问题划分为3个部分,在此基础上,以“RR间期均匀与否”为准则进一步划分出2个子过程。由于R波检测算法也会出现错检,对于给定时长的心电图数据,若R波个数明显过少或过多,则需要另外处理。具体的判定准则有赖于就大量的临床数据做全面分析。同时,由于不同疾病类型在某些特征上具有相似性,此时若用规则推理对结果做筛选,可提升分类性能。通过高准确率的R波检测算法,容易判定心率快慢和RR间期是否均匀。用这两个指标对分类进行分层次划分,形成多个具体分类过程;再通过分类器集成学习,就能相对有效地拟合高度复杂的决策函数,此时不能忽视原始信号的预处理的作用和特征识别的细节。

可通过规则、数学变换工具对信号质量进行分类,对较复杂的信号可采用机器学习方法。对于通过信号质量初筛进入后续步骤者,再进行信号质量评估,为后续特征点检测和分类算法提供先验估计。

针对特征识别,传统的方法“无条件”地检测特征点,导致的结果是正常和异常心电图的误判率很不对称。为此,进行疾病类型的先验估计,根据先验估计确定待提取的关键特征,然后指导后续特征的检测。例如,经过“心率快慢”和“RR间期是否均匀”这两个准则,就已经建立了一定程度的先验估计。RR间期不均匀很可能是房性期前收缩、室性期前收缩或者心律不齐等,否则可能是传导阻滞或正常情况。结合信号质量和疾病类型的先验估计,以及已检测的R波位置,从不同的增强角度进行数学变换,再根据先验估计、多导联互参可较好地定位各特征点。在此过程中,一些间接特征有着特别重要的意义。

●相似度特征。由于同一个人同类型的心搏具有相似性(不同人之间相同类型的心搏则未必,有时相差较大),不同类型的心搏则表现出某种差异。因此,在同一条心电图记录内对前后相连的若干个心搏做相似性评估,对诸如期前收缩可有效判定。

●突变心搏特征。在同一心电图记录内利用相似度对心搏聚类,把元素较多一类划分为“平均心搏”(整体情况),其余则是突变心搏,代表疾病或者噪声导致的无效心搏。突变心搏并不能直接据以判病,但可以给后续分析提供一定程度的先验估计。

●形态特征。形态特征在疾病诊断过程中同样受到医生关注,常见的形态特征包括QRS波的形态模式、P波和T波的形态模式、ST形态模式、R波切迹/粗钝等。可通过机器学习方法结合规则推理做出有效的判定。

接下来才是分类器的设计。针对心电图这样的非线性分类,主要借助于核方法和人工神经网络。与大脑的复杂性相比,人工神经网络显然过分简单。1995年,凡普尼克(Vladimir Vapnik)以其统计学习理论为基础,在感知器基础上提出了支持向量机,基本思想是利用核函数把低维空间的非线性问题映射为高维空间的线性问题,[23]优点是网络结构可自适应调整,由于是凸问题使得对参数优化变得容易;缺点是训练样本不能过大,其最终确定的决策函数又完全由训练样本决定,这是一个矛盾。因而,交给支持向量机的特征数最好少而又具有足够的可分性,它需要好的特征识别方法来支持。人工神经网络的优点是其最终的决策函数可由用户通过指定神经元及其层数确定,并且在大规模样本训练时有优势,这些是支持向量机不具备的。但这导致其网络结构设计方面的问题,而更大的缺点在于参数的调整的困难。改进方案是融入一些机制,帮助神经网络更有效地调整参数,如结合领域知识设计相关步骤,加入受限玻尔兹曼机等无监督预训练、权值共享等。

深度学习得以提出和介绍后,[24-25]在计算机视觉、语音处理、自然语言处理等人工智能的经典领域取得了显著的应用效果,[26]而涉及最多的是卷积神经网络(convolutional neural networks,CNN),并首先在手写字符识别这一二维图像理解任务中获得出色成果。[27]多导联心电图的数据形式类似于二维图像,是一个矩阵,可直接采用二维结构的卷积神经网络进行训练和分类。这种卷积神经网络一般对行方向和列方向数据均进行卷积计算,对图像而言是合情合理的(行方向和列方向数据均是相关的),但对多导联心电图并不合理,因为导联内数据(行方向)是相关的,而导联间数据(列方向)是独立的。不同导联都具有各自内在的属性,应有各自最佳的卷积核。在针对非线性函数拟合能力分析现有的数理特征提取算法(主成分分析、小波变换、高阶统计量、功率谱等)和分类算法(高斯混合模型、支持向量机、高斯过程、传统神经网络等)的基础上可以发现它们在拟合高度复杂非线性函数的不足,由此设计并逐步完善了基于多导联心电图这种特殊的二维结构设计的卷积神经网络。[5,28]

由于导联内数据是时间相关的,采用卷积计算是合情合理的;但导联间数据是独立的,若要进行卷积计算,则所有不同导联的不同组合情况都应该这么做。然而就现有方法而言,无论如何设计卷积核,都只能实现部分导联的卷积融合计算。相同导联的心电图具有相似性,不同导联的心电图则不是。既然卷积计算有这样的问题,那么就将不同导联间的卷积计算去掉,使得每个导联均有3个卷积单元,且不同导联间的卷积单元互不相干。针对现有心电图系统中互相正交的8个心电图导联数据,共有24个卷积单元,而根据传统的卷积神经网络设计只有3个卷积单元。每个导联的心电图依次通过最适其自身的3个卷积单元,之后汇总各导联信息做最后的分类。

针对正异常分类,原始数据被平均分为44组,见表4-1(关于数据具体见“4.4开放数据”一节)。

表4-1 数据组织

注:其中“0”组的正异常数据是平衡的,该组用于验证中间训练过程的效果。如果直接用测试组验证,测试组的特性会被“学过去”,影响算法的泛化能力。

对心电图分类方法的效果评估通常采用灵敏度(sensitivity:Se)和特异度(specificity:Sp)来衡量,其定义分别为

其中,TP表示检测出的阳性样本;FP表示错误检测出的阳性样本;FN表示漏检的阳性样本;TN表示正确拒绝的阴性样本。TP+FN就是阳性样本数,TN+FP就是阴性样本数。

就一条心电图记录而言,起始位置不同而同样时长的心电图意味着数据空间中的不同点,为了增加可信性,可选择不同起始点的若干数据进行实验(这里选第1、26、51、76、101、126、151、176、193点起始的9个不同数据),于是有9个不同的分类结果,取回归输出值的平均作为最后的输出,记为CNNR2(只取一个起始点的数据记为CNNR1)。表4-2是两者的比较。[5]其意义在后节一起讨论。

表4-2 CNNR1与CNNR2的比较

注:其中,FPR=1-Se;TPR=Sp。