王晶晶, 黃 勇, 陳寶欣, 趙運勇
(1.煙臺黃金職業學院機電工程系,山東招遠265401;2.海軍航空大學,山東煙臺264001;3.重慶市軟匯科技有限公司,重慶400039)
隨著微型傳感器和數字技術的快速發展,尤其是近年來人工智能在各領域的不斷突破,各種智能的可穿戴設備不斷涌現,廣泛應用于跌倒檢測領域,基于可穿戴設備的跌倒檢測方法也獲得了眾多學者的關注。跌倒作為一種相對于正常姿態的異常行為,文獻[1-2]中將跌倒定義為“非本意地摔倒在地面或者更低的平面上”??梢钥闯觯褂衅涔逃械奶厣峙c躺下、彎腰等行為有相似的地方,都存在一個設備的空間位置由高到低的變化。因此,可穿戴設備的跌倒檢測面臨著一定的困難和挑戰。目前,常用的跌倒檢測算法有直接閾值法和機器學習法等。直接閾值法通過人工提取特征值,然后與設定的閾值進行比較以確定是否屬于跌倒狀態。常用的特征值有加速度或速度最大值、方向變化、信息熵等。文獻[3]中認為跌倒撞擊的加速度大于2.5 g。文獻[4]中將跌倒判決設為加速度高于1.8 g和同時角速度>200°/s的行為。文獻[5]中認為跌倒發生時,加速度會先高于某個閾值,隨后又會低于某個較小的閾值,通過識別這一時間約束的狀態變化來檢測跌倒。通過上述研究結果可以發現,直接閾值法基于人工提取的特征值進行判斷,計算簡單,運算速度快,非常適合在嵌入式可穿戴設備上維持較長時間的運行。但是,直接閾值法的特征選取難以全面反映跌倒和非跌倒的數據特點,且閾值的選擇沒有理論依據,即閾值對誤報率和漏報率的關系沒有理論支持。機器學習的方法將跌倒檢測的過程看作是一個二分類問題,常用的算法如人工神經網絡、決策樹、支持向量機和K近鄰等。按照對數據處理方式的不同,機器學習的方法又可分為基于特征的方法和基于時間序列的方法。基于特征的方法類似于直接閾值法,不同的是其提取人工特征后,直接采用SVM等典型的分類器進行判決[5-7]。這種方法與直接閾值法都面臨著特征提取不充分的問題?;跁r間序列的機器學習方法認為傳感器各個狀態之間存在時間上的相關性,如跌倒過程會有一個失重、撞擊的過程[5]。常用的方法有條件隨機域、隱馬爾科夫模型、循環神經網絡等。理論上講,這類方法由于采用端到端的黑盒訓練法,不受人工特征提取不全面的影響。文獻[8]中比較了RNN與SVM和一類神經網絡(1NN)等方法的性能,結果顯示1NN效果最好。實際的可能原因是原始的RNN訓練存在梯度消失的問題,即如果輸入時間序列過長的話,RNN將很難訓練。文獻[9]中將原始RNN引入跌倒檢測,取得了較好效果,但是文中并未描述采用的時間序列長度。為了克服RNN梯度消失的問題,長短期記憶網絡(Long Short Term Memory,LSTM)和門循環單元(Gated Recurrent Unit)被提出,但是由于“門”的引入,大大增加了計算量,因此文獻[10-11]中基于多層LSTM的方法對于基于嵌入式系統的可穿戴設備來說并不適用。
作者前期研究了基于離散特征的神經網絡跌倒檢測算法[12-13],本文在此基礎上進一步提出了基于獨立循環神經網絡(Independently RNN,IndRNN)的跌倒檢測方法,構建了雙向、多層和殘差結構的跌倒檢測模型,并分析了不同網絡結構和參數對訓練的影響。實驗結果顯示,本文所提基于IndRNN的跌倒檢測方法,相對于基于原始RNN的方法,性能上有較大提升,與LSTM網絡性能相當。相比于前期工作,新方法降低了誤報率。
RNN廣泛應用于序列學習問題,如行為識別、語音識別等,并且取得了很好的結果。相比于卷積神經網絡等前向網絡來說,RNN可以將隱含的狀態通過前一時刻傳遞到下一時刻,該過程用公式表示如下,

式中:xt∈R;ht∈R為時刻t的輸入向量和狀態向量;W∈RN×M,U∈RN×N和b∈RN分別表示輸入權重、循環權重和偏執;σ(·)表示元素級激活函數;M和N分別為輸入向量和狀態向量的維度。LSTM和GRU通過引入門單元可以部分緩解該問題。文獻[14]中提出了一種IndRNN結構,隱含層的每個神經元之間互相獨立,可以實現非常深的時間步長。IndRNN的結構可表示為

