武 一 田小森 張朝旭
(河北工業(yè)大學電子信息工程學院 天津 300400)
人體行為識別是人工智能與模式識別領(lǐng)域內(nèi)一個熱門研究方向,在智能家居、智慧醫(yī)療和體育競技等領(lǐng)域都有著廣泛應(yīng)用[1-2]。人體行為識別主要分為基于視頻的人體行為識別和基于傳感器的人體行為識別兩個方向[3-4]。相對于視頻攝像頭,移動或可穿戴傳感器具有普遍、不顯眼、廉價、易用等諸多優(yōu)點,因此,基于傳感器數(shù)據(jù)的行為識別擁有更加廣泛的應(yīng)用場景[3]。
在深度學習興起之前,人體行為識別主要采用的是傳統(tǒng)機器學習的方法,包括決策樹[5]、支持向量機[6]、貝葉斯[7]、隱馬爾可夫[8]等算法,這種方法需要通過人工選取時域特征或頻域特征來進行行為分類。然而人工特征提取對研究者的經(jīng)驗要求比較高,模型通用性較差,在復(fù)雜的行為中,依靠人工提取特征將會是件很困難的事情。
隨著深度學習的快速發(fā)展,越來越多的深度學習算法被運用到基于傳感器的行為識別領(lǐng)域。文獻[9]使用卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)來對傳感器數(shù)據(jù)進行卷積特征提取分析,該方法能夠從傳感器數(shù)據(jù)中提取平移不變性的局部特征,但不能夠捕捉原始傳感器數(shù)據(jù)中的時間依賴關(guān)系;文獻[10]采用長短時記憶網(wǎng)絡(luò)(Long short Term Memory,LSTM)對傳感器時序信號進行特征提取,能夠?qū)鞲衅餍盘栠M行有效的時序特征提取,但網(wǎng)絡(luò)訓練參數(shù)過多,在提升網(wǎng)絡(luò)擬合能力時增加網(wǎng)絡(luò)層數(shù),將會導(dǎo)致網(wǎng)絡(luò)性能降低[11];文獻[12]將卷積神經(jīng)網(wǎng)絡(luò)和長短時記憶網(wǎng)絡(luò)進行串行連接,能夠提取復(fù)雜活動的細節(jié)特征,具有較強的擬合能力,但前層卷積操作使得長短時記憶網(wǎng)絡(luò)不能充分發(fā)揮對原始數(shù)據(jù)時序特征提取的作用;文獻[13]將卷積神經(jīng)網(wǎng)絡(luò)和長短時記憶網(wǎng)絡(luò)進行并行連接,提出了全卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(Long short Term Memory Fully Convolution Network, LSTM-FCN),卷積操作能夠很好地提取局部特征,同時長短時記憶網(wǎng)絡(luò)能夠很好地發(fā)揮整體時序特征提取的功能,但在卷積局部特征提取過程中,由于卷積核尺寸固定,導(dǎo)致不能充分提取局部特征。
本文對LSTM-FCN算法進行改進,并提出新的算法模型GRU-InFCN,改進后的模型在時序信號分類問題上有著高的準確率和高的魯棒性,并成功地在開源的行為識別數(shù)據(jù)集(HAR)上進行驗證。
深度學習算法近年來才成長起來的,其中卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)是深度學習算法中的兩種主流算法,本文提出的算法模型主要是基于兩種算法的改進與融合。
卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),本質(zhì)在于構(gòu)建多個能夠提取數(shù)據(jù)特征的濾波器。其中卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心,卷積層的輸入為前一層的特征圖,通過卷積核來對部分區(qū)域加權(quán)求和,求和后的值通過非直線激勵函數(shù)映射得到每個神經(jīng)節(jié)點的特征值,如式(1)所示:
(1)
圖1 GRU計算單元結(jié)構(gòu)圖
整個計算公式如下:
rt=σ(Wr·[ht-1,xt]+br)
(2)
zt=σ(Wz·[ht-1,xt]+bz)
(3)
(4)
(5)
yt=σ(Wo·ht)
(6)
式中:rt和zt分別表示重置門和更新門的輸出;ht為GRU單元的輸出;σ表示非線性函數(shù);xt表示GRU單元的輸入;W表示GRU內(nèi)部計算單元間的權(quán)重參數(shù);b表示偏置。
Inception是GoogLeNet中多尺度特征融合模塊,該模塊創(chuàng)新性在于通過多尺度的卷積核對同一個輸入進行卷積計算,再將計算結(jié)果進行拼接。整個Inception結(jié)構(gòu)如圖2所示,針對同一個輸入,依次進行1×1的卷積、1×1和3×3的串聯(lián)卷積、1×1和5×5的串聯(lián)卷積層、3×3的池化串聯(lián)1×1的卷積,隨后將上述四個部分的計算結(jié)果通過維度拼接,作為整個Inception模塊的輸出。
圖2 GoogleNet的Inception模塊
在GoogleNet之前的VGG16模型提出采用多層小尺寸卷積層的串聯(lián)來代替大尺寸的卷積層,能夠減少模型參數(shù),提高模型中的非線性因子,提高模型的擬合能力。GoogleNet中的Inception也采用了小尺度卷積層的串聯(lián)結(jié)構(gòu),同時Inception多種尺度的卷積通過不同的感受野去提取同一輸入的特征,能夠更充分地提取圖像特征。
本文提出的GRU-InFCN深度模型是在文獻[13]中LSTM-FCN模型的基礎(chǔ)上引入改進的Inception模塊,算法模型結(jié)構(gòu)如圖3所示。
圖3 GRU-InFCN結(jié)構(gòu)圖
GRU-InFCN由GRU模塊和引入Inception結(jié)構(gòu)的全卷積神經(jīng)網(wǎng)絡(luò)模塊InFCN并行連接而成。在數(shù)據(jù)輸入后,分別進入GRU模塊和InFCN模塊,GRU模塊是由兩個GRU層連接而成,InFCN模塊是由兩個Inception模塊后面連接一個全局池化層。Concat操作是指將兩個數(shù)組進行連接,兩個模型的輸出特征矩陣在Concat結(jié)構(gòu)中進行維度拼接,再使用Softmax分類器對拼接后的特征進行分類。其中InFCN模塊中的全局池化層,能夠很好地消除由噪聲擾動帶來的誤判,同時全局池化層的使用使得特征圖到特征向量的轉(zhuǎn)換更加簡單,避免了使用全連接層帶來的大量參數(shù)導(dǎo)致模型過擬合的問題。
在傳感器數(shù)據(jù)時序特征提取上,本文采用的是雙層GRU網(wǎng)絡(luò)結(jié)構(gòu),GRU網(wǎng)絡(luò)通過引入更少參數(shù)的門控單元,減小了LSTM的計算復(fù)雜度。在文獻[14]中對LSTM和GRU進行對比分析,指出GRU和LSTM均能克服傳統(tǒng)RNN梯度消失的問題,且在處理長序列依賴問題上效果均優(yōu)于傳統(tǒng)RNN算法。除此之外,GRU在時間效率上表現(xiàn)優(yōu)于LSTM,本文通過算法驗證,結(jié)果符合文獻[15]中的結(jié)論,所以本文設(shè)計的模型中選用雙層GRU結(jié)構(gòu)來替代LSTM-FCN中的LSTM網(wǎng)絡(luò),作為整體時序特征提取的循環(huán)神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)有利于提升整個模型的訓練和預(yù)測時間性能。
傳感器數(shù)據(jù)是由多個一維時序數(shù)據(jù)并行排列而成,一維卷積能夠很好地實現(xiàn)傳感器數(shù)據(jù)局部特征提取[15],本文將GoogLeNet的Inception模塊進行擴展到一維卷積增強對傳感器數(shù)據(jù)的特征提取,擴展的Inception模塊結(jié)構(gòu)如圖4所示。每個擴展后的Inception模塊由長度為1的一維卷積層、長度為1的一維卷積層串聯(lián)長度為3的一維卷積層、長度為1的一維卷積層串聯(lián)長度為5的一維卷積層、長度為3的一維卷積層串聯(lián)長度為1的一維卷積層等四個部分并聯(lián)而成。
圖4 本文擴展的Inception模塊
整個結(jié)構(gòu)中采用不同長度的卷積核對特征圖進行卷積計算,提取了不同尺度的特征信息,同時長度為1的一維卷積并聯(lián)連接還能起到殘存連接的效果,緩解了因網(wǎng)絡(luò)層數(shù)增加造成梯度消失和網(wǎng)絡(luò)退化等問題。Inception模塊中的Convld子模塊均采用了Batch Normalization和ReLU激活函數(shù)。Inception模塊的輸出是四個子模塊的輸出在向量維度上的拼接。
為了驗證基于GRU-InFCN的人體行為識別算法的性能,在Intel Core i7-7700HQ CPU,NVIDIA GTX 1080 GPU的電腦硬件基礎(chǔ)上,使用Ubuntu16.04作為操作環(huán)境,使用Keras2.0、Tensorflow搭建學習網(wǎng)絡(luò),編程語言為Python3.6,使用主要庫函數(shù)包括numpy、sklearn、matplotlib等。
本文使用的傳感器數(shù)據(jù)來自加州大學的開源的HAR數(shù)據(jù)集,該數(shù)據(jù)是通過Samsung Galaxy SII智能收集內(nèi)置的傳感器采集的,包括30個19~48歲志愿者完成六項人類日?;顒舆^程中采集到的數(shù)據(jù),采樣頻率為50 Hz,滑動窗口長度為128,共計采集10 929個樣本。傳感器包括三軸加速度計和三軸陀螺儀,動作包括常見的步行、上樓、下樓、坐、站立和躺下6類。按照樣本比例將數(shù)據(jù)集劃分為訓練集、驗證集和測試集,分別為5 514、2 018和2 947個樣本,各動作樣本分布情況如表1所示。
表1 HAR數(shù)據(jù)集樣本分布情況表
對本文提出的GRU-InFCN模型評估主要從三個方面進行,對比其他文獻中的識別準確率來進行模型識別效果分析、分析該模型結(jié)構(gòu)設(shè)計的必要性和分析該模型的適應(yīng)性。針對以上三個方面的評估方法設(shè)計了以下實驗:
(1) GRU-InFCN模型人體行為識別評估實驗。本文提出的網(wǎng)絡(luò)模型結(jié)構(gòu)為表2中的GRU-InFCN模型,表中GRU-FCN和GRU-InFCN是并行連接網(wǎng)絡(luò),且每一行的結(jié)構(gòu)表示并行網(wǎng)絡(luò)中的一個分支,表中w-n表示卷積核尺寸為w和數(shù)量為n。對網(wǎng)絡(luò)模型進行訓練,對訓練過程中模型的擬合程度進行分析,然后在測試集上對模型行為識別效果進行分析。
表2 不同的網(wǎng)絡(luò)模型結(jié)構(gòu)
續(xù)表2
(2) GRU-InFCN模型結(jié)構(gòu)設(shè)計必要性驗證實驗。通過對該模型子結(jié)構(gòu)中的單結(jié)構(gòu)模型或組合結(jié)構(gòu)模型進行模型訓練與測試,各種網(wǎng)絡(luò)結(jié)構(gòu)模型如表2所示。設(shè)計對比的網(wǎng)絡(luò)中有:單結(jié)構(gòu)模型,如CNN、InFCN、雙層GRU;組合結(jié)構(gòu)模型,如CN-GRU、InFCN-GRU、并行LSTM-FCN和并行GRU-InFCN網(wǎng)絡(luò)(本文模型)。得到各模型行為識別準確率,分析對比不同模型在測試集上的識別準確率。
(3) GRU-InFCN模型適應(yīng)性驗證實驗,使用不同的傳感器數(shù)據(jù)集來訓練該模型,通過測試訓練后的模型來對該模型的適應(yīng)性做出評估。
為了消除模型優(yōu)化方法和超參數(shù)對模型結(jié)果帶來的干擾,3.2節(jié)設(shè)計的實驗中,各模型目標函數(shù)均采用交叉熵損失,目標函數(shù)優(yōu)化器均為adam,分類器均采用Softmax,初始學習率均是從0.01開始,每3 000次迭代衰減一次,每次衰減為衰減前的,dropout為0.5,最大遍歷次數(shù)為1 000。
(1) GRU-InFCN模型人體行為識別評估實驗結(jié)果分析,圖5是模型訓練過程中訓練集、驗證集的損失曲線與準確率曲線,驗證集的損失曲線和訓練集的損失曲線相差較小,驗證集的準確率曲線和訓練集的準確率曲線基本重合,說明該模型不存在明顯的過擬合現(xiàn)象,很好地擬合了人體行為識別的復(fù)雜函數(shù)。
圖5 訓練損失曲線和正確率曲線
表3是由測試數(shù)據(jù)生成的混淆矩陣,其中各動作識別準確率都在94%以上,步行、下樓、上樓、躺下四類動作準確率均在99%以上,且平均準確率達到了97.76%,步行和躺下兩種動作召回率達到了100%,這兩種動作特征與其他動作特征差距明顯,模型有效地提取出這些特征,并實現(xiàn)有效特征分類。坐和站立兩種動作的識別準確率和召回率均低于其他四類動作,其主要原因在于兩種靜止狀態(tài)的動作特征差異小,傳感器捕捉的信息不足以對兩種動作進行精確的分類。
表3 HAR數(shù)據(jù)集人體行為識別混淆矩陣
上述實驗結(jié)果與其他文獻中方法在HAR數(shù)據(jù)集上的結(jié)果進行對比,表4是文獻方法和本文實驗2中各模型準確率對比,可以看出,本文提出的算法模型有著較高的優(yōu)越性。
表4 不同方法的平均準確率
GRU-InFCN模型人體行為識別評估實驗結(jié)果說明,該模型在HAR數(shù)據(jù)集上能夠充分提取人體行為特征,并實現(xiàn)有效的人體行為識別。該模型避免了人為特征選取的復(fù)雜工作,自動完成復(fù)雜特征提取,且能達到高的識別正確率。
(2) GRU-InFCN模型結(jié)構(gòu)設(shè)計必要性驗證實驗,按照表2中各算法進行模型搭建,將模型結(jié)果與本文提出的模型進行平均準確率對比。表4給出了各模型的準確率。首先對比CNN、雙層GRU、InFCN等結(jié)構(gòu),表4中的大部分混合模型優(yōu)于單算法模型,混合算法對傳感器時間序列特征提取更充分;再對比文獻[13]中提出的GRU-FCN算法,可以看出引入Inception模塊后的GRU-InFCN取得了更好的行為分類效果,Inception模塊能夠用多個卷積尺度對時間序列進行局部特征提取,使得特征提取更充分;對比串行InFCN-GRU算法,并行的GRU-InFCN結(jié)構(gòu)在HAR數(shù)據(jù)集上能夠達到更好的識別效果,前層卷積神經(jīng)網(wǎng)絡(luò)使得GRU不能從原始傳感器序列中充分提取整體時間序列特征。結(jié)合文獻[13]中并行LSTM-FCN算法的實驗驗證,可以看出并行結(jié)構(gòu)在時間序列分類上能夠取得很好的分類效果。
GRU-InFCN模型設(shè)計中各模塊的必要性驗證實驗結(jié)果說明,通過CNN和GRU混合模型的算法可以一定程度上提升模型的性能,將Inception結(jié)構(gòu)擴展到一維卷積處理也能起到提升網(wǎng)絡(luò)特征提取的能力,此外并行結(jié)構(gòu)在時間序列分類中能夠取得很好的分類效果。
(3) GRU-InFCN模型的適應(yīng)性驗證實驗分析,選取數(shù)據(jù)格式相近的無線傳感器人體行為識別數(shù)據(jù)集(Wireless Sensor Data Ming, WISDM),WISDW數(shù)據(jù)集是由三種不同手機中內(nèi)置的傳感器采集36個志愿者的日常行為數(shù)據(jù),總計10 981個數(shù)據(jù)樣本,按照樣本比例劃分訓練集、驗證集、測試集,分別有6 176、2 059、2 746個樣本。使用WISDM數(shù)據(jù)集對GRU-InFCN模型進行訓練、測試,測試得到的混淆矩陣見表5,平均準確率達到了99.09%,說明本文提出的GRU-InFCN模型在基于傳感器數(shù)據(jù)的行為識別問題上具有良好的適應(yīng)性。
表5 WISDM數(shù)據(jù)集人體行為識別混淆矩陣
本文提出了一種并行的GRU-InFCN模型,并成功將該模型運用到人體行為識別問題中。該模型將具有整體時間序列特征提取能力的GRU網(wǎng)絡(luò)和具有局部時間序列特征提取的一維卷積神經(jīng)網(wǎng)絡(luò)并行連接,并在一維卷積模塊引入基于一維擴展的Inception結(jié)構(gòu)。設(shè)計實驗對該網(wǎng)絡(luò)提取傳感器時間序列特征的能力進行驗證,實驗結(jié)果證明該模型對時間序列的特征提取能力優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)以及這兩種網(wǎng)絡(luò)的其他組合模型。該模型避免了復(fù)雜的特征工程,并在HAR數(shù)據(jù)集上獲得了更高的識別準確率97.76%,同時通過實驗證明,該模型在其他類似的傳感器信號數(shù)據(jù)集上也有著很好的分類能力。在傳感器行為識別問題上,該模型具有很好的分類準確性和適應(yīng)性。