王光旭,崔建松,張慶光,張培培
(翔宇醫(yī)療設(shè)備有限責(zé)任公司,河南 安陽(yáng) 455000)
表面肌電信號(hào)是肌肉收縮產(chǎn)生肌肉力,并反映肌肉的功能狀態(tài)和神經(jīng)活動(dòng)的生理信號(hào)。它以其無(wú)創(chuàng)傷性、患者易接受等特點(diǎn)在康復(fù)工程、臨床診斷和運(yùn)動(dòng)醫(yī)學(xué)等領(lǐng)域有廣泛應(yīng)用[1]。目前國(guó)內(nèi)針對(duì)上肢動(dòng)作的識(shí)別研究較多,因人體下肢肌電信號(hào)是實(shí)時(shí)變化的非平穩(wěn)信號(hào),且原始信號(hào)夾雜許多運(yùn)動(dòng)噪聲[2],所以在模式識(shí)別方面存在一定缺陷。人工神經(jīng)網(wǎng)絡(luò)是對(duì)人腦進(jìn)行模擬和抽象,且擁有多個(gè)簡(jiǎn)易處理單元的信息處理系統(tǒng),由于它擁有大規(guī)模并行處理、容錯(cuò)自適應(yīng)能力強(qiáng)及較好記憶功能等特征,已在智能控制、運(yùn)動(dòng)模式識(shí)別、故障分析及鑒定等領(lǐng)域有廣泛應(yīng)用[3]。傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)由于階梯下降的非線性優(yōu)化策略而存在局部最小的缺陷,不確定能否求出全局最小值,故對(duì)肌電信號(hào)識(shí)別率較低。為了彌補(bǔ)這一缺陷,本文將遺傳算法應(yīng)用到神經(jīng)網(wǎng)絡(luò)中,并對(duì)神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行優(yōu)化處理,構(gòu)建成GA-Elman神經(jīng)網(wǎng)絡(luò)應(yīng)用于下肢肌電信號(hào)運(yùn)動(dòng)模式識(shí)別中,識(shí)別率優(yōu)于傳統(tǒng)的Elman神經(jīng)網(wǎng)絡(luò)。
Elman神經(jīng)網(wǎng)絡(luò)是一種由Elman于1990年提出的局部反饋型神經(jīng)網(wǎng)絡(luò),該模型的前饋網(wǎng)絡(luò)中多出的一個(gè)承接層,用于從隱含層中接收反饋信號(hào)記憶隱含層單元中上一時(shí)刻的輸出值,它可以作為一個(gè)時(shí)延算子,因而比BP神經(jīng)網(wǎng)絡(luò)的計(jì)算能力更強(qiáng)[4]。Elman神經(jīng)網(wǎng)絡(luò)一般可分為輸入層、承接層、隱含層和輸出層,其網(wǎng)絡(luò)結(jié)構(gòu)模型如圖1所示。
令f(·)是隱含層神經(jīng)元的傳遞函數(shù),常稱(chēng)為S函數(shù)。g(·)是輸出的神經(jīng)元的傳遞函數(shù),常稱(chēng)為purelin函數(shù),它是隱含層中輸出的線性組合。則Elman神經(jīng)網(wǎng)絡(luò)的非線性空間狀態(tài)表達(dá)式[5]29如下:
y(k)=g(w3x(k)+b2),
(1)
x(k)=f(w1xc(k)+w2(u(k-1))+b1),
(2)
xc(k)=x(k-1)。
(3)
其中:x是隱含層中n維結(jié)點(diǎn)單元向量;y是m維輸出的結(jié)點(diǎn)向量;u是r維輸入向量;xc是n維狀態(tài)反饋向量;w3、w2、w1分別表示從隱含層到輸出層、從輸入層到隱含層以及從承接層到隱含層之間連接的權(quán)值;b1和b2分別作為輸入層和隱含層的閾值。
Elman神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法實(shí)際上是在BP網(wǎng)絡(luò)算法上進(jìn)行優(yōu)化的學(xué)習(xí)速率動(dòng)量梯度下降的自適應(yīng)反向傳播算法,該方法既可有效地解決BP網(wǎng)絡(luò)陷入局部極小點(diǎn)的問(wèn)題,又能夠提高了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速率。在學(xué)習(xí)過(guò)程中,網(wǎng)絡(luò)不斷利用輸出樣本值與實(shí)際的輸出值的差值來(lái)修改權(quán)值和閾值,最終使網(wǎng)絡(luò)輸出誤差的平方和趨于極小,達(dá)到指定的誤差范圍。其目標(biāo)函數(shù)為誤差平方和函數(shù):
(4)
遺傳算法(GA)是1975年由美國(guó)的J.Holland教授首次提出,并在達(dá)爾文“物競(jìng)天擇,適者生存”學(xué)說(shuō)的進(jìn)化規(guī)律基礎(chǔ)上,轉(zhuǎn)化成的一種隨機(jī)化的搜索方法。它作為一種穩(wěn)健搜索算法通常應(yīng)用在優(yōu)化復(fù)雜系統(tǒng)中,并直接把目標(biāo)函數(shù)作為搜索信息。遺傳算法通常采用概率化尋優(yōu)的方法,不需要特定規(guī)則即可自動(dòng)調(diào)整搜索方向。目前,遺傳算法的這些特征已被廣泛應(yīng)用在信號(hào)處理、圖像識(shí)別及處理和自動(dòng)化控制等領(lǐng)域[6]1。
傳統(tǒng)的遺傳算法常常被定義為一個(gè)8元組[6]27:
SGA=(C,E,P0,M,Φ,Γ,ψ,Τ)。
(5)
其中:C是個(gè)體編碼方法;E是個(gè)體的適應(yīng)度評(píng)價(jià)函數(shù);P0是初始群體;M是群體的大??;Φ是選擇算子;Γ是交叉算子;ψ是變異算子;T是遺傳運(yùn)算的終止條件。在遺傳算法中,將編碼組成初始群體后,遺傳操作就會(huì)對(duì)群體的個(gè)體施加一定約束,以完成優(yōu)勝劣汰的進(jìn)化過(guò)程,遺傳算法的運(yùn)算過(guò)程如圖2所示。
由圖2可見(jiàn),遺傳算法優(yōu)先用選擇、交叉和變異三個(gè)基本操作,在算法的具體應(yīng)用過(guò)程中,群體大小、交叉概率和變異概率是3個(gè)關(guān)鍵參數(shù),群體大小M太大會(huì)增加收斂的時(shí)間,太小時(shí)求最優(yōu)解比較困難,M一般取30~160;交叉概率Gc太大容易使高適應(yīng)值的結(jié)構(gòu)受損,太小則向前搜索困難,Gc一般取0.25~0.75;變異概率Gm太大導(dǎo)致遺傳算法變成純粹的隨機(jī)搜索,太小時(shí)則產(chǎn)生新的基因結(jié)構(gòu)會(huì)比較困難,Gm一般取0.000 1~0.1。這往往需通過(guò)反復(fù)試驗(yàn)取最優(yōu)值。
近幾年,計(jì)算機(jī)技術(shù)的普及使得神經(jīng)網(wǎng)絡(luò)和進(jìn)化計(jì)算等前沿技術(shù)得以迅猛發(fā)展,而且這些方法相互融合。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)常以單一性能評(píng)價(jià)為原則,僅適合解決參數(shù)組合中的個(gè)例問(wèn)題或某一類(lèi)問(wèn)題。當(dāng)需要解決的問(wèn)題比較復(fù)雜時(shí),用人工方法設(shè)計(jì)人工神經(jīng)網(wǎng)絡(luò)(artificial neutral network,ANN)是十分困難的,但ANN與遺傳算法進(jìn)行融合卻能較好地解決這一類(lèi)問(wèn)題。本文采用遺傳算法取代ANN中的一些落后的學(xué)習(xí)算法,通過(guò)對(duì)神經(jīng)網(wǎng)絡(luò)的初始閾值和權(quán)值進(jìn)行優(yōu)化,最終完成網(wǎng)絡(luò)的訓(xùn)練。
采用遺傳算法優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值的步驟如下[7]:
1)初始化參數(shù)的選擇。遺傳算法中通常需要選擇的參數(shù)有:染色體長(zhǎng)度n,群體大小M,遺傳運(yùn)算的終止進(jìn)化代數(shù)T,交叉概率Gc和變異概率Gm。這些參數(shù)對(duì)遺傳算法的求解結(jié)果和訓(xùn)練次數(shù)都有一定影響。本文經(jīng)過(guò)多次試驗(yàn)后,選擇n=14,M=50,T=250,Gc=0.6,Gm=0.005。
2)編碼方式的選擇。采用實(shí)數(shù)編碼的方式將神經(jīng)網(wǎng)絡(luò)中各閾值和權(quán)值按順序聯(lián)為一個(gè)長(zhǎng)串,每一個(gè)位置在串上都對(duì)應(yīng)著網(wǎng)絡(luò)的一個(gè)權(quán)值或閾值。
3)評(píng)價(jià)函數(shù)f的計(jì)算。網(wǎng)絡(luò)將以訓(xùn)練集樣本為輸入輸出,并接收染色體上表示的各權(quán)值,經(jīng)過(guò)運(yùn)行后返回誤差平方和的倒數(shù)作為染色體的評(píng)價(jià)函數(shù),如式(6)所示。
(6)
4)將新個(gè)體插入到種群P中,同時(shí)計(jì)算新個(gè)體的評(píng)價(jià)函數(shù)。
5)終止條件。預(yù)先規(guī)定一個(gè)控制精度ε,重復(fù)(3)、(4)兩步,當(dāng)目標(biāo)函數(shù)ep<ε(ep為誤差)時(shí),即終止算法。
改進(jìn)后的算法適合于所有下肢肌電信息的識(shí)別,但為了便于實(shí)驗(yàn),本研究只做了步態(tài)肌電信號(hào)的識(shí)別,并在Matlab7.0中編寫(xiě)相關(guān)程序進(jìn)行仿真實(shí)驗(yàn)。
實(shí)驗(yàn)選擇美國(guó)DELSYS公司生產(chǎn)的16通道Trigno無(wú)線采集系統(tǒng),帶通為10~500 Hz,數(shù)據(jù)采樣率為2 000 Hz,并已經(jīng)去除50 Hz的工頻率干擾,增益設(shè)定為300。將兩路電極分別置于左腿脛骨前肌和內(nèi)腓腸肌皮膚表面。電極采集到的信號(hào)先經(jīng)過(guò)調(diào)理器放大、濾波處理,再由數(shù)據(jù)采集卡進(jìn)行A/D轉(zhuǎn)換,然后上傳到計(jì)算機(jī),用EMGworks軟件獲取濾波后的肌電信號(hào)。
由于人體的步態(tài)是一個(gè)周期性的循環(huán)動(dòng)作,每一個(gè)步態(tài)周期又分為4種連續(xù)的運(yùn)動(dòng)狀態(tài),能較好地反映動(dòng)態(tài)時(shí)間序列的變化過(guò)程,故選擇一名健康的成年男性在跑步機(jī)上以3 km/h的速度行走2 min,借助高清攝像裝置用于步態(tài)狀態(tài)劃分,將一個(gè)步態(tài)劃分為支撐前期、支撐中期、支撐末期和擺動(dòng)期4個(gè)細(xì)分動(dòng)作。在4種運(yùn)動(dòng)模式中分別提取256個(gè)數(shù)據(jù)點(diǎn)的信號(hào),經(jīng)過(guò)多次試驗(yàn)選擇db4小波對(duì)提取的信號(hào)進(jìn)行3層小波分解,提取各層高頻分解系數(shù)的奇異值。兩路肌電信號(hào)就構(gòu)成了6維特征向量,構(gòu)成如表1所示的Elman神經(jīng)網(wǎng)絡(luò)輸入層向量P。
表1 Elman神經(jīng)網(wǎng)絡(luò)輸入層向量Table 1 Input layer vector of Elman neural network ×10-6
從采集到的下肢表面肌電信號(hào)(surface electromyography,SEMG)數(shù)據(jù)中選擇40個(gè)步態(tài)的數(shù)據(jù)樣本,隨機(jī)選擇20組用于模型訓(xùn)練,余下20組用于識(shí)別。為了提高訓(xùn)練速度和靈敏性,在訓(xùn)練前,對(duì)原始特征向量進(jìn)行歸一化處理后作為輸入樣本P進(jìn)行訓(xùn)練。4種運(yùn)動(dòng)模式下的目標(biāo)向量分別為[1000]、[0100]、[0010]、[0001],GA-Elman神經(jīng)網(wǎng)絡(luò)和Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)均為6-12-4。將輸入樣本分別輸入到兩種神經(jīng)網(wǎng)絡(luò)中訓(xùn)練,訓(xùn)練過(guò)程中網(wǎng)絡(luò)不斷調(diào)整權(quán)值和閾值,使得網(wǎng)絡(luò)輸出和目標(biāo)輸出向量的均方差達(dá)到最小值。GA-Elman神經(jīng)網(wǎng)絡(luò)和Elman神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程如圖3所示。
由圖3可以看出,Elman神經(jīng)網(wǎng)絡(luò)訓(xùn)練迭代次數(shù)為2 628,而GA-Elman神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)僅為1 610。可見(jiàn)優(yōu)化后的神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間短,訓(xùn)練精度高。以上兩種神經(jīng)網(wǎng)絡(luò)對(duì)下肢肌電信號(hào)運(yùn)動(dòng)模式識(shí)別結(jié)果如表2。
表2 下肢步態(tài)SEMG運(yùn)動(dòng)模式識(shí)別率Table 2 Pattern recognition rate of lower limb gait SEMG 單位:%
由表2可以看出,GA-Elman神經(jīng)網(wǎng)絡(luò)對(duì)人體下肢步態(tài)肌電信號(hào)運(yùn)動(dòng)模式識(shí)別率明顯高于傳統(tǒng)的Elman神經(jīng)網(wǎng)絡(luò)。
為了解決傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法在肌電信號(hào)識(shí)別中易陷入局部極小點(diǎn)且訓(xùn)練速度低的缺陷,本文提出能夠優(yōu)化神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值的GA-Elman神經(jīng)網(wǎng)絡(luò)用于人體下肢步態(tài)肌電信號(hào)識(shí)別中。實(shí)驗(yàn)結(jié)果表明,優(yōu)化后的神經(jīng)網(wǎng)絡(luò)不僅能提高訓(xùn)練速度,而且得到的運(yùn)動(dòng)模式識(shí)別率也高于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)。用遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)迭代次數(shù)少、誤差精度高,極大地提高了網(wǎng)絡(luò)的學(xué)習(xí)性能,達(dá)到了預(yù)期的效果,因而在下肢假肢控制方面有很好的應(yīng)用。下一步研究將把識(shí)別步態(tài)模式應(yīng)用到健身訓(xùn)練姿態(tài)的校正識(shí)別方面。
[參考文獻(xiàn)]
[1]何慶華,吳寶明,彭承琳.表面肌電信號(hào)的分析與應(yīng)用[J].國(guó)外醫(yī)學(xué)(生物醫(yī)學(xué)工程分冊(cè)),2000,23(5):299-303.
[2]吳劍鋒,吳群,孫守遷.簡(jiǎn)約支持向量機(jī)分類(lèi)算法在下肢動(dòng)作識(shí)別中的應(yīng)用研究[J].中國(guó)機(jī)械工程,2011,22(4):433-438.
[3]鐘珞,饒文碧,皺承明.人工神經(jīng)網(wǎng)絡(luò)及其融合應(yīng)用技術(shù)[M].北京:科學(xué)出版社,2007.
[4]王艷,秦玉平,唐政.一種改進(jìn)的Elman神經(jīng)網(wǎng)絡(luò)算法[J].渤海大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,28(4):45-48.
[5]李勇,胡雙啟.灰色Elman神經(jīng)網(wǎng)絡(luò)在火災(zāi)事故預(yù)測(cè)中的應(yīng)用研究[J].中國(guó)安全科學(xué)學(xué)報(bào),2009,19(3):28-31.
[6]王小平,曹立明.遺傳算法:理論、應(yīng)用與軟件實(shí)現(xiàn)[M].西安:西安交通大學(xué)出版社,2002.
[7]喬晶晶,潘宏俠.基于遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的齒輪故障診斷[J].水電能源科學(xué),2010,28(6):106-108.