黃夢華
(華北理工大學(xué),唐山063200)
隨著生活水平的提高,智能手機(jī)已經(jīng)成為人們必不可少的工具,再加上手機(jī)傳感器的發(fā)展,基于手機(jī)傳感器識別人體活動[2-3]有著重要的意義,在運(yùn)動追蹤、生活日志記錄、跌倒檢測中有著廣泛的應(yīng)用。
傳統(tǒng)的人類活動識別可以看作是模式識別,大多數(shù)方法依賴于人工手動提取淺層特征,這種方法通常受到人為領(lǐng)域知識的限制,會導(dǎo)致識別準(zhǔn)確率低并且可泛化性低。由于這些原因,傳統(tǒng)的模式識別方法在精度和泛化性上受到了一定的限制。
近年來,深度學(xué)習(xí)在各個領(lǐng)域都表現(xiàn)出優(yōu)秀的能力。與傳統(tǒng)的模式識別方法不同,深度學(xué)習(xí)可以極大的減輕設(shè)計特征的工作量,并且可以通過訓(xùn)練端到端的神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)更多高級和有意義的特征。此外,深層網(wǎng)絡(luò)結(jié)構(gòu)更適合無監(jiān)督學(xué)習(xí)。所以在人類活動識別方法中應(yīng)用深度學(xué)習(xí)是非常合適的。
人類活動識別在人們的日常生活中有著重要的作用,它能夠從原始的傳感器信號中識別出關(guān)于人類的行為活動,在各個領(lǐng)域有著廣泛的應(yīng)用,如醫(yī)療保健、老年人護(hù)理、健身追蹤等。隨著智能手機(jī)[4-5]和智能穿戴的發(fā)展,越來越多的傳感器應(yīng)用到其中,這些傳感器能夠捕捉到豐富的人體運(yùn)動數(shù)據(jù),只要用戶攜帶上手機(jī)或者智能穿戴設(shè)備,傳感器就能記錄大量的用戶活動,通過分析其中的加速度和陀螺儀數(shù)據(jù),就可以進(jìn)行活動的識別,這一方面已經(jīng)有了一定的研究。
對于連續(xù)的傳感器信號數(shù)據(jù),通常識別的過程為數(shù)據(jù)分割、特征提取、特征選擇和分類器訓(xùn)練。其中最重要的步驟是特征提取,關(guān)系到分類器準(zhǔn)確性的高低。傳統(tǒng)的建模方法主要通過構(gòu)建支持向量機(jī)、決策樹、樸素貝葉斯等模型,但是這些模型在進(jìn)行特征提取時需要手工進(jìn)行設(shè)置,有一定的局限性,所以這些方法只能學(xué)習(xí)淺層特征,導(dǎo)致分類器的準(zhǔn)確率和性能都會有一定的限制,模型的泛化性也比較弱,不能很便捷的應(yīng)用到其他的數(shù)據(jù)集上。
近年來,深度學(xué)習(xí)在各個領(lǐng)域都有著優(yōu)異的表現(xiàn)。與傳統(tǒng)的識別方法不同,深度學(xué)習(xí)可以極大的減少設(shè)計特征提取的工作量,并且可以通過使用不同的深度學(xué)習(xí)模型訓(xùn)練提取出更高級、更精準(zhǔn)的特征。所以在人類活動識別方法中應(yīng)用深度學(xué)習(xí)是非常合適的。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[6]是一種包含卷積計算的前饋神經(jīng)網(wǎng)絡(luò),能夠自動提取傳感器數(shù)據(jù)中的特征,將CNN應(yīng)用到人類活動識別中,與傳統(tǒng)模型比有兩個優(yōu)勢:局部依賴和尺度不變性。局部依賴指的是在傳感器信號中,相鄰的信號可能是相似的;尺度不變性是指不同節(jié)奏或頻率的尺度不變性。
門控循環(huán)單元(gated recurrent unit,GRU)[7]是長短期記憶人工神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)[8]的一種變體,是為了解決在循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[9]中的梯度消失問題,在一定的條件下比LSTM的效果更好。
盡管CNN可以捕獲傳感器數(shù)據(jù)的空間特征,比如步行、慢跑和吃飯等簡單的人類活動有較好的表現(xiàn),但是無法捕獲傳感器時間序列信號的時間特征的復(fù)雜活動。RNN及其衍生結(jié)構(gòu)適合處理序列化數(shù)據(jù),這兩者有著不同的處理偏好,因此,可以將CNN和GRU兩者結(jié)合起來,對人類活動進(jìn)行識別。

