□ 朱彥平 □ 陳善超 □ 嚴(yán)良文 □ 葉 帥 □ 余 雪
上海大學(xué) 機(jī)電工程與自動化學(xué)院 上海 200072
BP神經(jīng)網(wǎng)絡(luò)手勢動作識別在腦卒中患者手臂訓(xùn)練中的應(yīng)用
□ 朱彥平 □ 陳善超 □ 嚴(yán)良文 □ 葉 帥 □ 余 雪
上海大學(xué) 機(jī)電工程與自動化學(xué)院 上海 200072
為了更好地配合腦卒中患者手臂康復(fù)訓(xùn)練,利用手勢動作時(shí)從手臂肌肉上獲取表面肌電信號,經(jīng)特征提取,采用BP神經(jīng)網(wǎng)絡(luò)的方法建立智能識別模型,對8種手勢動作模式進(jìn)行了識別。鑒于BP神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的模式分類能力,而特征提取又利用了多路肌電信號的信息,實(shí)驗(yàn)結(jié)果取得了較高的識別正確率。經(jīng)實(shí)驗(yàn)測試可知,建立的BP模型方法客觀、合理,識別精度高,實(shí)用性強(qiáng),具有良好的理論與實(shí)際應(yīng)用價(jià)值。
表面肌電信號 BP神經(jīng)網(wǎng)絡(luò) 手勢識別
傳統(tǒng)的治療方法無法讓腦卒中患者直觀看到訓(xùn)練效果,以及提高訓(xùn)練的信心和參與性,如果能將其運(yùn)動意圖識別,并用反饋予以矯正就能實(shí)現(xiàn)這樣的效果。對于那些肌肉能輕微收縮,但運(yùn)動變化不明顯的患者來說,如果能通過肌電信號識別其運(yùn)動意圖和趨勢,可以將這種良好的效果反饋給患者,以便輔助康復(fù)訓(xùn)練。BP算法結(jié)構(gòu)簡單,可操作性強(qiáng),能模擬任意的非線性輸入輸出關(guān)系,常常被用于表面肌電信號的識別。在神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用中,絕大部分的神經(jīng)網(wǎng)絡(luò)模型采用BP網(wǎng)絡(luò)或其變化形式,它也是前饋神經(jīng)網(wǎng)絡(luò)的核心部分,體現(xiàn)了人工神經(jīng)網(wǎng)絡(luò)中的精華部分[1]。
手勢動作肌電信號采集模式識別流程如圖1所示。
▲圖1 模式識別的流程
1.1 手勢動作
選取常用的8個(gè)手部動作為訓(xùn)練目標(biāo),如圖2所示,分別為掌面向上、掌面向下、握拳、展拳、上切、下切、內(nèi)翻、外翻。這8個(gè)動作為日常生活中較為常用的動作,例如:手腕的旋轉(zhuǎn)作用于調(diào)整手部的姿勢;握拳和展拳實(shí)際上是抓取物品所必須使用的。
1.2 肌電信號的采集
肌電信號采集結(jié)構(gòu)如圖3所示,主要由采集電極、前置放大器、調(diào)理電路、加速度傳感器、A/D轉(zhuǎn)換模塊、DSP以及PC部分構(gòu)成。采集電極將皮膚表面的肌電信號通過電纜傳導(dǎo)至放大器輸入部分,放大后的信號經(jīng)過調(diào)理電路的升壓以適于DSP的AD模塊信號接收范圍,DSP經(jīng)過運(yùn)算后將需要的結(jié)果傳輸至PC[2]。
▲圖2 8種常用手部動作
▲圖3 肌電信號采集流程
1.3 特征值的提取
提取肌電信號的模型參數(shù),AR模型和ARMA模型是最常用的擬合肌電信號的兩種參數(shù)模型,兩種模型都各有優(yōu)缺點(diǎn),AR模型在計(jì)算便利上占優(yōu)勢,而ARMA模型所需要的參數(shù)較少。但是ARMA模型的計(jì)算耗時(shí)較長,影響其實(shí)時(shí)操作性,筆者采用AR模型。
AR模型描述如下:
式中:ai為自相關(guān)系數(shù);xk為AR系數(shù);p為模型階數(shù);ek為殘差白噪聲。
在AR模型系統(tǒng)的傳遞函數(shù)中,只有極點(diǎn),沒有零點(diǎn),所以又叫全極點(diǎn)模型。
使用模式識別的方法即通過肌電信號判斷患者的運(yùn)動趨勢和意圖,是一種良好的反饋方式,模式識別是指對事物或現(xiàn)象以各種表現(xiàn)形式的(數(shù)值、文字或邏輯關(guān)系)信息進(jìn)行處理和分析,對事物或現(xiàn)象進(jìn)行描述、辨認(rèn)、分類和解釋的過程,是信息科學(xué)和人工智能的重要組成部分,是人類的基本智能。
2.1 BP神經(jīng)網(wǎng)絡(luò)模型
BP網(wǎng)絡(luò)的結(jié)構(gòu)如圖4所示,BP網(wǎng)絡(luò)是一種有三層或三層以上神經(jīng)元的神經(jīng)網(wǎng)絡(luò),包括輸入層、中間層(隱含層)和輸出層。這個(gè)網(wǎng)絡(luò)的前一層和后一層之間所有的神經(jīng)元是相互連接的,但是每層內(nèi)部的神經(jīng)元之間無任何連接。輸入層各神經(jīng)元作為系統(tǒng)的輸入接口,用來接收輸入信息,輸入層接收到信息后,傳遞給中間層的神經(jīng)元,中間層的神經(jīng)元對收到的信息進(jìn)行處理和變化,變換的次數(shù)取決于中間層的層數(shù),最后的結(jié)果由輸出層輸出,即可得到所需的結(jié)果。
▲圖4 神經(jīng)網(wǎng)絡(luò)模型
2.2 BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法
BP網(wǎng)絡(luò)在進(jìn)行正確推理之前必須先進(jìn)行學(xué)習(xí),這里的學(xué)習(xí)也叫作訓(xùn)練,也就是不斷訓(xùn)練網(wǎng)絡(luò)以便能夠獲得期望的輸出。訓(xùn)練的具體算法過程為:首先將已知輸出的學(xué)習(xí)樣本輸入給網(wǎng)絡(luò),神經(jīng)元的激活值按照網(wǎng)絡(luò)結(jié)果歷經(jīng)各神經(jīng)元逐層傳遞,該樣本輸入對應(yīng)的輸出也賦給相應(yīng)的輸出層中的神經(jīng)元,按照減少目標(biāo)輸出與實(shí)際輸出之間誤差的方向,從輸出層反向經(jīng)過各中間層回到輸入層,逐層修正各連接權(quán)值。誤差通過輸出層,按誤差梯度下降的方式修正各層權(quán)值,向隱層、輸入層逐層反傳。周而復(fù)始的信息正向傳播和誤差反向傳播過程,是各層權(quán)值不斷調(diào)整的過程,也是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的過程,此過程一直進(jìn)行到網(wǎng)絡(luò)輸出的誤差達(dá)到設(shè)定的目標(biāo)值,或者預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止[3]。經(jīng)過這樣的循環(huán),各連接權(quán)值逐步得到修正,網(wǎng)絡(luò)正確率也就不斷上升。BP算法中常見的傳遞函數(shù)有正切函數(shù)、Sigmoid型對數(shù)、線性函數(shù)等,這些函數(shù)都是可微的,因?yàn)樵谡`差反向傳播中會被求導(dǎo)。
2.3 BP神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)
BP網(wǎng)絡(luò)的設(shè)計(jì)主要是設(shè)置網(wǎng)絡(luò)的參數(shù),也就是找到最適合于該應(yīng)用的網(wǎng)絡(luò)參數(shù),主要是網(wǎng)絡(luò)的層數(shù)、隱含層神經(jīng)元的個(gè)數(shù)、訓(xùn)練函數(shù)等參數(shù)。
2.3.1 輸入輸出層的設(shè)計(jì)
輸入的神經(jīng)元要根據(jù)問題的實(shí)際情況與輸入變量的類型來確定。常見的輸入有一維數(shù)組、模擬信號、二維圖像等。筆者確定使用AR模型系數(shù)作為網(wǎng)絡(luò)的輸入,每一通道有3個(gè)AR系數(shù)和1個(gè)殘差,一共是4通道,則輸入層的維數(shù)為n=16。輸出層的維數(shù)根據(jù)網(wǎng)絡(luò)的要求確定,一般將BP網(wǎng)絡(luò)用作分類器,類別模式一共有m個(gè),則輸出神經(jīng)元的個(gè)數(shù)為m或log2m,這里一共設(shè)計(jì)了8個(gè)訓(xùn)練動作,即輸出層的維數(shù)為q=8。
2.3.2 隱層的設(shè)計(jì)
對于BP網(wǎng)絡(luò),存在一個(gè)非常重要的定理,即對任何在閉區(qū)間內(nèi)的一個(gè)連續(xù)函數(shù)都可以用單隱層的BP網(wǎng)絡(luò)逼近,也就是說大部分問題下,三層BP網(wǎng)絡(luò)就能實(shí)現(xiàn)所有的應(yīng)用。隱層的神經(jīng)元數(shù)目確定比較困難,隱含神經(jīng)元的個(gè)數(shù)會對網(wǎng)絡(luò)性能產(chǎn)生重要影響,如果數(shù)目過多,則學(xué)習(xí)時(shí)間長、網(wǎng)絡(luò)構(gòu)成復(fù)雜、難以收斂,最后的正確率也不一定高,反之,如果單元數(shù)目過少,網(wǎng)絡(luò)性能可能變糟,導(dǎo)致容錯(cuò)性差、泛化能力弱的問題,因此需要尋找一個(gè)最佳的隱單元數(shù)。有以下3個(gè)經(jīng)驗(yàn)算式可以用于選擇隱單元最佳個(gè)數(shù)的參考。
(3)ni=log2n,其中,n為輸入單元數(shù)。
綜合上述3個(gè)算式,3<ni<15。將ni的值逐個(gè)代入網(wǎng)絡(luò)中進(jìn)行訓(xùn)練得到結(jié)果,見表1。
表1 不同節(jié)點(diǎn)數(shù)的訓(xùn)練效果對比圖
根據(jù)表1的結(jié)果可以看到,當(dāng)神經(jīng)元的個(gè)數(shù)ni=8時(shí),網(wǎng)絡(luò)通過一個(gè)較少的運(yùn)算次數(shù)即獲得了一個(gè)誤差較小的網(wǎng)絡(luò)。由于采用不同的訓(xùn)練函數(shù)對網(wǎng)絡(luò)的性能會有影響,如收斂速度、網(wǎng)絡(luò)推廣能力等,為了選取合理的訓(xùn)練函數(shù),采用以下3種訓(xùn)練函數(shù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
Traingdx是動量及自適應(yīng)lrBP的梯度遞減訓(xùn)練函
數(shù),該函數(shù)可以使網(wǎng)絡(luò)的學(xué)習(xí)速度提高很多倍,并且能跳過一些凸性較小的區(qū)域。使用它對隱含層神經(jīng)元數(shù)目為8的網(wǎng)絡(luò)進(jìn)行訓(xùn)練的結(jié)果如圖5所示。從圖中可看出,使用該算法達(dá)到網(wǎng)絡(luò)逼近誤差0.000 1的訓(xùn)練目標(biāo),要經(jīng)過531次的運(yùn)算。
改用Traingd梯度下降BP算法重新進(jìn)行計(jì)算,它是最基本的BP算法。反向傳播采用的是梯度下降法,按照梯度下降的方向修正各連接權(quán)的權(quán)值,默認(rèn)是平均方誤差。Traingd的收斂速度很慢,學(xué)習(xí)步長的選擇很重要,過大會導(dǎo)致振蕩嚴(yán)重,無法收斂到深窄的極小點(diǎn),過小則速度慢,或者陷于局部極?。?]。Traingd算法的結(jié)果如圖6所示,經(jīng)過了1 000次訓(xùn)練,仍然不能達(dá)到預(yù)定的誤差目標(biāo),而且網(wǎng)絡(luò)訓(xùn)練過程收斂得非常緩慢,訓(xùn)練完畢后,全局誤差res=0.124 435。
接下來采用Trainlm函數(shù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,該函數(shù)的學(xué)習(xí)算法為Levenberg-Marquardt反傳算法,由于梯度下降法在最初幾步下降較快,而在接近最優(yōu)值的階段,因?yàn)樘荻融呌诹悖繕?biāo)函數(shù)下降變得很緩慢;而牛頓法則可在靠近最優(yōu)值的地方產(chǎn)生理想的搜索方向。 Levenberg-Marquardt法結(jié)合了梯度下降法和牛頓法各自的優(yōu)點(diǎn),使得當(dāng)網(wǎng)絡(luò)權(quán)值數(shù)目較少時(shí)收斂非常迅速[5]。
從圖7可見,經(jīng)10次訓(xùn)練,網(wǎng)絡(luò)的目標(biāo)誤差就達(dá)到了要求,該訓(xùn)練函數(shù)收斂速度較快,網(wǎng)絡(luò)誤差較小。
經(jīng)過上面的分析與試驗(yàn),最終確定了本例的BP網(wǎng)絡(luò)結(jié)構(gòu),見表2。
▲圖5 Traingdx函數(shù)訓(xùn)練收斂圖
▲圖6 Traingd函數(shù)訓(xùn)練收斂圖
▲圖7 Levenberg-Marquardt反傳算法訓(xùn)練收斂圖
表2 BP網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)表
表3 訓(xùn)練集來自同一個(gè)體的識別率/%
表4 訓(xùn)練集來自同六位個(gè)體的識別率/%
首先,筆者將從同一個(gè)人采集到的8個(gè)動作,每個(gè)動作100組數(shù)據(jù),抽取10組作為訓(xùn)練樣本,剩余90組的數(shù)據(jù)作為分類的測試數(shù)據(jù),得到表3,結(jié)果表明BP網(wǎng)絡(luò)對來自于同一個(gè)體的數(shù)據(jù)有著良好的識別率。
最后,對6位個(gè)體,每個(gè)動作100組數(shù)據(jù),抽取10組作為訓(xùn)練樣本,剩余每個(gè)動作90組的數(shù)據(jù)作為分類的測試數(shù)據(jù),得到如表4的結(jié)果,由此可見,BP網(wǎng)絡(luò)對個(gè)體識別效果非常好。
本研究利用DSP采集腦卒中患者的肌電信號,對其常見的8種手勢動作模式進(jìn)行了識別。根據(jù)提取的特征值,設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò),并且對不同人的多組肌電信號實(shí)驗(yàn)數(shù)據(jù)進(jìn)行了處理,均獲得了較高的手勢動作分類正確率,實(shí)驗(yàn)表明所采用的方法是有效的。
[1]飛思科技產(chǎn)品研發(fā)中心.神經(jīng)網(wǎng)絡(luò)理論與MATLAB7實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[2]李文,趙麗娜,李騰飛,等.表面肌電信號在腦卒中患者上肢運(yùn)動功能康復(fù)中的應(yīng)用 [J].中國康復(fù)醫(yī)學(xué)雜志,2013(2):163-165.
[3]楊行峻,鄭君里.人工神經(jīng)網(wǎng)絡(luò)[M].北京:高等教育出版社,1992.
[4]蒲春,孫政順,趙世敏.Matlab神經(jīng)網(wǎng)絡(luò)工具箱BP算法比較[J].計(jì)算機(jī)仿真,2006(5):142-144.
[5]高雪鵬,叢爽.BP網(wǎng)絡(luò)改進(jìn)算法的性能對比研究[J].控制與決策,2001,16(2):167-171.
(編輯 丁 罡)
TH122;TP391.9
A
1000-4998(2015)10-0018-03
2015年4月