尹 静
(上海建桥学院信息技术学院,上海 201319)
基于帕金森的步态研究是当前的热点之一,但是很少有人从足底压力入手来研究帕金森患者行走中的步态特点,更别说通过足底压力信号的特征值来对健康人和帕金森患者进行分类。实质上足底压力信号包含的内容非常丰富,且在某些参数上帕金森患者和健康人有着明显的差异,将其用在帕金森病的诊断中将是未来医学发展的趋势之一。
如何寻找一个好的模式分类器是关键,它对模式识别的准确率有着重要的影响。传统的一些分类算法虽然简单,且易于实现,但识别的准确率太低。支持向量机(SVM)是近年来在统计学理论基础上发展起来的一种新的机器学习方法[1],具有理论相对完备、适应性强、全局优化、训练时间短、泛化性能好等优点,已经成为目前国内外研究的热点,在解决小样本、非线性及高维模式识别问题中表现出许多特有的优势。
本文重点研究基于支持向量机的帕金森患者足底压力信号时空特征的分类器设计,以用来对帕金森患者和健康人进行分类。
通过健康人和帕金森患者的足底压力信号的对比,可以发现压力信号波形均呈明显的双峰一谷特点,但健康人的峰谷差要比帕金森患者的大;帕金森患者的谷底值对应的时间更偏近于左峰值。以上特点将作为数据筛选的重要依据[2]。
本文采用的原始数据来源于现有的公共步态压力信号数据,即physiobank中的Gait in Parkinson’s Disease数据库,选择Ga组的原始数据作为研究数据。
原始数据筛选算法的具体过程如下:
a.搜寻波形的第一零点位置。鉴于原始数据的波形起始点未必就是步态周期的起始点,首先检测第一个零点出现位置,记为zero1(i);此处的零点是指压力值小于设定的less值,在一定程度上滤除因测量引起的误差。
b.搜寻步态周期的起始位置。从第一零点位置开始,往后搜索第一个非零点位置,此点即为步态周期的起始位置,记为start(i)。
c.搜寻步态周期的结束位置。从start(i)开始,往后搜索第一个零点位置,此点即为步态周期的结束位置,记为over(i)。
d.令zero1(i+1)=over(i),重复 a和 b两步,直到原始数据末端。
e.检测波形的最高峰值及其位置。利用max函数找到每个步态周期的最高点位置及其幅值。
f.搜索所有的非最高峰值的极大值点及其位置。利用极大值点大于相邻点的特点,进行遍历查找。
g.在f步所得几个极大值中找最大的极值峰值及其位置。
h.确定左峰值和右峰值。比较最大值位置和g步所得的极值峰值的位置,位置小的为左峰值,位置大的为右峰值。
i.求谷底值及其位置。在两峰值间,用min函数寻找最小值点及其幅值。
j.抽取噪声小的有效数据。根据谷峰差及左峰值位置到谷底值位置的时间差筛选有效数据。
经以上几步,若f步搜索的极大值个数为零或j步的有效数据不存在,则本组数据不可用。
分别对帕金森患者和健康人的步态数据进行筛选,可得如图1波形。
典型的压力波形中包含了4个特征点,如图2中已用平行于纵坐标轴的竖实线引出。
图1 初步筛选后的压力波形
图2 一个步态周期的典型的压力信号波形
利用得到的特征点序列计算每个人每个步态周期的如下特征参数:起始点距左峰值点间的时间长度t1,起始点距左峰值点的压力变化率tp1;左峰值点距谷底点间的时间长度t2,左峰值点距谷底点的压力变化率tp2;谷底点距右峰值点间的时间长度t3,谷底点距右峰值点的压力变化率tp3;右峰值点距结束点间的时间长度t4,右峰值点距结束点的压力变化率tp4;t1,t2,t3,t4分别占总着地时间 tz=(t1+t2+t3+t4)的比例:p1,p2,p3,p4。
以上步骤计算出的是某一人的多个步态周期的特征值,为降低误差,在使用时,取其均值作为一组最终特征值。
在算出一个步态周期的长度之后,再乘以步行速度就可以得到一个完整周期的步长。由于每个实验对象的个体特征都不同,身高也存在差异,所以步长也会有所不同。为了有统一的比较标准,对步长进行归一化处理,即用得到的一个周期的步长去除以身高。
因为要用到步行速度和身高,所以在原始数据筛选时,若这两个值有缺省,则这组数据不可用,经过筛选,选择数据库中Ga组的17组健康人有效步态数据和13组帕金森患者数据。
本文的目的是设计一个有效的分类器,从而能够正确地区分健康人和帕金森患者。而分类的前提是能够找出最具有分类信息的特征。通过上面的特征参数提取再进行T检验,可以选出步长L,t1,t4以及t1段的压力变化率tp1共4个具有显著差异的特征参量作为分类器的输入。
支持向量机(SVM)是近年来在模式识别与机器学习领域中出现的新工具,它以统计学习理论为基础,建立了一套完整的、规范的、基于统计的机器学习理论和方法,具有完美的数学形式、直观的几何解释和良好的泛化能力;人为设定的参数少,便于使用;大大减少了算法设计的随意性,在小样本条件下存在其独特的优势[3]。因此成为继神经网络以来机器学习领域中研究的热点[4]。
支持向量机的基本思想可以概括为:首先通过非线性变换将输入空间变换到一个高空间,然后在这个新空间中求取最优线性分类面,而这种非线性变换是通过定义适当的内积函数实现的[5]。
概括地说,支持向量机主要优点的体现在以下几个方面:
a.它是专门针对有限样本情况的,其目标是得到现有信息下的最优解,而不仅仅是样本数趋于无穷大时的最优值,能有效地避免过学习现象的产生。
b.算法最终转化成为一个二次型寻优问题,从理论上说,得到的将是全局最优点,从而有效地解决了在神经网络方法中无法避免的局部极值问题。
c.通过引入核技术,将实际问题通过非线性变换转换到高维的特征空间(featuresPace),在高维特征空间中构造线性判别函数来实现输入空间中的非线性判别函数,同时也巧妙地解决了维数问题,其算法复杂度与样本维数无关[6]。
本文使用林智仁教授开发的libsvm-3.1工具包,在MATLAB中调用时,需设置参数。
构造训练样本属性时,设定的样本属性:对于健康人,设置为-1;对于帕金森病患者,设置为1。
关于SVM参数的优化选取,国际上并没有公认统一的最好方法,目前常用的方法就是让c和g在一定的范围内取值,再把训练集作为原始数据集,利用K-CV方法得到在此组c和g下训练集验证分类的准确率,最终取得训练集验证分类准确率最高的那组c和g作为最佳的参数[7]。
建立向量机模型:
s取1,即选择V-SVC;g取1.2058,c取0.5,是通过寻优函数找到的较好的值;t取2,即选择径向基核函数。
统计识别率:
结果输出:
识别率的大小用来评估最终训练得到的分类器的分类效果,由输出结果可知,识别率可达到92.8571%,在一定误差下,可以准确识别健康人和帕金森患者。
本文选取60%的有效数据作为训练样本,40%的有效数据作为测试样本,并用径向基核函数的向量机模型进行训练和测试。测试结果表明:识别率较高,分类效果比较明显。
从受试者行走时产生的足底压力信号中提取出多个时空特征参数,构成一个特征空间,并利用SVM不断进行训练,直至设计出一个稳定、准确的分类器,可以自动区分出正常人和帕金森患者的步态信号,对于拓宽帕金森疾病的早期诊断手段具有应用价值。
[1] 吴剑,李建设.人体行走时步态的生物力学研究进展[J].中国运动医学,2002,21(3):305-307.
[2] 袁立伟,王健.帕金森患者的步态特征[J].中国康复医学,2010,25(6):586-588.
[3] 丰明聪,葛洪伟.基于SVM的步态识别研究[J].计算机应用,2008(8):26-30.
[4] 孙嘉利,土桂清.步态分析[J].中国疗养医学,2010(5):427-430.
[5] 王平平,王俊.基于DCCA和MF_DCCA的步态信号的分析与研究[D].南京:南京邮电大学,2012.
[6] 史峰,王小川,郁磊,等.MATLAB神经网络30个案例分析[M].北京:北京航空航天大学出版社,2010.
[7] 陈达,曹先彬.基于进化SVM的行人检测分类技术研究[D].合肥:中国科学技术大学,2007.