張儒鵬,于亞新,張 康,劉 夢,尚祖強
東北大學 計算機科學與工程學院,沈陽 110000
目前各種便攜式設備得到了快速發展,例如智能手環、智能手機等,這些新興的自適應移動應用都可以利用嵌入式傳感器采集到的大數據對用戶進行動作識別和行為分析。比如,醫療系統可以利用動作識別有效監控動作行為和病人身體情況,這樣一方面指導了醫護人員執行正確的治療,另一方面又解決了醫院工作人員匱乏問題。在康復訓練中,動作識別和行為分析可以輔助病人進行康復活動,分析病人動作行為,對老年人進行監控保證安全[1];在體育運動中,人體行為識別技術作為一種輔助手段,可用于分析運動員各項數據,有效的數據分析提升了運動員成績,從而提高了整體競技水平[2]。
這種新興自適應移動應用的特性是:(1)高準確性。在大多數應用背景下,要求動作識別算法能對每個動作達到精確識別,通常準確率達到95%以上才可以得到應用,這就要求系統核心算法要有高準確性。(2)在線實時性。在這種應用背景下,由于實時性要求,系統沒有時間去過濾和處理錯誤數據,這就要求系統核心算法要有很強的魯棒性和容錯性。但迄今為止,已有相關研究工作所用算法幾乎沒有考慮這些特性所帶來的要求,一是準確率達不到系統要求,或者根本沒有考慮系統模型的容錯性,基于此,本文提出一種新的神經網絡結構來提高識別準確率,并在數據集中通過構造不合法數據證明了新的模型具有很高的魯棒性和容錯性。
自適應移動應用可以進行研發的理論前提是人類的某個特定身體運動可以轉化為組合傳感器的特定信號特征,這種信號特征可以用機器學習技術對其進行感知和分類,也就是說可穿戴動作識別依賴于機器學習對傳感器組合信號的模式識別,其中組合信號是加速度計、陀螺儀或磁場傳感器的組合。相關研究一直在極力追求實現以下兩個目標:增強識別準確率和減少對工程特征的依賴。但這兩個目標卻難以實現,因為動作識別問題的難點在于特定動作運動模式的巨大變化,換句話說,不同個體完成同一動作的運動軌跡其模式不完全相同,因此工程特征難以全面正確表達各個動作的運動軌跡模式,從而導致識別準確率難以達到令人滿意的結果。為實現上述兩個目標,一種新的基于深度學習的特征提取方法被提出。
深度學習是分層組織的,后一層處理前一層的輸出,它是一個使用多個非線性信息處理層來進行特征提取和分類的神經網絡。深度學習相關研究中普遍使用的兩個經典網絡結構是卷積神經網絡(convolutional neural network,CNN)[3]和遞歸神經網絡(recurrent neural network,RNN)[4],其中CNN是一種具有特征提取能力的深度神經網絡(deep neural networks,DNN),通過堆疊幾個卷積運算以創建一個逐步變得更抽象的特征圖,從原始數據中自動提取有效特征,不再依賴人類的領域知識,該提取方式不僅增強了系統的準確率和泛化能力,而且還可以形成一個端對端系統,從而減輕系統訓練復雜度。而RNN則天生具有序列信息處理能力,它的一個變形LSTM(long short term memory)[4]包含一個記憶模塊模擬時間序列中的時間依賴關系,可以很好地處理具有時間先后依賴關系的信息。
因為CNN出眾的特征提取能力,本文也將使用它來提取動作的運動模式特征。但是只使用單一CNN,隨著CNN層的增加會出現參數爆炸性增長問題以及卷積視野變窄問題,而Inception結構[5]可以解決這兩個問題。為此,本文加入了Inception結構,但經典的Inception結構包含大卷積核,造成時間消耗過多,使得模型訓練速度和識別速度都有所下降。為克服時間復雜度過高問題,本文對Inception結構進行了適當優化,提出一種新的O-Inception(optimization Inception)結構,一方面該結構通過用多個小卷積核替換大卷積核提高了訓練和識別速度,另一方面借助pooling層優化減少了特征丟失,在一定程度上提高了準確率。此外,為使準確率進一步提升,本文又加入LSTM以充分使用被識別動作本身所含的時序信息。對于模型要求的容錯性,則通過融合O-Inception和LSTM所形成的OI-LSTM模型得到了有效解決。
本文一共分為6個部分。第1章為引言部分,主要介紹了研究背景。第2章簡述了國內外在動作識別領域的研究現狀。與深度學習相關的一些理論知識則在第3章進行了詳細介紹。第4章闡述了本文所提動作識別神經網絡模型OI-LSTM。第5章為實驗部分,驗證了本文所提模型的有效性、容錯性和實時性。第6章為結論。
2.1節主要介紹了動作識別的基本步驟和傳統識別方法。2.2節主要介紹了近些年該領域研究者基于深度學習所做的動作識別研究。
動作識別一般可以分為以下兩個主要的步驟,第一個步驟是時間序列的分段,當前的主流方法是使用一個固定長度的滑動窗口將整個動作的時間序列分割成相等的段。例如針對數據集WISDM的研究,大部分都是使用以上所述的時間序列分段方式,即固定窗口長度和固定移動方向[6-10]。第二個步驟是從得到的原始段中提取有效的特征。整個工程中最為關鍵的就是特征提取,它將直接影響著系統的整體識別準確率。以前的識別算法中多使用工程特征,這種方式雖然也能表現出優異的性能,但是要求有豐富的領域知識,領域專家尋找好的工程特征也是相當耗時的,它對新的數據源和實驗裝置的推廣通常是平庸的,這將難以達到人們期望的強泛化能力,使得系統難以從動作識別放大升級為更復雜的高級別的行為識別應用。相關研究中常見的工程特征有譜熵、自回歸系數和快速傅里葉變換系數等。基于以上兩步,動作識別的經典解決方案是使用模板匹配方法[10]或隱馬爾可夫模型[11]或支持向量機等。
DNN已經應用于可穿戴動作識別(human action recognition,HAR)領域,大家已經開始使用卷積層和非遞歸層相結合的網絡結構[12-13]。在文獻[14-17]中,作者使用多個傳感器,把這些信號逐行堆疊成一個二維的“信號圖”,最后把這個信號圖送入卷積神經網絡。在文獻[18]中,不處理原始傳感器信號圖,而是將離散傅里葉變換應用于該圖,并利用所獲得的特征進行分類。CNN的網絡結構在不同的研究中也是不同的,在文獻[8]中考慮了一個卷積層和兩層的DENSE層,在文獻[14,16-17]中則是使用另外多個卷積層和一個DENSE層。另外因為CNN和LSTM的結合已經在語音識別領域得到了最先進的結果,基于都需要對時間信息進行建模[19],本文考慮將這種結合應用在動作識別上。
本章主要介紹了深度學習的一些理論基礎和網絡結構。本文用到的符號及其含義如表1所示。

