梅雪峰 趙禮峰
(南京郵電大學(xué)理學(xué)院 南京 210023)
手勢識別廣泛應(yīng)用于各類人機(jī)交互場景中,在購物、居家、醫(yī)療等領(lǐng)域發(fā)揮著重要的作用。手勢識別按照其完成的模式主要分為兩大類:基于計算機(jī)視覺的手勢識別和基于體感控制器的手勢識別[1]。近年來,采用肌肉傳感器的手勢識別方法正逐步普及,可穿戴臂環(huán)使用傳感器獲取人體表面肌電信號(surface electromyography,sEMG),將處理后的信號數(shù)據(jù)傳輸至模型進(jìn)而完成手勢識別過程[2]。Naik G R 等[3]使用采集的sEMG 數(shù)據(jù)提取各維度特征,采用支持向量機(jī)等方法進(jìn)行手勢動作的模式分類;陳香等[4]提出采用隱馬爾可夫模型對肌電信號完成識別,最終分類器的準(zhǔn)確率達(dá)到94%;張碩[5]使用KNN 與其他算法組合的方法研究這類問題,需要根據(jù)不同情形調(diào)整優(yōu)化組合模型。謝小雨等[6]使用DTW 算法構(gòu)建模型實現(xiàn)肌電信號的手勢識別,準(zhǔn)確率達(dá)到96.09%。此外,還有學(xué)者使用其它流行算法實現(xiàn)手勢識別[7~9],如卷積神經(jīng)網(wǎng)絡(luò)、長短期記憶網(wǎng)絡(luò)以及兩者相互融合的方式,所得模型的穩(wěn)定性高且能夠達(dá)到較高準(zhǔn)確率,廣泛應(yīng)用于各類場景中。
梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)是一種經(jīng)典的迭代決策樹算法[10],將決策樹與集成學(xué)習(xí)思想進(jìn)行了有效結(jié)合。高效實現(xiàn)GBDT 的框架有XGBoost、pGBRT 等[11~12],但是在數(shù)據(jù)量增大且特征維度較高時,多數(shù)GBDT 算法會出現(xiàn)訓(xùn)練效率低、準(zhǔn)確率下降的現(xiàn)象。為解決傳統(tǒng)算法需要手動提取數(shù)據(jù)片段以及訓(xùn)練效率低的問題,本文采用改進(jìn)的肌電信號數(shù)據(jù)采集和處理方式,使用LightGBM 算法對表面肌電信號數(shù)據(jù)完成手勢動作分類,能夠在進(jìn)一步提升sEMG 手勢識別準(zhǔn)確率的同時,顯著提升模型的訓(xùn)練效率。
LightGBM 是由GBDT經(jīng)過改進(jìn)的框架,采用直方圖算法尋找最優(yōu)分割點,為提升遍歷數(shù)據(jù)的方式并且更好的應(yīng)對高維數(shù)據(jù)處理場景,使用兩種改進(jìn)性能的算法:基于梯度的單側(cè)采樣(Gradient-based One-Side Sampling,GOSS)和互斥特征捆綁(Exclusive Feature Bundling,EFB)。
按照決策樹理論中信息增益的定義,梯度越大(即訓(xùn)練不充分)的樣本所提供增益會更高[13]。GOSS算法采用過濾掉部分?jǐn)?shù)據(jù)并保留少量數(shù)據(jù)的方式,保存所有大梯度樣本,在小梯度樣本上進(jìn)行隨機(jī)采樣。為消除減少的部分樣本對整體數(shù)據(jù)分布的影響,GOSS 在計算小梯度樣本的信息增益時會引入一個系數(shù)來平衡數(shù)據(jù)分布[14]。
GOSS 算法按照各樣本的梯度絕對值降序排列,假設(shè)大梯度樣本所占比率為a,小梯度樣本所占比率為b,在整個樣本集上篩選出前a×100%的樣本構(gòu)成大梯度子集A,隨后再從其余樣本中隨機(jī)選出b×100%構(gòu)成小梯度子集B。GOSS 算法對子集B的梯度和乘以平衡常數(shù)(1-a)/b,用于補償采樣對原始數(shù)據(jù)分布的影響,則在子集A∪B上第j個特征位于點d處的信息增益如式(1):
高維數(shù)據(jù)的分布通常非常稀疏,在稀疏特征空間中許多特征是互斥的,即它們幾乎不會同時取非零值,而在絕大數(shù)情況下都同時取零。在這類稀疏特征空間下,通過設(shè)計一種近乎無損的方法來降低特征數(shù),并不會對數(shù)據(jù)集的信息完整性造成影響。
EFB 算法可將眾多互斥特征捆綁到更少的密集特征束上,能夠有效避免零特征值的不必要計算,從而構(gòu)造出與單個特征相似程度高的特征直方圖,降低計算復(fù)雜度。在LightGBM 算法中,EFB 要對互斥特征進(jìn)行合并操作,將判定為互斥的特征合并成一個特征,找到最優(yōu)互斥特征捆綁是一個NP難問題[15],EFB 算法把互斥特征捆綁到一起,形成稠密特征束。
直方圖算法對特征值進(jìn)行裝箱處理,在訓(xùn)練前先把特征值轉(zhuǎn)化為桶,也就是把每個特征的取值分成若干個分段函數(shù)。對于連續(xù)型特征,直方圖算法的基本思想是先把特征值離散化為m個整數(shù)序列,然后將序列依次編號為0,1,…,m-1,構(gòu)造成類似于m個“桶”的直方圖[16]。對于離散型特征,可將其編碼為對應(yīng)特征值,如果取值個數(shù)n多于設(shè)定的桶數(shù)量m,則將數(shù)量較少的特征值合并;如果n≤m,則將n個特征值作為n個桶。圖1展示了分桶過程,與GBDT 中需要遍歷所有特征值數(shù)據(jù)的策略相比,這里只需遍歷分桶后直方圖的值。
圖1 直方圖算法的分桶過程
LightGBM 采用改進(jìn)的直方圖算法,EFB 算法捆綁互斥特征來減少特征數(shù),完成對互斥特征的合并處理;使用GOSS算法保存大梯度樣本,隨機(jī)選取小梯度樣本,在降低每次迭代樣本數(shù)的同時更關(guān)注訓(xùn)練不足的樣本。LightGBM 屬于決策樹集成模型,能夠在不降低精度的情況下顯著提升運算速度,適合處理高維數(shù)據(jù)。
基于決策樹的大多數(shù)學(xué)習(xí)算法都是采用按層分裂的策略(Level-wise)生長樹,根據(jù)某個判斷條件輸出“滿足條件”和“不滿足條件”分出左右子樹,每個結(jié)點不斷重復(fù)向下生長。LightGBM 使用按葉子分裂(Leaf-wise)的結(jié)點分裂方式,找出每一層所有結(jié)點中信息增益最大的單個結(jié)點進(jìn)行分裂并依次循環(huán)下去。在分裂次數(shù)相同的情況下,按葉子分裂能夠比按層分裂減少更多的損失。但是當(dāng)數(shù)據(jù)量較少的時候,按葉子分裂生長策略可能會造成過擬合,為合理解決這個問題,LightGBM 通過限制樹的最大深度來減少過擬合的出現(xiàn)。
為提升以往人工提取手勢動作特征數(shù)據(jù)的效率,本次實驗數(shù)據(jù)來自于開源設(shè)計的MYO 臂環(huán)采集的8通道sEMG數(shù)據(jù)。由圖2所示,MYO臂環(huán)由8片與皮膚表面貼合的傳感器構(gòu)成,每個傳感器都能夠測量表層以下肌肉活動的電信號,具備精度高、功耗低、觸感良好的優(yōu)勢。實驗數(shù)據(jù)采集過程中手臂上的8 個MYO 臂環(huán)傳感器會按時間先后分別傳送8 個節(jié)點的信號,然后需要按照時間順序?qū)@8個節(jié)點數(shù)據(jù)做扁平化處理,使其展開為具有64 維特征的sEMG數(shù)據(jù)。
圖2 MYO臂環(huán)
本數(shù)據(jù)集一共有11678 條記錄,數(shù)據(jù)集中共有四類手勢動作,分別為伸食指和小拇指(簡稱為Rock)、剪刀手、五指伸展和OK 手勢。四類手勢動作樣本標(biāo)簽分布較為均勻,經(jīng)扁平化處理后數(shù)據(jù)集中共有64 維sEMG 特征,用數(shù)字0~3 分別代表四種動作。如圖3(a)所示,波形數(shù)據(jù)表示同一個動作由8 通道傳感器捕獲到的表面肌電信號,橫坐標(biāo)為時間序列點數(shù),縱坐標(biāo)為sEMG 的幅度;圖3(b)表示同一個傳感器在8 個時間結(jié)點上的波動幅度。根據(jù)波動特征發(fā)現(xiàn),在采集到的8 通道肌電數(shù)據(jù)段中,各個傳感器傳送的電信號反映各個維度上肌肉活動的差異,呈現(xiàn)出不同的波動形狀和幅度,而單個傳感器的電信號在各個時間點上波動幅度相近,隨時間呈現(xiàn)規(guī)律性變化。數(shù)據(jù)集中除了少數(shù)信號波動異常之外,整個sEMG 數(shù)據(jù)的波動規(guī)律符合實驗預(yù)期。
圖3 sEMG波動檢測圖
本實驗在計算機(jī)配置為Intel? Core ?i5-8300H CPU、內(nèi)存8G、NVIDIA GTX1050TI、Windows 10 操作系統(tǒng)下運行,編程軟件為Python3.7。從數(shù)據(jù)集中隨機(jī)選出80%的樣本作為訓(xùn)練集,剩下20%樣本作為測試集,對于存在的少數(shù)異常值不作處理,在數(shù)據(jù)集中保留適當(dāng)噪聲,使模型具備適應(yīng)噪聲的能力。由于各個通道的數(shù)據(jù)在規(guī)格上存在差異,因此需要對特征值做標(biāo)準(zhǔn)化處理,經(jīng)過特征縮放使得某些特征的比例差異不會影響到預(yù)測結(jié)果。
在訓(xùn)練sEMG 手勢識別模型時要調(diào)整LightGBM 的各項參數(shù),該過程采用五折交叉驗證和網(wǎng)格搜索相結(jié)合的方式尋找最優(yōu)參數(shù),經(jīng)過反復(fù)試驗,表1列出了LightGBM的核心參數(shù)調(diào)優(yōu)結(jié)果。
表1 LigthGBM核心參數(shù)調(diào)優(yōu)結(jié)果
在模型的訓(xùn)練和測試中,圖4 展示了訓(xùn)練集和測試集上AUC(Area Under Curve)指標(biāo)隨迭代次數(shù)增加而逐漸增大的趨勢,AUC 值越大代表模型的整體性能越好,當(dāng)?shù)螖?shù)大于1000 次時,兩條曲線的AUC 值已經(jīng)趨于穩(wěn)定。圖5 為均方根誤差(RMSE)隨著迭代次數(shù)增加而逐漸降低的過程,訓(xùn)練集和測試集上的損失不斷下降,沒有發(fā)現(xiàn)過擬合現(xiàn)象,迭代超過一定次數(shù)后RMSE 在測試集上已經(jīng)基本穩(wěn)定。
圖4 AUC變化曲線
圖5 RMSE變化曲線
為檢驗sEMG 手勢識別模型在測試集上的表現(xiàn)性能,表2 展示了測試集上手勢識別分類結(jié)果的混淆矩陣。根據(jù)實驗結(jié)果,四類手勢動作的平均識別率達(dá)到了97.13%,基本都保持在較高的準(zhǔn)確率。Rock 手勢的識別準(zhǔn)確率達(dá)到98.62%,在單個手勢中表現(xiàn)效果最好;在預(yù)測五指伸展動作時誤差稍高,在后續(xù)研究中可進(jìn)一步優(yōu)化,總體上手勢動作都保持在較高的識別準(zhǔn)確率。在本文關(guān)注的計算性能方面,LightGBM 由于經(jīng)過各個維度上優(yōu)化算法的改進(jìn),一共只消耗8.26s的訓(xùn)練時間,能夠達(dá)到97.13%的準(zhǔn)確率,這要優(yōu)于傳統(tǒng)的GBDT 算法。通過實驗結(jié)果驗證,LightGBM 不僅取得較高精度,而且提升了訓(xùn)練效率。
表2 手勢動作識別的混淆矩陣
本文采用表面肌電信號手勢識別數(shù)據(jù)集,提出使用LightGBM 算法完成手勢識別模型的構(gòu)建,取得良好的實驗結(jié)果。LightGBM 具有訓(xùn)練速度快、預(yù)測效果好、占用內(nèi)存少和穩(wěn)定性高的優(yōu)點。在實際場景中采集到的sEMG 數(shù)據(jù)經(jīng)常存在特征維度大、噪聲復(fù)雜以及容易在不同個體上產(chǎn)生差異的現(xiàn)象,LightGBM 分類模型可以很好地克服這些問題,對于手勢識別的應(yīng)用具有重要研究價值。
雖然基于LightGBM 的手勢識別模型在分類效果和運算性能上得到一定提升,但在準(zhǔn)確率方面還有進(jìn)一步的提升空間,可考慮將LightGBM 與其他算法融合,提升在噪聲處理方面的優(yōu)勢,讓模型具有更好的表現(xiàn)。