宋永獻, 王祥祥, 李媛媛, 夏文豪, 李豪, 宋文澤
(1.江蘇海洋大學電子工程學院, 連云港 222005; 2.南京曉莊學院電子工程學院, 南京 211171; 3.四川大學空天科學與工程學院, 成都 610207)
神經肌肉骨骼疾病,如腦癱[1]、中風[2]、帕金森病[3]和骨關節炎[4],阻礙行走能力,降低人們的生活質量??祻椭委熓菫榱烁纳七@些障礙患者的行走能力,但是這些治療有效性可能因患者不同而有所不同,原因是治療過程醫師根據主觀臨床經驗,而不是治療后功能的客觀預測,導致康復效果不如預期[5]。
為了更好地幫助神經肌肉骨骼疾病患者進行康復訓練,研究人員提出基于人體骨骼模型的外骨骼康復機器人,但是由于人體結構的復雜性很難直接在人體上進行關節力矩的測量。目前測量方法主要有測力法[6]、反向生物力學分析法[7-8]和正向生物力學分析法[9-11]等。熊保平等[12]提出利用Hill模型優化極限學習機(extreme learning machine, ELM)模型,把關節角度、角速度和肌肉肌電信號作為模型輸入預測關節力矩,通過反向生物力學分析法與預測關節力矩進行比較。劉永柏等[13]提出利用表面肌電信號,通過ELM來預測肘關節角度。劉克平等[14]提出利用廣義回歸神經網絡來預測上肢關節角度。Feng等[15]提出利用誤差最小化來優化ELM算法,使其具有良好的泛化性能。劉磊等[16]提出利用盲辨識理論和ELM算法相結合,利用煙花算法優化ELM,改進后的算法要比基礎ELM算法和反向傳播(back propagation,BP)神經網絡優越。劉磊等[17]等提出利用魚群算法優化ELM,優化后的算法與ELM相比,在假肢步態分類上準確率和識別時間有所提高。李斌等[18]提出利用遺傳算法和皮爾遜相關系數對ELM進行優化,實驗結果表明優化后的算法比ELM算法預估偏差率低。Rathod等[19]提出利用布谷鳥和雜草優化算法對ELM進行優化。陳聰聰等[20]提出利用與粒子群優化(particle swarm optimization, PSO)、遺傳算法(genetic algorithm, GA)以及差分進化算法分別對ELM進行優化,實驗結果表明,PSO優化ELM相對于GA和差分進化算法優化ELM,PSO優化ELM的效果是較優的。張蓮等[21]提出利用麻雀算法與ELM算法相結合,并對麻雀算法進行優化,實驗結果表明,改進后的麻雀與ELM結合算法在故障診斷具有較好的準確性。畢文龍等[22]提出利用粒子群算法優化支持向量機的參數,但是粒子群算法易早熟收斂。鐘佩思等[23]通過歐式距離對粒子群算法進行優化,利用歐式距離對速度和慣性參數進行調整,減小了陷入局部最優的概率,但該算法并未根本解決粒子群算法早熟收斂問題。李志剛等[24]提出利用ELM與交叉遞歸定量分析和深度置信網絡相結合的形式對空氣質量進行預測,實驗結果表明,該算法在空氣質量預測具有良好的擬合效果。齊詠生等[25]提出利用自適應小波變換和奇異值分解對KELM進行優化,實驗結果表明,與ELM算法相比,該算法在故障識別方面具有良好識別性能。Alzaqebah 等[26]提出一種改進Harris Hawk算法,將ELM作為基分類器,這種結構能夠在每次產生的最佳特征子集中優化ELM權重,實驗結果表明,該算法能夠顯著提高預測模型準確率。Wang等[27]提出一種基于改進獵人獵物優化算法的ELM預測模型,該算法在搜索最優解過程中利用自適應慣性權重加快收斂速度,同時,修改初始化種群,達到搜尋全局最優解的目的,實驗結果表明,該算法搜索能力和收斂速度得到提升。通過上述文獻分析可知,ELM算法隨機初始化權重和偏置以及利用算法對ELM算法優化后,由于隱層節點個數不同,導致優化參數數目不同,影響預測模型的準確度。
針對上述問題,本文提出基于GAPSO優化KELM下肢關節力矩預測方法。首先把采集到的肌電信號進行預處理,其次把處理好的肌電信號作為輸入信號,通過GAPSO進行訓練,把訓練好的參數傳輸給KELM,通過KELM的訓練和預測,輸出預測的關節力矩,最后通過均方根誤差(root mean square error, RMSE)和相關系數(P)評價算法性能。
采集16塊肌肉肌電信號,其他肌肉的肌電信號根據文獻[28],可以通過相鄰肌肉的肌電信號近似獲得。通過16塊肌肉的部分肌肉分別驅動髖關節屈伸、髖關節收展、膝關節屈伸、踝關節背屈、踝關節內外翻5個關節自由度。每個關節自由度所關聯的肌肉,具體詳細內容參見文獻[10,12]。通過文獻[10,12]可知,預測膝關節屈伸的關節力矩需要股二頭肌長頭、半膜肌、股直肌、股內側肌、股外側肌、內側腓腸肌等6塊肌肉,因此輸入信號是6個,另外四個關節自由度是7個肌肉輸入信號源。
為了驗證本文提出算法的優越性,實驗采集一位受試者的步行數據,該受試者為男性,同時患有高功能偏癱。實驗時受試者分別以0.4、0.5、0.6、0.7、0.8 m/s步速在跑步機上行走,利用實驗采集裝置可對受試者的運動學與肌電信號(electromyography,EMG)數據進行采集。運動學數據采集頻率是100 Hz,EMG數據所用的采集頻率是1 000 Hz。實驗時,選取16塊對下肢運動有主要貢獻肌肉所對應的肌電信號,為了獲得相對干凈的肌電信號,對采集的肌電信號進行預處理,首先為消除低頻噪聲,進行高通濾波,選取的截止頻率是40 Hz;其次對濾波后的信號進行整流,使信號非負;最后進行數據歸一化處理。以臀大肌肌電信號處理為例,選取5個步態周期數據,實驗結果如圖1所示。分析圖1(a)可知,經過預處理后,波形變的平滑。

