センサーデータのためのニューラルネット

Similar documents
Presentation Title

Presentation Title

WHITE PAPER RNN

PowerPoint Presentation

Slide 1

AI技術の紹介とセンサーデータ解析への応用

自己紹介 名前 : 竹田卓也 年齢 : 20 歳 ( 大学生 ) 経歴 : 人工知能歴 1ヶ月プログラミング歴 5 年くらい 言語 : PythonとかJavaとかGoとか 趣味 : オンライン オフラインゲーム 2

Deep Learning によるビッグデータ解析 ~ 手法や CUDA による高速化 2014 年 9 月 5 日 G-DEP ソリューションパートナー株式会社システム計画研究所奥村義和

MATLAB EXPO 2019 Japan プレゼン資料の検討

画像分野におけるディープラーニングの新展開

Presentation Title

自然言語処理24_705

Presentation Title

センサーデータアナリティクスの開発から運用まで

ソフト活用事例③自動Rawデータ管理システム

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

Haiku Generation Based on Motif Images Using Deep Learning Koki Yoneda 1 Soichiro Yokoyama 2 Tomohisa Yamashita 2 Hidenori Kawamura Scho

Presentation Title

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

Introduction to System Identification

新技術説明会 様式例

MATLAB®製品紹介セミナー

ロボット技術の紹介

Presentation Title

PowerPoint プレゼンテーション

AGENDA ディープラーニングとは Qwiklab/Jupyter notebook/digits の使い方 DIGITS による物体検出入門ハンズオン

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

Managing and Sharing MATLAB Code

目次 1. はじめに センサーと設置場所 不要なデータの除去 データ前処理 A) 機械学習ための時系列データ前処理 B) 2 つ部分時系列の距離計算 クラスタリングでの異常検知 A


CLEFIA_ISEC発表

5GHz 作 15-4 DFS 試験時の通信負荷条件定義について 2019 年 3 月 1 日 NTT 東芝 クアルコムジャパン 1

SimulinkによるReal-Time Test環境の構築

3 2 2 (1) (2) (3) (4) 4 4 AdaBoost 2. [11] Onishi&Yoda [8] Iwashita&Stoica [5] 4 [3] 3. 3 (1) (2) (3)

b4-deeplearning-embedded-c-mw

Deep Learningでの地図タイル活用の検討

自動車開発におけるビッグデータ / クラウド時代のデータ解析

Microsoft PowerPoint - 発表II-3原稿r02.ppt [互換モード]

インターリーブADCでのタイミングスキュー影響のデジタル補正技術

Łñ“’‘‚2004

プリント


知能科学:ニューラルネットワーク

Rの基本操作

PowerPoint プレゼンテーション

PowerPoint Presentation

(fnirs: Functional Near-Infrared Spectroscopy) [3] fnirs (oxyhb) Bulling [4] Kunze [5] [6] 2. 2 [7] [8] fnirs 3. 1 fnirs fnirs fnirs 1

b2-reinforcement-learning-mw

ディープラーニングの組み込み機器実装ソリューション ~GPC/CPU編~

2008 年度下期未踏 IT 人材発掘 育成事業採択案件評価書 1. 担当 PM 田中二郎 PM ( 筑波大学大学院システム情報工学研究科教授 ) 2. 採択者氏名チーフクリエータ : 矢口裕明 ( 東京大学大学院情報理工学系研究科創造情報学専攻博士課程三年次学生 ) コクリエータ : なし 3.

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

http//umercalbra.org/lectures/deep-learg/ z l l-1 = f w l 1 z l 1 1 f x = 1 + e x x x > 0 f x = 0 x 0 z l l-1 = f w l 1 z l 1

MATLAB®によるビッグデータ解析

ディープラーニングによって加速する AI 競争 100% 90% 80% 従来 CV 手法 IMAGENET 正答率 ディープラーニング 70% 60% IBM Watson が自然言語処理のブレークスルーを実現 Facebook が Big Sur を発表 Baidu の Deep Speech

PowerPoint プレゼンテーション

ディープラーニングとは AGENDA Qwiklabs/DIGITS の使い方 DIGITS による物体検出入門ハンズオン

PowerPoint Presentation

9 WEB監視

tokyo_t3.pdf

MATLAB ではじめる画像処理とロボットビジョン ~ 機械学習による物体認識と SLAM~ MathWorks Japan アプリケーションエンジニアリング部信号処理 通信 木川田亘 2015 The MathWorks, 1Inc.

ボルツマンマシンの高速化

Slide 1

