74
1 © 2015 The MathWorks, Inc. IoTにおけるMATLABの活用 ~信号処理・データ解析・データアグリゲーション~ MathWorks Japan アプリケーションエンジニアリング部 通信・信号処理 竹本佳充

IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

1© 2015 The MathWorks, Inc.

IoTにおけるMATLABの活用~信号処理・データ解析・データアグリゲーション~

MathWorks Japan

アプリケーションエンジニアリング部 通信・信号処理

竹本佳充

Page 2: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

2

本日のトラックの流れ

最適化

機械学習

データ解析

本セッション

Page 3: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

3

demo: スマートフォンによるセンサーデータ取得

エッジ検出

オブジェクト追尾

音声信号モニタリング

Page 4: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

4

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section2: 信号処理

Section3:

データ解析

Section4:

データアグリゲーション

Page 5: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

5

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section2: 信号処理

Section3:

データ解析

Section4:

データアグリゲーション

Page 6: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

6

IoT 時代のセンサーデータ技術

インフラ・プラント設備

ヘルスモニタリング プロセス監視

自動車・航空宇宙

テレマティクス、ヘルスモニタリング 走行安全・ADAS

ウェアラブル・メディカル

バイタルサインモニター 在宅ケア・遠隔医療

気象、電力、災害予測 電力需要予測(EMS、電力取引)

気象・環境モニタリング

Page 7: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

7

• 冷暖房、換気システム向けクラウドベースのリアルタイム・アナリティクス

• 気象データ、電力消費量を元に、機械学習、最適化• ビルの電力消費量を15-20%削減

http://www.mathworks.com/tagteam/82631_92267v00_BuildingIQ_UserStory_final.pdf

• 喘息の発生及び、COPD(慢性閉塞性肺疾患) 検知

• スマートフォン側の処理と、クラウド処理の組み合わせによる診断

http://www.mathworks.com/tagteam/84870_92152v01_iSonea_UserStory_2015.pdf

IoT 時代のセンサーデータ技術:事例

ウェアラブル・メディカル

インフラ・プラント設備

• 社内ITシステムと統合した解析システム• コンポーネントのパフォーマンス予測• メンテナンスコストの最小化

気象・環境モニタリング 自動車・航空宇宙

http://www.mathworks.com/tagteam/85035_91950v01_HKM_User_Story.pdf

http://www.mathworks.com/tagteam/52469_91597v00_daimler_upd.pdf

• 遺伝的アルゴリズムにより生産スケジュールを最適化

• スケジュール競合の削減、出荷の前倒し、設備稼働率の目標値達成

iSonea

BuildingIQ

HKM

SAFRAN

Daimler

Page 8: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

8

例: 生体信号モニタ、診断

心拍データのキャプチャ 特徴の抽出

生体信号モニタリング

ニューラルネットワークによる機械学習

高度な解析技術により、バイタルサインから、疾病の予兆をとらえるknowledge

Page 9: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

9

機種B7秒/台

機種A5秒/台

生産計画

最適化後

例: 生産工程最適化

最適化前

設備1 設備2 検査

Page 10: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

10

例: 構造ヘルスモニタリング

データセンサー

モニタリング対象

Alert!

解析データセンシング、信号処理

Page 11: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

11

例: トラフィックモニタ、分析

Page 12: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

12

例: トラフィックモニタ、分析(cont’d)

桜通の1週間の交通量(西行きvs東行き)

トラフィック量のヒストグラム

一週間の交通量(日ごとの推移)

一週間の交通量(24時間で見た推移)

日曜日の交通量(交通量の多い時間帯は?)

Page 13: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

13

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データアグリゲータ• データの前処理、同期処理• データベースアクセス

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

センサー

MathWorks IoT 全体像

Page 14: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

14

MATLAB

対話型プログラミング環境

高度な科学技術計算向け関数– 線形代数、統計、スペクトル解析、フィルター処理、最適化、数値積分、常微分方程式求解

様々なデータ可視化– ライン、バー、ヒストグラム

– 2D/3Dグラフィックス

– ベクトル、表面、ボリューム表示

C、Java、.NET、Microsoft®Excel® などの言語との容易な接続

Page 15: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

15

MATLAB による アナリティクスフロー

計測器

データ

情報

知識

アクション

観測• 検出• 収集• 状態• データ取得

整理• フィルタリング• 信号解析• データ処理• プロット

理解• 分析• 周波数 & 時間領域• 予測分析• 推定

意思決定 & 設計• レポート & Apps• 拡張性のある展開• 設計最適化

