李智敏 劉一鵬 鄭海峰 馮心欣
?
LSTM遞歸神經網絡人體活動行為識別算法研究
李智敏 劉一鵬 鄭海峰 馮心欣
(福州大學物理與信息工程學院,福州 350116)
為克服支持向量機(SVM)等機器學習算法在人工提取數據特征時特征提取不充分和信息丟失的問題,本文提出基于長短期記憶(LSTM)的遞歸神經網絡算法實現對人體活動行為模式的識別。本文提出的算法不僅能充分提取所收集到的人體活動行為數據的時間特性,還可有效避免傳統遞歸神經網絡的梯度消失問題,從而提高了人體活動行為識別的準確性。本文使用WISDM數據集對神經網絡進行訓練和測試,并采用交叉驗證的方法對所提出的模型進行評估。實驗結果表明,本文提出的方法在識別人體活動行為時相比較于SVM等機器學習算法提升了識別的精確度。
遞歸神經網絡;LSTM;活動行為識別;移動感知
近年來,手機、平板電腦、智能手環等可移動設備成為人們生活中越來越重要的一部分,可移動設備具有隨身攜帶的特性,利用可移動設備上的傳感器可以收集許多用戶的個人數據。利用這些收集的數據可以分析人們的日常生活行為[1]。本文使用可移動設備上傳感器收集的加速度數據對人體日?;顒有袨檫M行識別(行走,慢跑,上下樓梯等)。分析的結果可以用于眾多應用,包括根據用戶現在的狀態或者用戶的習慣,手機設備智能定制服務。比如,若用戶經常慢跑,則可為其推薦慢跑鞋等運動裝備,或者根據一周的運動量,提醒用戶是否運動太少。目前行為識別算法主要包括隨機森林(random forests)[2-3],支持向量機(support vector machine, SVM)[4-5],K近鄰法(K-NN)[6-7]等機器學習方法,以及基于BP(back propagation)神經網絡的深度學習方法[8]。
在對手機加速度序列數據進行處理時,上述方法在人體活動行為識別時都存在著一些缺點。例如,隨機森林方法在噪聲較大的分類問題上很容易出現過擬合現象;K近鄰法需要大量的歷史數據,而過多的歷史數據造成計算量大;SVM算法在識別活動行為時不能直接對加速度數據進行處理,需人工提取數據特征;BP神經網絡輸入僅取決于當前時刻輸入,沒有充分利用加速度時間序列,造成識別結果準確率不高。相比較于BP神經網絡,遞歸神經網絡(recurrent neural network, RNN)中包括遞歸結構使得神經元的狀態不只取決于當前時刻輸入,還取決于之前時刻的輸入,神經元將輸入的數據信息部分保存下來,在處理下一時刻數據時,前一時刻保存的數據仍起作用,形成前后文之間的聯系。這樣的結構使得RNN十分適合處理時間序列數據[9]。
遞歸神經網絡是一種深度學習算法,其內部包含循環結構,神經網絡中每個神經元不只與上下層的神經元相連接,還與本層神經元相連接。神經元的計算結果輸出不僅取決于當前時刻的輸入和歷史輸入,而且這樣結構使得遞歸神經網絡可以利用其時間特性進而有效地分析時間序列數據。如圖1所示,圖1中為展開的RNN神經網絡,之前時刻的輸入012X-1都會對X時刻的神經元狀態造成 影響。

圖1 遞歸神經網絡展開圖
在實際問題中傳統RNN也存在一些缺點,傳統模型會在模型訓練的時候遇到較為嚴重的梯度消失問題,造成在時間序列較長時神經網絡無法訓練的問題。為了解決這個問題,最早由Hochreiter等人提出了LSTM(long short term memory)基礎結構的理論[10],以改進傳統遞歸神經網絡的神經元結構,實現對之前輸入信息的記憶。
LSTM通過增加一種稱為“門”的結構來管理LSTM模塊信息的輸入和輸出,這是一種讓信息選擇式通過的方法,如圖2所示。其中Cell部分負責記錄神經元狀態,而輸入門(input gate)和輸出門(output gate)在參數輸入和輸出時起到選擇通過的信息量。遺忘門(forget gate)負責選擇性遺忘時間窗之前的信息量。這種特殊的結構使得Cell值更新較慢,方便累計之前的輸入信息不被替換,而輸出值變化較快,可以對新輸入的值做出反應。