圖1 臀大肌處理后肌電信號和原始肌電信號Fig.1 Processed EMG signals and original EMG signals of the gluteus maximus muscle
PSO是利用鳥群捕食而發展起來的隨機搜索算法,其在組合優化問題有著獨特的優越性,首先確定適應度值,其次將每個粒子的適應度值和全局適應度值比較,確定最優位置,直到最大迭代次數,最后輸出最優解。
GA是由生物進化演變而來的隨機搜索算法,由于其具有良好的全局搜索能力,因此本文選用GA對PSO進行進一步優化,首先計算個體適應度值,其次進行交叉、變異操作,直到迭代到最大次數,最后輸出結果。
基因粒子群算法是將GA與PSO結合,其原理步驟如下:
Step1種群和速度進行初始化。
Step2確定染色體適應度值。
Step3搜尋最優染色體。
Step4對速度和種群進行更新。
Step5進行遺傳算法交叉操作和變異操作。
Step6迭代到最大次數,輸出解;否則返回Step4。
ELM是一種單層新型前饋神經網絡快速學習算法,在訓練過程無需調節,其隱含層到輸出層權重是通過求解Moore-Penrose廣義逆來確定的。算法原理如下,假設輸入信號X=[xi1,xi2,xi3,…],隱層的節點設置為L,其輸出可以表示為

(1)
式(1)中:g為激活函數;Wi為輸入權重;βi為輸出權重;bi為隱層單元的偏置;O為輸出,其輸出誤差最小可以表示為

(2)
式(2)中:T為理想關節力矩;R為理想關節力矩和算法預測之間的差值。與此同時存在矩陣H使得

(3)
從而算出參數β為
β=(I/C+HTH)-1HTT
(4)
式(4)中:I為單位矩陣;C為正則化系數。將采集的肌電信號進行預處理作為輸入,把反向生物力學測得關節力矩作為輸出,進行訓練和測試。
選用核極限學習機,利用核極限學習機中的高斯核函數替代傳統ELM映射任務,高斯核函數表達式為
k(x,xi)=exp(-‖x-xi‖2/2S2)
(5)
式(5)中:x為輸入信號任意一點;S為常數。
為了提升KELM算法的收斂穩定性和收斂速度,合理設置其超參數非常關鍵。因此,針對PSO尋找最優超參數中的高維解空間缺陷,將GA算法的交叉和變異操作引入其中,提出一種GAPSO算法。交叉部分通過隨機粒子的基因交換實現,使粒子群朝著適應度值大的方向移動,更易得到全局最優解。變異部分通過隨機粒子的重新初始化實現,一定程度上豐富了粒子群多樣性,避免其陷入局部最優。該策略促進了GAPSO尋找全局最優解的能力,從而得到KELM算法更優超參數。同時,KELM算法的收斂穩定性和收斂速度得到提升。
基于GAPSO策略和高斯核函數優化KELM的步驟如下:
Step1把處理好的數據分為訓練集和測試集。
Step2確定種群個數和迭代次數。
Step3位置和速度進行初始,確定種群大小和迭代次數。
Step4確定適應度值。
Step5將每個粒子的適應度值和最好位置的適應度值進行比較,判斷其是否是當前最好位置,若較好將其作為最好位置。
Step6將每個粒子的適應度值和全局經歷的適應度值進行比較,判斷其是否是當前最好位置,若較好將其作為全局最好位置。
Step7速度和位置進行更新。
Step8進行遺傳算法交叉操作和變異操作。
Step9迭代到最大次數,輸出解;否則返回Step6。
Step10訓練出最優的正則化系數C和核函數寬度參數S,將最優參數輸入到KELM中,利用測試集對5個關節自由度的力矩進行預測,通過RMSE和P驗證算法的優越性。
實驗時,在不同步速下驗證GAPSO-KELM、PSO-KELM、KELM、ELM優越性,每個步速下隨機選取30個步態周期當做訓練集,10個步態周期作為測試集。將實驗預測結果與理想關節力矩相比較,通過RMSE和P來驗證。
對于ELM算法,隱藏層節點個數不同對關節力矩預測也有較大影響,因此實驗分別以5、10、20、30個隱層節點進行5次訓練,實驗結果如圖2所示(以0.4 m/s左踝關節內外翻為例)。