MPG Acceleration Displacement Weight Horsepow er

MP

GA

ccele

ratio

nD

ispla

cem

ent

Weig

ht

Hors

epow

er

50 1001502002000 4000200 40010 2020 40

50

100

150

200

2000

4000

200

400

10

20

20

40

Page 16: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

16

MathWorks IoT 開発フロー①MATLABによる、アルゴリズム開発、全体システム設計

アルゴリズムの開発• データの同期方法検討• 特徴抽出・機械学習の検討• トレンド解析、イベント・異常検出

大規模高速演算• HPC/クラウド利用による、並列処理• GPGPUによる高速処理

MPG Acceleration Displacement Weight Horsepow er

MP

GA

ccele

ratio

nD

ispla

cem

ent

Weig

ht

Hors

epow

er

50 1001502002000 4000200 40010 2020 40

50

100

150

200

2000

4000

200

400

10

20

20

40

MATLABへHWをダイレクト接続(I2C, SPI, CAN, 測定機器類)

センサー

Page 17: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

17

MathWorks IoT 開発フロー②MATLAB/Simulinkによる、組み込み開発

MATLABへHWをダイレクト接続(I2C, SPI, CAN, 測定機器類)

アルゴリズムの開発• データの同期方法検討• 特徴抽出・機械学習の検討• トレンド解析、イベント・異常検出

MPG Acceleration Displacement Weight Horsepow er

MP

GA

ccele

ratio

nD

ispla

cem

ent

Weig

ht

Hors

epow

er

50 1001502002000 4000200 40010 2020 40

50

100

150

200

2000

4000

200

400

10

20

20

40

センサー

Page 18: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

18

MathWorks IoT 開発フロー②MATLAB/Simulinkによる、組み込み開発

実装

Cコード HDLコード生成

設計

アルゴリズム 要求仕様

ソフトウェアモデル

ハードウェアモデル

統合

プログラマブル SoCなど

システムモデル

生成

生成

実装

アルゴリズムのパーティショニング• アナログ vs. デジタル• スピード vs. 容量/面積• FPGA vs. CPU

モデルベースデザインフロー

Page 19: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

19

MathWorks IoT 開発フロー②MATLAB/Simulinkによる、組み込み開発

実装

Cコード HDLコード生成

設計

アルゴリズム 要求仕様

ソフトウェアモデル

ハードウェアモデル

統合

プログラマブル SoCなど

システムモデル

生成

生成

実装

アルゴリズムのパーティショニング• アナログ vs. デジタル• スピード vs. 容量/面積• FPGA vs. CPU

モデルベースデザインフロー

Page 20: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

20

MathWorks IoT 開発フロー

③エッジデバイス、アグリゲータへのコードの配置・Deploy

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データアグリゲータ• データの前処理、同期処理• データベースアクセス

C/HDLコード生成 / 実装

システムの最適化/バランス配置• エッジデバイス vs. サーバー• ストリーミング vs. オフライン

MATLABコードのDeploy (C, Java, .NET)

Page 21: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

21

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda

Section2: 信号処理– IoTにおける信号処理技術

– エッジデバイス開発

Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section3:

データ解析

Section4:

データアグリゲーション

Page 22: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

22

「信号処理」と「エッジ開発」

①信号処理 前処理

雑音除去 フィルタ

特性解析 時系列解析 スペクトル解析

特徴量抽出・峻別 Wavelet AR推定

②エッジ開発 無線通信

SDR 低消費電力化

組み込み ARM FPGA 教育・パーソナルユース

Page 23: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

23

Expo2014のコンテンツCase1: Weather

Thingspeakによるデータ取得

トレンド抽出、移動平均フィルタ

Case2: Wearable/Medical 生体信号処理

雑音・トレンド除去、ピーク検出

Case3: Infra/Home センサー信号のACノイズ、スパイクノイズ除去

振動センサデータのスペクトル解析

Case4: Automotive ノッキング信号の取得

スペクトログラム、GUIフィルタ設計、Simulink

http://www.matlabexpo.com/jp/2014/signal-processing-workflow.html

Page 24: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

24

Expo2014コンテンツ抜粋心電図データ(トレンド除去、ピーク値探索)

トレンド除去QRS群

オリジナルデータ

Page 25: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

25

Expo2014コンテンツ抜粋例:センサーデータ(瞬時電圧降下対応)

メディアンフィルタで平滑化

センサーデータに、ACノイズとスパイクノイズが重畳

Page 26: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

26

IoTで使える信号処理技術What’s “New” in Signal Processing Toolbox

