基于递归图和卷积神经网络的脉象分析识别
2020-04-07颜建军陈松晔燕海霞王忆勤
颜建军,陈松晔,燕海霞,王忆勤,郭 睿,3
1.华东理工大学 机械与动力工程学院,上海200237
2.上海中医药大学 四诊信息综合实验室,上海201203
3.上海中医药大学 交叉科学研究院,上海201203
1 引言
脉诊是传统中医的组成之一,具有重要的临床价值。医师通过按压腕部桡动脉脉搏获取脉象信息,从而判断人体健康状况。但其准确性主要取决于医师的主观意识和临床经验,缺乏客观的诊断指标[1]。因此有必要应用现代计算机技术,进行脉象信号的量化识别方法研究,实现脉诊的规范化和客观化。
当前已有许多学者进行了脉象信号分析识别的研究,分析方法主要包括时域分析、频域分析、时频域分析和非线性动力学分析等。时域分析法是根据脉象信号定义多个具有生理意义的时域特征,其中包括脉象主波幅度、重博前波幅度、降中峡幅度和脉动周期等[2-3];频域分析法通过傅里叶变换[4]等数学分析理论将脉象信号推导至频域内,进行频域特征提取;时频域分析法可以同时描述信号的时域、频域特征,常用的方法有小波变换[5-6]、希尔伯特-黄变换[7]等。研究表明,脉象信号具有非线性特征,而前三种方法在分析脉象信号过程中不可避免地会丢失非线性信息。目前,脉象信号的非线性分析方法主要有近似熵[3]、Lyapunov 指数[8]、递归图(Recurrence Plot,RP)和递归定量分析[9]等。其中,递归图是分析相空间中信号非线性特征的有效方法。该方法与其他非线性方法相比,克服了对信号长度和稳态性的严格要求,适用于非线性动力学系统的分析。然而,递归图采用阈值判断递归点,若阈值选择不合理会损失大量细节特征。无阈值递归图不受阈值的限制,可以保留更多的非线性信息。
在脉象信号模式识别研究中,主要采用BP 神经网络[6]、线性判别分析[10]、贝叶斯分类器[11]、支持向量机(Support Vector Machine,SVM)[12]、卷积神经网络(Convolutional Neural Network,CNN)[13]等方法。传统的机器学习方法都需要人工定义并提取脉象特征,但脉象类型与脉象特征之间存在复杂的非线性关系,难以定义一个最优的特征集来区分不同类别的脉象。近年来,得益于卷积神经网络的快速发展,深度学习在语音识别[14-15]和图像分割[16-17]等领域得到了广泛的应用。卷积神经网络通过模拟人类神经元结构逐层进行信息传递,实现特征的自动提取。这些特征在许多研究中被证实比传统人工提取的特征更具表征力,获得了更好的分类和识别效果。
本文提出基于无阈值递归图和卷积神经网络的脉象信号分析识别方法。该方法通过非线性分析将脉象信号转换为相应的无阈值递归图,从而使其非线性特征映射到二维平面中。通过卷积神经网络的多层卷积计算,实现对脉象信号特征的自学习并分类,使其具有分辨不同脉象类型的能力。
2 研究方法
2.1 系统概述
本文提出的脉象信号分析识别方法整体流程如图1所示,将脉象信号转换为无阈值递归图,然后采用VGG-16卷积神经网络对脉象递归图进行特征提取并分类,建立脉象信号分类模型。
图1 脉象信号分类流程图
2.2 脉象信号无阈值递归图
递归图是研究系统非线性动力学特征的有效方法,它可以揭示信号的内部结构,直观地表现信号的复杂性和非稳定性。该方法由Eckmann等[18]提出,首要步骤是对信号进行相空间重构。根据嵌入理论,选择合适的嵌入维度m 和延迟时间τ 来进行相空间重构,则重构后的向量为:
式中,N=n-(m-1)τ,定义相空间中任意两点的距离为:
选取合适的阈值ε,可得递归矩阵为:
式中,θ(·)表示Heaviside函数,其表达式为:
递归图能够直观地将信号高维相空间内运动状态映射到一个二维平面中,从而反映其非线性动力学特性。当Xi和Xj之间的距离Di,j小于ε 时,表示Xi和Xj之间的状态非常相似,即运动状态出现递归,Rij的值为1 且在图中用黑点表示;反之,当Xi和Xj之间的距离Di,j大于ε 时,表示两者之间的运动状态相差很大,此时Rij的值为0且在图中用白点表示。
阈值ε 是计算递归图的关键参数,一般根据经验选取,没有自适应算法。如果ε 选取过大,则会使大部分相空间之间的状态都是相似的,递归图中黑点数目增加;如果ε 选取过小,则难以发现相空间之间状态的相似性,使得图中的白色区域增加。不合理的ε 会使递归图损失大量的信息特征,无法反映系统的动力学特征。因此,为了保留脉象信号中所有的非线性特征,本文将脉象信号转换为相应的无阈值递归图。
如图2 给出了脉象信号的递归图和无阈值递归图。可以看出,递归图虽然能够直观地表达脉象的递归特性,但是缺少细节特征;而无阈值递归图包含了更丰富的非线性动力学特征,能更好地保留细节信息。具体来看,无阈值递归图关于45°对角线对称,无明显的周期现象,与脉象波形相符。其对角线存在较为明显的节点和环形区域,分别反映了脉象信号两个波峰从上升到下降的过程。由于重搏波宽度较长且幅度较小,相比主波递归现象更加明显,从而递归点较多,形成较大的环形区域。图中存在一条从左上方顶点向右下方顶点延伸的曲线,反映了脉象信号从上升到下降的整体波形特征。
图2 脉象信号递归图与无阈值递归图
2.3 卷积神经网络
2.3.1 卷积神经网络简介
卷积神经网络是一种带有卷积结构的深度神经网络,在语音识别和图像分割中具有广泛的应用。卷积神经网络通常由卷积层、降采样层和全连接层等组成。
(1)卷积层
卷积核是卷积层的重要组成部分。卷积层内部包含多个卷积核,通过局部连接和权值共享,卷积核对输入的数据进行卷积,以提取数据的特征。第一个卷积层提取一些初级的数据特征,形成多个特征图,然后作为下一个卷积层的输入以提取深层抽象特征。卷积层的数学表达式为:
(2)降采样层
降采样层也被称为池化层。卷积后得到的特征向量维数增大,若直接用于训练会增加网络的计算量和复杂度。因此,需要对提取的特征图进行降维处理。降采样层通过对特征进行局部池化,不仅可以减小特征图的大小,保持输出的特征图数量,又可以使网络对输入物体的平移和旋转具有一定的不变性,在一定程度上减少网络的过拟合问题,使得网络更具鲁棒性。卷积神经网络中一般采用最大池化层作为降采样层。
(3)全连接层
全连接层可以增强网络的非线性映射能力,一般设置卷积神经网络的最后几层中。与卷积层不同,全连接层连接所有的特征进行学习,通过感知全局信息来学习指定的分类目标,以得到最终的分类结果。
2.3.2 VGG-16网络
VGG-16 网络是卷积神经网络中一种经典的深度网络模型[19]。该网络结构简单,由卷积层、池化层和全连接层组成,卷积层采用3×3 小型卷积核的组合,形成深层的网络结构,提取输入内更多的细小特征。VGG-16 网络具有优良的性能,往往能够得到与GoogleNet、ResNet 等相当甚至更好的分类效果,因此广泛应用于图像分类识别的研究中。基于VGG-16 网络结构,结合脉象信号递归图的类别及特点,将VGG-16 网络进行改进以满足脉象信号的分类要求,网络结构如图3所示。
由于VGG-16 中3 个全连接层参数较多,其原始是为了1 000 个分类类别设计的,而本文只针对二分类。因此,本文将2个全连接层替换原来的3个全连接层,减少全连接层通道数。在改进的VGG-16中,包含了15个权重层,分别为13个卷积层和2个全连接层。输入脉象递归图大小为800×800×1,卷积层采用3×3滤波器,滑动步长为1,选择ReLU函数作为激活函数,并利用边界填充使通过卷积层前后的维数不变;池化层采用最大池化,池化窗口大小为2×2,步长为2;全连接层由两个连续的全连接进行组合,通道数分别为1 024,256个;网络最后通过Softmax函数输出脉象二分类。在2个全连接层后增加Dropout,抑制卷积参数过大而导致过拟合,使网络泛化性更强。
图3 VGG-16网络结构示意图
3 实验
3.1 实验数据
本文采用的数据是由上海中医药大学四诊信息综合研究实验室提供的冠心病脉诊数据。冠心病患者脉诊数据主要来源于上海市中山医院、仁济医院、市中医院、曙光医院,总计1 612 例;健康人的脉诊数据由上海中医药大学中医四诊信息化综合研究实验的研究人员和学生采集获得,总计268例。脉象信号由上海中医药大学和上海亚太计算机信息有限公司合作研发的ZBOX I型脉象数字化采集分析仪采集获得,选取最佳取脉压并在此基础上采集脉象信号,采集时间为60 s。
3.2 数据处理
3.2.1 脉象信号预处理
脉象信号是一种微弱的生理信号,很容易受到其他信号的干扰,其中包括患者的肢体抖动、呼吸,器械的机械振动和工频干扰。样本的采样频率为720 Hz,根据采样定理可知,采集脉象的频率范围为0~360 Hz。采用小波变换对脉象信号进行滤波,选取sym8 小波对脉象信号进行九级分解,去除脉象信号中20 Hz以上的高频噪声和1 Hz以下的低频噪声。对滤波后的脉象信号进行单周期分割,获得脉象的单周期波形。
3.2.2 均衡数据集
数据集存在明显的不均衡情况,其中健康脉象远少于冠心病脉象。若采用不均衡样本训练模型,会导致分类模型泛化能力差并且容易发生过拟合。因此,本文采用合成少数类样本过采样技术(Synthetic Minority Oversampling Technique,SMOTE)[20]来均衡数据集。设置k=5,样本倍数N=6,可以生成健康样本1 608 例,结合冠心病患者1 612 例,均衡后的数据集总共包含3 220例样本。
3.2.3 脉象信号无阈值递归图转换
在构造脉象信号无阈值递归图时,需要确定嵌入维数m 和延迟时间τ 两个关键参数。C-C 算法在统计学方法的基础上,通过关联积分,可以同时确定m 和τ 的参数大小。通过计算分析,本文选择m=3,τ=4 对脉象信号进行相空间展开。由于不同脉象信号的单周期长度不同,在周期较短的脉象信号末端进行补零,使其生成相同大小的递归图,如图4所示。
图4 两种脉象信号的无阈值递归图
3.3 实验结果及其分析
实验中将健康人脉象作为正类,冠心病脉象作为负类。采用三个指标来评价分类模型:敏感性(Sensitivity,SE)、特异性(Specificity,SP)和准确率(Accuracy,ACC),分别定义为:
其中,TP 表示正样本预测正确的个数;FN 表示被错分为负样本的正样本个数;FP 表示被错分为正样本的负样本个数;TN 表示被正确预测的负样本数。敏感性代表的是被模型正确分类的正样本比例,特异性代表被模型正确分类的负样本比例。
本文通过Keras框架实现改进的VGG-16卷积神经网络,采用SGD优化算法,分别设置参数为:迭代次数为2 000次,初始化学习率为0.001,网络训练的动量为0.9,权重衰退为0.000 1,Dropout 参数为0.5,训练集∶验证集∶测试集=6∶2∶2。实验采用的GPU 显卡为NVIDIA Tesla V100。
将图4 中的两幅脉象递归图作为VGG-16 的输入,得到卷积神经网络自动提取的部分特征图(如图5 所示)。递归图经过Conv1-1 处理后,不同卷积核提取的特征不同,主要提取初级的纹理特征。经过卷积层Conv5-1 输出的特征图如图5(c)和(d)所示,可以看出Conv5-1输出的特征图相比Conv1-1输出的特征图反映了更多纹理细节信息,使不同类型脉象信号的递归图具有更好的可分性。因此,通过卷积核的设置和堆叠,可以获得不同层级纹理结构的特征图。经过卷积核处理越多,获得递归图的纹理信息越全面,可以更加充分地表达脉象信号中的非线性动力学特征。
图5 两种脉象递归图不同卷积的特征提取结果
为了验证无阈值递归图的有效性,将其与递归图进行比较。根据文献[21]中提出的“经验法则”,选择阈值ε 为相空间最大直径的10%。将两类递归图分别作为VGG-16的输入训练模型,结果如表1所示。由此可见,采用无阈值递归图作为输入可以获得更高的分类准确率,可达98.14%,并且在敏感性和特异性上相比递归图均有所提升。无阈值递归图相比递归图保留了更多的细节特征,结合VGG-16可以获得更好的分类准确率。
表1 不同输入分类结果 %
为了进一步验证本文提出方法的有效性,本文对无阈值递归图特征提取和分类进行探索,并与现有的脉象信号分类研究进行对比。无阈值递归图的特征采用了局部二值模式(Local Binary Pattern,LBP)和梯度方向直方图(Histogram of Oriented Gradien,HOG)。LBP的参数设置为圆形邻域(8,2),划分10×10个子区域,提取特征维度为1×3 776;HOG 采用大小为80×80 的单元格,块大小为2×2,提取的特征维度为1×2 916,分类器SVM的核函数为高斯核函数,结果如表2所示。从结果可以看出,采用LBP和HOG相比传统的时域、频域特征分类效果有所提升。就准确率而言,LBP 和HOG 相比时域特征分别提高了1.71%、1.24%;对于敏感性,LBP要比时域特征提高3.71%;在特异性上,HOG 相比时域特征和小波特征分别提升了2.20%、1.96%。这说明脉象信号的无阈值递归图包含丰富的生理病理信息,通过特征提取可以获得与传统特征相当甚至更好的分类效果。
表2 脉象分类结果%
从表2 还可以看出,无阈值递归图结合VGG-16 取得的分类效果最好,相比时域特征、小波特征、HOG、LBP、DCNN 分别提升4.04%、2.95%、3.01%、2.33%、2.02%;在敏感性上,本文提出的方法相比其他5种方法分别高出5.43%、2.57%、4.01%、0.61%、2.16%;对于特异性,本文提出的方法为99.69%,比LBP 高了4.06%。因此,与其他方法相比,本文提出的脉象分类识别方法具有更好的分类性能。
综上所述,本文通过脉象信号到无阈值递归图的转换,可以将脉象信号的非线性特征映射到二维图像中,不必设置阈值,能够保留脉象信号中更多的非线性信息。构建VGG-16 卷积神经网络对无阈值递归图数据进行训练,建立脉象分类模型。该模型通过3×3卷积核的组合,形成深层网络结构,可以对无阈值递归图进行更多细节特征的自学习,获得了较好的分类效果。
4 结论
当前脉诊客观化研究中,大部分采用时域和频域等分析方法,忽略了脉象信号中的非线性特征。考虑到脉象信号的非线性,使用非线性动力学方法研究脉象信号,相比传统方法能更好地挖掘出其内在的非线性信息。深度学习利用深层的网络结构,可以得到原始数据的高层语义表达,已广泛应用于语音识别等领域。本文将非线性分析方法与深度学习结合起来,提出基于无阈值递归图和卷积神经网络的脉象信号分析识别方法。首先,将脉象信号转换为无阈值递归图,以保留脉象信号中更多的细节特征。然后建立卷积神经网络对无阈值递归图进行特征自学习和训练获得脉象信号分类模型,最后进行了脉象信号的分类识别。实验结果表明,本文提出的脉象信号识别方法是有效的,相比目前的脉象信号分类方法可以获得更高的分类准确率。在今后的工作中,将进一步研究更能表现脉象信号特征的信号分析方法,结合深度学习,提高脉象信号的识别率。