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