尤波,李忠杰,黃玲
高性能仿人型假手對提高數(shù)以百萬計上肢殘疾者的生活水平具有重要意義,整套假手系統(tǒng)最重要的環(huán)節(jié)就是實現(xiàn)手部動作的快速準(zhǔn)確識別。目前市場上絕大部分假手都是基于sEMG進行控制的。于是sEMG信號的采集、降噪、特征提取和分類器的設(shè)計等各個環(huán)節(jié)成為該領(lǐng)域國內(nèi)外研究人員爭相研究的熱點,都取得了不錯的成果。期間我們也做了大量的相關(guān)研究,例如楊文元等[1]用小波理論對sEMG信號進行處理分析,周麗娜等[2]設(shè)計了多功能肌電橡膠手識別系統(tǒng)。謝平等[3]采用自排序熵對不同動作模式下的表面肌電信號進行特征提取,并用其作為動作模式分類指標(biāo);邱青菊等[4]運用雙譜分析法對表面肌電信號進行特征提取與模式識別。
對肌電信號進行降噪與特征提取的目的就是為后面分類器的設(shè)計提供更優(yōu)質(zhì)的數(shù)據(jù),從而大大提高動作分類的準(zhǔn)確率。常用于分類器設(shè)計的算法有 SVM(支持向量機)[5-8]、AdaBoost算法[9-10]、聚類算法[11-12]及神經(jīng)網(wǎng)絡(luò)算法等。張啟忠等[5]運用球均值Lyapunov指數(shù)計算法,對肢體肌電信號進行特征提取與分類,用二叉樹法構(gòu)造了基于SVM的多類分類器。Kainz 等[13]對sEMG信號的低成本檢索方案進行研究,并運用SVM對從傳感器獲取的信號進行分類。林海波等[14]對高斯核函數(shù)進行改進,并采用二叉樹方法構(gòu)建多類支持向量機完成12種上肢姿態(tài)的分類。楊帥[15]將AdaBoost算法運用在肌電信號的特征提取與分類上,并研究了在疲勞肌電信號干擾下算法的識別能力。
BP神經(jīng)網(wǎng)絡(luò)作為分類器,其應(yīng)用同樣廣泛。例如,王爾申等[16]將BP神經(jīng)網(wǎng)絡(luò)和基本粒子濾波算法進行有機結(jié)合有效地改善了濾波性能;趙漫丹等[17]采用BP神經(jīng)網(wǎng)絡(luò)對AR模型的參數(shù)特征進行模式識別。近期國內(nèi)外很多科研人員在研究深度神經(jīng)網(wǎng)絡(luò)在模式識別上的應(yīng)用,識別準(zhǔn)確率有了很大的提升。但深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練時間長、計算量大、對硬件要求高,不利于識別系統(tǒng)的快速反應(yīng)。因此,本文并未采用深度神經(jīng)網(wǎng)絡(luò),而是對普通BP神經(jīng)網(wǎng)絡(luò)加以改進,以保證動作識別的快速性和準(zhǔn)確性。
針對普通BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中出現(xiàn)的學(xué)習(xí)過程緩慢以及過度擬合的問題,本文引入了交叉熵代價函數(shù)并對代價函數(shù)進行正則化處理。在實驗中對sEMG特征信號進行模式識別,獲得了較好的實驗效果。
肌電信號識別是肌電研究領(lǐng)域中的一個重要方面,一般采用模式匹配原理來解決。手部動作的識別過程為:首先,將待識別的手部動作的肌電信號輸入識別系統(tǒng),經(jīng)過預(yù)處理后用數(shù)學(xué)的方法提取sEMG特征信號,提取到的特征信號可以看成該動作的模式;然后將該動作模式同已知的參考模式進行比較,獲得的最佳匹配的參考模式作為該動作模式的識別結(jié)果。動作識別具體流程如圖1所示。
圖1 動作識別流程Fig. 1 Motion recognition process
研究選取了環(huán)型抓取、捏取、五指伸展、豎拇指4種動作模式,用BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)對這4類動作的有效分類,具體動作如圖2所示。
圖2 4種手部基本動作Fig. 2 Four basic hand motions
BP神經(jīng)網(wǎng)絡(luò)的英文全稱為back-propagation neural network,即反向傳播神經(jīng)網(wǎng)絡(luò)。在隱含層神經(jīng)元個數(shù)可以隨意調(diào)整的前提下,其可以逼近任意的非線性映射,且具有一定的容錯能力,故適合作為肌電信號的分類器。BP神經(jīng)網(wǎng)絡(luò)包含輸入層、隱含層和輸出層3部分,具體網(wǎng)絡(luò)架構(gòu)如圖3所示。
圖3 BP神經(jīng)網(wǎng)絡(luò)架構(gòu)示意Fig. 3 Diagram of BP neural network framework
改進型BP神經(jīng)網(wǎng)絡(luò)具體設(shè)計步驟如下。
1) 輸入層和輸出層節(jié)點的設(shè)計
因同一手部動作不同階段的肌電信號所蘊含的特征存在差異,故可將不同階段的4維數(shù)據(jù)進行拼接作為新的輸入向量,以便為神經(jīng)網(wǎng)絡(luò)提供更多輸入特征。但隨著輸入向量維度的增加計算量也隨之增加,為保證系統(tǒng)的實時性,輸入向量維度不能任意升高。綜合考慮以上因素和實驗驗證,本文把所采集的N行4列數(shù)據(jù)重新組合處理成N/3行12列數(shù)據(jù),即將4維數(shù)據(jù)升維至12維作為輸入向量,輸入節(jié)點數(shù)設(shè)置為12個。
因需要進行分類的手部動作有4種,故輸出層的節(jié)點數(shù)設(shè)置為4個。
2) 隱含層節(jié)點數(shù)的設(shè)計
對于BP神經(jīng)網(wǎng)絡(luò),有一個重要定理,即對于任何在閉區(qū)間內(nèi)的一個連續(xù)函數(shù)都可以用單個隱含層的BP網(wǎng)絡(luò)逼近,因而一個3層BP網(wǎng)絡(luò)就可以完成任意的n維到m維的映射。隱含層的節(jié)點數(shù)目選擇是一個十分復(fù)雜的問題,往往需要根據(jù)設(shè)計者的經(jīng)驗和多次實驗來確定,因而不存在一個理想的解析式來表示。隱含層單元的數(shù)目與問題的要求、輸入/輸出單元的數(shù)目都有著直接的關(guān)系。隱含層節(jié)點數(shù)目太多會導(dǎo)致學(xué)習(xí)時間過長,誤差不一定最佳,也會導(dǎo)致容錯性差,不能識別以前沒有訓(xùn)練過的樣本,即泛化能力差。因此,一定存在一個最佳隱含層單元數(shù)。式(1)常用于選擇隱含層最佳單元數(shù):
3) 初始值的選取
由于系統(tǒng)是非線性的,由優(yōu)化理論可知初始值對于學(xué)習(xí)能否達到局部最小和是否能夠收斂的結(jié)果關(guān)系很大。一個重要的要求是:初始權(quán)值在輸入累加值時使每個節(jié)點的激活值接近于零,權(quán)值一般取隨機數(shù),數(shù)值要比較小。輸入樣本也同樣希望進行歸一化處理,使那些比較大的輸入仍落在代價函數(shù)梯度大的地方。
4) 代價函數(shù)的選擇與改進
因為節(jié)點是通過改變權(quán)重和偏置量,并以一個代價函數(shù)的偏導(dǎo)數(shù)(和)決定的速率進行學(xué)習(xí),故當(dāng)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)緩慢時,實質(zhì)是這些偏導(dǎo)數(shù)很小。普通BP網(wǎng)絡(luò)使用的二次代價函數(shù)為
圖4 Sigmoid函數(shù)Fig. 4 Sigmoid function image
由圖4可以得出,當(dāng)神經(jīng)元的輸出接近1時,曲線變化率接近0,故值很小,進而導(dǎo)致和很小,網(wǎng)絡(luò)學(xué)習(xí)速率緩慢。于是,為了抵消對學(xué)習(xí)速率的影響,本文引入交叉熵代價函數(shù):
5) 對代價函數(shù)進行正則化處理
因測量誤差不可避免,必然會導(dǎo)致額外噪聲的產(chǎn)生。實驗表明,系統(tǒng)學(xué)習(xí)局部噪聲后,對特定的數(shù)據(jù)點可以表現(xiàn)得很好,但模型最終會在未知數(shù)據(jù)的泛化上出現(xiàn)問題,出現(xiàn)過度擬合的情況。常用的減輕過度擬合的方法有正則化、棄權(quán)和人為增加訓(xùn)練樣本等,本文采用正則化方法。
正則化[18-20]后網(wǎng)絡(luò)的權(quán)重相對較小,網(wǎng)絡(luò)受限于根據(jù)訓(xùn)練數(shù)據(jù)中常見的模式來構(gòu)造相對簡單的模型,而抵抗訓(xùn)練數(shù)據(jù)中噪聲的特性影響,并能夠根據(jù)已經(jīng)學(xué)到的知識很好地進行泛化。相比之下,未正則化的大權(quán)重網(wǎng)絡(luò)可能會因為輸入的微小改變而產(chǎn)生比較大的行為改變,從而會放大噪聲對整個網(wǎng)絡(luò)輸出的影響,導(dǎo)致輸出誤差變大。
正則化具體公式:
本文選取環(huán)型抓取、捏取、五指伸展、豎拇指等4種在實際生活中常用的手部動作作為模式識別對象。因與手部動作相關(guān)的肌肉群數(shù)量眾多,根據(jù)所需識別的動作的特點以及大量實驗檢測發(fā)現(xiàn),小指固有伸肌、拇長伸肌、指總伸肌、指淺伸肌等4塊肌肉信號幅值變化最為明顯,可涵蓋大部分動作信息,故將其作為采集對象。表面肌電信號具體采集流程如圖5所示,圖6為采集系統(tǒng)硬件實物圖。
圖5 表面肌電信號采集流程圖Fig. 5 sEMG signal acquisition flow chart
圖6 表面肌電信號采集系統(tǒng)實物圖Fig. 6 sEMG signal acquisition system physical map
實驗選取3個被測試者,保證識別系統(tǒng)具有一定的廣泛性。同一種動作模式下對每位測試者均采集500組數(shù)據(jù),每組數(shù)據(jù)由4個通道同時采集,采樣頻率為1 000 Hz,并將每種動作所采集的數(shù)據(jù)按順序標(biāo)記為1、2、3、4。每完成10次動作后休息30 s,防止因肌肉疲勞產(chǎn)生信號畸變而導(dǎo)致額外噪聲的產(chǎn)生。所采集的sEMG動作特征信號如圖7所示。
圖7 4種手部動作肌電特征信號Fig. 7 Four kinds of hand-motion EMG signals
常用的肌電信號特征提取方法有時域分析法、頻域分析法、時頻域分析法。由于實時性及可靠性的要求,所以這里采用時域分析法中的方差法,具體計算公式為
式中:N為sEMG信號采集的數(shù)據(jù)個數(shù),x(i)為采集的數(shù)據(jù)段內(nèi)的第i個sEMG數(shù)據(jù),μ為有效數(shù)據(jù)段內(nèi)肌電信號幅值的均值。在時域的分析與處理中,常采用去均值的白化過程,可以認(rèn)為采集的sEMG信號是均值為零的平穩(wěn)隨機過程。因此,式(1)可以簡化為
根據(jù)BP神經(jīng)網(wǎng)絡(luò)理論,在MATLAB軟件中編程實現(xiàn)基于改進型BP神經(jīng)網(wǎng)絡(luò)的sEMG特征信號分類算法。在采集手部動作過程的肌電信號時,不同時刻的數(shù)值差別很大,為消除各維數(shù)據(jù)間數(shù)量級差別,避免因為輸入輸出數(shù)據(jù)數(shù)量級差別較大而造成網(wǎng)絡(luò)預(yù)測誤差較大,需要對采集到的數(shù)據(jù)進行歸一化處理,將全部數(shù)據(jù)轉(zhuǎn)化為[0,1]之間的數(shù)。常用的歸一化方法有最大最小法和平均數(shù)方差法。
1)最大最小法
2)平均數(shù)方差法
對網(wǎng)絡(luò)的收斂性進行仿真實驗驗證,普通BP神經(jīng)網(wǎng)絡(luò)與改進型BP神經(jīng)網(wǎng)絡(luò)隨著迭代次數(shù)的增加,代價函數(shù)收斂狀況分別如圖8、9所示。
圖8 普通BP網(wǎng)絡(luò)代價函數(shù)曲線Fig. 8 Cost function curve of ordinary BP network
圖9 改進型BP網(wǎng)絡(luò)代價函數(shù)曲線Fig. 9 Cost function curve of modified BP network
對比圖8和圖9可知,改進型神經(jīng)網(wǎng)絡(luò)的代價函數(shù)是收斂的,而且整體收斂速度要比普通BP神經(jīng)網(wǎng)絡(luò)速度快,大大提高了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,達到了預(yù)期的效果。
BP神經(jīng)網(wǎng)絡(luò)分類算法程序具體執(zhí)行流程如圖10所示。
圖10 程序執(zhí)行流程圖Fig. 10 Program execution flowchart
正確率統(tǒng)計公式為
為避免識別準(zhǔn)確率的偶然性,本實驗選取了500組測試數(shù)據(jù),以保證樣本處于較大狀態(tài)。分別執(zhí)行普通BP神經(jīng)網(wǎng)絡(luò)和改進后的BP神經(jīng)網(wǎng)絡(luò)所對應(yīng)的程序,分類誤差分別如圖11和圖12所示,橫坐標(biāo)為測試組別序號,對應(yīng)的識別統(tǒng)計結(jié)果如表1所示。
圖11 普通BP神經(jīng)網(wǎng)絡(luò)分類誤差Fig. 11 Classification error of ordinary BP neural network
圖12 改進型BP神經(jīng)網(wǎng)絡(luò)分類誤差Fig. 12 Classification error of modified BP neural network
表1 識別準(zhǔn)確率統(tǒng)計結(jié)果Table 1 Recognition accuracy statistics %
從圖11和圖12可明顯看出,針對500組相同的測試數(shù)據(jù)進行分類識別,改進型BP神經(jīng)網(wǎng)絡(luò)的分類誤差要明顯小于普通BP神經(jīng)網(wǎng)絡(luò)分類誤差。同時,表1的統(tǒng)計結(jié)果也印證了這一點。
進一步,對普通BP神經(jīng)網(wǎng)絡(luò)與改進型BP神經(jīng)網(wǎng)絡(luò)的分類時間進行統(tǒng)計。本文采用MATLABR2014a軟件自帶的計時功能對500組數(shù)據(jù)的分類時間進行統(tǒng)計,分別為62.387 s和46.869 s。平均每組數(shù)據(jù)識別所花時間如表2所示,識別耗時完全滿足實時性要求。
表2 動作識別耗時結(jié)果Table 2 Action recognition time-consumption results
本文使用改進型BP神經(jīng)網(wǎng)絡(luò)對環(huán)型抓取、捏取、五指伸展、豎拇指等4種手部動作進行模式識別,實驗結(jié)果表明:
1)通過引入交叉熵代價函數(shù),BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速率得到了有效的提升,經(jīng)少量迭代后代價函數(shù)值便迅速下降;
2)將輸入端數(shù)據(jù)進行人工升維處理并將代價函數(shù)正則化后,網(wǎng)絡(luò)的過度擬合現(xiàn)象得到了控制,泛化能力增強,動作識別準(zhǔn)確率也得到了有效的提升。
同時,因高質(zhì)量的訓(xùn)練數(shù)據(jù)可以使神經(jīng)網(wǎng)絡(luò)有更好的分類效果。故隨著肌電信號采集硬件的改善,降噪、抗干擾能力的增強以及特征提取算法的優(yōu)化,用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)質(zhì)量會更高,改進型BP神經(jīng)網(wǎng)絡(luò)的模式識別能力也將會有更好的表現(xiàn)。