宋永獻(xiàn), 王祥祥, 李媛媛, 夏文豪, 李豪, 宋文澤
(1.江蘇海洋大學(xué)電子工程學(xué)院, 連云港 222005; 2.南京曉莊學(xué)院電子工程學(xué)院, 南京 211171; 3.四川大學(xué)空天科學(xué)與工程學(xué)院, 成都 610207)
神經(jīng)肌肉骨骼疾病,如腦癱[1]、中風(fēng)[2]、帕金森病[3]和骨關(guān)節(jié)炎[4],阻礙行走能力,降低人們的生活質(zhì)量??祻?fù)治療是為了改善這些障礙患者的行走能力,但是這些治療有效性可能因患者不同而有所不同,原因是治療過程醫(yī)師根據(jù)主觀臨床經(jīng)驗,而不是治療后功能的客觀預(yù)測,導(dǎo)致康復(fù)效果不如預(yù)期[5]。
為了更好地幫助神經(jīng)肌肉骨骼疾病患者進(jìn)行康復(fù)訓(xùn)練,研究人員提出基于人體骨骼模型的外骨骼康復(fù)機(jī)器人,但是由于人體結(jié)構(gòu)的復(fù)雜性很難直接在人體上進(jìn)行關(guān)節(jié)力矩的測量。目前測量方法主要有測力法[6]、反向生物力學(xué)分析法[7-8]和正向生物力學(xué)分析法[9-11]等。熊保平等[12]提出利用Hill模型優(yōu)化極限學(xué)習(xí)機(jī)(extreme learning machine, ELM)模型,把關(guān)節(jié)角度、角速度和肌肉肌電信號作為模型輸入預(yù)測關(guān)節(jié)力矩,通過反向生物力學(xué)分析法與預(yù)測關(guān)節(jié)力矩進(jìn)行比較。劉永柏等[13]提出利用表面肌電信號,通過ELM來預(yù)測肘關(guān)節(jié)角度。劉克平等[14]提出利用廣義回歸神經(jīng)網(wǎng)絡(luò)來預(yù)測上肢關(guān)節(jié)角度。Feng等[15]提出利用誤差最小化來優(yōu)化ELM算法,使其具有良好的泛化性能。劉磊等[16]提出利用盲辨識理論和ELM算法相結(jié)合,利用煙花算法優(yōu)化ELM,改進(jìn)后的算法要比基礎(chǔ)ELM算法和反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)優(yōu)越。劉磊等[17]等提出利用魚群算法優(yōu)化ELM,優(yōu)化后的算法與ELM相比,在假肢步態(tài)分類上準(zhǔn)確率和識別時間有所提高。李斌等[18]提出利用遺傳算法和皮爾遜相關(guān)系數(shù)對ELM進(jìn)行優(yōu)化,實驗結(jié)果表明優(yōu)化后的算法比ELM算法預(yù)估偏差率低。Rathod等[19]提出利用布谷鳥和雜草優(yōu)化算法對ELM進(jìn)行優(yōu)化。陳聰聰?shù)萚20]提出利用與粒子群優(yōu)化(particle swarm optimization, PSO)、遺傳算法(genetic algorithm, GA)以及差分進(jìn)化算法分別對ELM進(jìn)行優(yōu)化,實驗結(jié)果表明,PSO優(yōu)化ELM相對于GA和差分進(jìn)化算法優(yōu)化ELM,PSO優(yōu)化ELM的效果是較優(yōu)的。張蓮等[21]提出利用麻雀算法與ELM算法相結(jié)合,并對麻雀算法進(jìn)行優(yōu)化,實驗結(jié)果表明,改進(jìn)后的麻雀與ELM結(jié)合算法在故障診斷具有較好的準(zhǔn)確性。畢文龍等[22]提出利用粒子群算法優(yōu)化支持向量機(jī)的參數(shù),但是粒子群算法易早熟收斂。鐘佩思等[23]通過歐式距離對粒子群算法進(jìn)行優(yōu)化,利用歐式距離對速度和慣性參數(shù)進(jìn)行調(diào)整,減小了陷入局部最優(yōu)的概率,但該算法并未根本解決粒子群算法早熟收斂問題。李志剛等[24]提出利用ELM與交叉遞歸定量分析和深度置信網(wǎng)絡(luò)相結(jié)合的形式對空氣質(zhì)量進(jìn)行預(yù)測,實驗結(jié)果表明,該算法在空氣質(zhì)量預(yù)測具有良好的擬合效果。齊詠生等[25]提出利用自適應(yīng)小波變換和奇異值分解對KELM進(jìn)行優(yōu)化,實驗結(jié)果表明,與ELM算法相比,該算法在故障識別方面具有良好識別性能。Alzaqebah 等[26]提出一種改進(jìn)Harris Hawk算法,將ELM作為基分類器,這種結(jié)構(gòu)能夠在每次產(chǎn)生的最佳特征子集中優(yōu)化ELM權(quán)重,實驗結(jié)果表明,該算法能夠顯著提高預(yù)測模型準(zhǔn)確率。Wang等[27]提出一種基于改進(jìn)獵人獵物優(yōu)化算法的ELM預(yù)測模型,該算法在搜索最優(yōu)解過程中利用自適應(yīng)慣性權(quán)重加快收斂速度,同時,修改初始化種群,達(dá)到搜尋全局最優(yōu)解的目的,實驗結(jié)果表明,該算法搜索能力和收斂速度得到提升。通過上述文獻(xiàn)分析可知,ELM算法隨機(jī)初始化權(quán)重和偏置以及利用算法對ELM算法優(yōu)化后,由于隱層節(jié)點(diǎn)個數(shù)不同,導(dǎo)致優(yōu)化參數(shù)數(shù)目不同,影響預(yù)測模型的準(zhǔn)確度。
針對上述問題,本文提出基于GAPSO優(yōu)化KELM下肢關(guān)節(jié)力矩預(yù)測方法。首先把采集到的肌電信號進(jìn)行預(yù)處理,其次把處理好的肌電信號作為輸入信號,通過GAPSO進(jìn)行訓(xùn)練,把訓(xùn)練好的參數(shù)傳輸給KELM,通過KELM的訓(xùn)練和預(yù)測,輸出預(yù)測的關(guān)節(jié)力矩,最后通過均方根誤差(root mean square error, RMSE)和相關(guān)系數(shù)(P)評價算法性能。
采集16塊肌肉肌電信號,其他肌肉的肌電信號根據(jù)文獻(xiàn)[28],可以通過相鄰肌肉的肌電信號近似獲得。通過16塊肌肉的部分肌肉分別驅(qū)動髖關(guān)節(jié)屈伸、髖關(guān)節(jié)收展、膝關(guān)節(jié)屈伸、踝關(guān)節(jié)背屈、踝關(guān)節(jié)內(nèi)外翻5個關(guān)節(jié)自由度。每個關(guān)節(jié)自由度所關(guān)聯(lián)的肌肉,具體詳細(xì)內(nèi)容參見文獻(xiàn)[10,12]。通過文獻(xiàn)[10,12]可知,預(yù)測膝關(guān)節(jié)屈伸的關(guān)節(jié)力矩需要股二頭肌長頭、半膜肌、股直肌、股內(nèi)側(cè)肌、股外側(cè)肌、內(nèi)側(cè)腓腸肌等6塊肌肉,因此輸入信號是6個,另外四個關(guān)節(jié)自由度是7個肌肉輸入信號源。
為了驗證本文提出算法的優(yōu)越性,實驗采集一位受試者的步行數(shù)據(jù),該受試者為男性,同時患有高功能偏癱。實驗時受試者分別以0.4、0.5、0.6、0.7、0.8 m/s步速在跑步機(jī)上行走,利用實驗采集裝置可對受試者的運(yùn)動學(xué)與肌電信號(electromyography,EMG)數(shù)據(jù)進(jìn)行采集。運(yùn)動學(xué)數(shù)據(jù)采集頻率是100 Hz,EMG數(shù)據(jù)所用的采集頻率是1 000 Hz。實驗時,選取16塊對下肢運(yùn)動有主要貢獻(xiàn)肌肉所對應(yīng)的肌電信號,為了獲得相對干凈的肌電信號,對采集的肌電信號進(jìn)行預(yù)處理,首先為消除低頻噪聲,進(jìn)行高通濾波,選取的截止頻率是40 Hz;其次對濾波后的信號進(jìn)行整流,使信號非負(fù);最后進(jìn)行數(shù)據(jù)歸一化處理。以臀大肌肌電信號處理為例,選取5個步態(tài)周期數(shù)據(jù),實驗結(jié)果如圖1所示。分析圖1(a)可知,經(jīng)過預(yù)處理后,波形變的平滑。
圖1 臀大肌處理后肌電信號和原始肌電信號Fig.1 Processed EMG signals and original EMG signals of the gluteus maximus muscle
PSO是利用鳥群捕食而發(fā)展起來的隨機(jī)搜索算法,其在組合優(yōu)化問題有著獨(dú)特的優(yōu)越性,首先確定適應(yīng)度值,其次將每個粒子的適應(yīng)度值和全局適應(yīng)度值比較,確定最優(yōu)位置,直到最大迭代次數(shù),最后輸出最優(yōu)解。
GA是由生物進(jìn)化演變而來的隨機(jī)搜索算法,由于其具有良好的全局搜索能力,因此本文選用GA對PSO進(jìn)行進(jìn)一步優(yōu)化,首先計算個體適應(yīng)度值,其次進(jìn)行交叉、變異操作,直到迭代到最大次數(shù),最后輸出結(jié)果。
基因粒子群算法是將GA與PSO結(jié)合,其原理步驟如下:
Step1種群和速度進(jìn)行初始化。
Step2確定染色體適應(yīng)度值。
Step3搜尋最優(yōu)染色體。
Step4對速度和種群進(jìn)行更新。
Step5進(jìn)行遺傳算法交叉操作和變異操作。
Step6迭代到最大次數(shù),輸出解;否則返回Step4。
ELM是一種單層新型前饋神經(jīng)網(wǎng)絡(luò)快速學(xué)習(xí)算法,在訓(xùn)練過程無需調(diào)節(jié),其隱含層到輸出層權(quán)重是通過求解Moore-Penrose廣義逆來確定的。算法原理如下,假設(shè)輸入信號X=[xi1,xi2,xi3,…],隱層的節(jié)點(diǎn)設(shè)置為L,其輸出可以表示為
(1)
式(1)中:g為激活函數(shù);Wi為輸入權(quán)重;βi為輸出權(quán)重;bi為隱層單元的偏置;O為輸出,其輸出誤差最小可以表示為
(2)
式(2)中:T為理想關(guān)節(jié)力矩;R為理想關(guān)節(jié)力矩和算法預(yù)測之間的差值。與此同時存在矩陣H使得
(3)
從而算出參數(shù)β為
β=(I/C+HTH)-1HTT
(4)
式(4)中:I為單位矩陣;C為正則化系數(shù)。將采集的肌電信號進(jìn)行預(yù)處理作為輸入,把反向生物力學(xué)測得關(guān)節(jié)力矩作為輸出,進(jìn)行訓(xùn)練和測試。
選用核極限學(xué)習(xí)機(jī),利用核極限學(xué)習(xí)機(jī)中的高斯核函數(shù)替代傳統(tǒng)ELM映射任務(wù),高斯核函數(shù)表達(dá)式為
k(x,xi)=exp(-‖x-xi‖2/2S2)
(5)
式(5)中:x為輸入信號任意一點(diǎn);S為常數(shù)。
為了提升KELM算法的收斂穩(wěn)定性和收斂速度,合理設(shè)置其超參數(shù)非常關(guān)鍵。因此,針對PSO尋找最優(yōu)超參數(shù)中的高維解空間缺陷,將GA算法的交叉和變異操作引入其中,提出一種GAPSO算法。交叉部分通過隨機(jī)粒子的基因交換實現(xiàn),使粒子群朝著適應(yīng)度值大的方向移動,更易得到全局最優(yōu)解。變異部分通過隨機(jī)粒子的重新初始化實現(xiàn),一定程度上豐富了粒子群多樣性,避免其陷入局部最優(yōu)。該策略促進(jìn)了GAPSO尋找全局最優(yōu)解的能力,從而得到KELM算法更優(yōu)超參數(shù)。同時,KELM算法的收斂穩(wěn)定性和收斂速度得到提升。
基于GAPSO策略和高斯核函數(shù)優(yōu)化KELM的步驟如下:
Step1把處理好的數(shù)據(jù)分為訓(xùn)練集和測試集。
Step2確定種群個數(shù)和迭代次數(shù)。
Step3位置和速度進(jìn)行初始,確定種群大小和迭代次數(shù)。
Step4確定適應(yīng)度值。
Step5將每個粒子的適應(yīng)度值和最好位置的適應(yīng)度值進(jìn)行比較,判斷其是否是當(dāng)前最好位置,若較好將其作為最好位置。
Step6將每個粒子的適應(yīng)度值和全局經(jīng)歷的適應(yīng)度值進(jìn)行比較,判斷其是否是當(dāng)前最好位置,若較好將其作為全局最好位置。
Step7速度和位置進(jìn)行更新。
Step8進(jìn)行遺傳算法交叉操作和變異操作。
Step9迭代到最大次數(shù),輸出解;否則返回Step6。
Step10訓(xùn)練出最優(yōu)的正則化系數(shù)C和核函數(shù)寬度參數(shù)S,將最優(yōu)參數(shù)輸入到KELM中,利用測試集對5個關(guān)節(jié)自由度的力矩進(jìn)行預(yù)測,通過RMSE和P驗證算法的優(yōu)越性。
實驗時,在不同步速下驗證GAPSO-KELM、PSO-KELM、KELM、ELM優(yōu)越性,每個步速下隨機(jī)選取30個步態(tài)周期當(dāng)做訓(xùn)練集,10個步態(tài)周期作為測試集。將實驗預(yù)測結(jié)果與理想關(guān)節(jié)力矩相比較,通過RMSE和P來驗證。
對于ELM算法,隱藏層節(jié)點(diǎn)個數(shù)不同對關(guān)節(jié)力矩預(yù)測也有較大影響,因此實驗分別以5、10、20、30個隱層節(jié)點(diǎn)進(jìn)行5次訓(xùn)練,實驗結(jié)果如圖2所示(以0.4 m/s左踝關(guān)節(jié)內(nèi)外翻為例)。
圖2 ELM隱層節(jié)點(diǎn)個數(shù)不同的RMSE值Fig.2 RMSE values for different number of ELM hidden layer nodes
由圖2可知,不同隱層節(jié)點(diǎn),關(guān)節(jié)力矩預(yù)測結(jié)果差距較大,在實際情況中,如何選取合適的節(jié)點(diǎn)個數(shù)對關(guān)節(jié)力矩預(yù)測影響較大。
GAPSO-KELM、PSO-KELM、KELM、ELM四種算法分別對左髖關(guān)節(jié)屈伸、左髖關(guān)節(jié)收展、左膝關(guān)節(jié)屈伸、左踝關(guān)節(jié)背屈、左踝關(guān)節(jié)內(nèi)外翻、右髖關(guān)節(jié)屈伸、右髖關(guān)節(jié)收展、右膝關(guān)節(jié)屈伸、右踝關(guān)節(jié)背屈、右踝關(guān)節(jié)內(nèi)外翻進(jìn)行關(guān)節(jié)力矩預(yù)測,實驗結(jié)果以0.5 m/s步速為例,如圖3~圖12所示。
圖3 左髖關(guān)節(jié)屈伸Fig.3 Left hip flexion and extension
圖4 左髖關(guān)節(jié)收展Fig.4 Left hip joint abduction
圖5 左膝關(guān)節(jié)屈伸Fig.5 Left knee joint flexion and extension
圖6 左踝關(guān)節(jié)背屈Fig.6 Left ankle dorsiflexion
圖7 左踝關(guān)節(jié)內(nèi)外翻Fig.7 Left ankle inversion
圖8 右髖關(guān)節(jié)屈伸Fig.8 Right hip flexion and extension
圖9 右髖關(guān)節(jié)收展Fig.9 Right hip abduction
圖10 右膝關(guān)節(jié)屈伸Fig.10 Right knee flexion and extension
圖11 右踝關(guān)節(jié)背屈Fig.11 Right ankle dorsiflexion
圖12 右踝關(guān)節(jié)內(nèi)外翻Fig.12 Internal and external rotation of the right ankle joint
由圖3~圖12可知,左右腿關(guān)節(jié)自由度的力矩預(yù)測結(jié)果,除了左、右踝關(guān)節(jié)背屈、左髖關(guān)節(jié)收展預(yù)測誤差略大,其他關(guān)節(jié)力矩都能夠較精準(zhǔn)預(yù)測,為體現(xiàn)本文提出算法的優(yōu)越性,通過仿真誤差和相關(guān)系數(shù)來驗證,實驗結(jié)果如圖13所示。
圖13 0.5 m/s速度下左右兩側(cè)各個關(guān)節(jié)自由度預(yù)測力矩的 RMSE值Fig.13 RMSE of predicted moments for each joint degree of freedom on the left and right side at 0.5 m/s speed
由圖13可知,GAPSO-KELM的RMSE值在左右腿不同關(guān)節(jié)中值最小,相對于ELM、KELM、PSO-KELM算法,左髖關(guān)節(jié)屈伸、左髖關(guān)節(jié)收展、左膝關(guān)節(jié)屈伸、左踝關(guān)節(jié)背屈、左踝關(guān)節(jié)內(nèi)外翻的RMSE值分別減小14.37%、11.29%、29.98%、19.58%、6.41%和10.49%、9.58%、23.28%、6.54%、8.49%、以及8.00%、8.92%、21.41%、3.41%、6.48%;右髖關(guān)節(jié)屈伸、右髖關(guān)節(jié)收展、右膝關(guān)節(jié)屈伸、右踝關(guān)節(jié)背屈、右踝關(guān)節(jié)內(nèi)外翻的RMSE值分別減小20.36%、19.51%、17.94%、13.22%、7.98%、和4.88%、11.67%、13.85%、12.60%、5.79%以及1.65%、6.69%、7.25%、5.48%、1.09%。相關(guān)系數(shù)如表1所示。
表1 左側(cè)關(guān)節(jié)四種算法相關(guān)系數(shù)Table 1 Correlation coefficients of the four algorithms for the left side of the joint
左髖伸代表左髖關(guān)節(jié)屈伸、左髖展代表左髖關(guān)節(jié)收展、左膝伸代表左膝關(guān)節(jié)屈伸、左踝屈代表左踝關(guān)節(jié)背屈、左踝翻代表左踝關(guān)節(jié)內(nèi)外翻,由于論文篇幅,對于右側(cè)的相關(guān)系數(shù)不進(jìn)行展開。由表1和圖13可知,GAPSO-KELM算法要優(yōu)于ELM、KELM、PSO-KELM算法。
為了驗證GAPSO-KELM算法在不同步速的優(yōu)越性,還對0.4、0.6、0.7、0.8 m/s進(jìn)行驗證,由于論文篇幅原因,本文對右側(cè)關(guān)節(jié)不進(jìn)行展開,實驗結(jié)果如圖14所示。
圖14 不同速度下左側(cè)各個關(guān)節(jié)自由度預(yù)測力矩的 RMSEFig.14 RMSE values of predicted moments for each joint degree of freedom on the left side at different speed
從圖14可知,除0.4 m/s時,左踝關(guān)節(jié)內(nèi)外翻GAPSO-KELM的預(yù)測效果略低于ELM算法的預(yù)測效果;在其他步速時,GAPSO-KELM預(yù)測效果都要優(yōu)于ELM算法以及整體預(yù)測效果優(yōu)于KELM、PSO-KELM算法。
在圖14中,ELM選取預(yù)測關(guān)節(jié)力矩較優(yōu)的隱層節(jié)點(diǎn)個數(shù)進(jìn)行實驗。5個關(guān)節(jié)的20組數(shù)據(jù)中,其中16組KELM力矩預(yù)測結(jié)果優(yōu)于ELM,2組力矩預(yù)測結(jié)果接近,另外兩組力矩預(yù)測結(jié)果略低于ELM,總的來說,KELM預(yù)測關(guān)節(jié)力矩相對于ELM平均提高8.25%。
與此同時,把關(guān)節(jié)角度和肌電信號一起作為輸入信號,研究多輸入信號對算法預(yù)測關(guān)節(jié)力矩影響,實驗結(jié)果如圖15所示(以GAPSO-KELM為例)。
圖15 不同輸入變量各個關(guān)節(jié)自由度預(yù)測力矩的RMSEFig.15 RMSE of predicted moments for each joint degree of freedom for different input variables
由圖15可知,關(guān)節(jié)角度與肌電信號一起作為輸入信號時,預(yù)測效果要優(yōu)于單一肌電信號作為輸入信號,在圖15中,5個關(guān)節(jié)力矩預(yù)測精度均得到進(jìn)一步提高,特別是踝關(guān)節(jié)背屈,預(yù)測結(jié)果提高47.07%,髖關(guān)節(jié)屈伸、髖關(guān)節(jié)收展、膝關(guān)節(jié)屈伸、踝關(guān)節(jié)內(nèi)外翻分別提高35.46%、40.70%、10.15%、13.95%,因此關(guān)節(jié)角度與輸入信號一起作為輸入信號預(yù)測效果優(yōu)于單一肌電信號。
針對極限學(xué)習(xí)機(jī)預(yù)測下肢關(guān)節(jié)力矩時,隨機(jī)初始化輸入權(quán)重和偏置影響模型準(zhǔn)確度問題,提出一種基于核極限學(xué)習(xí)機(jī)的下肢康復(fù)機(jī)器人關(guān)節(jié)力矩預(yù)測方法。該方法將高斯核函數(shù)與ELM相融合,并采用遺傳算法與粒子群優(yōu)化結(jié)合的基因粒子群對KELM的參數(shù)進(jìn)行優(yōu)化。實驗結(jié)果表明,GAPSO-KELM的整體預(yù)測效果優(yōu)于ELM、KELM、PSO-KELM算法,并提高了預(yù)測精度,使其為康復(fù)治療提供更有效的算法支持,具有一定的實際應(yīng)用價值。