Table 1 Symbol and meanings表1 符號及含義
卷積神經網絡在圖像和語音識別領域得到了長足發展,得益于其突出的特征提取性能。用CNN替換全連接不僅可以提取出有效的特征圖,還可以加快訓練速度和縮短識別時間,這是因為它是部分連接并且是參數共享的。
CNN是一種前饋神經網絡,受生物視覺系統啟發形成。用一個類似于滑動窗口的濾波器filter對輸入數據做卷積運算,每次運算只關注一個數據子區域,一個卷積核對一個數據段做一個卷積運算生成一個特征圖。其詳細結構描述如下:
(1)卷積層:卷積操作的應用取決于應用維度,手機加速度計的數據是一維的具有時間性質的序列,因此本文的卷積層使用一維卷積。這時卷積核可以被看作是一個過濾器,能夠去除異常值,過濾數據或充當特征檢測器,找出能夠確定動作類型的最明顯的時間序列。卷積運算是兩個向量之間的運算,對于一個輸入向量x?Rn,用另一個向量f?Rm在向量x上滑動,每次滑動做一次點乘運算,所有步驟的輸出作為一次卷積的輸出。用一維的卷積核從數據中得到一個特征圖可以用式(1)表示。

(2)池化層:該層通常緊跟在卷積層后面,用于減少卷積層得出的特征圖的特征表示,選出特征圖中最具代表性的特征,給特征圖降維,使用一個正方形窗口在特征圖上移動,取窗口中最大的值或者取平均值,這兩種做法分別稱為最大池化和平均池化。
(3)全連接層:全連接層的每個神經元都與上一層的神經元全連接,用來把前面提取到的特征綜合起來,并把輸出轉化為一個一維向量用來分類,這一層可以學習更多的非線性依賴關系。
(4)Softmax層:最后一層的輸出傳給Softmax層以計算每一分類的概率分布。
Inception的核心思想是用小卷積核代替大卷積核,借鑒了NIN(net in net)設計思路,充分利用卷積和池化性能,將卷積分組,最后再將各個分組的卷積輸出連接起來,避免了當網絡深度加深、網絡寬度變寬時所帶來的參數爆炸性增長問題,即梯度不會出現彌散現象。Inception Native結構一方面增加了網絡寬度,另一方面又增加了網絡對尺度的適應性。但該網絡有一個極大缺陷,由于它含有一個5×5的卷積核,因此卷積操作的計算量相當巨大。為減少計算量,提出了正式的Inception結構。它在每個大卷積核之前都加上了一個1×1卷積核來降低特征圖的厚度。
深度可分離(depthwise separable)是由深度卷積發展而來。深度卷積是指,對輸入數據的每個channel用channel所對應的所有filter去分別做卷積。一個深度卷積結構一般包含4個參數filter_height,filter_width,in_channels,channel_multiplier,其中filter_height和filter_width表示卷積核窗口的大小;in_channels表示輸入數據的channel個數;channel_multiplier表示每個channel所擁有的filter個數。每個channel經過一次卷積后產生的特征圖(feature map)都會有channel_multiplier個通道,則最后的特征圖就會有in_channels*channel_multiplier個通道了。
深度可分離是在深度卷積基礎上增加了另外一個Pointwise convolution操作,該Pointwise convolution就是1×1的卷積,可以看作是對多個分離的通道做融合操作。
LSTM網絡是一種特殊的RNN網絡,可以學習長期時間的依賴信息,擅長處理依賴于時間序列的任務。類似普通RNN,LSTM擁有重復神經網絡模塊的鏈式形式,但它所重復的模塊與普通RNN有著不同的結構,LSTM重復模塊的結構如圖1所示。

