[DL Hacks 実装]Deep Sense: A Unified Deep Learning Framework for Time-SeriesMobile Sensing Data Processing

>100 Views

February 09, 18

スライド概要

2018/1/29
Deep Learning JP:
http://deeplearning.jp/hacks/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Deep Sense: A Unified Deep Learning Framework for Time-Series Mobile Sensing Data Processing Shuochao Yao, Shaohan Hu, Yiran Zhao, Aston Zhang, Tarek Abdelzaher Mitsunosuke Morishita February 8, 2018 University of Tokyo, Graduate School of Economics

2.

Contents Introduction DeepSense Framework Task-Specific Customization Evaluation 実装 2/33

3.

Introduction

4.

モバイルセンシング • ML/DL の応用先として,様々なセンサーから読み取った時系列デー タを用いた回帰/分類タスクがある • たとえばモバイルからのデータを用いた,ユーザー認識,行動分類, 周辺環境の推測 • これは医療/福祉,トラッキング,交通など多様な分野で利用されて いる 3/33

5.

現状の問題 • 回帰タスク(トラッキングなど) • センサーから得られたデータのノイズが大きく,シグナルと識別するこ とが困難 • 特にノイズが非線形で入っており,また時間を通じて相関しているの で,モデル化が難しい • 分類タスク(ユーザーの行動分類など) • 特徴量の設計が難しく,非常に時間がかかる • 異なるユーザーへの般化が困難 4/33

6.

DeepSense 以上の問題の解決するため DeepSense を提案 • 回帰/分類タスクを統一的に扱うことが可能 • 複数のセンサーからのインプットを扱うことが可能 • 各センサー内での局所的な interaction,複数のセンサーデータをマー ジすることによる global な interaction,そして temporary interaction を同時に扱うことが可能 • 以下の3つのタスクで先行研究より優れた結果 • car tracking with motion sensors (CarTrack) • heterogeneous human activity recognition (HHAR) • user identification with biometric motion analysis (UserID) 5/33

7.

DeepSense Framework

8.

フレームワーク CNN/RNN の部分は共通で,出力層とコスト関数をタスクに合わせて修正 6/33

9.

前処理   K 種類のセンサーがあるとする S = {Sk }k=1 .センサー Sk は一連の測 K (k) d (k) ×n(k) を測定値 定値を時系列データとして出力する.ここで,Vt ∈ R (k) (k) の行列,ut ∈ Rn をタイムスタンプのベクトルとする.なお,d (k) は (k) 測定値の dimension 数,n はデータポイントの数である. 1. 測定値を時系列方向に間隔 τ で T 個に分割する T  (k) (k) W= Vt , ut t=1 2. 周波数の局所的な特徴を捉えるため,W の各要素に対してフーリエ (k) d (k) ×2f ×T を得る.ここで f は周波数領域の 変換を行い,X ∈ R demension 数で,振幅と位相から成る.  各センサーの出力に対して以上の前処理を行った X = X DeepSense のインプットとなる (k)  が 7/33

10.

Individual Convolutional Layers 8/33

11.

Individual Convolutional Layers 畳み込み層は個々のセンサーの特徴量を畳み込むパート (ICL) と,それを マージするパート (MCL) に分かれる.ICL は 3 層の畳み込み層から成る 1. ICL ではセンサーの測定値の interaction と周波数の局所的な特徴を   (k) (k,1) 捉えるため,まずは d , conv 1 の 2d フィルターをかけ,X..t を 得る 2. 次に,より高度な特徴を得るため (1, conv 2) の 1d フィルターをか (k,2) け,X..t を得る 3. 同様の目的でもう一度 (1, conv 3) の 1d フィルターをかけ,X..t (k,3) 得る (k,3) 4. X..t を平らにしてベクトル x..t (k,3) 5. K 個の x..t (k,3) する を を得る を concat して行列 X..t を作り,これを MCL の入力と (3) 9/33

12.

Merge Convolutional Layers 10/33

13.