圖1人類活動識別算法模型
當(dāng)輸入信號進(jìn)入到卷積層,通過使用k個一定大小的卷積核,使用ReLU激活函數(shù),初次提取信號之間的相關(guān)特征。其中hi,k表示卷積之后的結(jié)果,x(t)是時間序列,w(k)表示每個卷積核的權(quán)重,c(b)表示相關(guān)的偏置值。

進(jìn)行卷積處理之后,數(shù)據(jù)將進(jìn)一步經(jīng)過池化處理,使用池化處理能夠更好的將波動數(shù)據(jù)較大的信號保存下來,也就是能夠提取到信號中更明顯的特征,降低數(shù)據(jù)的維度。對于信號這種一維數(shù)據(jù)來說,一般在時間維度上進(jìn)行池化,這樣能夠提取出每一種信號中比較明顯的特征。
之后經(jīng)過池化的數(shù)據(jù)輸入到GRU層,該層是由多個簡單的GRU cell構(gòu)建而成的多層循環(huán)神經(jīng)網(wǎng)絡(luò)。該層的主要作用是用來捕獲傳感器序列中前后數(shù)據(jù)之間的依賴關(guān)系,該層可以從傳感器序列數(shù)據(jù)中的時間維度學(xué)習(xí)到相關(guān)聯(lián)的特征。經(jīng)過卷積、池化后的數(shù)據(jù),經(jīng)過公式(2)的變換,輸出當(dāng)前狀態(tài)的值。式中he(t')表示經(jīng)過GRU單元之后輸出t'時刻的結(jié)果,hc(t')表示t'時刻的輸入,he(t'-1)表示t'-1時刻的輸入。

經(jīng)過GRU層之后,數(shù)據(jù)之間的相關(guān)性得到了增強(qiáng),最后將所有的GRU單元全部展開,連接到全連接層中,將學(xué)到的特征映射到標(biāo)記空間,得到一個一維數(shù)組。最后通過softmax函數(shù),得到的輸出的結(jié)果。式中c(i)表示全鏈接層的C個輸出值,y*表示模型預(yù)測的結(jié)果。

實驗采用Pycharm開發(fā)工具,使用的計算機(jī)硬件配置為Inter(R)Core i5 CPU、Nvidia GeForce GTX 1660Ti GPU。計算機(jī)操作系統(tǒng)為Windows10,編程環(huán)境使用Python3.6以及深度學(xué)習(xí)框架Tensorflow。
使用UCI數(shù)據(jù)集[10]進(jìn)行檢測和性能評估。UCI數(shù)據(jù)集是基于手機(jī)傳感器信號采集的人體活動數(shù)據(jù)集,其中包含了30位年齡在19-48歲的志愿者,在腰上帶著一部相同型號的智能手機(jī),進(jìn)行走路、上樓、下樓、坐、站、躺六種活動,通過以50HZ的恒定速率捕捉手機(jī)加速度計和陀螺儀的數(shù)據(jù)。傳感器信號已經(jīng)通過噪聲濾波器進(jìn)行預(yù)處理,傳感器的加速度信號有重力和身體運(yùn)動的組成部分,已經(jīng)使用巴特沃斯濾波器過濾完成。
以下是從數(shù)據(jù)集中抽取出不同事件的加速度計的X軸數(shù)據(jù),可以看到數(shù)據(jù)具有很明顯的差異性。圖2表示采集人員在走路,可以看出加速度計X軸數(shù)據(jù)波動的很劇烈,X軸的幅度很大并且波形很有規(guī)律,符合采集人員在攜帶智能手機(jī)移動過程中的情形。圖3表示采集人員在站著的狀態(tài),可以看出X軸的波動幅度不大,偶爾才會出現(xiàn)一點波動,整體曲線幾乎不動,說明采集人員處于一種靜止的狀態(tài)。

圖2 走路狀態(tài)下的X軸加速度時間序列

圖3 站著狀態(tài)下的X軸加速度時間序列
UCI數(shù)據(jù)集中每一條數(shù)據(jù)都是由128個時間步長窗口的樣本構(gòu)成的,其中有一半是重采樣,所以要對數(shù)據(jù)進(jìn)行處理,刪除重復(fù)的觀測值,進(jìn)行數(shù)據(jù)統(tǒng)計。數(shù)據(jù)的分布具有高斯性質(zhì),所以可以對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化變換,通過實驗來確定數(shù)據(jù)標(biāo)準(zhǔn)化對結(jié)果的影響。
實驗使用準(zhǔn)確率Precision來進(jìn)行評估,具體的準(zhǔn)確率計算公式為:

對數(shù)據(jù)的標(biāo)準(zhǔn)化進(jìn)行實驗,實驗使用準(zhǔn)確率來衡量模型的效果。通過使用相同的模型,對標(biāo)準(zhǔn)化前后的數(shù)據(jù)分別進(jìn)行訓(xùn)練和預(yù)測,得出準(zhǔn)確率結(jié)果,標(biāo)準(zhǔn)化前準(zhǔn)確率為90.14%(+/-0.93%),標(biāo)準(zhǔn)化后準(zhǔn)確率為91.27%(+/-0.64%)。可以看出標(biāo)準(zhǔn)化之后的數(shù)據(jù)集在模型上的準(zhǔn)確率平均提升了1.13%,并且模型的標(biāo)準(zhǔn)偏差變小了,見箱型圖4更直觀地對比標(biāo)準(zhǔn)化前后實驗的結(jié)果。
使用標(biāo)準(zhǔn)化之后的數(shù)據(jù)集做實驗效果更好一點,對算法性能有小幅度的提升。所以為了之后的算法的效果有提升,之后的算法都會使用標(biāo)準(zhǔn)化后的數(shù)據(jù)集進(jìn)行實驗。

圖4數(shù)據(jù)標(biāo)準(zhǔn)化對實驗準(zhǔn)確率的影響

表1人體活動識別對比實驗結(jié)果
從表1中可以看出,相對于只使用LSTM和GRU的方法和CNN+LSTM的方法,本文提出的方法預(yù)測的準(zhǔn)確率高于以上3種方法,使用多種類型不同的深度神經(jīng)網(wǎng)絡(luò)方法,取得的效果通常比單一的神經(jīng)網(wǎng)絡(luò)模型要好。對于傳感器序列數(shù)據(jù)來說,單一的使用循環(huán)神經(jīng)網(wǎng)絡(luò)雖然能獲得更多的數(shù)據(jù)之間的關(guān)系,但是經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)提取過后的數(shù)據(jù),特征能夠更加明顯,具有更高的表示能力。而且在將模型部署到服務(wù)器之后,使用模型進(jìn)行實時的結(jié)果預(yù)測,由于GRU的參數(shù)相對LSTM較少,降低了模型參數(shù),加快了模型的識別速度,能夠大幅降低識別時間,提高識別速度。
根據(jù)人體活動行為的特點,提出一種基于CNN和GRU的人體活動識別模型,并且利用公開數(shù)據(jù)集得到了較好的結(jié)果,能夠準(zhǔn)確的識別人體活動的基本類型,驗證了本文中提出的使用CNN進(jìn)行時序序列的特征提取,并進(jìn)一步使用GRU來保留長時間序列中重要的特征。