Fig.1 LSTM internal structure圖1 LSTM內部結構
LSTM的關鍵在于圖中的Ct-1,它表示細胞狀態,貫穿于網絡的整個運行周期,類似于一個傳送帶,只有少量的線性交互,因此信息在上面很容易保存。LSTM精心設計了一種稱為門的結構,能給細胞狀態刪除或者添加信息,并讓信息選擇性通過。一個門一般包括Sigmod激活和Pointwise乘法兩個數學運算。Sigmod函數的輸出值介于0和1之間,0代表不允許信息通過,1代表任意值通過。LSTM共包括3個門,分別為忘記門、輸入門和輸出門。
首先,忘記門決定從細胞狀態中丟棄什么信息,該門會讀取ht-1和Xt,輸出一個在0到1之間的數值給每個在細胞狀態Ct-1中的數字。忘記門的輸出如式(2)所示。

下一步,輸入門決定把哪些新的信息保存在細胞狀態中。輸入門有兩步運算,Sigmod的輸出值決定什么值將要被更新,tanh層創建一個新的候選值向量,決定如何把輸出值加入到細胞狀態中,基于以上兩個操作對細胞狀態更新的公式如式(3)~式(5)所示。

最后,使用輸出門得到LSTM的最終輸出。先使用一個sigmod層決定哪些信息需要輸出,細胞狀態經過tanh處理后與sigmod的輸出相乘得到整個LSTM網絡的最后輸出,其公式如式(6)、式(7)所示。

如前所述,動作識別難點在于特定動作運動模式有著巨大變化,模型往往難以表現很高的準確性,或者在一個數據集上表現比較優秀,但是在另一個數據集上卻遜色于其他模型。同時手機傳感器實時情況下存在錯誤數據,這就要求模型不僅要準確率高,還要有自適應性、魯棒性和數據容錯性。基于對模型擁有高準確性和容錯性缺一不可的特點,本文提出了一種新的網絡結構OI-LSTM。