圖2 LSTM結構圖
本文提出一個端對端的深度神經網絡結構對可移動設備所收集到的加速度數據進行分析,使用LSTM對所收集到的加速度數據進行特征提取,之后利用全連接層進行回歸分類。本文所提出的基于LSTM的深度神經網絡結構包括5層結構,其中包括兩層LSTM層,兩層全連接層和輸出層,如圖3所示。

圖3 基于LSTM的行為識別網絡結構示意圖
本文所提出的深度學習結構主要包括兩部分:①特征提取部分;②映射回歸部分。第①部分包括兩層LSTM層,其中第一層LSTM層有200個神經元實現對加速度數據的特征進行提取。輸入數據為加速度序列數據,本文在處理數據時選用時間步長為200。本文將收集到的加速度時間序列數據切割成局部時間序列,并對數據進行歸一化處理,將其映射到(0, 1)區間。
本文將加速度序列數據表示為=(0,1,2,3,, I-1),并提取的時間維特征表示為=(0,1,2,3,, T-1)。第一層中LSTM神經元首先執行Forget Gate決定從上一時刻單元狀態中丟棄哪一部分信息。其次神經元需要決定在所輸入的加速度時間序列數據中保存哪些信息,先由Input Gate決定LSTM模塊中哪些值被更新,接著用一個tanh激活函數根據這一時刻的加速度數據和上一時刻的LSTM模塊輸出創建一個中間狀態向量S。再對Cell 值進行更新,Forget Gate值與-1時刻的Cell值相乘得到上一時刻所保存下來的值,Input Gate值與tanh函數所生成的狀態向量相乘得到Cell新增加的值,這兩個值相加為更新后的Cell值。最后計算輸出T。這一過程需先計算Output Gate的值,然后與Cell值通過激活函數tanh函數所得出的結果相乘得到最后的LSTM輸出。輸出只與當前Cell值有關,與之前Cell值無關,而當前Cell值取決于之前的Cell值。
LSTM在處理序列數據時,每個時間點都會有相應的輸出。時間步長為200的時間序列輸入到第一層LSTM之中,每個點都會輸出時間步長為200的序列,所以第一層輸出為數據特征值矩陣。其中第一維為時間步長,第二維表示第一層中總共的神經元個數,輸出矩陣為

與第一層LSTM結構所不同的是第二層只返回LSTM最后輸出值。第二層所返回的值為所提取的時間特征值,所提取的特征向量具有150個元素,表示第二層150個神經元對時間窗內信息分析所提取的特征數據,作為第一部分的輸出。輸出向量為

每一層LSTM結構后都有一個Dropout結構,Dropout可隨機刪除神經網絡中的某些隱藏層節點,但保留節點的權重,方便下次樣本輸入時再工作,利用Dropout可有效避免過擬合現象,本文將Dropout比重設置為0.2。
第②部分中包括兩層全連接層和輸出層。全連接層將第①部分所學習到的數據特征映射到樣本標記空間。第①部分輸出的數據特征信息輸入到全連接層之中,經過全連接層降維映射最后到達輸出層。全連接層選用Relu(rectified linear units)激活函數,上一層輸出通過線性組合后進入激活函數之中,Relu的單側抑制性,可以將一部分神經元設置為零,增加稀疏激活性,減少了參數之間的依存關系,緩解了過擬合問題。全連接層中每個神經元都與上一層所有輸出神經元相連接,最后由輸出層進行Softmax回歸。本文有6類行為用于識別,最后由輸出層輸出分類結果。其中激活函數Relu如下公式所示:

模型采用有監督訓練,如圖3所示,框架是一個串行結構,上一層輸出為下一層輸入,按批次將時間序列數據輸入到模型之中,經過模型處理后得出相應的回歸結果。并與實際值作比較,利用損失函數計算分析結果與實際之間的差距。本文采用均方誤差函數(MSE, mean square error)作為損失函數。具體公式如下:

訓練過程中,先計算數據的損失函數梯度,然后使用優化算法對損失函數進行優化,以便找到最佳的神經元權重參數。本文使用RNN網絡常用的RMSprop優化算法,可以進行學習率自適應調整。RMSprop可以在聯系之前每一次梯度變化的情況下不斷更新學習率,RMSprop算法使用變量MeanSquare(,)來保存第次更新學習率時每個權值前一段時間的梯度平方的平均值,根據其采用自適應學習率,不斷優化參數,使結構達到最優解。RMSprop具體公式為

本文的活動行為識別算法使用TensorFlow深度學習系統進行開發。本文所使用的數據集為WISDM(wireless sensor data mining)[11]。數據是使用手機收集的加速度數據,數據集中包括6種傳統活動行為的加速度數據(行走、慢跑、坐、站立、上樓梯、下樓梯),數據的采樣頻率為20Hz,數據集中包括2980000個已標記樣本。加速度數據包括、、三軸的加速度數據。具體加速度數據折線圖如圖4至圖9所示,各圖依次為行走、慢跑、坐、站立、上樓梯、下樓梯。其中站立和坐的加速度數據較為平穩,數據相差較大,識別難度較??;上下樓梯行為比較接近,加速度數據變化十分相似,這兩類比較容易混淆;慢跑加速度波動劇烈,頻率快;走路的加速度變化趨勢比慢跑平緩。
本文將不同算法在相同數據集上分別進行了實驗,測試環境為Ubuntu 16.04,CPU為i7-4790。由于上下樓梯的行為相近,加速度變化也比較類似,因此在實驗中將上樓梯和下樓梯合并為同一類。本文通過與隨機森林、SVM、K-NN、BP神經網絡算法進行實驗結果對比,證實所提出基于LSTM的深度神經網絡算法在準確率上有一定的提升。

圖4 行走時加速度折線圖

圖5 慢跑時加速度折線圖

圖6 坐時加速度折線圖

圖7 站立時加速度折線圖

圖8 上樓梯時加速度折線圖

圖9 下樓梯時加速度折線圖
隨機森林是隨機建立一個由無關聯的決策樹組成的森林,隨后將加速度樣本數據輸入到隨機森林之中,每一個決策樹分別進行判斷,輸出人體活動行為識別結果,最后統計出現次數最多的結果為識別結果。隨機森林方法在利用加速度數據對人體行為識別中的平均識別率只有76.6%,雖然準確率略低,但是算法識別的時長最短(156ms)。K-NN在對加速度數據進行分類時,尋找加速度歷史數據中與被識別加速度最相似的個加速度數據樣本,將所挑選的個加速度樣本數據中類別標記出現次數最多的類別作為人體活動行為識別的分類結果。K-NN算法計算復雜度高且識別準確率過于依賴歷史數據的相似性,平均識別率最低(72.5%),算法識別的時長為2280ms。
BP神經網絡是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,利用隱含層的多維函數映射能力將所采集到的加速度數據映射到分類結果。本文設置3層的隱含層,每層中的神經元個數為200,將加速度數據輸入到BP神經網絡之中進行分類回歸,最終的準確率為88.7%。神經網絡算法相比較于機器學習算法計算量略大,算法識別時長為191ms。本文所提出的基于LSTM的遞歸神經網絡在保留BP神經網絡多維函數映射能力的基礎上增加了遞歸結構及長短時記憶特性,增強了對加速度數據序列的處理能力,充分提取加速度時間序列的時間特征。本文所提出的算法識別時間為206ms,獲得的平均識別率最高。算法識別準確率見表1。