センサ信号の解析を中心とした機能追加

Challenges:

欠落したデータの取り扱い

信号処理の知識や、プログラミングのスキルがあまり無い方の増加

Solution:

外れ値の検出と除去

信号解析をより簡単に!

ドキュメントの改善

Page 27: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

27

不定周期でサンプリングされた信号のリサンプリング

Default sample rate

Default anti-aliasing filter

Multichannel support

Convert irregularly sampled signals to a fixed rate

» [y,ty] = resample(x,tx)

» y = resample(x,tx,fs)

» [y,ty,b] = resample(x,tx,fs,…)

Page 28: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

28

スペクトラム解析機能の強化(cont.)Enhanced spectrogram and maxhold spectrum

>> pwelch(x,[],[],[],Fs,'maxhold')>> pwelch(x,[],[],[],Fs,'minhold')>> pwelch(x,[],[],[],Fs)

工業単位の表示 DC中心 Power spectrogram カラーバーの表示

Page 29: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

29

帯域幅測定用関数の追加

Support for various inputs

– Time domain

– PSD or Power spectrum estimate

Multi-channel support

Select bands and percentile estimations (obw)

Selectable power level roll-off (powerbw)

Provide common estimation of filter and channel widths

»obw(x,Fs) »powerbw(Pxx,F)

Page 30: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

30

平均及び中央周波数算出

Support for various inputs

– Time domain

– PSD or Power spectrum estimate

Multi-channel support

Selectable mask region

Median freq. robust in presence of spurs

Estimate average frequency and mid-point of spectrum

» meanfreq(Pxx,F,[50e3 150e3]) » medfreq(Pxx,F)

Page 31: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

31

Hampel フィルタIdentifies and Replaces Outliers

>> hampel(x)

一般的なロバスト推定法に基づく 外れ値検出と、指定ウィンドウの中の中央値への置き換え

Fastアルゴリズムの使用

Page 32: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

32

メディアンフィルタRobust Central Estimator

>> medfilt1(x,1000,’truncate’,’omitnan’);

データの始点、終点付近における、中央値推定の改善

NaNがデータに含まれる場合でも、適切に除去

特にフィルタサイズが大きい場合で、処理速度が劇的に改善以下のツール比で非常に高速なアルゴリズム(R, Mathematica, NumPy, Octave)

Page 33: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

33

再割り当てスペクトログラム時間成分やスペクトル成分のリーケージによる不確定性の除去

>> spectrogram(x,[],[],[],Fs,'reassigned')

時間-周波数分解能の向上

音響、振動、レーダー等アプリケーションで使われる狭帯域信号の分離に最適

Ideal ADAS waveform

Page 34: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

34

スペクトログラムに対する、最小閾値設定

最も支配的なスペクトル成分を強調

>> spectrogram(x,128,127, 'yaxis')

>> spectrogram(x,128,127,'yaxis',... 'MinThreshold',-10)

Page 35: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

35

回転機械等のための、次数解析

rpmプロファイル vs 次数・周波数マップ

マップでは、ピーク振幅、RMS振幅、パワーレベルが可視化できます

分解能や窓関数の選択が可能

次数やrpm速度に対して2D/3Dマップを可視化するための、対話的プロット

メカニカルエンジニア向け、スペクトル分析

>> rpmordermap(x,Fs,rpm)

Page 36: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

36

包絡線検出例

» load mtlb

» envelope(mtlb, 150, ‘rms’)

RMS Envelope

» load mtlb

» envelope(mtlb, 150, ‘peak’)

Peak Envelope

Page 37: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

37

遅延量検出および調整

xcorrを内部で使用した便利関数