Fig.2 OI-LSTM neural network圖2 OI-LSTM神經網絡模型
OI-LSTM模型的網絡結構如圖2所示,該模型分為兩個模塊:特征提取模塊和時序依賴處理模塊。特征提取模塊包括4個連續卷積層和1個O-Inception結構,根據式(1)進行卷積運算。其中,卷積運算只沿時間方向卷積數據,并使用修正的線性單元(ReLU)計算特征映射;O-Inception結構提取的特征經DepthConcat聯接得到各通道的綜合特征,把綜合特征再按時間依賴關系放入特征池中。時序依賴處理模塊是一個雙層LSTM網絡結構。LSTM每一個時間步驟都從特征池中提取一個對應的特征圖,一個時間序列t0到tn的特定動作則對應N+1個特征圖。為獲得最佳識別效果,在確定時間依賴處理單元中LSTM遞歸層神經元個數和層數時,本文借鑒了參考文獻[17]所提的一個參數確定原則,即縱向至少2層LSTM原則,另外根據任務本身規模,確定每層的神經元個數為32。OI-LSTM模型將上述兩個模塊進行了有效融合,一方面因為O-Inception結構的加入使得網絡層次加深,視野擴寬,即可以提取到更加豐富的特征,從而提高了識別率;另一方面又因為LSTM的加入使得時序信息得以充分使用。LSTM對時序信息的有效處理,不僅可以提高識別率,同時還可利用LSTM推理能力使模型整體擁有一定程度的容錯能力。
圖2給出了傳感器數據在OI-LSTM模型各層中的流動情況。首先,經過第一個卷積層conv1,它擁有18個卷積核,每個卷積核尺寸是2×2,每次卷積前用0填充原始數據(使卷積后得到特征圖尺寸與原數據相同),得到特征圖輸入池化層pooling1,這層的窗口移動步長和窗口大小都為2。接下來,重復3次卷積和池化操作,但卷積核個數依次增加為36、72和144。為獲得更高維度、視野更廣的特征圖,再把pooling4輸出的特征圖送入O-Inception結構中,即把pooling4輸出分別用3個大小為1×1,個數分別為36、18和18的卷積核做卷積運算,結果分別為conv1_11、conv1_21和conv1_31;同時,把pooling4輸入到一個核大小為2×2的avg_pool_41中(avg_pool_41使用平均池化操作);然后,conv1_21輸出到卷積核大小為2、個數為36的卷積層conv2_22中,conv1_31則輸入到卷積核大小為2、個數為36的卷積層conv2_32中,conv2_32的輸出還要輸入到卷積核大小為3、數量為36的卷積層conv_3_32中;接下來,avg_pool_41輸出到卷積核大小為3、個數為36的卷積層conv1_42中;最后,把conv1_11、conv2_22、con3_32和conv1_42按通道維度疊加起來,疊加后的特征圖做平化處理,轉化成一個一維向量,把這個一維向量輸入雙層LSTM網絡。
首先,OI-LSTM模型具有高識別率,部分原因在于其中的O-Inception結構。O-Inception結構通過使用一個2×2和3×3的兩層卷積替換原始Inception結構中的5×5卷積,pooling層也由3×3替換為2×2,pooling層后的卷積由1×1替換為3×3,結構如圖3所示。如果直接使用原始Inception結構,雖然也可提升特征表達能力,但同時會帶來更多的時間消耗,使得模型訓練速度和識別速度都有所下降。因此,為克服時間復雜度過高問題,OI-LSTM模型對Inception進行了結構調整和優化,即替之以O-Inception結構。由卷積操作過程可知,用多個小卷積核替換一個大卷積核,其前后得到的特征圖并沒有發生變化,即得到了相同的特征圖,但計算復雜度卻大大降低,從而加快了網絡訓練速度和識別速度。另外,用2×2池化替換3×3池化,在一定程度上可以減少特征丟失,比如3×3的一次池化操作將丟失8個信息,而2×2的一次操作僅丟失3個信息。利用3×3卷積替換1×1,由于前者視野窗口大于后者,增強了卷積視野,從而提高了模型準確率。