表1 識別準確率對比
本文使用可移,引入遞歸神經網絡對用戶活動行為進行識別,避免了傳統機器學習方法在人工提取特征時可能導致的數據特征提取不充分和信息量丟失等問題,在處理數據時更好地保存了原始數據在時間上的關聯性。利用了遞歸神經網絡在序列數據處理中的優點,可直接對原始序列數據進行處理;利用LSTM充分提取數據的時間特征,對數據進行分析和處理。本文通過實驗驗證了遞歸神經網絡在行為識別中具有較高的精確度,為了拓展系統,下一步會對更多的手機傳感器數據進行分析和處理,以獲取更多的信息。
[1] Jayita S, Sanjoy C, Nauman A, et al. Designing device independent two-phase activity recognition framework for smartphones[C]//Wireless and Mobile Computing, Networking and Communications, 2017: 41-45.
[2] Nunes U M, Faria D R, Peixoto P. A human activity recognition framework using max-min features and key poses with differential evolution random forests classifier[J]. Pattern Recognition Letters, 2017, 99(SI): 21-31.
[3] Jan J, Petr G, Pavel D, et al. Fast Human Activity Recognition Based on a Massively Parallel Implemen- tation of Random Forest[M]. Intelligent Information and Database Systems. Los Angeles: Springer Berlin Heidelberg, 2016.
[4] Abidine B M, Fergani L, Fergani B A. The joint use of sequence features combination and modified weighted SVM for improving daily activity recognition[J]. Pattern Analysis and Applications, 2018, 21(1): 119- 138.
[5] Chen Zhenghua, Zhu Qingchang, Soh Y C, et al. Robust human activity recognition using smartphone sensors via CT-PCA and online SVM[J]. IEEE Transactions on Industrial Informatics, 2017, 13(6): 3070-3080.
[6] Uslu G, Baydere S. On the activity detection with incomplete acceleration data using iterative KNN classifier[C]//IEEE International Conference on Systems, Man, and Cybernetics, Hungary: IEEE, 2017: 3528-3533.
[7] Sani S, Wiratunga N, Massie S, et al. KNN Sampling for Personalised Human Activity Recognition[M]. Scotland: Springer-Verlag, 2017: 330-344.
[8] Abu Alsheikh M, Niyato D, Lin Shaowei, et al. Mobile big data analytics using deep learning and apache spark[J]. IEEE Network, 2016, 30(3): 22-29.
[9] Vo Q, Nguyen H, Le B, et al. Multi-channel LSTM- CNN model for Vietnamese sentiment analysis[C]// 2017 9th International Conference on Knowledge and Systems Engineering, Vietnam: IEEE, 2017: 1-6.
[10] Greff K, Srivastava R K, Koutnik J, et al. LSTM: A Search Space Odyssey[J]. IEEE Transactions on Neural Networks & Learning Systems, 2017, 28(10): 2222-2232.
[11] Kwapisz J R, Weiss G M, Moore S A, et al. Activity recognition using cell phone accelerometers[J]. Acm Sigkdd Explorations Newsletter, 2011, 12(2): 74-82.
Research on an LSTM recurrent neural network algorithm for human activity recognition
Li Zhimin Liu Yipeng Zheng Haifeng Feng Xinxin
(College of Physics and Information Engineering, Fuzhou University, Fuzhou 350116)
In order to overcome the problem of insufficient feature extraction and lost information incurred by the traditional machine learning based methods such as support vector machine (SVM), we propose a long short-term memory (LSTM) based neural network algorithm to recognize human activity in this paper. The proposed algorithm can not only fully extract time characteristics of human activity data but also effectively avoid the problem of gradient disappearance in traditional recurrent neural network, thus improving the accuracy of human activity recognition. In this paper, the proposed approach is trained and tested by using a WISDM dataset and ievaluated by the cross validation method. Experimental results show that the proposed method can improve the accuracy of recognition when comparing with the other machine learning algorithms such as SVM.
recurrent neural network; LSTM; activity recognition; mobile sensing
2018-06-13
李智敏(1994-),男,福建省莆田市人,碩士研究生,研究方向為群智感知網絡中的數據分析。
國家自然科學基金項目(61571129)