» web(fullfile(docroot, 'signal/examples/measuring-signal-similarities.html')

最新の情報はここをクリック

Page 38: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

38

demo: 外れ値、エンベロープ検出

オリジナルデータ

外れ値検出(スパイク、NaN)

外れ値除去エンベロープ

(上側、下側)

Page 39: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

39

エッジデバイス例:Raspberry PiGPIO スイッチ LED センサ

USBポート(webカメラ)

パソコン(Simulink)

音声出力端子(スピーカー)

本体

Page 40: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

40

エッジデバイス例:Raspberry Pi

PCとWebカメラで動作チェック

Raspberry Pi 用カメラペリフェラル

ブロック

必要なデータを抽出し、Webへアップロード

フォアグランドディテクター

Blob解析

雑音除去

台数計測

Page 41: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

41

エッジデバイス例:iPhone/iPad (Apple iOSデバイス)

SimulinkモデルをiPhoneアプリとして実装可能

カメラ、音声I/O、ジャイロ等の各種センサブロックを提供

Page 42: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

42

ARM社信号処理ライブラリ対応表

機能 概要 CMSIS Ne10

Discrete FIR Filter Model FIR filters ○ ○FIR Decimation Filter and downsample input signals ○ ○FIR Interpolation Upsample and filter input signals ○ ○LMS Filter Compute output, error, and weights using LMS adaptive algorithm ○Biquad Filter Model biquadratic IIR (SOS) filters ○FFT Fast Fourier transform (FFT) of input ○ ○IFFT Inverse fast Fourier transform (IFFT) of input ○ ○Correlation Cross-correlation of two inputs ○Convolution Convolution of two inputs ○Mean Find mean value of input or sequence of inputs ○RMS Compute root-mean-square value of input or sequence of inputs ○Variance Compute variance of input or sequence of inputs ○Standard Deviation Find standard deviation of input or sequence of inputs ○

信号処理に最適化されたライブラリにより高速処理を実現

Page 43: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

43

エッジデバイス例: STM32F4-Discovery®, BeagleBone Black®

音声出力

GPIO

音声入力

USBポート

GPIO

DSP System ToolboxとEmbedded Coderの組み合わせで、最適化された信号処理アプリを実装可能

USBケーブル

Page 44: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

44

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda

Section3:

データ解析– 統計処理

– 機械学習

– 最適化

Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section2: 信号処理

Section4:

データアグリゲーション

Page 45: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

45

Statistics and Machine Learning Toolbox

多変量統計

確率分布

回帰と分散分析

機械学習

実験計画

統計的工程管理

MATLABデータ解析系ツール

Neural Network Toolbox ニューラルネットワークの構築、学習

自己組織化マップ

データフィッティング

クラスタリング

パタン認識

GPUによる計算の高速化

Optimization Toolbox

滑らかな目的関数の最適化

さまざまな最適化問題に対応する関数の

提供

最適化計算の並列処理

最適化のためのGUI環境

System Identification Toolbox

入出力値から

線形/非線形

動的モデルを同定

同定のための

前処理/後処理

Page 46: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

46

【例題】 構造ヘルスモニタリング

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

Sensor #4

Sensor #3

Sensor #1

Sensor #2

振動発生装置柱と留め具の隙間を調整できるようになっている

Page 47: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

47

【例題】構造ヘルスモニタリング

入力

特徴抽出

特徴量

分類

出力

センサーからの加速度データ

構造物における損傷の有無

Page 48: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

48

有効な特徴量は?

時系列

ヒストグラム

周波数スペクトル

AR係数

Page 49: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

49

自己回帰モデルの係数による特徴抽出

過去データの線形和 白色雑音定数項

tn

N

i

i XaaXn

1

1

0

a0,a1,...,an( )

Page 50: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

50

自己回帰モデルの係数による特徴抽出

𝑎1, ⋯ , 𝑎10 𝑎1, ⋯ , 𝑎10 𝑎1, ⋯ , 𝑎10 𝑎1, ⋯ , 𝑎10

Sensor #1 Sensor #2 Sensor #3 Sensor #4

4*10次元の特徴量

Page 51: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

51

主成分分析(Principal Component Analysis)特徴量の次数低減

体重

身長

第2主成分

第1主成分

PCA

[coeff, score, latent] = pca(X)

Page 52: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

52

【例題】構造ヘルスモニタリング

4チャネル全て使った場合 1チャネルのみ使った場合

Page 53: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

53

MATLABにおける機械学習

機械学習

教師なし学習

教師あり学習

クラスタリング

分類

回帰

K-平均クラスタリング階層クラスタリングニューラルネット混合ガウス分布自己組織化マップ

線形判別・2次判別K-最近傍識別単純ベイズ分類決定木アンサンブル学習ニューラルネットサポートベクターマシン

線形回帰モデル一般化線形回帰モデル非線形回帰モデル回帰木アンサンブル学習ニューラルネット

訓練データあり

訓練データなし

Page 54: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

54

決定木(Decision Tree)とは?

変数をひとつ選び、閾値を決めて、サンプルを2つに分ける

なるべく同じクラス同士が同じグループに入るようにしたい

混ざり具合の基準(Gini 係数等)を使う

X >= 1.2X < 1.2

Y >= 0.7Y < 0.7

【例題】 構造ヘルスモニタリング:決定木

Page 55: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

55

【例題】 構造ヘルスモニタリング

170個の振動データ

90個の正常データ

80個の異常データ

異常データをそんなにたくさん集められる?

Page 56: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

56

【例題】 構造ヘルスモニタリング

92個の振動データ

90個の正常データ

2個の異常データ

異常データを見分けることができるか?

Page 57: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

57

【例題】 構造ヘルスモニタリング:教師なし1クラスSVMによる異常検出

Page 58: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

58

ビデオおよびWebセミナー

http://jp.mathworks.com/

こちらで詳細をご覧頂けます

Page 60: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

60

【例題】心拍モニタ、診断

心拍データのキャプチャ特徴の抽出

生体信号モニタリング・デバイス

Amazon Kinesis

Kinesis JAVA Client

Amazon EC2MATLAB

ニューラルネットワークによる機械学習(MATLABからの実装)

MATLAB

Page 61: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

61

機種B7秒/台

機種A5秒/台

生産計画

最適化後最適化前

設備1 設備2 検査

【例題】生産工程最適化

Page 62: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

62

【例題】ある工場ラインのシミュレーション

機種B7秒/台

機種A5秒/台

設備1

修正

バッファ

出荷Aパレット

設備2バッファ 検査バッファ

バッファ

出荷Bパレット

不良品パレット

修正率:20%不良率:10%

処理時間平均10秒σ=3

処理時間平均5秒σ=1

検査時間平均15秒σ=3

修正時間平均60秒σ=30

生産計画

kensa_op.slx

このとき必要な各設備数、検査ライン数、修正ライン数は?

Page 63: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

63

機種B7秒/台

機種A5秒/台

生産計画

kensa_op.slx

ラインの流れに沿って、機能ブロックをレイアウト

ある工場ラインのシミュレーションSimEventsで実現

Page 64: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

64

Global Optimization Toolboxによる最適化

計画未達数

設備コスト合計

「計画未達コスト+合計設備コスト」を最小化

設備の各上限数

設備の各下限数最適化ツールから提供される各種ソルバ

Page 65: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

65

Global Optimaization ToolBoxによる最適化

最適化結果:設備1=4、設備2=2,検査ライン数=6、修正ライン数=3

最適化

生産計画と設備投資のバランシング

Page 66: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

66

本日のトラックの流れ

最適化

機械学習

データ解析

Page 67: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

67

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda

Section2: 信号処理

Section3:

データ解析

Section4:

データアグリゲーション

Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Page 68: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

68

データのアップロード、ダウンロード

MATLAB/Database Toolbox– Web (Restful API)

– SQL

Instrument Control Toolbox– シリアル通信

– Bluetooth

– TCP/IP

– UDP

MATLABは様々な、通信方式に対応しています

Page 69: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

69

データの取得とアップロード

I2Cセンサーを使った、データ計測

PostgreSQLへのデータのアップロード

Total Phase AdaptorI2C Temperature sensor

Remote address=0x48

データベースKinesis/EC2

Page 70: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

70

データのダウンロード

Restful Web API 使ったデータのダウンロード

e.g.) トラフィック測定アプリケーション

