處理移動端傳感器時序數據的深度學習框架:DeepSense
DeepSense 是一種在端設備上運行的深度學習框架,它可以在本地獲取需要處理的傳感器數據,并且在不上傳到云端的情況下對這些數據應用深度學習模型,如卷積神經網絡或門控循環神經網絡等。
DeepSense 是一種在移動設備上運行的深度學習框架,可以根據來自移動傳感器(例如,運動傳感器)的數據進行回歸和分類任務。分類任務的一個例子是異構人體活動識別(HHAR),即基于運動傳感器測量數據來檢測某人可能在進行哪些活動(步行,騎車,站立等等)。另一個例子是生物特征運動分析,即從步態識別出用戶。回歸任務的一個例子是利用加速度測量數據來跟蹤汽車的位置并推斷汽車以后的位置。
與***進的框架相比,DeepSense 特別提供了一個估計量(estimator),該估計量的跟蹤誤差遠小于汽車跟蹤問題的誤差,并且明顯優于 HHAR 和用戶識別任務方面的***進的算法。
盡管我們一般將多數移動應用程序轉移到遠程云處理,但是轉移過程對時間延遲要求很高,而且高傳感器采樣頻率(如加速器,陀螺儀)導致數據傳輸難以支撐,因此我們更希望在本地設備上執行大型傳感器任務。因此,我們通過在兩種不同類型的智能設備上針對所有三項任務的適度能耗和低開銷進行測試,展現了在移動設備上實現和部署 DeepSense 的可行性。
對于許多潛在的應用程序來說,本地處理也是保護隱私的一個重要組成部分。所以現在很多研究者對于這種端設備上的深度學習很感興趣。本文作者深入了解了 DeepSense 的工作原理,并重點給我們介紹該框架的核心網絡設計,其余的評估細節等我們應該很容易從論文中找到。
處理單傳感器數據
我們先考慮單個傳感器(最終我們希望構建應用程序,將多個傳感器的數據組合起來)。單傳感器可以提供多維測量,例如運動傳感器,它會沿著 x、y 和 z 軸報告運動。我們每隔一段時間(即時間序列)收集這三個維度中的傳感器讀數,我們可以用如下形式表示:
我們要在寬度為τ的非重疊窗口中處理數據。將時間序列樣本中的數據點數除以τ可以得到總的窗口數。例如,如果我們有 5 秒的運動傳感器數據,并打算將它們劃分為持續 0.25 秒的窗口,那么我們將得到 20 個窗口。
在頻率維度上對時間序列數據中尋找模式比在時間維度上更好,所以下一步是將 T 窗口中的每一個小窗口通過傅立葉變換傳遞給 f 頻率分量(frequency components),每個頻率分量具有大小和相位。每個窗口得到一個 d x 2f 階的矩陣。
我們有了這些 T,就可以將所有數據打包到一個 d x 2f x T 的 3 階張量。
將所有的信息都很好地封裝在單個張量中這一點是很方便實現的,但實際上我們將在 t 維中逐層處理(一次一個窗口)。每個 d x 2f 窗口切片通過卷積神經網絡組件包括三個階段,如下圖所示:
首先,我們使用二維卷積濾波器捕捉局部頻率域各維度之間的交互。然后輸出通過一維卷積濾波器層來捕獲高級關系。***一個濾波器層的輸出被展平以產生傳感器特征向量。
整合多傳感器數據
按照上述應用程序使用每 K 個傳感器的流程。我們現在有了 K 個傳感器特征向量,我們可以把它打包成一個具有 K 行的矩陣。
然后傳感器特征矩陣通過與我們剛剛看到結構相同的第二個卷積神經網絡組件傳送。也就是說,二維卷積濾波層后面是兩個一維向量層。***,我們將***一個濾波器的輸出壓平為整合后的傳感器特征向量。窗口寬度τ附加在在該矢量的末端。
對于每個卷積層,DeepSenses 學習 64 個濾波器,并使用 ReLU 作為激活函數。另外,在每層施加批量歸一化以減少內部協變量(covariate)的變化。
現在一個時間窗口有組合的傳感器特征向量。并且我們需要對所有 T 窗口重復上述過程。
所以現在我們有 T 個組合的傳感器特征向量,每個都學習窗口內的相互作用。當然,跨時間窗口學習窗口之間的關系也很重要。為了做到這一點,T 特征向量被饋送到 RNN 中。關于這一點,我想我們已經準備好了一張示例圖來說明問題。
作者在 RNN 層中采用了門控循環單元(GRU)而不是 LSTM。
GRU 在各種任務中表現出與 LSTM 相似的性能,同時具有更簡單的結構,這降低了移動應用程序的網絡復雜性。
DeepSense 使用兩層的堆疊式 GRU 結構。當有新的時間窗口時,此結構可以逐增地(incrementally)運行,從而更快地處理流式數據。
將其全部數據輸出到輸出層
循環層的輸出是一系列 T 向量, 每個時間窗口一個 T 向量。
對于回歸類任務(例如,預測汽車位置),輸出層是所有向量之上的全連接層,這些全連接層共享用于學習的權重和偏置項
,從而學習
。
對于分類任務,將單個矢量組成一個固定長度的單矢量以便進一步處理。我們可以使用類似注意力網絡學習的加權平均值一樣的技巧,但是在本文中,通過取時間的平均值(累加向量并除以 T)可以獲得優異的結果。最終特征向量被傳送到 softmax 層以生成最終類別預測分數。
自定義目前的應用程序
遵從以下步驟將 DeepSense 打磨成適合特定的移動測繪和計算任務的系統:
- 確定傳感器的輸入個數 k,將輸入預處理到一組 d x 2f x T 張量中。
- 確定任務類型并選擇合適的輸出層。
- 可選擇自定義成本函數。回歸任務的默認成本函數是均方誤差,分類任務默認的成本函數是交叉熵誤差。
對于評估中的活動識別(HHAR)和用戶識別任務,使用默認成本函數。對于汽車位置跟蹤任務,使用負對數似然函數(詳見 4.2 節)。
主要成果
以下是 DeepSense 相對于傳感器融合和 eNav 算法在汽車跟蹤任務上的準確度。地圖輔助準確度欄顯示了位置被映射到地圖最近道路段時得到的準確度。
DeepSense 在 HHAR 任務上優于其它方法 10%。
在用戶識別任務上優于其它方法 20%。
我們通過三個具有代表性的移動端測量任務評估了 DeepSense,DeepSense 的性能遠遠高于現有***技術的基準,同時仍然通過在移動和嵌入式平臺上適度的能耗和低延遲的表現證明其移動端部署的可行性。
評估任務主要集中在運動傳感器上,但該方法還可以應用于許多其他類型的傳感器,包括麥克風、路由器、氣壓計和光傳感器等。