利用神经网络进行人手动作表面肌电信号的识别研究
2020-01-14雷华勤
雷华勤
(1.福州市职业教育实训中心 福建 福州:350009;2.福州大学,物理与信息工程学院 福建 福州:350108)
对肢体残疾的残障人士而言,肢体功能的缺失不仅给自身生活带来了不便,也给家庭和社会带来了巨大负担,因此,研究残疾人康复具有重要的社会意义。假肢作为残疾人的康复工具一直是研究的热点,而对假肢的控制源——表面肌电信号(Surface Electronomyography,sEMG)[1]是其中最重要的研究内容。sEMG是人类肌肉收缩产生的一种非稳态时变信号,其幅度很小,由于能在一定程度上反映神经肌肉的活动,因此在假肢研究领域得到了广泛应用。
sEMG信号采集、数据预处理、提取特征、模式识别等环节构成了整个表面肌电信号人手动作识别系统。其中,特征提取及模式识别是系统中研究重点内容。在特征提取上,本文选用时频域特征小波包分解与主成分分析方法结合提取sEMG信号特征,将组合提取到的的特征向量作为分类器的输入。在模式识别中,将具有很强的自学习能力且目前应用最广泛的神经网络作为人手动作识别的分类器。如何在人手动作种类数多(本文人手动作数量达13种)的情况下达到较高的正确分类识别率是目前研究的主要工作。本文通过大量实验,将粒子群优化算法应用于Elman神经网络,对神经网络的初始权值和阈值进行了优化,从而提高人手动作分类识别率。
1 基于小波包分解与主成分分析的sEMG特征提取
1.1 特征提取方法选取研究
肌电信号特征提取是正确识别整个动作模式识别的关键,它直接影响到运动识别率。目前,用于肌电信号人手动作模式识别的特征提取方法主要分为时域、频域和时频域特征提取。
由于肌电信号十分微弱且信噪比较低的时变特性,时域特征提取方法通常不容易提取。而频域特征提取是假定sEMG为稳定的信号,这与肌电信号是非平稳时变信号相违背,且不能提供信号在时域上的信息,可见单独采用时域或者频域特征表征肌电信号有一定的局限性。因此,兼具时域和频域分析优点的时频域特征提取方法越来越受到研究者的应用[2]。
目前常用的时频特征提取方法有小波包分解(WPT)及小波分解(WT),小波分解只对信号低频部分进行分解,会导致提取的信息不全面影响分类结果。想获取更加全面且丰富的sEMG信号信息,应该采用能同时对信号的高频部分进行分解的方法,因此本节采用对sEMG信号的低频和高频部分都可分解的小波包分解特征提取方法。但时频域的特征提取方法会增加信号的维度,增加计算负担,需要进行降维处理,降低了控制的实时性[3]。时域特征特征提取方法——主成分分析(PCA)是一种能对数据进行降维、减少工作量且不影响效果的方法。因此,本文将时频域特征小波包分解和时域特征主成分分析相结合提取表面肌电信号的特征。
1.2 信号特征的提取实验
在小波包变换中,小波基的选择、分解层数的确定和分解子图的选取是小波包变换应用于人手动作模式识别中的几个关键问题[4]。
本文首先使用MATLAB小波分析工具箱实现肌电信号的分解,选取“db”系的小波基函数作为小波基,使用db3小波包对信号进行8层分解,共将获得28个频带。其次,将小波包分解后的数据使用主成分分析方法进行降维提取10维肌电信号特征。具体步骤见图1所示。
在本实验中,选取前10个主成分,即Z1~Z10的特征向量,输入神经网络分类器,实现对人手抓取行为的模式识别。提取主成分特征值和贡献率的实验结果如表1所示。
表1 特征值提取数据表
由表可知,第一主成分贡献率为78.718276%,此主成分贡献率越大,包含的肌电信号也越丰富,第二主成分贡献率为10.370155%,第三主成分贡献率为3.6525115%,…,第十主成分贡献率为0.3368555%。主成分贡献率越大,包含的肌电信号越丰富,从表1中可得,第一主成分贡献率就高达78%,说明WPT及PCA两者方法结合提取信号特征取得了较好的效果。
2 基于粒子群算法优化Elman神经网络
2.1 Elman神经网络
1990年,Jeffrey L.Elman提出Elman神经网络,它是目前应用广泛、具有很强的计算能力反馈神经网络。
Elman神经网络由输入层、隐含层、承接层和输出层组成。其中,输入层单元是进行信号传输;隐含层单元通常由两类传递函数(线性和非线性)起到作用,实际研究中,较多用Signmoid非线性函数,隐含层的输出通过承接层自联到隐含层的输入,从而达到动态建模的目的;承接层则是通过接收隐含层的反馈信号,来记忆隐含层单元上一时刻的输出值;输出层单元则起到累加权重的作用,其结构图如图2所示。
图2 Elman神经网络结构图
Elman神经网络的学习算法是一种学习速率动量梯度下降的自适应反向传播算法。该方法不仅提高了神经网络的训练速度,而且有效地解决了网络局部极小值问题。Elman神经网络算法的步骤如图3所示[5]:
图3 Elman神经网络算法的步骤
Step 1:假设输入层、隐含层、承接层和输出层之间的权重W1、W2、W3。
Step 2:建立特征输入矩阵。
Step 3:建立特征输出矩阵得到yd(k)。
Step 4:通过阈值和权重计算出输入层、隐含层及承接层的输出。
Step 5:通过计算每一层的输出,最终计算训练矩阵。
Step 6:设定步长为n,可以得到第k次的训练输出为y(k)。
2.2 粒子群算法
1995年,肯尼迪和埃伯哈特提出了一种计算智能领域的群体优化算法,称为粒子群优化算法(PSO,Particle Swarm Optimization)。
粒子群优化算法核心是粒子更新,在每一次重复反馈过程中,粒子通过和来更替原有的位置和速度,公式见(1)和(2)[6]。
式中,VK+1为更新的粒子速度;VK为当前的粒子速度;ω为惯性权重;pbestk为种群的个体极值;Gbestk为种群的群体极值;c1和c2为学习因子,分别表示新粒子向pbestk和Gbestk的靠拢速度;Xpresentk为当前迭代时粒子的位置;Xpresentk+1为下次迭代更新时粒子的位置。
PSO常被运用于参数寻优算法,其计算步骤如图4所示[7]:
图4 PSO算法流程图
步骤1 需设置最大的速度区间,赋值粒子的最初位置及速度,设定种群的大小、迭代次数、约束条件等;
步骤2 计算每个粒子的适应值;
步骤3 个体极值pbestk为每个粒子找到最优的位置信息,把所有粒子的适应值逐个与pbestk进行对比。若适应值更好,就用该适应值替代相应的pbestk;
步骤4 个体历史最优解中找到一个群体极值Gbestk,把所有粒子的适应值逐个与Gbestk进行对比,若适应值更好,则用该适应值替代当前Gbestk;
步骤5 根据公式(1)和(2)确定每个粒子的位置和飞行速度;
步骤6 若没达到预设的最大迭代次数,则返回步骤2,若达到则停止计算。
本文根据不断实验测试,选取了PSO算法最优参数,其中设置种群规模为20,最大迭代次数设置为2000,最大速度vmax=0.0151,学习因子C1=C2=2,惯性权重最大值为wmax=0.9,最小值为wmin=0.3。
3 数据准备
实验数据采用CyberGlove II手套和十个OttoBock电极设备采集得到,实验由27名受试者进行13种人手动作(包括无动作及12种基本手指动作组成),每种动作各重复10次,图5展示了具体的这12种手指基本动作。
图5 12种手指基本动作
实验数据分训练集与测试集两部分,训练集数据用于作为输入模式识别方法的训练数据生成一定的分类器模型,测试集数据用于输入获得的分类器模型,鉴别其是否可以有效分类。表面肌电信号的每个动作的样本数为130个,27名受试者,共3510个动作样本。现将3510个动作样本进行分组,第一组3000个样本用于学习训练,剩下的510个样本作为第二组数据用于识别预测。
在进行模式识别实验前,将13种动作分别对应13个动作标签,输出结果可根据动作标签进行判断,分为四种情况:第一种,如果动作表中的数据与标签完全匹配,那么分类被认为是正确的;第二种,如果有一个动作的数据组,其标签属性不能被识别,那么该组数据被认为是误判;第三种,如果一半以上的动作是表中的标签没有的,那么这被认为是动作不能被识别;第四种,如果实验结果有一组数据不匹配表中的标签,那么认为不能正确识别这组数据[1]。
4 实验结果及分析
4.1 PSO算法优化网络与阈值
本文采用14-60-13的Elman神经网络结构,即输入层有14个神经元,隐含层有60个神经元,输出层有13个神经元,训练目标误差为0.0001%,最大迭代次数设置为2000,最大允许识别错误次数为6次;最大训练次数为3000;学习率为0.1。其中,粒子群算法参数设置如表2所示。
表2 粒子群算法参数
从图6可以看到,迭代次数达到40的时候误差率变化趋向于稳定,通过粒子群算法优化后的神经网络较快达到了稳定,节省了计算时间。
图6 PSO-Elman最优迭代图
4.2 网络预测结果对比分析
本实验主要应用神经网络工具箱进行仿真测试,将所获得的13种动作特征向量及动作标签,分别应用标准Elman神经网络算法及优化的Elman神经网络算法进行数据训练,以获得两种模式分类器模型。
Elman神经网络通常一般用Sigmoid型函数作为传递函数,常用的sigmoid型函数分Logsig和Tansig函数两类,由于Tansig函数要比Logsig函数的误差小,因此本次将Tansig函数作为神经网络隐含层和输出层的传递函数。Elman神经网络测试分类结果如图7所示。
粒子群算法优化的神经网络通过matlab训练后的结果如图8所示。
图7 Elman神经网络测试分类结果
图8 PSO-Elman神经网络测试结果
将表面肌电信号的测试数据集部分输入到神经网络模型中,进行数据的测试,获得的测试结果即为动作分类识别率,见表3,并基于识别率作为指标,对模式识别方法进行分析。
表3 不同神经网络算法分类器的分类识别率
根据表3中人手动作模式识别正确识别率显示,PCA+WPT-Elman的分类识别率为93.65±1.3%,PCA+WPT+PSO-Elman的分类识别率为95.15±0.1%,与传统的Elman神经网络对比发现,利用PSO优化的Elman神经网络模型得到的预测结果具有较高的精度,该模型是可行的。
5 结论
本文采用小波包分解方法对sEMG信号的低频和高频部分同时进行分解,并采用主成分分析方法进行降维得到特征向量,发现小波包分解与主成分分析相结合的方法获取的信息量更丰富。再采用粒子群优化的Elman模型和传统的Elman模型对13种人体手部运动的仿真结果进行了分析比较,粒子群优化的Elman模型的分类识别率为95.15±0.1%,传统的Elman模型的分类识别率为93.65±1.3%,可以看出粒子群优化后神经网络对人手模式识别率提高约2%,表明基于粒子群优化后的Elman神经网络是一种可行的人手运动分类识别方法。