Page 71: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

71

デモ: Webサービスデータの読み込みMATLAB コード

データベースインターネット

Web API

Send request

Get responseXML, JSON 形式など

>> lat = 35.174067; lon = 139.905854;>> baseURL = 'http://express.heartrails.com/api/json?';>> data = webread(baseURL,'method‘,'getStations',…

'x',lon,'y',lat);

>> data.response.station(1).lineAns =名古屋市桜通線

>> data.response.station(1).nameans =久屋大通

Page 72: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

72

JAVA 環境でのインテグレーション(エンタープライズ対応)

MATLAB Compiler SDK

MATLAB Production Server

Page 73: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

73

MATLABDesktop

JAVA環境でのインテグレーションMATLAB Production Server

MATLABProduction

Server

WebApplication

Server

MATLAB Production

Server

Request

Bro

ker

CTF

Apache Tomcat

Web Server/Webservice

気象データ

電力データ

予測モデル

MATLABでの学習

Page 74: IoTにおけるMATLABの活用 ~信号処理・データ解析・データア … · • トレンド解析、イベント・異常検出 大規模高速演算 • HPC/クラウド利用による、並列処理

74

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

まとめ

データ解析– 統計処理の実績

– 機械学習・最適化

データアグリゲーション– 豊富なデータI/O

– サーバー環境への統合

MATLABによりIoTシステムの具現化を加速

信号処理– 前処理特徴抽出等

– 各種エッジデバイスに対応