Fig.3 O-Inception structure圖3 O-Inception結構
其次,OI-LSTM模型具有高識別率,還在于該模型并沒有像傳統CNN那樣,把提取到的特征簡單地用全連接層綜合來直接分類,而是通過LSTM把時序依賴信息融入了動作分類中。一個連續動作在持續時間內其各個動作分解都是相互依賴的,例如一個持續2 s的步行動作,該動作在0.1 s那一刻的抬腳與0.5 s那一刻的向前邁步是前后依賴的,離開0.1 s的動作幀,單獨識別0.5 s的動作幀將毫無意義,而傳統CNN動作識別卻并沒有把該依賴信息考慮進去,而是把這兩個時刻的特征圖割裂開來,同等對待,這就丟失了連續動作本身所具有的各個時刻前后依賴的信息。基于此,本文通過加入LSTM實現將連續幀前后依賴關系納入OI-LSTM模型中,進一步提高了模型的識別準確率。
云團間,有東西一閃而過。三體艦?不,不可能,云團里怎么會有軍艦呢?壺天曉再次遙控灰色翼龍的眼睛進行搜索,卻沒有發現異常。如果目前能用的只有感應網絡,那就將它的作用發揮到極致。壺天曉暗自思忖著,全力搜索著龐大的感應網絡,希望能發現點兒什么。
如果數據中有錯誤數據或者不合法數據,傳統CNN網絡的識別率就會顯著下降,甚至無法訓練,但這與系統所要求的實時在線處理需求相矛盾,換句話說,系統并沒有時間去驗證或過濾用戶發來的數據,也無法去除臟數據和不合法數據,因此,為實現高容錯性,系統需要自動排除錯誤和不合法數據。經研究發現,深度可分離卷積結構的特殊卷積方式,在某種程度上確實可以解決容錯性問題,但卻會導致準確率下降。原因在于這種卷積方式使得網絡無法在每一層綜合各個通道的信息來得到更加全面的特征圖,不可避免地丟失了特征圖的表達能力,進而降低了準確率。
與深度可分離卷積網絡不同,OI-LSTM模型不但具有高容錯性,而且還擁有較好的高識別率,其之所以擁有容錯能力是因為,當加入LSTM時,若干不同時刻對應著多個特征圖,LSTM在每個時刻都會讀入一個特征圖作為輸入,假如ti時刻對應的特征圖Mi中某個通道是錯誤的數據,因為各特征圖間是有時間依賴關系的,此時LSTM就會根據其他特征圖的正確數據給出對Mi的一個預測,從而可忽略Mi中的錯誤數據,于是,就不會因為錯誤數據的存在而對識別準確率產生太大影響。
本系統對算法的一個很重要的要求是實時性。從模型本身來說,以下兩方面的改進提升了實時性。首先OI-LSTM模型沒有使用全連接層,而是使用LSTM按時序順序來組織綜合各個特征圖的信息。另外OI-LSTM的卷積層并不是簡單CNN疊加,而是使用了改良后的O-Inception結構替代了普通的大卷積核的CNN。通過計算可知,如果模型中包含過多的全連接層,將導致模型整體的訓練參數呈指數增長,過多的訓練參數必然會增加整個模型的訓練時間以及動作的識別時間。另外過大的卷積核,會使窗口滑動期間GPU計算結果的過程中做更多的加法與乘法運算,這里使用Inception結構去代替大卷積核,避免復雜的運算,減輕GPU的壓力,把更多的算力用于模型深度的加深。基于以上兩方面的優化,模型的訓練速度和識別速度都得到了顯著的提升,識別準確率卻沒有下降。
本章將在WISDM和UCI兩個數據集上驗證本次研究所提出的OI-LSTM網絡的高識別率和高容錯性,數據集包含從Android智能手機獲取的加速度計時間序列數據。這些數據是在用戶執行一系列不同的活動時收集的,例如散步、慢跑、爬樓梯、坐著、下樓梯和站立。數據集的70%用來訓練,30%作為測試。這些數據分別來自36個和30個不同的使用者。5.1節介紹了實驗環境,5.2節介紹了實驗的評估標準,5.3節給出了O-Inception和DWN兩個對比網絡的詳細網絡結構,5.4節給出了相關實驗結果及對實驗結果的分析。
這里所設計的四種動作識別神經網絡是使用python語言在TensorFlow上實現的,TensorFlow是一個采用數據流圖(data flow graphs),用于數值計算的開源軟件庫。
設備相關參數:GPU,GTX1080;內存,16 GB;CPU,至強E5;操作系統,Windows 7。
模型是在完全人工監督下訓練的,從softmax層把梯度回傳到卷積層、LSTM層。網絡參數的優化使用隨機梯度下降(stochastic gradient descent,SGD),Loss函數使用互熵損失,特別注意在含有LSTM的網絡中,要另外使用截斷梯度法。為了提高效率,模型訓練時被分成200大小的mini-batch。學習率均設置為0.000 1,所有模型均訓練1 000 epoch,所有參數的初始化均使用截斷正態分布隨機值。
本文用精確率(Precision)、召回率(Recall)、F1值(F1 Measure)、平均準確率(Accuracy)等評測指標來衡量算法性能。
精確率=提取正確的的信息條數/提取的總條數,本文中精確率=各動作識別正確的個數/(各動作識別正確的個數+各動作識別錯誤的個數),如式(8)所示。