概要 単語の分散表現に基づく統計的機械翻訳の素性を提案 既存手法の FFNNLM に CNN と Gate を追加 dependency- to- string デコーダにおいて既存手法を上回る翻訳精度を達成

はじめての機械学習

Microsoft PowerPoint - 6-盛合--日文.ppt

スピーカースライド作成前の確認シート例

音響モデル triphone 入力音声 音声分析 デコーダ 言語モデル N-gram bigram HMM の状態確率として利用 出力層 triphone: 3003 ノード リスコア trigram 隠れ層 2048 ノード X7 層 1 Structure of recognition syst

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

2017 (413812)

PowerPoint プレゼンテーション

機械学習 ハンズオン-チュートリアル

PowerPoint プレゼンテーション

SAP11_03

Kullback-Leibler 情報量を用いた亜種マルウェアの同定 電気通信大学 中村燎太 松宮遼 高橋一志 大山恵弘 1

(MIRU2008) HOG Histograms of Oriented Gradients (HOG)

第6章 実験モード解析

intra-mart EX申請システム version.5.3 PDFオプション リリースノート

Transcription:

センサーデータのためのニューラルネットワーク ~ 時系列データの分類と異常検知 ~ MathWorks Japan アプリケーションエンジニアリング部テクニカルコンピューティング 太田英司 2017 The MathWorks, Inc. 1

Agenda ニューラルネットの基礎 時系列データの分類 - 部分時系列 - 自己符号化器 / 積層自己符号化器 - LSTM(Long Short Term Memory) 異常検知 ( 自己符号化器 ) - 心電図の例題 - 構造ヘルスモニタリングの例題 システムへの展開 C コード生成 - 学習済みネットワークのブロック化 - MATLAB Production Server 2

ニューラルネットワークとは? 神経細胞 ( ニューロン ) の数学的なモデル化に起源を持つ学習器 神経細胞 ( ニューロン ) 軸索によりネットワークを構成 電気的な興奮状態を伝え合う 画像提供 : 独立行政法人理化学研究所様 3

ニューラルネットワークとは? 他の神経細胞からの興奮状態が伝わり 電位のレベルが上昇する 非興奮状態 興奮状態 電位のレベルが閾値を超えると自身が発火する 4

ニューラルネットワークとは? Weight 1 0 1-1 x 1 w 1 Transfer Function Logistic Sigmoid Tangent Sigmoid x 2 w 2 Σ f y 0 Rectified Linear Unit w n b x n Bias 1 y = f n k=1 w k x k + b 5

ニューラルネットワークとは? IW LW x 1 Σ f 1 Σ f 2 y 1 x 2 1 1 Σ f 1 Σ f 2 y 2 x 3 1 1 Σ f 1 Σ f 2 y 3 x 4 1 1 Layer 1 Layer 2 6

ニューラルネットワークによる推論 入力層 隠れ層 出力層 1120.2 0.0057 0 イヌ 1953.1 0.0022 0 ネコ 1231.5 0.9746 1 ウサギ 0.0000 0 トリ 7

ニューラルネットワークの学習 入力層 隠れ層 出力層 1520.4 0.0057 0 イヌ 1251.2 0.1022 0 ネコ 1731.6 0.8516 1 ウサギ 0.0230 0 トリ 誤差逆伝搬 8

時系列データの分類 9

例題 人の活動状態の識別 歩行 Classification 階段 - 上り 階段 - 下り 着席 直立 Dataset courtesy of: Davide Anguita, Alessandro Ghio, Luca Oneto, Xavier Parra and Jorge L. Reyes-Ortiz. Human Activity Recognition on Smartphones using a Multiclass Hardware-Friendly Support Vector Machine. International Workshop of Ambient Assisted Living (IWAAL 2012). Vitoria-Gasteiz, Spain. Dec 2012 http://archive.ics.uci.edu/ml/datasets/human+activity+recognition+using+smartphones 寝る 10

例題 人の活動状態の識別 11

例題 人の活動状態の識別 12

例題 人の活動状態の識別 3 軸の加速度センサーの情報を使って 人の活動状態を識別したい 階段? 歩行? 直立? 13

例題 人の活動状態の識別 3 軸加速度センサーのデータを窓幅 128 で切り出し ニューラルネットより活動状態を識別する 部分時系列 ( 窓幅 128) 128 sample 15

例題 人の活動状態の識別 128 sample x y 部分時系列 (384 = 128 * 3 次元 ) z 16