圖2 ELM隱層節點個數不同的RMSE值Fig.2 RMSE values for different number of ELM hidden layer nodes
由圖2可知,不同隱層節點,關節力矩預測結果差距較大,在實際情況中,如何選取合適的節點個數對關節力矩預測影響較大。
GAPSO-KELM、PSO-KELM、KELM、ELM四種算法分別對左髖關節屈伸、左髖關節收展、左膝關節屈伸、左踝關節背屈、左踝關節內外翻、右髖關節屈伸、右髖關節收展、右膝關節屈伸、右踝關節背屈、右踝關節內外翻進行關節力矩預測,實驗結果以0.5 m/s步速為例,如圖3~圖12所示。

圖3 左髖關節屈伸Fig.3 Left hip flexion and extension

圖4 左髖關節收展Fig.4 Left hip joint abduction

圖5 左膝關節屈伸Fig.5 Left knee joint flexion and extension

圖6 左踝關節背屈Fig.6 Left ankle dorsiflexion

圖7 左踝關節內外翻Fig.7 Left ankle inversion

圖8 右髖關節屈伸Fig.8 Right hip flexion and extension

圖9 右髖關節收展Fig.9 Right hip abduction

圖10 右膝關節屈伸Fig.10 Right knee flexion and extension

圖11 右踝關節背屈Fig.11 Right ankle dorsiflexion

圖12 右踝關節內外翻Fig.12 Internal and external rotation of the right ankle joint
由圖3~圖12可知,左右腿關節自由度的力矩預測結果,除了左、右踝關節背屈、左髖關節收展預測誤差略大,其他關節力矩都能夠較精準預測,為體現本文提出算法的優越性,通過仿真誤差和相關系數來驗證,實驗結果如圖13所示。

圖13 0.5 m/s速度下左右兩側各個關節自由度預測力矩的 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值在左右腿不同關節中值最小,相對于ELM、KELM、PSO-KELM算法,左髖關節屈伸、左髖關節收展、左膝關節屈伸、左踝關節背屈、左踝關節內外翻的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%;右髖關節屈伸、右髖關節收展、右膝關節屈伸、右踝關節背屈、右踝關節內外翻的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%。相關系數如表1所示。

表1 左側關節四種算法相關系數Table 1 Correlation coefficients of the four algorithms for the left side of the joint
左髖伸代表左髖關節屈伸、左髖展代表左髖關節收展、左膝伸代表左膝關節屈伸、左踝屈代表左踝關節背屈、左踝翻代表左踝關節內外翻,由于論文篇幅,對于右側的相關系數不進行展開。由表1和圖13可知,GAPSO-KELM算法要優于ELM、KELM、PSO-KELM算法。
為了驗證GAPSO-KELM算法在不同步速的優越性,還對0.4、0.6、0.7、0.8 m/s進行驗證,由于論文篇幅原因,本文對右側關節不進行展開,實驗結果如圖14所示。

圖14 不同速度下左側各個關節自由度預測力矩的 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時,左踝關節內外翻GAPSO-KELM的預測效果略低于ELM算法的預測效果;在其他步速時,GAPSO-KELM預測效果都要優于ELM算法以及整體預測效果優于KELM、PSO-KELM算法。
在圖14中,ELM選取預測關節力矩較優的隱層節點個數進行實驗。5個關節的20組數據中,其中16組KELM力矩預測結果優于ELM,2組力矩預測結果接近,另外兩組力矩預測結果略低于ELM,總的來說,KELM預測關節力矩相對于ELM平均提高8.25%。
與此同時,把關節角度和肌電信號一起作為輸入信號,研究多輸入信號對算法預測關節力矩影響,實驗結果如圖15所示(以GAPSO-KELM為例)。

圖15 不同輸入變量各個關節自由度預測力矩的RMSEFig.15 RMSE of predicted moments for each joint degree of freedom for different input variables
由圖15可知,關節角度與肌電信號一起作為輸入信號時,預測效果要優于單一肌電信號作為輸入信號,在圖15中,5個關節力矩預測精度均得到進一步提高,特別是踝關節背屈,預測結果提高47.07%,髖關節屈伸、髖關節收展、膝關節屈伸、踝關節內外翻分別提高35.46%、40.70%、10.15%、13.95%,因此關節角度與輸入信號一起作為輸入信號預測效果優于單一肌電信號。
針對極限學習機預測下肢關節力矩時,隨機初始化輸入權重和偏置影響模型準確度問題,提出一種基于核極限學習機的下肢康復機器人關節力矩預測方法。該方法將高斯核函數與ELM相融合,并采用遺傳算法與粒子群優化結合的基因粒子群對KELM的參數進行優化。實驗結果表明,GAPSO-KELM的整體預測效果優于ELM、KELM、PSO-KELM算法,并提高了預測精度,使其為康復治療提供更有效的算法支持,具有一定的實際應用價值。