召回率=提取出的正確的信息條數/樣本數目,本文中召回率=每類動作識別正確的個數/每類動作樣本個數。

式(8)和式(9)中,T(i)表示識別為第i類動作正確的個數,F(i)表示識別為第i類動作錯誤的個數,D(i)表示第i類動作的樣本數量。
F值是準確率和召回率的加權調和平均,即如式(10)所示。

當參數α=1時,F就是F1,即如式(11)所示。

平均準確率表示識別正確的所有動作數/樣本總數。

其中,R表示識別正確的動作個數,A表示數據集含有的樣本總數。
為了觀察OI-LSTM模型的性能,另外設計了圖4所示的O-Inception卷積網和圖5所示的深度可分離卷積網(depthwise separable network,DWN),并在UCI和WISDM兩個數據集上分別對它們的準確性和容錯性進行了測試,并和OI-LSTM進行對比。可以看到O-Inception卷積網和OI-LSTM使用了相同的特征提取模塊。但是O-Inception卷積網使用特征提取模塊提取到特征后,就直接輸入到一個全連接層,僅僅利用全連接層把前面提取到的特征綜合起來后直接進行識別,識別的結果沒有利用到時序信息。
圖5給出了采集的傳感器數據在DWN中的流動情況。首先輸入到一個卷積核大小為20,深度為8的卷積層,然后把得到的特征再輸入到一個最大池化層(該池化操作的移動步長和窗口大小均為2),特征經過池化層后得到了更加顯著的特征圖。接下來,再把特征圖作為輸入,輸入到一個深度可分離卷積層(其卷積核大小和深度均為2),該層得到的特征圖已經融合了每個通道的特征,融合后的特征圖經過池化和平滑處理后送入一個擁有1 000個神經元的全連接層,最后輸入softmax層得到動作分類的概率分布。

Fig.4 O-Inception neural network圖4 O-Inception神經網絡

Fig.5 Depthwise separable network圖5 深度可分離卷積網絡
5.4.1小節測試了OI-LSTM的識別準確率,實驗結果表明模型在兩個數據集上都得到了不錯的效果。5.4.2小節著重測試了模型的容錯率,實驗結果顯示模型在獲得容錯能力同時仍然擁有很高的識別率。5.4.3小節主要通過實驗驗證了本文所提出的模型的實時性優于其他模型。
5.4.1 準確率性能測試
本次實驗將在兩個數據集上做準確率測試。所得實驗結果將和相關研究的論文中的其他方法的結果進行比較。實驗結果如表2、表3所示。可以看到本文提出的OI-LSTM識別模型的準確率在兩個不同的數據集上均高于相關論文中使用的方法。在WISDM數據集上,文獻[19]因為使用了CNN并在dense層額外加入了人工提取的數學統計特征,因此它的準確率在相關研究中是最好的,但OI-LSTM、DWN和O-Inception模型在不使用任何人工特征的情況下,它們的準確率卻均高于文獻[19]中的準確率。OI-LSTM表現最為優秀,達到97.3%的準確率。如果將OI-LSTM的特征提取模塊和時序依賴處理模塊拆開形成兩個網絡O-Inception和雙層LSTM,這兩個網絡的識別準確率分別為96.49%和94.62%,可以發現拆開后各自模塊單獨使用的效果遠不如OILSTM,因此將這兩種網絡結構進行融合是有必要的,且效果提升明顯。在UCI數據集上的效果更為明顯,單獨用特征提取模塊中的O-Inception網絡和時序依賴處理模塊中的LSTM網絡去做動作識別,準確率很低,甚至不如相關研究中的CNN+數學特征的方法,但是融合后的OI-LSTM網絡的識別率遠高于其他方法。實驗結果還可以說明,特征提取模塊中的O-Inception卷積結構的特征提取能力要高于普通CNN和深度可分離卷積。因為OI-LSTM繼承了OInception的優秀的特征提取能力,而且還擁有了LSTM的時序信息處理能力,所以它的準確率是最高的。

