王晶晶, 黃 勇, 陳寶欣, 趙運勇
(1.煙臺黃金職業(yè)學院機電工程系,山東招遠265401;2.海軍航空大學,山東煙臺264001;3.重慶市軟匯科技有限公司,重慶400039)
隨著微型傳感器和數(shù)字技術(shù)的快速發(fā)展,尤其是近年來人工智能在各領域的不斷突破,各種智能的可穿戴設備不斷涌現(xiàn),廣泛應用于跌倒檢測領域,基于可穿戴設備的跌倒檢測方法也獲得了眾多學者的關注。跌倒作為一種相對于正常姿態(tài)的異常行為,文獻[1-2]中將跌倒定義為“非本意地摔倒在地面或者更低的平面上”。可以看出,跌倒有其固有的特色,但又與躺下、彎腰等行為有相似的地方,都存在一個設備的空間位置由高到低的變化。因此,可穿戴設備的跌倒檢測面臨著一定的困難和挑戰(zhàn)。目前,常用的跌倒檢測算法有直接閾值法和機器學習法等。直接閾值法通過人工提取特征值,然后與設定的閾值進行比較以確定是否屬于跌倒狀態(tài)。常用的特征值有加速度或速度最大值、方向變化、信息熵等。文獻[3]中認為跌倒撞擊的加速度大于2.5 g。文獻[4]中將跌倒判決設為加速度高于1.8 g和同時角速度>200°/s的行為。文獻[5]中認為跌倒發(fā)生時,加速度會先高于某個閾值,隨后又會低于某個較小的閾值,通過識別這一時間約束的狀態(tài)變化來檢測跌倒。通過上述研究結(jié)果可以發(fā)現(xiàn),直接閾值法基于人工提取的特征值進行判斷,計算簡單,運算速度快,非常適合在嵌入式可穿戴設備上維持較長時間的運行。但是,直接閾值法的特征選取難以全面反映跌倒和非跌倒的數(shù)據(jù)特點,且閾值的選擇沒有理論依據(jù),即閾值對誤報率和漏報率的關系沒有理論支持。機器學習的方法將跌倒檢測的過程看作是一個二分類問題,常用的算法如人工神經(jīng)網(wǎng)絡、決策樹、支持向量機和K近鄰等。按照對數(shù)據(jù)處理方式的不同,機器學習的方法又可分為基于特征的方法和基于時間序列的方法?;谔卣鞯姆椒愃朴谥苯娱撝捣ǎ煌氖瞧涮崛∪斯ぬ卣骱?,直接采用SVM等典型的分類器進行判決[5-7]。這種方法與直接閾值法都面臨著特征提取不充分的問題?;跁r間序列的機器學習方法認為傳感器各個狀態(tài)之間存在時間上的相關性,如跌倒過程會有一個失重、撞擊的過程[5]。常用的方法有條件隨機域、隱馬爾科夫模型、循環(huán)神經(jīng)網(wǎng)絡等。理論上講,這類方法由于采用端到端的黑盒訓練法,不受人工特征提取不全面的影響。文獻[8]中比較了RNN與SVM和一類神經(jīng)網(wǎng)絡(1NN)等方法的性能,結(jié)果顯示1NN效果最好。實際的可能原因是原始的RNN訓練存在梯度消失的問題,即如果輸入時間序列過長的話,RNN將很難訓練。文獻[9]中將原始RNN引入跌倒檢測,取得了較好效果,但是文中并未描述采用的時間序列長度。為了克服RNN梯度消失的問題,長短期記憶網(wǎng)絡(Long Short Term Memory,LSTM)和門循環(huán)單元(Gated Recurrent Unit)被提出,但是由于“門”的引入,大大增加了計算量,因此文獻[10-11]中基于多層LSTM的方法對于基于嵌入式系統(tǒng)的可穿戴設備來說并不適用。
作者前期研究了基于離散特征的神經(jīng)網(wǎng)絡跌倒檢測算法[12-13],本文在此基礎上進一步提出了基于獨立循環(huán)神經(jīng)網(wǎng)絡(Independently RNN,IndRNN)的跌倒檢測方法,構(gòu)建了雙向、多層和殘差結(jié)構(gòu)的跌倒檢測模型,并分析了不同網(wǎng)絡結(jié)構(gòu)和參數(shù)對訓練的影響。實驗結(jié)果顯示,本文所提基于IndRNN的跌倒檢測方法,相對于基于原始RNN的方法,性能上有較大提升,與LSTM網(wǎng)絡性能相當。相比于前期工作,新方法降低了誤報率。
RNN廣泛應用于序列學習問題,如行為識別、語音識別等,并且取得了很好的結(jié)果。相比于卷積神經(jīng)網(wǎng)絡等前向網(wǎng)絡來說,RNN可以將隱含的狀態(tài)通過前一時刻傳遞到下一時刻,該過程用公式表示如下,
式中:xt∈R;ht∈R為時刻t的輸入向量和狀態(tài)向量;W∈RN×M,U∈RN×N和b∈RN分別表示輸入權(quán)重、循環(huán)權(quán)重和偏執(zhí);σ(·)表示元素級激活函數(shù);M和N分別為輸入向量和狀態(tài)向量的維度。LSTM和GRU通過引入門單元可以部分緩解該問題。文獻[14]中提出了一種IndRNN結(jié)構(gòu),隱含層的每個神經(jīng)元之間互相獨立,可以實現(xiàn)非常深的時間步長。IndRNN的結(jié)構(gòu)可表示為
式中:u為循環(huán)權(quán)重向量;?為Hadamard積。對于第n個神經(jīng)元,隱含狀態(tài)hn,t可寫為
式中:wn和un分別為輸入權(quán)重和循環(huán)權(quán)重。可以看出,每一個神經(jīng)元只接收來自輸入的信息和其自身的前一時刻狀態(tài)。此外,為了獲得更深的時間步長和網(wǎng)絡層數(shù),IndRNN引入了線性整流函數(shù)(Rectified Linear Unit,ReLU)激活函數(shù),
為了實現(xiàn)從傳感器序列數(shù)據(jù)到檢測結(jié)果的端到端處理,本文設計了基于IndRNN的跌倒檢測模型,其結(jié)構(gòu)如圖1所示。
圖1 跌倒檢測模型結(jié)構(gòu)圖
模型結(jié)構(gòu)主要有以下3部分組成:
(1)輸入層。輸入層的數(shù)據(jù)為傳感器序列數(shù)據(jù)滑窗截取T個時間步長,即x1,x2,…,xT,其中每一時刻的數(shù)據(jù)為傳感器當前狀態(tài)矢量,可以是三軸加速度信息或三軸角速度信息等。
(2)隱含層。隱含層的主要參數(shù)為維度N,其激活函數(shù)采用ReLU。IndRNN的隱含層通過Hadamard積實現(xiàn)狀態(tài)的轉(zhuǎn)移。對于跌倒檢測的時間序列而言,最終“跌倒”或“非跌倒”的狀態(tài)信息隱含于整個跌倒過程。通過循環(huán)神經(jīng)網(wǎng)絡的記憶功能,這一過程的特征可存儲于最終時刻T的狀態(tài)向量和輸出上。如果再將序列數(shù)據(jù)逆序輸入另一個IndRNN單元,則最終跌倒特征會保存在初始時刻的輸出。這前后兩個時刻的輸出是最為關心的。如果問題規(guī)模較復雜,單層的IndRNN網(wǎng)絡結(jié)構(gòu)可能不足以應對,此時可采取堆疊多層的辦法增強網(wǎng)絡的性能。需要注意的是,網(wǎng)絡模型的復雜度與問題的復雜度是相關聯(lián)的,過于復雜的網(wǎng)絡結(jié)構(gòu)反而容易造成過擬合。為此,本文將堆疊的每一層IndRNN的前后輸出連通至輸出層,這樣可以降低網(wǎng)絡帶來的過擬合副作用。這種結(jié)構(gòu)的基本原理是殘差網(wǎng)絡,通過殘差跳躍式的結(jié)構(gòu)可以使網(wǎng)絡在縱向空間上達到很深的層次。當然,本文方法主要面向的是嵌入式系統(tǒng)應用,實際并不需要特別深的空間層次,2層的縱向深度已足夠。
(3)輸出層。經(jīng)過雙向IndRNN隱含層的處理后,關于跌倒或非跌倒的隱含特征得以提取,將兩個方向的特征輸入一個簡單的分類器即可實現(xiàn)跌倒檢測。本文采用0和1分別表示不跌倒和跌倒兩種狀態(tài),因此輸出層采用Sigmoid激活函數(shù),即
訓練神經(jīng)網(wǎng)絡常用的損失函數(shù)有交叉熵、均方根誤差、SVM合頁損失、Smooth L1損失等。對于跌倒檢測這一問題,有兩個指標需要重點關注:檢測率和誤報率。一般的跌倒檢測設備在檢測到老年人跌倒后會做出報警提示,如發(fā)出聲響或者語音和短信呼叫親屬等。如果設備頻繁發(fā)生誤報,將嚴重影響用戶體驗,并且會造成對設備的信任危機。而如果檢測效果不好,老年人在跌倒后不能有效警示,又會造成嚴重后果,進而也會降低對設備的信任。本文引入奈曼-皮爾遜準則,即在給定的虛警概率約束條件下,使檢測概率達到最大。文獻[15]中證明了采用交叉熵、均方根誤差作為損失函數(shù)訓練的神經(jīng)網(wǎng)絡或自適應系統(tǒng)是奈曼皮爾遜最優(yōu)的,即在一定虛警條件下,相應檢測概率是最大的(最終的近似效果受網(wǎng)絡結(jié)構(gòu)參數(shù)和訓練情況影響)。為此,采用交叉熵作為損失函數(shù),定義如下,
式中:L為總的樣本數(shù);Θ為網(wǎng)絡的全部權(quán)重向量;F(x,Θ)為神經(jīng)網(wǎng)絡的輸出。采用梯度下降算法作為網(wǎng)絡優(yōu)化算法,其基本原理如下:
式中:Λ為似然比。通過設定一個閾值τ∈[0,1]與網(wǎng)絡輸出進行比較可控制跌倒檢測器的誤報率,并且可以保證當前的檢測概率是最大的。這樣做的另一個好處是對于最終面向用戶的設備,可以設置一個設備靈敏度調(diào)節(jié)選項,用于用戶自主控制設備的靈敏度。
利用前期研制的可穿戴式跌倒檢測設備采集各種跌倒與非跌倒的數(shù)據(jù),采樣頻率設為50 Hz。該型設備采用三軸加速度傳感器采集人體運動狀態(tài)數(shù)據(jù),并具有藍牙無線傳輸模塊、GPS定位、語音和短信通信能力[12-13]。通過將該設備佩戴于腰部位置,然后與上位機藍牙建立連接,通過自研的軟件系統(tǒng)可實時采集各種運動狀態(tài)數(shù)據(jù)。各種類型的數(shù)據(jù)采集自9名志愿者(6名男性,3名女性),包括5種跌倒類型(走動跌倒、跑動跌倒、左側(cè)跌倒、右側(cè)跌倒以及無意識狀態(tài)跌倒)數(shù)據(jù),共415條,和常見的生活狀態(tài)(走路、跑步、上下樓梯、躺下起立、坐下起立、彎腰、跳躍等)數(shù)據(jù),共256條。為提高檢測方法的計算效率和降低設備的計算負擔,僅處理加速度值超過某一較小閾值的滑窗數(shù)據(jù),因為如果加速度值僅超過9.8 m/s2很小時,完全可以認為當前處于非跌倒狀態(tài)。取滑動窗口長度為3 s,對應T=150個數(shù)據(jù)點。最終截取的跌倒數(shù)據(jù)樣本401個,非跌倒數(shù)據(jù)樣本642個。典型的跌倒與非跌倒(猛然坐下)滑窗數(shù)據(jù)如圖2所示。由圖中可見,跌倒與非跌倒數(shù)據(jù)有相似之處,即某一軸的加速度都在短時間內(nèi)變化很大,因此,如果采用直接閾值法很可能造成誤報。
實驗采用TensorFlow深度學習框架搭建跌倒檢測模型,采用第2節(jié)構(gòu)建的數(shù)據(jù)集用于模型的訓練和測試,其中60%的數(shù)據(jù)用于模型訓練,40%的數(shù)據(jù)用于模型測試。本節(jié)采用交叉驗證的方法測試了不同網(wǎng)絡結(jié)構(gòu)參數(shù)對模型訓練的影響,包括不同類型的RNN、網(wǎng)絡堆疊層數(shù)和隱含層的維度,給出了所提方法與相關研究的性能對比。訓練設備為一臺英偉達DGX Station,配備有4塊英偉達Telsa V100顯卡,因此可以很方便地并行訓練各個模型,并驗證訓練效果。
圖2 典型的滑窗數(shù)據(jù)
首先比較原始RNN、GRU和IndRNN的效果,其中的GRU與LSTM類似,故僅以GRU為例。對于不同的網(wǎng)絡結(jié)構(gòu),堆疊不同層數(shù)的RNN單元效果也不同。為此,分別比較了堆疊1層和2層的效果差異。所有模型的其余超參數(shù)設置相同,序列長度T=150,輸入向量維度M=3,狀態(tài)向量維度N=8,學習率0.000 5,批大小406,迭代次數(shù)20 000,損失函數(shù)指標10-6。實驗結(jié)果如圖3所示,其中RNN/1/8表示1個RNN單元,狀態(tài)層維度N=8,其余類推。
圖3 不同網(wǎng)絡結(jié)構(gòu)訓練損失
從圖3可以看出,一方面,多層堆疊的方式可以提高模型的表示能力;另一方面,相較原始RNN,GRU結(jié)構(gòu)中門單元的引入改善了梯度消失的影響,使模型的收斂速度加快。損失收斂最快的是基于IndRNN的模型,由此可見IndRNN獨立狀態(tài)單元和ReLU激活函數(shù)的引入大大降低了梯度消失的影響,使模型更容易記憶較長時間的信息。從圖3還可以看出,RNN的訓練過程存在損失波動,尤其是多層RNN堆疊時,原因可能是隱含層單元之間的互相影響,而具有獨立隱含層結(jié)構(gòu)的GRU和IndRNN梯度下降方向更穩(wěn)定(GRU重置門和更新門功能類似于IndRNN中的狀態(tài)權(quán)重u)。
狀態(tài)向量的維度也直接影響模型的訓練,不同維度的基于IndRNN的模型損失函數(shù)曲線如圖4所示。從圖中可以看出,IndRNN/2/8模型的收斂速度最快。
圖4 不同隱含層維度訓練損失
最后,取閾值τ=0.997,測試本文方法與典型方法的檢測率和誤報率的性能,結(jié)果如表1所示??梢钥闯?,本文基于IndRNN結(jié)構(gòu)的方法明顯優(yōu)于閾值法,與早期的工作相比也有一定的提升,主要是大幅降低了誤報率。與傳統(tǒng)RNN的相比,檢測率顯著增加。本文的IndRNN/2/8結(jié)構(gòu)與基于LSTM網(wǎng)絡的方法檢測率相當。實際上,現(xiàn)階段各種方法的檢測率已經(jīng)相當高,本文方法的主要優(yōu)勢在于容易訓練,且計算量較小。
表1 不同方法檢測結(jié)果比較
本文提出了一種基于IndRNN的跌倒檢測算法,通過構(gòu)建雙向、多層和殘差結(jié)構(gòu)的跌倒檢測模型,實現(xiàn)了從原始數(shù)據(jù)到跌倒判決的端到端處理。相比于基于特征值的閾值法,本文方法省去了人工提取特征值的過程。同時,采用交叉熵作為損失函數(shù),通過最終閾值的設定,在控制誤報率一定水平下,使得檢測率最大,可以認為是一種基于奈曼-皮爾遜準則的檢測器。實驗測試了不同網(wǎng)絡結(jié)構(gòu)參數(shù)對模型性能的影響,結(jié)果顯示基于IndRNN的跌倒檢測方法更容易訓練,檢測率和誤報率顯著優(yōu)于基于原始RNN的方法,與基于LSTM網(wǎng)絡的方法性能相當。相比于前期工作,新方法降低了誤報率。目前,本文工作主要是離線驗證方法的有效性,后續(xù)工作將本文方法嵌入到實際系統(tǒng)中,以驗證方法的實際性能。
·名人名言·
科學家不創(chuàng)造任何東西,而是揭示自然界中現(xiàn)成的隱藏著的真實,藝術(shù)家創(chuàng)造真實的類似物。
——岡察洛夫