基于粒子群优化BP 神经网络的心电信号分类方法
2019-10-09张紫烨郭晓东牛群峰
王 莉,张紫烨,郭晓东,牛群峰
(河南工业大学 电气工程学院,郑州450001)
心电图是心脏电活动在人体体表的反应,是检测和诊断心脏疾病的重要依据。 早期心脏疾病诊断主要凭借医生丰富的经验,长时间诊断中可能存在误检或错检;随着计算机技术的快速发展,实现心电信号自动分析成为研究的热点。
心电信号分类的本质是模式识别,在研究中采用最广泛的分类方法是神经网络。BP 神经网络是一种按误差逆传播算法训练的多层前馈神经网络,具有自组织、自学习、自适应的能力,且原理简单,易于实现, 是目前应用最广泛的神经网络模型之一。但是BP 神经网络存在学习过程收敛速度慢、学习效率低和学习过程易陷于局部极小等局限,尤其是BP网络隐含层神经元个数的选取对神经网络的学习能力和泛化能力有较大影响[1]。 针对BP 神经网络的缺陷,许多学者提出了优化BP 网络的学习算法,常见的有遗传算法[2-4],布谷鸟算法[5],粒子群算法等[6]。
粒子群算法的本质是一种随机搜索算法,这种算法实现容易、精度高、收敛快,被广泛应用于许多学科。 文献[7]中采用基于分块的神经网络(BBNN),通过粒子群算法优化神经网络的结构和权重, 对5种心跳类型患者的心电图进行分类,准确率达到了97%;文献[8]中提出了一种基于粒子群算法优化径向基函数神经网络的心电图分类方法,通过和径向基函数神经网络心电信号分类对比,结果表明经过粒子群算法优化的径向基函数神经网络结构更小、效果更优。 本研究提出了一种粒子群优化BP 神经网络的心电信号分类方法, 通过修正BP 神经网络的权值和阈值, 克服BP 神经网络训练易陷入局部极小的局限。 仿真结果表明,粒子群优化的BP 神经网络分类精度更高,收敛速度更快。
1 分类原理
1.1 BP 神经网络
图1 典型三层BP 神经网络结构Fig.1 Structure diagram of a typical three-layer BP neural network
BP 网络是一种多层前馈神经网络,由输入层,隐含层和输出层组成。 层与层之间有2 种信号在流通:一种是工作信号,它是施加输入信号后向前传播直到在输出端产生实际输出的信号,是输入和权值的函数;另一种是误差信号,误差信号是网络实际输出与期望输出间的差值,它由输出端开始逐层向后传播。 图1 所示为一个典型的三层BP 神经网络的结构图,其中xj表示输入层第j 个节点的输入,j=1,…,M;wi,j表示隐含层第i 个节点到输入层第j个节点之间的权值;θi表示隐含层第i 个节点的阈值;φ 表示隐含层的激励函数;wk,i表示输出层第k个节点到隐含层第i 个节点之间的权值,i=1,…,q;ak表示输出层第k 个节点的阈值,k=1,…,L;ψ 表示输出层的激励函数;ok表示输出层第个节点的输出。
1.2 粒子群算法
粒子群算法,也称粒子群优化算法(PSO)。 PSO是模拟鸟群随机搜寻食物的捕食行为。在PSO 中每个优化问题的潜在解都可以想象成搜索空间的一只鸟,称之为“粒子”。 粒子主要追随当前的最优粒子在解空间中搜索,PSO 初始化为一群随机粒子,然后通过迭代找到最优解。 在每一次迭代中,粒子通过跟踪2 个极值来更新自己:第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。 在找到这2 个最优极值时,粒子根据如下公式来更新自己的速度和位置:
式中:xid是第i 个粒子的位置,vid是第i 个粒子的速度,pid是第i 个粒子搜索到最优位置,pgd是整个粒子群搜索到的最优位置;c1和c2为学习因子,r1和r2为[0,1]范围内的均匀随机数。
1.3 粒子群优化的BP 神经网络算法
由于PSO 算法是基于启发式学习的算法,具有同时搜索解空间的不同区域、 避免陷入局部极小、实现全局最优的特点[9]。 本研究将PSO 算法应用于BP 神经网络训练,构建PSO-BP 神经网络模型,将每个神经元的权值和阈值作为解空间的一个粒子迭代寻优,PSO 优化BP 神经网络算法具体步骤如下:
(1)确定BP 神经网络的拓扑结构,设置BP 神经网络每层神经元个数;初始化粒子种群,随机设置各个粒子的速度和位置,粒子群算法主要运行参数设置见表1;
(2)计算每个粒子的适应度值Fit[i];
(3)比较每个粒子的适应度值Fit[i]和个体极值,如果Fit[i]>pbest(i),则用Fit[i]替换掉pbest(i);
(4)比较每个粒子的适应度值Fit[i]和全局极值gbest(i),如果Fit[i]>gbest(i),则用Fit[i]替换掉gbest(i);
(5)根据式(1)和式(2)更新粒子的位置和速度;
(6)如果满足条件(误差足够好或达到最大循环次数),则退出,否则返回第二步;
(7)将得到的全局极值gbest(i)作为BP 神经网络的权值和阈值,用训练样本训练神经网络;
(8)用测试样本进行仿真,得到心电信号类型分类结果。
表1 PSO 算法参数设置Tab.1 PSO algorithm parameter settings
2 实验仿真
2.1 数据来源
本研究中用于分析的心电信号均来自于MITBIH Arrhythmia Database, 该数据库包含48 组心电数据,采样频率为360 Hz,时间长度一般为30 min。每一数据样本包含3 个文件:头文件(.hea),数据文件(.dat)和注释文件(.atr),其中注释文件是心电诊断专家对信号分析的结果,包括心跳,节律和信号质量等[10]。48 组记录中,每组记录包含约650000个采样点,全部正常心拍(Normal)(或异常心拍在2%以下)有23 组,左束支传导阻滞(LBBB)有2组,右束支传导阻滞(RBBB)有2 组,起搏心拍(Paced beat)有1 组,其余的记录样本则大多为正常心拍,左束支传导阻滞、右束支传导阻滞、房性早搏、室性早搏、起搏等心拍的混合,具体样本分类见表2(只列出正常和完全异常的心电信号样本)。
表2 MIT-BIH 心率异常数据库样本分类Tab.2 Sample classification of MIT-BIH arrhythmia database
本研究主要针对正常、左束支传导阻滞和右束支传导阻滞3 种心电信号进行分类识别,3 种典型心电信号类型的心电图如图2 所示。
图2 三种典型心电信号心电图Fig.2 Three typical ECG
从图2 可以看出,左束支传导阻滞QRS 波群时限≥0.12 s,右束支传导阻滞QRS 波群时限≥0.12 s,均比正常心电信号QRS 波群时限长;左束支传导阻滞呈宽大,较深的S 波,右束支传导阻滞S 波增宽且有切迹;左束支传导阻滞和右束支传导阻滞R 峰时间均比正常信号时间长[11]。
本研究利用小波多分辨率分析原理,在小波域上对心电信号去除基线漂移干扰,然后运用极大极小值过零点原理检测R 波峰值,采用平面几何法定位QS 波峰值, 在零基线附近定位QRS 波起止点,依据图2 的分析,在108000 个采样点中提取RR 间期,QRS 波间期和R 波,Q 波,S 波振幅5 个特征参数作为特征向量,每种心电类型100 组数据,共300组样本。
2.2 PSO-BP 神经网络模型
在本研究中, 选择只有1 个隐含层的3 层BP神经网络, 将心电信号提取的5 组特征值作为输入;因此,网络输入层有5 个神经元;隐含层神经元数目的选择往往需要根据设计者的经验和多次实验来确定,本研究根据参考公式设置隐含层为10 个神经元, 其中m 为输出神经元数,n为输入单元数,a 为[1,10]之间的常数;输出层为3种心电信号类型的分类结果, 所以输出层设置为3个神经元;神经网络的输出向量采样“n”中取“1”法表示,即分别用001,010,100 表示正常,左束支传导阻滞,右束支传导阻滞类型。综上所述,PSO-BP 网络的拓扑结构为5-10-3。
3 实验结果分析
首先,初始化网络中的参数,选取正常、左束支传导阻滞、右束支传导阻滞共210 组样本作为训练样本,另一部分作为测试样本,对特征向量样本归一化处理,分别用BP 神经网络和PSO-BP 神经网络训练样本并仿真。 粒子适应度是反应粒子当前位置优劣的一个参数, 图3 是粒子群的适应度变化曲线,可以看出,随着迭代次数的增加,适应度值越来越小,与之相反,个体的适应度会越来越高。
图3 适应度变化曲线Fig.3 Fitness curve
图4和图5 分别是BP 神经网络和PSO-BP 神经网络训练过程中验证样本、测试样本与训练样本的误差曲线, 可以看出,BP 神经网络和PSO-BP 神经网络都能较好地对不同的心电信号类型分类,但是PSO-BP 神经网络的均方误差更小, 分类精度更高;同时,由于粒子群算法具有更快的计算速度和更好的全局搜索能力,可以有效地避免陷入局部极值,因此PSO-BP 算法迭代次数更少,收敛速度更快。
图4 BP 网络训练误差Fig.4 BP network training error
图5 PSO-BP 网络训练误差Fig.5 PSO-BP network training error
BP 算法和PSO-BP 算法对心电信号的分类结果见表3,可以看出,相较于BP 算法,PSO-BP 算法分类效果更好,准确率达到了98.20%。
表3 两种算法的分类结果Tab.3 Classification results of the two algorithms
4 结语
本研究将粒子群算法用于BP 神经网络, 并构建PSO-BP 神经网络模型,实现对BP 神经网络权值和阈值的优化, 克服BP 训练过程易陷入局部极小的缺陷;通过对比BP 神经网络和PSO-BP 神经网络对心电信号特征提取分类结果, 研究结果表明,基于PSO-BP 神经网络的心电信号分类方法比BP 神经网络分类精度更高,收敛速度更快,对于心电疾病的自动诊断具有较高的应用价值。