韓欣欣,葉 劍,周海英
(1.中北大學 大數(shù)據(jù)學院,山西 太原 030051;2.中國科學院計算技術(shù)研究所 泛在計算系統(tǒng)研究中心, 北京 100190;3.中國科學院計算技術(shù)研究所 移動計算與新型終端北京市重點實驗室,北京 100190)
借助與人體活動信息有關(guān)的傳感器、圖片或視頻來獲得活動的相關(guān)特征,從而解決人體活動識別(human activity recognition,HAR)問題。近年來,傳感器技術(shù)和處理傳感器數(shù)據(jù)的技術(shù)均取得了顯著的進步。在移動設備中嵌入小巧的、輕便的傳感器也變得普及,較大推動了研究熱點轉(zhuǎn)向借助傳感器數(shù)據(jù)解決HAR問題[1]。深度學習在圖像識別和語音識別方面的出色表現(xiàn),促進了深度學習在基于傳感器的HAR的運用,且已有研究人員證明運用深度學習可以獲得較好性能[2,3]。
三軸加速度計是基于傳感器的HAR中較常使用的傳感器[4]。已有研究者發(fā)現(xiàn)軸之間的相關(guān)性能夠提高活動識別的準確率。例如,使用合成加速度來減少由于移動電話的不同放置位置引起的旋轉(zhuǎn)干擾[5,6]。排列傳感器數(shù)據(jù)以生成在一定程度上考慮了軸之間相關(guān)性的活動圖,通過將傳感器的時間序列信號轉(zhuǎn)換為包含軸間相關(guān)性的活動圖像,模型的識別準確率得到明顯提高[6,7]。然而,以上方法的提出依賴于研究者自身的知識和經(jīng)驗,在一定程度上具有局限性。
本文的目的是減少存在的局限性同時更好地利用軸之間的相關(guān)性。因此基于數(shù)據(jù)融合的卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)方法在本文中被提出。該方法運用單通道數(shù)據(jù)融合方法獲得包含軸之間相關(guān)性的融合數(shù)據(jù)。然后將數(shù)據(jù)輸入到CNN中進行特征的提取和活動的分類。本文方法能有效利用軸之間的相關(guān)性并提高模型的分類準確率。本文使用WISDM公開數(shù)據(jù)集對網(wǎng)絡結(jié)構(gòu)進行測試,實驗結(jié)果表明,提出的方法在準確率方面優(yōu)于CNN。
單通道數(shù)據(jù)融合方法如圖1所示。若傳感器的數(shù)據(jù)形如一張二維圖片,即其僅有一個通道,則將其視為單通道格式。本文使用的傳感器為三軸加速度計,將三軸加速度數(shù)據(jù)按行排列。圖1中的輸入層中的數(shù)據(jù)共有3行。本文提出的單通道數(shù)據(jù)融合方法是將按行排列的三軸數(shù)據(jù)利用 3×1 卷積進行融合,可看作是數(shù)據(jù)融合的操作。對三軸加速度數(shù)據(jù)進行數(shù)據(jù)融合操作,能夠得到形為(1,200,1)的融合數(shù)據(jù)??筛鶕?jù)需要對三軸加速度數(shù)據(jù)重復進行數(shù)據(jù)融合操作以得到相應個數(shù)的融合數(shù)據(jù)。如果融合數(shù)據(jù)的數(shù)量是n,說明執(zhí)行n次3×1卷積運算。
圖1 單通道數(shù)據(jù)融合方法
本文提出的基于數(shù)據(jù)融合的CNN方法的總體流程如圖2 所示。首先通過單通道數(shù)據(jù)融合方法將加速度數(shù)據(jù)變?yōu)榘S之間相關(guān)性的融合數(shù)據(jù)。然后通過CNN對融合數(shù)據(jù)進行特征的提取和活動的分類。
圖2 基于數(shù)據(jù)融合的CNN方法的總體流程
CNN包括卷積層、池化層、全連接層和Softmax層。卷積層的個數(shù)、池化層的位置、全連接層的大小等會導致網(wǎng)絡結(jié)構(gòu)的不同,不同的網(wǎng)絡結(jié)構(gòu)可能會得出不一樣的結(jié)果。CNN在人體活動識別領域得到了廣泛運用。如文獻[8]中作者提出了一個使用CNN實現(xiàn)的基于加速度計的人體活動識別方法,實驗結(jié)果表明其準確率高于支持向量機和深度信念網(wǎng)絡的準確率。
卷積層:卷積層的作用是提取特征。卷積層的特點有兩點:局部連接和權(quán)重共享。卷積層中的神經(jīng)元與上一層特征圖中的局部區(qū)域相連接,卷積核和上一層中的局部區(qū)域執(zhí)行點積運算產(chǎn)生的輸出值是卷積層中的一個神經(jīng)元。卷積的結(jié)果由等式(1)計算得到。對卷積的結(jié)果使用激活函數(shù)以向網(wǎng)絡中引入非線性。
(1)
(2)
池化層:池化層結(jié)合了語義相似的特征,以在下一層中生成單個神經(jīng)元[9]。平均池化選取輸入數(shù)據(jù)的局部區(qū)域的平均值作為輸出值傳遞到下一層。最大池化則是選取輸入數(shù)據(jù)的局部區(qū)域的最大值作為輸出值傳遞到下一層。
Softmax層:Softmax層的作用是將數(shù)據(jù)映射到 (0,1) 區(qū)間內(nèi)以判斷最終結(jié)果的類別。因此解決分類問題時,Softmax層通常放在卷積層、池化層、全連接層的后面,即模型的最后。Softmax層中的神經(jīng)元個數(shù)與分類任務中類別的個數(shù)相同。Softmax函數(shù)如等式(3)所示
(3)
CNN-DF(基于數(shù)據(jù)融合的CNN方法)如圖3所示。首先執(zhí)行數(shù)據(jù)融合操作以獲得包含軸之間相關(guān)性的融合數(shù)據(jù)。假設生成n個融合數(shù)據(jù),每一個融合數(shù)據(jù)的大小均為(1,200,1)。對每一個融合數(shù)據(jù)分別進行卷積和池化操作以提取特征,其中卷積層的卷積核大小為1×7,卷積核的個數(shù)為50,池化層的步長為1。接下來的連接層將融合數(shù)據(jù)中提取到的特征逐行連接,生成的數(shù)據(jù)的通道數(shù)與池化層中數(shù)據(jù)的通道數(shù)一致。CNN中1維卷積核僅能考慮到數(shù)據(jù)的局部依賴性,2維卷積核與其相比還可以考慮到空間依賴性[10]。因此,對連接層的數(shù)據(jù)執(zhí)行n×7的卷積操作和池化操作。池化層的輸出數(shù)據(jù)經(jīng)展平層將數(shù)據(jù)一維化后與Softmax層中的神經(jīng)元連接,獲得輸出結(jié)果。
圖3 基于數(shù)據(jù)融合的CNN方法
Learning Rate Schedule:在對分類準確率有一定影響的超參數(shù)中,學習率是最重要的超參數(shù)之一。若設定的學習率太大,那么損失曲線可能存在一定范圍的波動甚至上升。若設定的學習率太小,可能導致所需的實驗的迭代次數(shù)較多。本文使用根據(jù)迭代次數(shù)動態(tài)變化的學習率。先在訓練伊始將學習率設定為相對較大值,使得模型的準確率能夠在較短時間內(nèi)收斂到理想狀態(tài)。然而損失和準確率曲線可能會有一定的大幅波動。于是在訓練的中間階段將學習率減小,使得模型繼續(xù)學習有用信息且曲線的波動幅度變小。在訓練的后期階段,學習率進一步減小,曲線的波動幅度繼續(xù)變小。該方法能夠加快模型的訓練速度、降低過擬合程度和減少實驗的迭代次數(shù)。
算法1展示了實現(xiàn)本文提出的方法的偽代碼。在本文中,形如(1,200,1)的融合數(shù)據(jù)個數(shù)和數(shù)據(jù)融合層中的 3×1 卷積核的個數(shù)相同。
算法1:基于數(shù)據(jù)融合的卷積神經(jīng)網(wǎng)絡方法
注釋:
NC:融合數(shù)據(jù)的數(shù)量
輸入:標簽數(shù)據(jù)集 {(xi,yi,zi),ai}, 無標簽數(shù)據(jù)集 {(xi,yi,zi)}
輸出:無標簽數(shù)據(jù)集的活動標簽
重復
前向傳播:
i←1
for每個標簽數(shù)據(jù) (x,y,z) do
whilei≤Ncdo
使用等式(1)對輸入數(shù)據(jù)執(zhí)行數(shù)據(jù)融合操作
使用等式(1)和式(2)對融合數(shù)據(jù)執(zhí)行卷積操作
對卷積層的輸出執(zhí)行最大池化操作
i=i+1
end while
逐行連接池化層的輸出數(shù)據(jù)
使用等式(1)和式(2)對連接層的數(shù)據(jù)執(zhí)行卷積操作
對卷積層的輸出執(zhí)行最大池化操作
end for
使用等式(3)進行分類
反向傳播:
使用隨機梯度下降算法執(zhí)行反向傳播
直到權(quán)重收斂;
for每個無標簽數(shù)據(jù) (x,y,z) do
使用訓練好的網(wǎng)絡預測活動標簽
end for
本節(jié)比較CNN-DF與CNN中第一個卷積層的輸出值之間的差異。圖4和圖5分別展現(xiàn)了兩種方法從輸入層到卷積層的變化過程。在圖4和圖5中,輸入層中的虛線框代表卷積核,卷積層中的虛線框表示卷積運算的輸出值。為了簡化等式,在本節(jié)中不考慮偏置項。
圖4 CNN的輸入層和卷積層
圖5 CNN-DF的輸入層,數(shù)據(jù)融合層,連接層和卷積層
對于圖4,將 [[x1,x2,x3,x4,x5,x6,x7], [y1,y2,y3,y4,y5,y6,y7], [z1,z2,z3,z4,z5,z6,z7]] 設為CNN的輸入層的數(shù)據(jù)。則相應的將卷積核設為 [[a1,a2,a3,a4,a5,a6,a7], [b1,b2,b3,b4,b5,b6,b7], [c1,c2,c3,c4,c5,c6,c7]]。 輸出值可以根據(jù)等式(4)計算得到
(4)
對于圖5,3×1卷積用于融合三軸加速度數(shù)據(jù)。在本節(jié)為了進行比較分析,將融合數(shù)據(jù)的數(shù)量設置為3。對有3行n列的數(shù)據(jù)進行3×1卷積時,會生成形為1行n列的數(shù)據(jù)。執(zhí)行n次3×1卷積將會生成n個形為1行n列的數(shù)據(jù)。將數(shù)據(jù)融合層的卷積核設為 [[a1],[b1],[c1]],[[a2],[b2],[c2]],[[a3],[b3],[c3]]。 等式(5)中的fd_output為輸入數(shù)據(jù)在經(jīng)過卷積操作后的輸出值,等式中的i=1,2,3
fd_output=xai+ybi+zci
(5)
對數(shù)據(jù)融合層的每行數(shù)據(jù)分別進行卷積操作,卷積核的大小為1×7。將卷積層的卷積核設為 [f1,f2,f3,f4,f5,f6,f7]。 其結(jié)果由等式(6)計算得到
(6)
比較等式(4)和等式(6),可以發(fā)現(xiàn)等式(6)中多了參數(shù)fi, 卷積核大小為1×7則意味著有7個參數(shù)f。 因此,等式(6)的輸出具有更多的可能性,意味著CNN加入單通道數(shù)據(jù)融合方法后比不使用數(shù)據(jù)融合方法的CNN可以提取到更多的有用信息。
在實驗中使用隨機梯度下降算法訓練活動識別模型。使用10折交叉驗證(CV)方法來評估提出的方法。若實驗迭代的次數(shù)小于375次時,將學習率的大小設置為0.005。若實驗迭代的次數(shù)超過375次時,將學習率的大小設置為0.001。表1展現(xiàn)了實驗設置的參數(shù)值。
表1 實驗的具體參數(shù)值
WISDM Actitracker數(shù)據(jù)集被用來對本文提出的方法進行測試。該數(shù)據(jù)集中共有1 098 213個樣本,這些樣本來自于29個用戶。實驗數(shù)據(jù)集中包括走路、慢跑、上樓梯、下樓梯、坐著和站立這6種活動。采樣率為20 Hz。
對原始數(shù)據(jù)進行標準化是本文預處理數(shù)據(jù)的方法。Z標準化(zero-mena normalization)利用數(shù)據(jù)的兩個特征值:平均值、標準差來對數(shù)據(jù)進行預處理,為普遍運用的標準化技術(shù)。使用Z標準化處理數(shù)據(jù)的結(jié)果可通過等式(7)計算得到
(7)
圖6 標準化后每個活動的三軸加速度數(shù)據(jù)
在本節(jié)中,為了公正地比較模型的準確率,過濾器的個數(shù)被設定為50。全部實驗中的過濾器個數(shù)不再改變。融合數(shù)據(jù)的多少會對模型的最終結(jié)果造成一定的影響。太少的融合數(shù)據(jù)可能使得其本身不含有充分的有效信息。相反,如果數(shù)量太多,可能會導致部分數(shù)據(jù)冗余并增加參數(shù)數(shù)量,甚至會出現(xiàn)過擬合或準確率下降的情況。
圖7顯示了增加融合數(shù)據(jù)的數(shù)量對CNN-DF準確率的影響。當融合數(shù)據(jù)的數(shù)量為1時,模型的準確率為96.36%是曲線的最低點,表明1個融合數(shù)據(jù)中所含有的有效信息太少。融合數(shù)據(jù)的數(shù)量從1增加到4時,模型的準確率從96.36%增加到98.69%,其中數(shù)量從1增加到2時準確率增幅最大。當融合數(shù)據(jù)的數(shù)量為6時,模型的準確率為98.80%是曲線的最高點。融合數(shù)據(jù)的數(shù)量從6增加到10時,曲線略微波動下降,最終下降至98.58%。融合數(shù)據(jù)的數(shù)量的連續(xù)增加不一定會導致準確率的增加,但會增加參數(shù)的數(shù)量,這可能導致過擬合。
圖7 擁有不同數(shù)量融合數(shù)據(jù)的模型準確率的比較
基于數(shù)據(jù)融合的CNN方法是在CNN之前加了數(shù)據(jù)融合階段,那么將該方法與CNN進行比較,可以判斷數(shù)據(jù)融合階段對模型的分類準確率是否有影響。本節(jié)對CNN和CNN-DF從兩點進行比較:準確率和不同數(shù)量的訓練數(shù)據(jù)對模型準確率的影響。
CNN和CNN-DF兩個模型的準確率見表2。從表2中可以看出,使用單通道數(shù)據(jù)融合方法的CNN-DF準確率達到98.80%,比CNN的準確率98.60%高0.20個百分點。CNN-DF和CNN中均使用了考慮到空間依賴性的二維卷積核,因此CNN-DF準確率的提高是由于使用了包含軸之間相關(guān)性的融合數(shù)據(jù)。
表2 模型的準確率比較
不同數(shù)量的訓練數(shù)據(jù)對模型準確率的影響如圖8所示。在圖8中,CNN-DF的曲線保持在CNN的曲線之上,無論訓練數(shù)據(jù)的數(shù)量是多少,CNN-DF的準確率始終比CNN的準確率高。結(jié)果表明,使用單通道數(shù)據(jù)融合方法能夠提高模型的準確率。
圖8 模型在不同數(shù)量訓練數(shù)據(jù)情況下的準確率的比較
為了驗證提出的方法的有效性,本文將其與一些現(xiàn)有方法進行比較。結(jié)果見表3。在文獻[11]中一種分類器方法集合即J48、邏輯回歸和多層感知器算法的集合被提出,通過實驗驗證了該方法與上述3種算法相比其性能更好。文獻[12]中的結(jié)果表明,深模型可以有效地提高準確率,而不需要對特征進行手工設計。在文獻[13]中發(fā)現(xiàn)資源限制和簡單的設計方法可能使得淺層特征比通過深度學習方法提取到的特征具有更強的判別性。文獻[13]的作者提出將淺層特征和深度學習特征相結(jié)合并與僅使用深度特征的文獻[14]中的方法對比,發(fā)現(xiàn)兩種特征相結(jié)合的方法的準確率更高達到了98.60%。CNN-DF不是根據(jù)人類領域知識去手動的提取特征,而是使用CNN進行特征提取和分類,這與上述方法不同。
表3 提出的方法與現(xiàn)有方法的比較
表3通過與現(xiàn)有方法進行比較,發(fā)現(xiàn)基于數(shù)據(jù)融合的CNN方法將準確率提高了0.20個百分點。提出的方法實現(xiàn)了最高準確率,這表明它是解決HAR問題的有效方法。
圖9為提出的方法的分類結(jié)果。將CNN-DF與表3中準確率最高的方法進行對比。表4展現(xiàn)了CNN-DF與Ravì et al[13]的活動的分類結(jié)果,表中的最后一行是兩種方法之間的準確率差值。該準確率差值清楚地表明了哪種方法實現(xiàn)了更高的準確率,哪種活動的準確率提高得更明顯。觀察表4能夠看出坐著和站立的準確率提高的最多,分別為1.49%和1.43%。對于下樓梯,提出的方法的準確率達到了95.51%,相較Ravì et al[13]提高了1.07%。而對于慢跑、上樓梯和走路來說,這3種活動的準確率提升幅度較小僅為0.12%、0.20%和0.16%。觀察圖6能夠看出站著和坐立的3條曲線較為獨立相交部分較少。慢跑、走路和上樓梯的3條曲線在圖中相交部分較多,數(shù)據(jù)的分布較為密集。當活動的x軸、y軸和z軸曲線相交部分較少即數(shù)據(jù)的差異較明顯時,其識別準確率將有明顯提高;而當活動的x軸、y軸和z軸曲線相交部分較多時,其識別準確率僅有小幅提升。本文提出的CNN-DF適用于解決人體活動識別問題,更適用于解決三軸加速度數(shù)據(jù)差異較大的活動識別問題。
圖9 提出的方法的混淆矩陣
表4 提出的方法與表3中準確率最高的方法的比較
在本文中,我們提出了一種基于數(shù)據(jù)融合的CNN方法,主要包括兩個階段,數(shù)據(jù)融合階段和CNN階段。所提出的方法旨在充分利用傳感器內(nèi)軸之間的相關(guān)性來提高模型的準確率。結(jié)果表明提出的方法是有效的,該方法的準確率高于CNN的準確率。進一步分析該方法可以發(fā)現(xiàn)其適用于解決三軸數(shù)據(jù)差異較大的活動識別問題。本文研究了在使用單一傳感器的情況下如何通過借助軸之間的相關(guān)性來對模型的準確率做出改善。在更加復雜的應用場景下如何同時使用多個傳感器,如何更好地利用軸之間的相關(guān)性仍是一個值得探索的問題。