徐 盈,藍雯飛,田 鵬
(中南民族大學(xué)計算機科學(xué)學(xué)院,武漢 430074)
當(dāng)前我國現(xiàn)代物流快速發(fā)展,高科技含量的信息技術(shù)與設(shè)備被不斷引入[1],互聯(lián)網(wǎng)技術(shù)的重點還是針對線上產(chǎn)品和系統(tǒng)研發(fā)[2],但配送人員作為物流行業(yè)中最基礎(chǔ)且最重要的一環(huán)卻被大多數(shù)人忽略。針對配送人員在配送過程中的行為活動合理分析可以促進薪酬合理分配,從而提升整個物流環(huán)節(jié)效率。
隨著基于傳感器設(shè)備[3]的人體活動識別的實驗研究越來越多,人體活動識別的應(yīng)用[4]也越來越廣泛??纱┐魇饺梭w傳感器的可擴展性和可用性,使人體活動識別的數(shù)據(jù)采集[5]更加有效和可行,也使數(shù)據(jù)處理更加簡單和可操作?;谝曨l記錄形式的人類活動識別[6-8]逐漸被傳感器記錄數(shù)據(jù)所取代。早期的研究大多基于傳統(tǒng)的機器學(xué)習(xí)[9-11]方法實現(xiàn)活動分類,機器方法使用手工制作的統(tǒng)計特征來識別基于傳感器數(shù)據(jù)的活動,這需要領(lǐng)域?qū)<襾慝@取最相關(guān)的手工制作特征集。近年來深度學(xué)習(xí)技術(shù)飛速發(fā)展,深度學(xué)習(xí)模型可以從原始的傳感器數(shù)據(jù)中自動提取人類活動的抽象特征,有利于準(zhǔn)確分類活動,不同的卷積神經(jīng)網(wǎng)絡(luò)(CNN)[12-13]被設(shè)計用于活動識別。LSTM(long-short term memory)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)的變體,最早由Hochreiter等[14]在1997 年提出。與傳統(tǒng)算法不同,LSTM能夠捕捉數(shù)據(jù)在時間維度上的關(guān)系,LSTM 及相關(guān)算法[15-16]也被應(yīng)用于人類活動識別中。與活動分類相比,對配送人員的能量消耗進行分類也是一項相對較困難的任務(wù)[17-19],因為傳統(tǒng)方法需要昂貴的技術(shù),且用固定的設(shè)備測量。這種測量方法在日常生活中并不實用。
為了解決以上問題,本文提出了一種利用可穿戴傳感器數(shù)據(jù)進行活動類型分類和強度估計的多任務(wù)雙向長短時記憶(Bi-LSTM)模型。與多個模型相比,單一模型的主要優(yōu)點是:可以利用該單一模型同時獲得來自傳感器的同一時間序列數(shù)據(jù)的活動和強度特征;對于移動和可穿戴平臺,單個模型可以減少任務(wù)的執(zhí)行時間和功耗,以識別活動類型和測量強度。
本實驗的數(shù)據(jù)集來自順豐快遞公司的運動狀態(tài)識別測試數(shù)據(jù),共有25 名配送人員參與本實驗。25 名參與者分為五種體型:正常、高、矮、胖和瘦,參與者的情況詳情見表1,活動行為說明見表2。參與者將傳感器戴在手腕上,進行六種不同形式的鍛煉,站、坐、走、跑、上下樓梯,收集參與者在運動過程中的三軸加速度和三軸角速度,信號數(shù)據(jù)采樣頻率為25 Hz。
表1 數(shù)據(jù)集參與者的情況
表2 活動行為說明
在現(xiàn)實生活中,人們做日常的活動如走路、跑步時手臂都會自然地揮動。波峰法[20]通過分析橫向加速度傳感器的數(shù)值,將數(shù)據(jù)波動(波峰)作為一次運動,并根據(jù)一段時間內(nèi)的運動次數(shù)對運動進行評估。由波峰法[20]可知,傳感器佩戴在手腕上位于身體的水平方向,以加速度傳感器的x值為檢測數(shù)據(jù),然后求檢測數(shù)據(jù)每兩點之間斜率,在波峰的左側(cè),斜率大于0;在波峰的右側(cè),斜率小于0,當(dāng)斜率從正變?yōu)樨摃r,則為一個波峰,并視為一次動作。實驗通過統(tǒng)計前進方向的加速度數(shù)據(jù),減少垂直方向的加速度數(shù)據(jù)的影響。在單位時間內(nèi),動作次數(shù)越多,則相對應(yīng)的運動強度等級越高。站立和坐著兩個活動為靜止活動,加速度傳感器的x值不呈規(guī)律性的波動,只是有一些噪聲,故視為同一等級,能量消耗等級為一級。
如圖1所示,橫坐標(biāo)為時間節(jié)點,縱坐標(biāo)為加速度傳感器在水平方向上的數(shù)值。在相同的時間(100 個時間節(jié)點)內(nèi),步行的動作次數(shù)最少,故能量消耗等級為二級。其次是跑步,故跑步動作所消耗的能量等級為三級。上、下樓梯的動作次數(shù)最多,由于上樓梯和下樓梯一般會一起進行,故也視為同一等級,能量消耗等級為四級,能量消耗分級見表3。
圖1 四種不同運動的水平加速度
表3 能量消耗等級
為同時實現(xiàn)對配送人員的活動識別和能量消耗分級,本文設(shè)計了一個基于BiLSTM 深度神經(jīng)網(wǎng)絡(luò)的多任務(wù)模型,模型結(jié)構(gòu)如圖2所示,主要由四部分組成。
圖2 多任務(wù)模型架構(gòu)
(1)輸入層:接收三軸加速傳感器和三軸角速度傳感器數(shù)據(jù)。對數(shù)據(jù)進行歸一化處理,并將數(shù)據(jù)處理成包含2 s 非重疊窗口的三維特征向量(時間步長×樣本數(shù)量×特征數(shù)量)。
(2)共享BiLSTM層:共享BiLSTM層對數(shù)據(jù)進行一系列的線性或非線性變換,使得模型能夠?qū)W習(xí)到時間節(jié)點前后雙向的特征。這些特征在模型的兩個不同分支之間共享,并以一定的Drop?out率反饋給每個分支,以調(diào)節(jié)模型學(xué)習(xí)。
(3)活動分類分支:在圖2 的頂部,通過共享的BiLSTM 層學(xué)習(xí)到的特征,連接到一個完全連接的輸出層,并使用Softmax 獲得類別概率,輸出配送人員的活動分類結(jié)果。
(4)能量分級分支:在圖2 的底部,共享的BiLSTM 層連接到另一個完全連接的層,以一定的Dropout率反饋到下一個輸出層,根據(jù)Softmax獲得類別概率,輸出配送人員的能量分級結(jié)果。
為了更好地學(xué)習(xí)到傳感器數(shù)據(jù)的時序特征,本文模型選擇雙向長短期記憶層(BiLSTM)作為特征提取器,提取配送人員活動過程中的時序特征。
LSTM 內(nèi)部結(jié)構(gòu)圖如圖3 所示。輸入門、遺忘門和輸出門組成LSTM 網(wǎng)絡(luò),遺忘門、輸入門和輸出門分別決定從細胞中遺忘哪些信息、添加新的信息到細胞中以及最終的輸出。
圖3 LSTM內(nèi)部結(jié)構(gòu)
在t時刻,神經(jīng)元各部分運算如下:
在上式中,ht-1為上一時刻隱藏狀態(tài)的輸出,xt為當(dāng)前時刻的輸入,遺忘門、輸入門、候選單元和輸出門的權(quán)值向量依次為Wf、Wi、Wg、Wo,遺忘門、輸入門、候選單元和輸出門的偏置項依次分別為bf、bi、bg、bo,⊙為Hadamard 乘積(向量的元素相乘)。
雙向LSTM 的改進在于,當(dāng)前輸出不僅與之前的信息有關(guān),還與后續(xù)信息有關(guān)。雙向長短時記憶網(wǎng)絡(luò)(BiLSTM)是LSTM 網(wǎng)絡(luò)的改進,它由一個前向LSTM 層和一個后向LSTM 層構(gòu)成,如圖4所示。
圖4 雙向LSTM網(wǎng)絡(luò)結(jié)構(gòu)
在t時刻,BiLSTM層輸出yt的表達式為
相較于LSTM,BiLSTM 可以實現(xiàn)對傳感器數(shù)據(jù)的時序特征的雙向特征學(xué)習(xí),同時學(xué)習(xí)到活動過程中傳感器的內(nèi)部特征,能夠更好學(xué)習(xí)活動識別和能量分級時序數(shù)據(jù)特征之間的相關(guān)性,從而提升準(zhǔn)確率。
本文提出的多任務(wù)模型是通過共享多任務(wù)網(wǎng)絡(luò)的BiLSTM 特征來聯(lián)合訓(xùn)練活動分類和能量消耗等級的?;顒臃诸惡湍芰肯木W(wǎng)絡(luò)的部分都有單獨的分支,它們共享由BiLSTM 層提取的相同特征,以預(yù)測每種類型的輸出。由于兩個任務(wù)都是分類任務(wù),故我們將BiLSTM 層輸出的K 維特征向量通過兩個不同的全連接層連向兩個不同的輸出。兩個分類的損失函數(shù)都是由Keras庫中提供的分類交叉熵損失函數(shù)確定的。
損失函數(shù)計算了真實值yi和預(yù)測值之間的誤差。損失函數(shù)的值越小,表示模型預(yù)測的結(jié)果越準(zhǔn)確。為了改善模型可能出現(xiàn)的過擬合現(xiàn)象,引入了隨機丟棄部分神經(jīng)元結(jié)點方法(Dropout方法),避免訓(xùn)練得到的模型過于復(fù)雜。
本實驗使用深度學(xué)習(xí)框架搭建了基于多任務(wù)雙向LSTM 的人類活動識別和能量消耗模型,并使用實驗數(shù)據(jù)集得出模型的精確度。實驗在macOS Big Sur11.5.2 操作系統(tǒng)完成,代碼運行環(huán)境為Python 3.7,計算機處理器為1.8 GHz 雙核Intel Core i5,內(nèi)存為8 GB。
實驗首先通過訓(xùn)練數(shù)據(jù)集的一個子集,即選取測試人員N1 數(shù)據(jù)進行訓(xùn)練來判斷BiLSTM層的記憶細胞數(shù)量對結(jié)果的影響,并找出最佳記憶細胞數(shù)。測試人員N1 在不同參數(shù)下的準(zhǔn)確率和F1 值見表4。精準(zhǔn)率、召回率和F1 值的計算分別公式為
表4 測試人員N1在不同參數(shù)下的準(zhǔn)確率和F1值
其中,TP為預(yù)測答案正確的樣本數(shù)量,F(xiàn)P為錯將其他類預(yù)測為本類的樣本數(shù)量,F(xiàn)N為本類標(biāo)簽預(yù)測為其他類標(biāo)的樣本數(shù)量。
如表4所示,分類任務(wù)中最不成功的模型是細胞數(shù)量為16 的BiLSTM 網(wǎng)絡(luò),因為它無法捕獲區(qū)分特征,而對于細胞數(shù)量為64 的BiLSTM網(wǎng)絡(luò),因為它變得相對復(fù)雜,無法使用當(dāng)前數(shù)據(jù)集進行訓(xùn)練。最成功的模型是通過細胞數(shù)量為16 的BiLSTM 網(wǎng)絡(luò)層獲得的,因為不論是對于活動類型任務(wù)還是能量消耗任務(wù),它在訓(xùn)練和測試集中都達到了最高的精度。故設(shè)置模型BiLSTM 網(wǎng)絡(luò)層的細胞數(shù)量為48,批處理大小為128,訓(xùn)練迭代次數(shù)為100,初始學(xué)習(xí)率設(shè)置為0.001,學(xué)習(xí)率下降因子設(shè)置為0.1。
多任務(wù)CNN、多任務(wù)LSTM 模型和多任務(wù)BiLSTM 模型通過訓(xùn)練集進行訓(xùn)練,三個模型訓(xùn)練過程中兩個不同任務(wù)的準(zhǔn)確率和損失值曲線如圖5所示,模型訓(xùn)練過程的活動識別和能量消耗分級準(zhǔn)確率曲線分別如圖5(a)、5(b)所示,橫坐標(biāo)為迭代次數(shù),縱坐標(biāo)分別為人體活動的識別準(zhǔn)確率和能量分級的分級準(zhǔn)確率。模型訓(xùn)練過程的活動識別和能量消耗分級的損失值曲線分別如圖5(c)、5(d)所示。橫坐標(biāo)為迭代次數(shù),縱坐標(biāo)分別為訓(xùn)練過程中活動識別和能量分級的損失值。
從圖5(a)和5(b)中可以看出,多任務(wù)BiL?STM 模型活動分類準(zhǔn)確率達到穩(wěn)定狀態(tài)所需時間最短,而多任務(wù)LSTM 和多任務(wù)CNN 的準(zhǔn)確率達到穩(wěn)定狀態(tài)需花較長時間,且隨著迭代次數(shù)增加,多任務(wù)BiLSTM 模型的分類準(zhǔn)確率穩(wěn)步上升為三個模型中的最高值。
從圖5(c)和5(d)中可以看出,多任務(wù)BiL?STM 以最短的時間使訓(xùn)練集損失函數(shù)值達到接近0的穩(wěn)定狀態(tài),且隨著迭代次數(shù)增加,多任務(wù)BiLSTM 模型的損失值穩(wěn)步降低到三個模型中的最小值。
圖5 多任務(wù)模型訓(xùn)練過程性能曲線
表5 所示多任務(wù)CNN、多任務(wù)LSTM 和多任務(wù)BiLSTM 模型的性能對比,無論是在活動分類還是能量分級任務(wù)中,多任務(wù)BiLSTM 的表現(xiàn)都是最好的。
表5 多任務(wù)LSTM模型、多任務(wù)CNN、多任務(wù)BiLSTM模型性能對比
本文通過可穿戴傳感器設(shè)備對配送人員的日?;顒舆M行記錄和跟蹤,且提出了一個多任務(wù)模型對配送人員進行活動分類和能量消耗分級。經(jīng)實驗,多任務(wù)BiLSTM 模型的分類結(jié)果準(zhǔn)確,對能量消耗等級的劃分也合理。在未來的工作中,我們計劃利用受試者相關(guān)的信息改進模型,以實現(xiàn)更高的活動性分類和能量消耗分級精度,從而改進現(xiàn)有的配送酬勞分配方式。