Table 2 Comparison of experimental results of different algorithms on WISDM表2 WISDM數據集上不同算法的實驗結果對比

Table 3 Comparison of experimental results of different algorithms on UCI表3 UCI數據集上不同算法的實驗結果對比
表4、表5列出了在WISDM和UCI上的各個動作詳細分類結果,并與其他論文中的先進算法進行了比較。可以看到,在WISDM上慢跑、步行和站立是最容易識別的,不管是傳統機器學習算法,還是本文所設計的四種神經網絡其準確率都能達到90%以上的準確率,因為這兩個動作的動作變化與其他動作變化區別最為明顯,所以最好識別。比較難識別的是上下樓動作。例如上樓的識別,使用Basic featuers+RF算法準確率只能達60%,文獻[19]中的CNN+數學特征也只能達到70%多,因為這兩個動作最容易混淆。但本文所設計的OI-LSTM網絡在上樓這個動作上的識別準確率已經接近90%。在UCI上,OI-LSTM在各個動作上的動作分類結果優勢更為明顯。另外可以發現單獨使用特征提取模塊中的OInception、時序依賴模塊的雙層LSTM和深度可分離卷積表現并不像在WISDM上那么優秀了。它們好像只是擅長其中的部分動作,比如O-Inception卷積只擅長識別躺和坐這兩個動作,但識別站和上樓兩個動作只有80%多的準確率,而OI-LSTM則沒有劣勢,基本都可以達到99%以上的準確率。從分類結果的準確性上可以得出,OI-LSTM模型在各個動作的各自準確率和綜合準確率上,都遠遠高于其他模型。

Table 4 Classification precision on WISDM表4 WISDM上分類準確率 %

Table 5 Classification precision on UCI表5 UCI上分類準確率 %
為了更精細地觀察OI-LSTM模型的性能,分別統計了4個模型O-Inception、DWN、LSTM、OI-LSTM在6個動作上的各自精確率、召回率和F1值,如表6、表7所示。可以看到,OI-LSTM模型的精確率、召回率和F1-score值都遠高于其他三種結構的神經網絡。實驗結果表明OI-LSTM的各項性能指標都遙遙領先,幾乎沒有弱點。
通過記錄各個網絡在每個epoch訓練結束后其在測試集上的準確率,得到如圖6、圖7所示的準確率變化圖。其中綠色表示O-Inception神經網絡,藍色表示復合OI-LSTM神經網絡,黑色表示LSTM,紅色表示DWN。可以看到在訓練過程中O-Inception卷積網和復合OI-LSTM的準確率在200輪訓練后較其他兩種網絡就有明顯的優勢。這說明OI-LSTM的特征提取模塊提取到的特征圖在200 epoch訓練后就可以被用來精確分類。WISDM數據集上,O-Inception卷積網絡在600 epoch以后準確率就趨于平緩,更糟的是,在UCI數據集上不到50 epoch就很難提升了;而OI-LSTM網絡在兩個數據集上的整個訓練過程中,一直振動上升,并逐漸緩慢超過單獨的O-Inception網絡結構,UCI數據集上尤為明顯。O-Inception之所以在達到一定準確率后出現了瓶頸,準確率難以再次提升,就是因為它丟失了時序信息,也正因如此OILSTM會在訓練次數增加的同時準確率會緩慢提升并超過O-Inception。

Table 6 Precision,recall and F1-score of action recognition on WISDM表6 WISDM上的精確率、召回率與F1值 %

Table 7 Precision,recall and F1-score of action recognition on UCI表7 UCI上的精確率、召回率與F1值 %

Fig.6 Accuracy curve on UCI圖6 UCI上準確率變化曲線圖