Merge Convolutional Layers MCL も 3 層の畳み込み層から成る 1. K 個のセンサーの interaction を捉えるため (K , conv 4) の 2d フィル (k,4) ターをかけ,X..t を得る 2. より高度な特徴を得るため (1, conv 5) の 1d フィルターをかけ, (k,5) X..t を得る 3. 同様の目的でもう一度 (1, conv 6) の 1d フィルターをかけ,X..t (k,6) 得る (k,6) 4. X..t を を平らにしてベクトル x..t を得る (f ) 5. x..t と τ を concat して x..t を作り,これを RNN の入力とする (f ) (c) なお,ICL/MCL 共にフィルター数は 64,活性化関数は ReLU で,各層に batch normalization を噛ませている 11/33

14.

Recurrent Layers Recurrent Layer は 2 層の stacked GRU で構成される 1. T 個の x..t を 2 層の stacked GRU に入力し,x..t を得て,これを出 (c) (r ) 力層への入力とする なお,dropout と batch normalization を噛ませている 12/33

15.

Output Layer 出力層は回帰タスクと分類タスクで異なる • 回帰タスク:ŷt = Wout · x..t + bout としてエンコード    (r ) T • 分類タスク:特徴量を時系列方向に平均して x(r ) = t=1 x..t /T , (r ) これを softmax レイヤーに入力し,予測確率 ŷ を得る 13/33

16.

Task-Specific Customization

17.

General Customization Process DeepSense を個別のタスクにカスタマイズする手順は以下になる: 1. センサーの数 K を決める 2. 回帰/分類からタスクを選ぶ 3. コスト関数を決める DeepSense のモデルを F(·),訓練データのサンプルを (X , y) とすると, コスト関数は L = ℓ(F (X ) , y) +  λj P j j とかける.ここで ℓ(·) は損失関数,Pj は正則化項で,λj はペナルティの 強さを決めるパラメータである. 14/33

18.

Car Tracking with Motion Sensors (CarTrack) • 自動車のトラッキングを行うタスク • センサーの数は 3 つ(accelerometer, gyroscope, magnetometer) • データは 500 走行時間(自動車 3 台・携帯 20 台)のデータを集めて, 評価の際には GPS による位置情報と比較 • 回帰タスクであり,コスト関数は   L = − log Y[t] F (X )[t]  + T  t=1   λ · max 0, cos(θ) − Sc F (X )[t] , y(t)  ここで y[t] は GPS のシグナルであり,2 次元ガウス分布 Y[t] (·) によるカ ルマンフィルターをかけている.また,Sc (·, ·) はコサイン類似度で,方角 の予測を間違えた場合は大きなペナルティを与えている 15/33

19.

Heterogeneous Human Activity Recognition (HHAR) • モーションセンサーのデータからユーザーの行動を識別するタスク (biking, sitting, standing, walking, climbStairup, and climbStair-down) • センサーの数は 2 つ(accelerometer, gyroscope) • データは 9 ユーザー,6 種類のスマートフォンで,6 つの行動 • 分類タスクであり,コスト関数は L = H (y, F (X )) ここで H (·, ·) はクロスエントロピー. 16/33

20.

User Identification with Biometric Motion Analysis (UserID) • モーションセンサーのデータからユーザーを識別するタスク • センサーの数は 2 つ(accelerometer, gyroscope) • データは 9 ユーザー,6 種類のスマートフォンで,6 つの行動 • 分類タスクであり,コスト関数は L = H (y, F (X )) ここで H (·, ·) はクロスエントロピー. 17/33

21.

Evaluation

22.

CarTrck 18/33

23.

HHAR leave-one-user-out cross validation で評価 19/33

24.

HHAR Sit と Stand の判別が難しい.次に ClimbStair-up と ClimbStair-down. 20/33

25.

UserID 10-fold cross validation で評価 21/33

26.

UserID 22/33

27.

UserID 23/33

28.

Latency and Energy 24/33

29.

実装

30.

Framework 25/33

31.

Individual Convolutional Layers 26/33

32.

Individual Convolutional Layers (Accelerometer) 27/33

33.

Individual Convolutional Layers (Gyroscope) 28/33

34.

Merge Convolutional Layers 29/33

35.

Merge Convolutional Layers Accelerometer と Gyroscope のデータを concat 30/33

36.

Merge Convolutional Layers 31/33

37.

Recurrent Layers 32/33

38.

Output Layer 特徴量を時系列方向に平均 ここまでが関数 deepSense() で、出力をソフトマックスレイヤーに入力 33/33