式中:u為循環權重向量;?為Hadamard積。對于第n個神經元,隱含狀態hn,t可寫為

式中:wn和un分別為輸入權重和循環權重。可以看出,每一個神經元只接收來自輸入的信息和其自身的前一時刻狀態。此外,為了獲得更深的時間步長和網絡層數,IndRNN引入了線性整流函數(Rectified Linear Unit,ReLU)激活函數,

為了實現從傳感器序列數據到檢測結果的端到端處理,本文設計了基于IndRNN的跌倒檢測模型,其結構如圖1所示。

圖1 跌倒檢測模型結構圖
模型結構主要有以下3部分組成:
(1)輸入層。輸入層的數據為傳感器序列數據滑窗截取T個時間步長,即x1,x2,…,xT,其中每一時刻的數據為傳感器當前狀態矢量,可以是三軸加速度信息或三軸角速度信息等。
(2)隱含層。隱含層的主要參數為維度N,其激活函數采用ReLU。IndRNN的隱含層通過Hadamard積實現狀態的轉移。對于跌倒檢測的時間序列而言,最終“跌倒”或“非跌倒”的狀態信息隱含于整個跌倒過程。通過循環神經網絡的記憶功能,這一過程的特征可存儲于最終時刻T的狀態向量和輸出上。如果再將序列數據逆序輸入另一個IndRNN單元,則最終跌倒特征會保存在初始時刻的輸出。這前后兩個時刻的輸出是最為關心的。如果問題規模較復雜,單層的IndRNN網絡結構可能不足以應對,此時可采取堆疊多層的辦法增強網絡的性能。需要注意的是,網絡模型的復雜度與問題的復雜度是相關聯的,過于復雜的網絡結構反而容易造成過擬合。為此,本文將堆疊的每一層IndRNN的前后輸出連通至輸出層,這樣可以降低網絡帶來的過擬合副作用。這種結構的基本原理是殘差網絡,通過殘差跳躍式的結構可以使網絡在縱向空間上達到很深的層次。當然,本文方法主要面向的是嵌入式系統應用,實際并不需要特別深的空間層次,2層的縱向深度已足夠。
(3)輸出層。經過雙向IndRNN隱含層的處理后,關于跌倒或非跌倒的隱含特征得以提取,將兩個方向的特征輸入一個簡單的分類器即可實現跌倒檢測。本文采用0和1分別表示不跌倒和跌倒兩種狀態,因此輸出層采用Sigmoid激活函數,即

訓練神經網絡常用的損失函數有交叉熵、均方根誤差、SVM合頁損失、Smooth L1損失等。對于跌倒檢測這一問題,有兩個指標需要重點關注:檢測率和誤報率。一般的跌倒檢測設備在檢測到老年人跌倒后會做出報警提示,如發出聲響或者語音和短信呼叫親屬等。如果設備頻繁發生誤報,將嚴重影響用戶體驗,并且會造成對設備的信任危機。而如果檢測效果不好,老年人在跌倒后不能有效警示,又會造成嚴重后果,進而也會降低對設備的信任。本文引入奈曼-皮爾遜準則,即在給定的虛警概率約束條件下,使檢測概率達到最大。文獻[15]中證明了采用交叉熵、均方根誤差作為損失函數訓練的神經網絡或自適應系統是奈曼皮爾遜最優的,即在一定虛警條件下,相應檢測概率是最大的(最終的近似效果受網絡結構參數和訓練情況影響)。為此,采用交叉熵作為損失函數,定義如下,

式中:L為總的樣本數;Θ為網絡的全部權重向量;F(x,Θ)為神經網絡的輸出。采用梯度下降算法作為網絡優化算法,其基本原理如下:


式中:Λ為似然比。通過設定一個閾值τ∈[0,1]與網絡輸出進行比較可控制跌倒檢測器的誤報率,并且可以保證當前的檢測概率是最大的。這樣做的另一個好處是對于最終面向用戶的設備,可以設置一個設備靈敏度調節選項,用于用戶自主控制設備的靈敏度。
利用前期研制的可穿戴式跌倒檢測設備采集各種跌倒與非跌倒的數據,采樣頻率設為50 Hz。該型設備采用三軸加速度傳感器采集人體運動狀態數據,并具有藍牙無線傳輸模塊、GPS定位、語音和短信通信能力[12-13]。通過將該設備佩戴于腰部位置,然后與上位機藍牙建立連接,通過自研的軟件系統可實時采集各種運動狀態數據。各種類型的數據采集自9名志愿者(6名男性,3名女性),包括5種跌倒類型(走動跌倒、跑動跌倒、左側跌倒、右側跌倒以及無意識狀態跌倒)數據,共415條,和常見的生活狀態(走路、跑步、上下樓梯、躺下起立、坐下起立、彎腰、跳躍等)數據,共256條。為提高檢測方法的計算效率和降低設備的計算負擔,僅處理加速度值超過某一較小閾值的滑窗數據,因為如果加速度值僅超過9.8 m/s2很小時,完全可以認為當前處于非跌倒狀態。取滑動窗口長度為3 s,對應T=150個數據點。最終截取的跌倒數據樣本401個,非跌倒數據樣本642個。典型的跌倒與非跌倒(猛然坐下)滑窗數據如圖2所示。由圖中可見,跌倒與非跌倒數據有相似之處,即某一軸的加速度都在短時間內變化很大,因此,如果采用直接閾值法很可能造成誤報。
實驗采用TensorFlow深度學習框架搭建跌倒檢測模型,采用第2節構建的數據集用于模型的訓練和測試,其中60%的數據用于模型訓練,40%的數據用于模型測試。本節采用交叉驗證的方法測試了不同網絡結構參數對模型訓練的影響,包括不同類型的RNN、網絡堆疊層數和隱含層的維度,給出了所提方法與相關研究的性能對比。訓練設備為一臺英偉達DGX Station,配備有4塊英偉達Telsa V100顯卡,因此可以很方便地并行訓練各個模型,并驗證訓練效果。

圖2 典型的滑窗數據
首先比較原始RNN、GRU和IndRNN的效果,其中的GRU與LSTM類似,故僅以GRU為例。對于不同的網絡結構,堆疊不同層數的RNN單元效果也不同。為此,分別比較了堆疊1層和2層的效果差異。所有模型的其余超參數設置相同,序列長度T=150,輸入向量維度M=3,狀態向量維度N=8,學習率0.000 5,批大小406,迭代次數20 000,損失函數指標10-6。實驗結果如圖3所示,其中RNN/1/8表示1個RNN單元,狀態層維度N=8,其余類推。

圖3 不同網絡結構訓練損失
從圖3可以看出,一方面,多層堆疊的方式可以提高模型的表示能力;另一方面,相較原始RNN,GRU結構中門單元的引入改善了梯度消失的影響,使模型的收斂速度加快。損失收斂最快的是基于IndRNN的模型,由此可見IndRNN獨立狀態單元和ReLU激活函數的引入大大降低了梯度消失的影響,使模型更容易記憶較長時間的信息。從圖3還可以看出,RNN的訓練過程存在損失波動,尤其是多層RNN堆疊時,原因可能是隱含層單元之間的互相影響,而具有獨立隱含層結構的GRU和IndRNN梯度下降方向更穩定(GRU重置門和更新門功能類似于IndRNN中的狀態權重u)。
狀態向量的維度也直接影響模型的訓練,不同維度的基于IndRNN的模型損失函數曲線如圖4所示。從圖中可以看出,IndRNN/2/8模型的收斂速度最快。

圖4 不同隱含層維度訓練損失
最后,取閾值τ=0.997,測試本文方法與典型方法的檢測率和誤報率的性能,結果如表1所示??梢钥闯觯疚幕贗ndRNN結構的方法明顯優于閾值法,與早期的工作相比也有一定的提升,主要是大幅降低了誤報率。與傳統RNN的相比,檢測率顯著增加。本文的IndRNN/2/8結構與基于LSTM網絡的方法檢測率相當。實際上,現階段各種方法的檢測率已經相當高,本文方法的主要優勢在于容易訓練,且計算量較小。

表1 不同方法檢測結果比較
本文提出了一種基于IndRNN的跌倒檢測算法,通過構建雙向、多層和殘差結構的跌倒檢測模型,實現了從原始數據到跌倒判決的端到端處理。相比于基于特征值的閾值法,本文方法省去了人工提取特征值的過程。同時,采用交叉熵作為損失函數,通過最終閾值的設定,在控制誤報率一定水平下,使得檢測率最大,可以認為是一種基于奈曼-皮爾遜準則的檢測器。實驗測試了不同網絡結構參數對模型性能的影響,結果顯示基于IndRNN的跌倒檢測方法更容易訓練,檢測率和誤報率顯著優于基于原始RNN的方法,與基于LSTM網絡的方法性能相當。相比于前期工作,新方法降低了誤報率。目前,本文工作主要是離線驗證方法的有效性,后續工作將本文方法嵌入到實際系統中,以驗證方法的實際性能。
·名人名言·
科學家不創造任何東西,而是揭示自然界中現成的隱藏著的真實,藝術家創造真實的類似物。
——岡察洛夫