陳文浩,宋勝利,鐘浩杰
(1.解放軍32518部隊(duì),福建三明 365000;2.解放軍陸軍工程大學(xué)野戰(zhàn)工程學(xué)院,南京 210007)
外骨骼是一種模仿人體下肢結(jié)構(gòu)的裝置,可為穿戴者提供驅(qū)動(dòng)力[1-2]。外骨骼首先通過傳感器獲得下肢位置信息,然后通過控制單元輸出控制信號(hào),最后通過驅(qū)動(dòng)器在下肢關(guān)節(jié)處提供外部力矩。下肢康復(fù)外骨骼是針對(duì)下肢運(yùn)動(dòng)功能障礙患者而設(shè)計(jì)的[3-4],對(duì)患者康復(fù)或恢復(fù)運(yùn)動(dòng)能力有顯著效果[5-7]。下肢康復(fù)訓(xùn)練分為主動(dòng)訓(xùn)練和被動(dòng)訓(xùn)練2類[8]。被動(dòng)訓(xùn)練是根據(jù)患者下肢運(yùn)動(dòng)習(xí)慣規(guī)劃運(yùn)動(dòng)軌跡,下肢被動(dòng)地跟著外骨骼訓(xùn)練。與被動(dòng)訓(xùn)練相比,主動(dòng)訓(xùn)練需要患者的自主意識(shí)參與到訓(xùn)練之中[9]。因此,在主動(dòng)訓(xùn)練中是否能夠根據(jù)患者的運(yùn)動(dòng)意圖來實(shí)時(shí)控制外骨骼尤為重要[10-12]。
日本Cyberdyne公司研發(fā)的下肢外骨骼機(jī)器人HAL(hybrid assistive leg)是預(yù)測(cè)人體姿態(tài)的典型,具有生物意識(shí)控制系統(tǒng)和自主控制系統(tǒng)[13-14]。HAL將傳感器貼在穿戴者肌膚表面,通過采集肌電信號(hào)(electromyography,EMG)來預(yù)判肌肉的收縮[15]。當(dāng)穿戴者出汗時(shí),將影響貼在皮膚表面的肌電傳感器[16],并且EMG中存在噪聲,需要去除噪聲[17]。自回歸模型通過對(duì)輸入信號(hào)加權(quán)后,可以預(yù)測(cè)人體姿態(tài),加權(quán)向量可以根據(jù)最小均方(least mean square,LMS)算法[18-19]或遞歸最小二乘法(recursive least square,RLS)[20]給出。LMS算法的優(yōu)點(diǎn)是復(fù)雜度小、易于實(shí)現(xiàn),缺點(diǎn)是學(xué)習(xí)時(shí)間較長(zhǎng);RLS相比LMS算法有更快的收斂速度和更高的精度,但是其計(jì)算復(fù)雜度要比LMS算法高。吳青聰?shù)萚21]提出了一種模糊滑模導(dǎo)納控制算法,屠堯等[22]提出了一種人機(jī)交互力自適應(yīng)導(dǎo)納控制策略,導(dǎo)納控制策略雖然能夠提高患者訓(xùn)練的主動(dòng)性,但不能預(yù)測(cè)患者的姿態(tài)。
為了提高患者在康復(fù)訓(xùn)練中的主動(dòng)性,提升下肢康復(fù)外骨骼的訓(xùn)練效果,本文將采用深度置信網(wǎng)絡(luò)(deep belief network,DBN)對(duì)步態(tài)關(guān)節(jié)數(shù)據(jù)進(jìn)行預(yù)測(cè):首先建立2層受限玻爾茲曼機(jī)(restricted Boltzmann machine,RBM)隱含層,利用對(duì)比散度算法進(jìn)行無監(jiān)督預(yù)訓(xùn)練;然后采用LMS誤差作為損失函數(shù),通過反向傳播(back propagation,BP)算法來微調(diào)權(quán)重值和偏置值;最后,與長(zhǎng)短期記憶(long short-term memory,LSTM)網(wǎng)絡(luò)和BP網(wǎng)絡(luò)作對(duì)比,驗(yàn)證基于DBN的預(yù)測(cè)效果。
下肢康復(fù)外骨骼機(jī)械結(jié)構(gòu)是下肢外骨骼研究的基礎(chǔ),為了幫助患者主動(dòng)訓(xùn)練并提高安全性,該裝置采用了液壓驅(qū)動(dòng)的方式。穿戴外骨骼行走時(shí),由于與外骨骼存在交互,因此外骨骼機(jī)械結(jié)構(gòu)設(shè)計(jì)應(yīng)能模仿人體運(yùn)動(dòng),滿足行走、奔跑和上下樓梯等基本運(yùn)動(dòng)要求。根據(jù)仿生學(xué)和人機(jī)工程學(xué)進(jìn)行機(jī)械結(jié)構(gòu)設(shè)計(jì),在髖關(guān)節(jié)設(shè)置3個(gè)自由度,膝關(guān)節(jié)設(shè)置1個(gè)自由度,踝關(guān)節(jié)設(shè)置3個(gè)自由度,并且在關(guān)鍵自由度上設(shè)計(jì)安全限位模塊。為了適應(yīng)不同體型的穿戴者,外骨骼大腿、小腿和髖部均設(shè)計(jì)為可調(diào)結(jié)構(gòu),其三維模型圖如圖1所示。下肢康復(fù)外骨骼工作時(shí),通過預(yù)測(cè)患者的運(yùn)動(dòng)意圖來實(shí)時(shí)控制,以提高患者的訓(xùn)練主動(dòng)性。
圖1 下肢康復(fù)外骨骼三維模型圖
設(shè)計(jì)的DBN由輸入層、隱含層和輸出層組成,如圖2所示。隱含層由RBM單元堆疊而成。1個(gè)RBM一共有2層,上層由若干隱藏神經(jīng)元組成(即隱層),下層由若干可見神經(jīng)元組成(即顯層)。RBM構(gòu)成的無向圖模型,只有在隱層和顯層神經(jīng)元之間有連接,顯層神經(jīng)元之間以及隱層神經(jīng)元之間都沒有連接。隱層神經(jīng)元取二進(jìn)制并服從伯努利分布,顯層神經(jīng)元取二進(jìn)制或者實(shí)數(shù)值。當(dāng)堆疊成DBN時(shí),前一個(gè)RBM的輸出層(即隱層)作為下一個(gè)RBM的輸入層(即顯層)。
圖2 DBN結(jié)構(gòu)圖
首先對(duì)RBM層進(jìn)行無監(jiān)督訓(xùn)練,使特征向量映射到網(wǎng)絡(luò)時(shí)盡可能保留特征信息;然后使用BP算法進(jìn)行有監(jiān)督訓(xùn)練,反向微調(diào)整個(gè)DBN。
利用對(duì)比散度算法進(jìn)行無監(jiān)督預(yù)訓(xùn)練,具體如下:
(1)隨機(jī)初始化參數(shù){W,k,b},其中W為權(quán)重矩陣,k為顯層的偏置向量,b為隱層的偏置向量,將所有參數(shù)隨機(jī)初始化為區(qū)間(0,1)的數(shù)值。
(2)計(jì)算隱層神經(jīng)元被開啟的概率:
式中,P為隱層神經(jīng)元被開啟的概率;hj(0)為第一隱層第j個(gè)神經(jīng)元;v(0)為輸入向量;σ為激活函數(shù),使用ReLU函數(shù),定義為f(x)=max(0,x);Wj為權(quán)重矩陣第j行向量;bj為隱層的偏置向量第j個(gè)元素。
(3)根據(jù)隱層神經(jīng)元開啟的概率,進(jìn)行Gibbs抽樣,對(duì)隱層中的每個(gè)神經(jīng)元進(jìn)行二元{0,1}抽樣:
式中,rj為區(qū)間[0,1]的隨機(jī)數(shù)。
(4)用隱層h(0)重構(gòu)顯層v(0),計(jì)算新的顯層v(1)的概率:
式中,vi(1)為顯層v(1)第i個(gè)神經(jīng)元;ki為顯層的偏置向量第i個(gè)元素。
(5)根據(jù)計(jì)算得到的概率再次進(jìn)行Gibbs采樣,對(duì)顯層v(1)中的每個(gè)神經(jīng)元進(jìn)行二元{0,1}抽樣:
式中,ri為區(qū)間[0,1]的隨機(jī)數(shù)。
(6)用顯層v(1)重構(gòu)隱層h(0),得到新的隱層h(1),計(jì)算隱層h(1)神經(jīng)元被開啟的概率:
(7)更新得到新的權(quán)重矩陣和偏置向量:
式中,λ1為學(xué)習(xí)率。
在有監(jiān)督的參數(shù)調(diào)優(yōu)前,先進(jìn)行前向傳播,得到輸出值,然后通過BP算法來更新整個(gè)網(wǎng)絡(luò)的權(quán)重值和偏置值。有監(jiān)督反向調(diào)參具體如下:
(1)采用LMS誤差函數(shù)來進(jìn)行BP,LMS誤差函數(shù)如下:
式中,J為均方誤差;N為樣本總數(shù);y^i為網(wǎng)絡(luò)輸出;yi為樣本;l為網(wǎng)絡(luò)隱含層的層數(shù)索引。
(2)通過梯度下降算法更新網(wǎng)絡(luò)的權(quán)重和偏置參數(shù):
式中,λ2為學(xué)習(xí)率。
綜上,DBN參數(shù)更新過程如下:在無監(jiān)督預(yù)訓(xùn)練階段時(shí),首先隨機(jī)初始化第1層RBM參數(shù),然后通過迭代計(jì)算隱層神經(jīng)元被開啟的概率,根據(jù)隱層神經(jīng)元開啟的概率進(jìn)行Gibbs采樣、計(jì)算新的顯層的概率,用新的顯層重構(gòu)隱層、計(jì)算新的隱層神經(jīng)元開啟的概率、更新權(quán)重矩陣和偏置向量,更新第1層RBM參數(shù)。堆疊第2個(gè)RBM層時(shí),第1個(gè)RBM的輸出層(即隱層)作為第2個(gè)RBM的輸入層(即顯層)。以此遞推,可堆疊多個(gè)RBM層。完成無監(jiān)督預(yù)訓(xùn)練后,進(jìn)入有監(jiān)督反向調(diào)參階段,通過有監(jiān)督反向調(diào)參更新整個(gè)DBN參數(shù)。
通過人體運(yùn)動(dòng)捕捉系統(tǒng)Perception Neuron采集人體行走時(shí)下肢各關(guān)節(jié)的角位移數(shù)據(jù)。實(shí)驗(yàn)共采集6人(受試者基本信息見表1),每人采集600次,將其中的550次作為訓(xùn)練集,50次作為測(cè)試集。設(shè)定系統(tǒng)在每人每次行走中采集1 000組數(shù)據(jù)(行走速度范圍為1.0~1.6 m/s),每組數(shù)據(jù)為6個(gè)關(guān)節(jié)的角度,共21 600 000個(gè)角度數(shù)據(jù)。在DBN的無監(jiān)督預(yù)訓(xùn)練階段,首先對(duì)數(shù)據(jù)進(jìn)行歸一化處理(預(yù)處理),把數(shù)據(jù)范圍轉(zhuǎn)換至區(qū)間[0,1],設(shè)置訓(xùn)練次數(shù)為10次,每次隨機(jī)的小批量樣本數(shù)量為50,學(xué)習(xí)率λ1為1。在DBN的微調(diào)階段,設(shè)置目標(biāo)誤差為1×10-7,動(dòng)量參數(shù)為0.95,學(xué)習(xí)率λ2為0.1。
表1 受試者基本信息
為了驗(yàn)證DBN的有效性,與LSTM網(wǎng)絡(luò)和BP網(wǎng)絡(luò)進(jìn)行對(duì)比。DBN設(shè)置3層隱含層,每層隱含層具有3個(gè)神經(jīng)元;LSTM網(wǎng)絡(luò)設(shè)置3層隱含層,36個(gè)神經(jīng)元;BP網(wǎng)絡(luò)設(shè)置單層隱含層,25個(gè)神經(jīng)元。輸入集為6個(gè)關(guān)節(jié)不同t時(shí)刻的角位移、t-1時(shí)刻的角速度和t-2時(shí)刻的角加速度,輸出集為t+1時(shí)刻的關(guān)節(jié)角位移。
圖3為受試者1的膝關(guān)節(jié)的一次預(yù)測(cè)效果。從圖3中可以看出,單隱含層BP網(wǎng)絡(luò)預(yù)測(cè)效果較差,最大誤差約為20°,LSTM網(wǎng)絡(luò)最大誤差約為2°,DBN的效果最好,最大誤差約為0.5°。
圖3 膝關(guān)節(jié)預(yù)測(cè)對(duì)比圖
表2為50次測(cè)試集中每個(gè)測(cè)試集1 000組數(shù)據(jù)的均方根誤差。從表2可以看出,BP網(wǎng)絡(luò)預(yù)測(cè)效果最差,髖、膝、踝3個(gè)關(guān)節(jié)角位移均方根誤差分別為4.38°、4.31°、4.49°;LSTM網(wǎng)絡(luò)3個(gè)關(guān)節(jié)角位移均方根誤差分別為1.40°、1.51°、1.46°;DBN 3個(gè)關(guān)節(jié)角位移均方根誤差分別為0.42°、0.41°、0.44°。從以上數(shù)據(jù)可以看出,DBN預(yù)測(cè)效果最好,3個(gè)關(guān)節(jié)角位移均方根誤差均為最小。受試者1→2的均方根誤差比受試者1~6的均方根誤差大,這是由于每個(gè)人走路的姿態(tài)略有不同,因此神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)并預(yù)測(cè)某個(gè)隨機(jī)個(gè)體下肢關(guān)節(jié)角位移時(shí),預(yù)測(cè)效果會(huì)降低。
表2 關(guān)節(jié)角位移均方根誤差單位:(°)
深度學(xué)習(xí)是一種深層非線性神經(jīng)網(wǎng)絡(luò),具有較強(qiáng)的特征學(xué)習(xí)能力,能夠逼近復(fù)雜函數(shù)。淺層的神經(jīng)網(wǎng)絡(luò)可以進(jìn)行數(shù)據(jù)預(yù)測(cè),但在有限樣本的情況下,對(duì)復(fù)雜函數(shù)預(yù)測(cè)效果有限[23]。
淺層神經(jīng)網(wǎng)絡(luò)使用單隱含層逼近復(fù)雜函數(shù),需要的計(jì)算單元較龐大;深度學(xué)習(xí)是分層表征,使得計(jì)算單元很少,從而減少了計(jì)算量。目前,基于深度學(xué)習(xí)的姿態(tài)研究多用于人體身份識(shí)別[24-25]。
徐俊武等[26]以健肢表面肌電信號(hào)為輸入,通過BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)關(guān)節(jié)角位移,3個(gè)關(guān)節(jié)的平均均方根誤差分別為4.35°、8.34°、3.17°,高于本文結(jié)果。BP網(wǎng)絡(luò)由于神經(jīng)元和網(wǎng)絡(luò)層數(shù)少,學(xué)習(xí)能力比深度學(xué)習(xí)網(wǎng)絡(luò)差。王斐等[27]使用LSTM網(wǎng)絡(luò)對(duì)下肢步態(tài)進(jìn)行預(yù)測(cè),以表面肌電信號(hào)為輸入,得到的均方根誤差約為6°,同樣高于本文結(jié)果。LSTM網(wǎng)絡(luò)適用于前后關(guān)聯(lián)較強(qiáng)的數(shù)據(jù),而人體行走具有一定的隨意性,數(shù)據(jù)的前后關(guān)聯(lián)性較弱,因此預(yù)測(cè)效果較差。段有康等[28]使用支持向量機(jī)先進(jìn)行相位劃分,再預(yù)測(cè)關(guān)節(jié)角位移,3個(gè)關(guān)節(jié)的平均均方根誤差分別為0.20°、0.92°、0.22°,雖然髖關(guān)節(jié)和踝關(guān)節(jié)的均方根誤差要低于本文結(jié)果,但是相位切換處預(yù)測(cè)值有較明顯的波動(dòng),幅度達(dá)到約2°。而下肢康復(fù)外骨骼突然發(fā)生角度較大的波動(dòng)對(duì)患者康復(fù)是十分不利的,甚至?xí)斐蓳p傷。
為了提高下肢康復(fù)外骨骼的性能,本文提出了一種基于DBN的預(yù)測(cè)方法,即建立2層RBM隱含層,利用對(duì)比散度算法進(jìn)行無監(jiān)督預(yù)訓(xùn)練,采用最小均方誤差作為損失函數(shù),通過BP算法來微調(diào)權(quán)重值和偏置值。仿真結(jié)果表明,與LSTM網(wǎng)絡(luò)和BP網(wǎng)絡(luò)相比,基于DBN的預(yù)測(cè)方法具有更好的預(yù)測(cè)效果。本文使用的DBN層數(shù)和神經(jīng)元較少,下一步將增加網(wǎng)絡(luò)層數(shù)和神經(jīng)元,研究大型網(wǎng)絡(luò)的預(yù)測(cè)效果。