Fig.7 Accuracy curve on WISDM圖7 WISDM上準確率變化曲線圖
5.4.2 容錯能力測試
下面的實驗則將注意力放在各種算法的數據容錯能力上。為了此實驗的順利進行,將模擬傳感器出錯,即在WISDM數據和UCI數據集上隨機添加錯誤數據,用如下方式添加:(1)在傳感器讀數范圍內取隨機數代替原數據正確值。(2)用NAN類型數據代替原數據正確值。(3)用INF類型數據代替原數據正確值。
實驗結果的準確率變化圖如圖8、圖9所示。從圖9中可以看到,LSTM和O-Inception結構的網絡準確率達到40%左右就不再變化,loss值無法降低,網絡的訓練無法進行。而DWN神經網絡和OI-LSTM網絡則可以順利地訓練下去。但值得注意的是,DWN雖然具有容錯能力,但是其準確率很大程度上遜色于OI-LSTM,這取決于其容錯能力的獲得原理與OI-LSTM不同。DWN的容錯性得力于其特有的卷積方式,因為各個通道分開卷積,例如1通道的某個a數據發生錯誤,但是2、3、4等通道數據b、c、d是正確的,由深度可分離卷積的卷積方式可知,最后的總體特征圖中的某個點e是由最后一層的pointwise convolution操作把1、2、3、4通道的a、b、c、d綜合起來得到的,而b、c、d在3個通道上都是正確的,那么1通道的錯誤數據a將會被弱化忽略,從而使得網絡擁有了容錯性。然而,也正是因為這種卷積方式使得網絡無法在每一層綜合各個通道的信息來得到更加全面的特征圖,所以不可避免地丟失了特征圖的表達能力,導致準確率有所下降。在4.3節中,已經分析了O-Inception和LSTM融合使得整個模型獲得容錯能力的原因,并發現它在獲得容錯能力的同時提升了準確率。基于此,OI-LSTM是優于DWN的。

Fig.8 Accuracy curve on error UCI圖8 含有錯誤數據UCI上的準確率變化曲線圖

Fig.9 Accuracy curve on error WISDM圖9 含有錯誤數據WISDM上的準確率變化曲線圖
實驗證明,O-Inception與LSTM的融合出現了1+1>2的效果,不僅使網絡的準確率得到提升,還使網絡擁有了數據容錯能力,對錯誤數據不敏感。
5.4.3 實時性測試
本次實驗驗證了本文提出的O-Inception結構在實時性上的優勢。實驗統計了在UCI數據集上,4種網絡OI-LSTM、O-Inception、DWN、LSTM同時訓練500輪時的時間,通過對比得出OI-LSTM在速度上的優勢。
實驗結果如圖10、圖11所示。從圖10中可以看出O-Inception網絡的實時性具有很大的優勢,是4種類型的網絡中訓練速度最快的。O-Inception結構的模型的速度是LSTM的10倍之多。從實驗結果可以看出,如果單純使用LSTM這一種結構,是無法滿足系統對于實時性的要求的。另外,本文提出的OILSTM模型網絡雖然速度稍遜于O-Inception,但是其足以滿足系統所要求的實時性。值得注意的是,OILSTM在網絡深度加深的情況下,速度比淺層網絡DWN還要快。雖然OI-LSTM中含有LSTM結構,但它的速度要比LSTM快5倍之多。從這里可以看出這種融合方式在準確率提升的同時效率也得到了極大的提升。

Fig.10 Training time curve of 4 models圖10 4種模型訓練時間曲線圖

Fig.11 Training time consume curve of 3 models圖11 3種模型訓練時間局部曲線圖
圖11是把LSTM變化曲線去掉后放大的曲線圖。去除LSTM結構的影響,單獨從CNN特征提取角度來分析,使用O-Inception結構有效提升了模型提取特征圖的速度,它的速度是DWN的5倍。另外因為OI-LSTM用LSTM替換了全連接層,在一定程度上快于DWN這種傳統CNN網絡。
本文提出了OI-LSTM神經網絡的動作識別模型,同時設計了O-Inception結構的卷積網、深度可分離卷積網DWN和雙層LSTM網絡作為對比網絡。通過實驗可知O-Inception結構的特征提取能力高于普通CNN和DWN,但DWN具有一定數據容錯性。最為突出的是復合OI-LSTM,它在O-Inception卷積網的基礎上融合了LSTM,使得準確率得到顯著提升的同時,獲得了一定的容錯能力,對錯誤數據不敏感,從而提高了系統的魯棒性,使整個系統具有容錯性。
為了評估所提出的OI-LSTM模型的性能,在兩個流行的WISDM和UCI數據集上進行了測試。實驗結果表明本文提出的OI-LSTM的準確性明顯優于其他最優方法,并在兩個數據集上都建立了最先進的結果。另外,OI-LSTM模型還具有其他模型所不具有的數據容錯性。