例題 人の活動状態の識別 加速度センサーの情報は一定の窓幅で部分時系列としてテーブルに格納されている ax ay az s t 128 sample 128 sample 128 sample 部分時系列 (X 軸 ) 部分時系列 (Y 軸 ) 部分時系列 (Z 軸 ) 被験者番号 動作番号 17

例題 人の活動状態の識別 3 軸の加速度センサーのデータを使って 人の活動状態を識別したい 入力 :384 次元部分時系列 ( 加速度 ) net = patternnet(20); net = train(net, x, t); t_hat = net(x); 出力 :6 次元人の活動状態 ( ラベル ) 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 plotconfusion(t, t_hat) 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 18

1 of K 符号化 (one-hot ベクトル表現 ) 1 3 2 4 1 ind2vec vec2ind 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 19

例題 人の活動状態の識別 Stacked Autoencoder による人の活動状態の識別 歩行 階段 - 上り 最初の 2 層のウェイトを Autoencoder により構成し最後に誤差逆伝搬法を用いて学習する 階段 - 下り 部分時系列 (128 x 3 次元 ) 人の活動状態 (6- 状態 ) 20

自己符号化器 (Autoencoder) とは? 入力したデータと同じものが出力側で再生されるように学習させるネットワーク 恒等写像となるようなウェイトを学習 主に DNN の事前学習に利用 主成分分析 スパース符号化とも関連 コード例 自己符号化器の学習 自己符号化器 (Autoencoder) autoenc = trainautoencoder(x, hiddensize,... 'L2WeightRegularization, 0.001,... 'SparsityRegularization', 4,... 'SparsityProportion', 0.05,... 'DecoderTransferFunction', 'purelin 'usegpu', true); GPU による高速化 積層自己符号化器 (Stacked Autoencoder) 21

Step 1 : Autoencoder によるウェイトの学習 Autoencoder 上のネットワークが恒等写像になるようにウェイトを学習する 正確には MATLAB の Autoencoder は Sparse Autoencoder と呼ばれる中間層の活性に疎性を仮定したものになっている 詳細は後述の PDF を参照 22

Step 2 : Encoder 部分のみ残す Encoder Decoder Encoder 部分のみ残す 23

Step 3 : Autoencoder によるウェイトの学習 1 段目の Encoder 2 段目の Autoencoder 1 段目の Encoder 出力を使い 次の Autoencoder を学習させる 24

Step 4 : Encoder 部分のみ残す 1 段目の Encoder 2 段目の Encoder 25

Step 5 : 分類のために最終層を追加 最終層で分類 (softmax) 26

Step 6 : 微調整 (Fine Tuning) を行う 誤差逆伝搬法により ウェイトの微調整 (Fine Tuning) を行う 27

例題 人の活動状態の識別 積層自己符号化器として層を増やしたところ 分類性能が 3% 程度改善! 混合行列 (2 層のネットワークの場合 ) 混合行列 ( 積層自己符号化器の場合 ) 28

特徴抽出と Deep Learning Deep Learning 以前は 特徴抽出の部分を試行錯誤で人間が探索していた 入力 特徴抽出特徴量分類 出力 うまい特徴量の探索 機械学習 データに適した特徴量を見つけ出すことがよい性能を出すためのキーであった 31

特徴抽出と Deep Learning Deep Learning では 特徴抽出の部分もデータから学習させることができる 1 5 9 入力 特徴抽出特徴量分類 出力 Deep Learning 32

LSTM Long Short Time Memory 33

LSTM(Long Short Term Memory) 3 軸の加速度センサーのデータで信号分類する際のネットワーク構築の例 layers = [... sequenceinputlayer(3) lstmlayer(50) lstmlayer(50, 'OutputMode', 'last') fullyconnectedlayer(6) softmaxlayer classificationlayer]; 入力層 LSTM 層 全結合層などの 層を積み上げて定義 opts = trainingoptions('sgdm', 'MaxEpochs, 150); net = trainnetwork(xtrain, TTrain, layers, opts); 学習率や最大反復数などを定義して 学習の関数を呼び出す 34

例題 人の活動状態の識別 LSTM(Long Short Term Memory) にすることで 更に分類性能が 5% 程度改善! 混合行列 ( 積層自己符号化器の場合 ) 混合行列 (LSTM の場合 ) 35

Recurrent Neural Network とは? 過去のデータを現時点の予測にどう活かすか? 時刻 t 入力 (Input) 出力 (Output) 36

Recurrent Neural Network とは? 1 ステップ前の隠れ層の情報現時刻の入力の情報 + 過去情報も含む予測 1 ステップ前の隠れ層 時刻 t 現在の隠れ層 入力 (Input) 出力 (Output) 37

Recurrent Neural Network とは? 1 ステップ前の隠れ層の状態をフィードバックさせることで過去の情報を予測に活かせるようにしたネットワーク 進化! LSTM Long Short Time Memory 進化版 RNN( ゲート付き RNN) メモリセルにより長期の情報を保持できる 時間的に離れた依存関係のモデル化も得意 エルマン型 RNN 長期間の依存関係を モデル化するのが不得意 38

LSTM(Long Short Term Memory) とは? h t Forget Gate f t c t 1 f t c t 1 + i t a t c t 1 c t セル ( 時刻 t-1) f t i t i t a t Input Gate a t o t tanh(c t ) セル ( 時刻 t) Output Gate Forget Gate Network Input Gate Network Cell Update Network Output Gate Network h t 1 隠れ状態 ( 時刻 t-1) x t 入力 ( 時刻 t) h t 隠れ状態 ( 時刻 t) 39

時系列データの異常検知 40

センサーデータからの異常検出 心電図 異常度 Keogh, E., Lin, J. and Fu, A. : HOT SAX : Efficiently Finding the Most Unusual Time Series Subsequence, in Proceedings of the Fifth IEEE International Conference on Data Mining, ICDM 05, pp.226-233 41

自己符号化器による特徴抽出 正常な心電図から部分時系列を生成して 自己符号化器に学習させる 100 sample 正常な心電図 自己符号化器 42

自己符号化器による異常検出 自己符号化器 元の正常な波形を再生するようにウェイトを学習する 43

自己符号化器による異常検出 正常な波形の場合は きれいに元の波形を再生するが 異常な波形の場合はうまく再生できない! 異常な波形は正常な波形に戻そうとする 正常な波形の場合 異常な波形の場合 44

構造物の異常検出 ある構造物に取り付けられた振動データの比較 正常 異常 45

例題 構造ヘルスモニタリング 実験装置 3 階建ての建物の模型 4 ヶ所の加速度センサー 1 階部分に振動発生装置 人工的な損傷状態の発生 実験目的 センサーによる異常検出 Reference: Figueiredo, E., Park, G., Figueiras, J., Farrar, C., & Worden, K. (2009). Structural Health Monitoring Algorithm Comparisons using Standard Data Sets. Los Alamos National Laboratory Report: LA-14393 46

例題 構造ヘルスモニタリング Sensor #4 Sensor #3 柱の破損 腐食など 住民 作業者など Sensor #2 Sensor #1 振動発生装置 Reference: Figueiredo, E., Park, G., Figueiras, J., Farrar, C., & Worden, K. (2009). Structural Health Monitoring Algorithm Comparisons using Standard Data Sets. Los Alamos National Laboratory Report: LA-14393 47

例題 構造物ヘルスモニタリング 構造物の模型において 次の条件を変化させて幾つかの条件を作り出した 各階への重量 (Mass) 柱の硬さの低減 (Stiffness reduction) State Description #1 Baseline condition #2 Mass = 1.2 kg at the base #3 Mass = 1.2 kg on the 1st floor #4 87.5% stiffness reduction in column 1BD #5 87.5% stiffness reduction in column 1AD and 1BD #6 87.5% stiffness reduction in column 2BD #7 87.5% stiffness reduction in column 2AD and 2BD #8 87.5% stiffness reduction in column 3BD #9 87.5% stiffness reduction in column 3AD and 3BD 上記 9 パターンのそれぞれで 10 回の実験を繰り返し 合計 90 回の実験を行ったものとします 48

例題 構造物ヘルスモニタリング State #1 を正常データとして学習させて 異常データが検知できるか調べたい State Description #1 Baseline condition #2 Mass = 1.2 kg at the base #3 Mass = 1.2 kg on the 1st floor #4 87.5% stiffness reduction in column 1BD #5 87.5% stiffness reduction in column 1AD and 1BD #6 87.5% stiffness reduction in column 2BD #7 87.5% stiffness reduction in column 2AD and 2BD #8 87.5% stiffness reduction in column 3BD #9 87.5% stiffness reduction in column 3AD and 3BD 正常データ 異常データ 正常データを学習させる異常データを検出できるか? 49

SHMTools Los Alamos National Laboratory http://www.lanl.gov/projects/national-security-education-center/engineering/software/shm-data-sets-and-software.php 52

自己符号化器による異常検出 正常な振動データから部分時系列を生成して 自己符号化器に学習させる 25 sample 正常な振動データ 自己符号化器 53

自己符号化器による異常検出 正常な場合のデータを自己符号化器に学習させる Sensor #1 Sensor #1 自己符号化器 Sensor #2 Sensor #2 Sensor #3 Sensor #3 Sensor #4 Sensor #4 54

自己符号化器による異常検出 異常を含む可能性のあるデータを自己符号化器に通して 再構成誤差を算出する ch1 ch2 ch3 ch4 学習済みの自己符号化器 ch1 ch2 ch3 ch4 ch1 ch2 ch3 ch4 - ch1 ch2 ch3 ch4 = ch1 ch2 ch3 ch4 二乗平均 e 1 e 2 e 3 e 4 元の振動データ再構成されたデータ再構成誤差 平均二乗誤差 55

自己符号化器による異常検出 正常データ 56

t-sne による異常データのクラスタリング 検出された異常の種類を識別することではできるだろうか? State Description #1 Baseline condition #2 Mass = 1.2 kg at the base #3 Mass = 1.2 kg on the 1st floor #4 87.5% stiffness reduction in column 1BD #5 87.5% stiffness reduction in column 1AD and 1BD #6 87.5% stiffness reduction in column 2BD #7 87.5% stiffness reduction in column 2AD and 2BD #8 87.5% stiffness reduction in column 3BD #9 87.5% stiffness reduction in column 3AD and 3BD どのような異常の種類があるだろうか? 58

t-sne による異常データのクラスタリング 実際の異常の種類で色分けすると 次のような可視化を行うことができる State Description #1 Baseline condition #2 Mass = 1.2 kg at the base #3 Mass = 1.2 kg on the 1st floor #4 87.5% stiffness reduction in column 1BD #5 87.5% stiffness reduction in column 1AD and 1BD #6 87.5% stiffness reduction in column 2BD #7 87.5% stiffness reduction in column 2AD and 2BD #8 87.5% stiffness reduction in column 3BD #9 87.5% stiffness reduction in column 3AD and 3BD それぞれの異常がひとつの! 島に対応しているらしいな! 63

デモのまとめ 70

例題 人の活動状態の識別 ニューラルネットを分類と次元削減の両方に利用 部分時系列からシンプルに分類 エンコーダ部分を次元削減に利用 元々のデータで分類がうまくいくようなケースでは次元削減で性能向上が狙える可能性が! 71

例題 構造ヘルスモニタリング 正常なセンサーデータが持つ データの関係性 をモデル化 ch1 ch2 ch3 ch4 部分時系列として切り出されるデータの関係性をモデル化する データの関係性 の崩れを 再構成誤差 として検出することが可能となる! 72

システムへの展開 C コード生成 79

センサーデータ解析システムにおける課題 端末の問題 データを全部送るか? 特徴量のみを送るか? 異常なデータのみ送るか? 通信モジュールの消費電力は? 演算速度と消費電力は? インフラの問題 必要な帯域は確保されているか? ネットワークは安定しているか? 電力供給は安定しているか? 通信量に対するコストは? Cloud 開発側の問題 アルゴリズムの検証し易さ 組み込みコードの開発コスト サーバ側コードの開発コスト Edge Device Desktop 80

学習済み自己符号化器の活用 Simulink ブロックへの変換 MATLAB 関数への変換 Simulink ブロック生成 ( 関数 :generatesimulink) Simulink ブロック 学習済み自己符号化器 MATLAB コード生成 ( 関数 :generatefunction) MATLAB 関数 81

学習済みニューラルネットの活用 Simulink ブロックへの変換 MATLAB 関数への変換 Simulink ブロック生成 ( 関数 :gensim) Simulink ブロック 学習済みニューラルネット MATLAB コード生成 ( 関数 :genfunction) MATLAB 関数 82

MATLAB Production Server MATLAB 関数をサーバ上で実行 HTTP / HTTPS によるアクセス 複数ワーカーによる低遅延での処理 サーバでの一元管理 軽量なクライアントアプリ ( お客様開発 ) Java, C#, VB, C/C++, Python 等が利用可能 RESTful Interface も利用可能 MATLAB Production Server 複数クライアントからの同時アクセスを低遅延で処理! Client Application Client Application Client Application 85

MATLAB/Simulink によるセンサーデータ解析システムの構築 MATLAB Production Server Cloud MATLAB Coder Simulink Coder Edge Device Desktop 86

Questions? 2015 The MathWorks, Inc. 87