自動車開発におけるビッグデータ / クラウド時代のデータ解析 MathWorks Japan アプリケーションエンジニアリング部テクニカルコンピューティング 吉田剛士 2015 The MathWorks, Inc. 1
Agenda Introduction デモンストレーション Data Summary on Amazon Redshift Triggered Data Capturing & Calibration 終わりに まとめ 2
刻々と増え続けるデータ量 データが膨大になる理由 データソースの多様化と高性能化 スマートフォン位置情報監視カメラ検索情報 SNS IC 構造物センサー 交通情報 IC カード情報金融情報買物履歴 3
どのようにビッグデータを扱うのか? 2 つの流派 Batch Processing Batch Processing ある程度のデータをためて処理する 対象データは大規模 処理に時間をかけてもよい ポイントはデータストレージへのアクセス Stream Processing 次々生成されるデータを処理する 対象データは小規模 処理に時間はかけられない ポイントは低遅延性 Stream Processing 4
Agenda Introduction デモンストレーション Data Summary on Amazon Redshift Triggered Data Capturing & Calibration 終わりに まとめ 5
データ解析ワークフロー データへのアクセス ファイル アルゴリズムの探求 データ解析 結果の共有 /IP 化 ドキュメント生成 ソフトウェア 数理モデリング x E = V2 R y アプリケーション配布 コードやアプリケーション ハードウェア アルゴリズム開発 ウェブサービス JSON XML HTML アプリケーション開発 組み込み開発 Integrate 6
データ解析ワークフロー データへのアクセス ファイル アルゴリズムの探求 データ解析 結果の共有 /IP 化 ドキュメント生成 ソフトウェア 数理モデリング x E = V2 R y アプリケーション配布 コードやアプリケーション ハードウェア アルゴリズム開発 ウェブサービス JSON XML HTML アプリケーション開発 組み込み開発 Integrate 7
データ解析ワークフロー データへのアクセス アルゴリズムの探求 結果の共有 /IP 化 ファイルソフトウェアハードウェアウェブサービス データ解析アルゴリズム開発数理モデリングアプリケーション開発 ドキュメント生成 アプリケーション配布 組み込み開発 Amazon Redshift MATLAB Amazon EC2 8
Amazon Redshift Access Database Toolbox Amazon Redshift >> setdbprefs( DataReturnFormat, table ); % Table 型でインポート >> % Redshiftへ接続 >> conn = database( <DBName>', <UserName>', <Password>', 'org.postgresql.driver', 'jdbc:postgresql://<jdbc_url>'); >> curs = exec(conn, select * from sensor ); % Select 文の発行 >> curs = fetch(curs); % インポート >> GPSData = curs.data; >> close(curs); >> close(conn); >> clear curs conn 9
データの前処理と解析 Discover & Explore 論理配列を使った異常値の除去 >> Longitude(GPSData.horizontalAccuracy >= 100) = NaN; >> Latitude(GPSData.horizontalAccuracy >= 100) = NaN; N 次元配列までサポートする補間関数 interp1 / interp2 / interp3 / intern シンプルな文法による移動平均フィルタ 10 点移動平均フィルタの計算 Curve Fitting Toolbox >> Latitude2 = smooth(latitude, 10, moving ); >> Longitude2 = smooth(longitude, 10, 'moving'); 10
様々な地図サービス / データとの連携 Discover & Explore Mapping Toolbox 地図解析および可視化 ベクタ / ラスタデータのインポート エクスポート 2D/3D 地図表示 WMS (Web Map Service) へのアクセス デジタル地形や標高の分析 地図フォーマットの変換 OpenStreetMap のインタラクティブな Web 地図表示 11
様々な解析方法が試せる! Discover & Explore 専門 非専門分野の手法を手軽に適用できる環境 Statistics Toolbox Signal Processing Toolbox Wavelet Toolbox Optimization Toolbox Global Optimization Toolbox Control System Toolbox System Identification Toolbox Econometrics Toolbox 12
HTML レポートの作成 Share MATLAB Report Generator グラフや表を埋め込んだレポート生成 章や節といった構成の設定 HTML の他に RTF/XMLPDF/Word をサポート 13
まとめ MATLAB Solutions MATLAB Access ODBC/JDBC ドライバをサポート Amazon Redshift Discover & Explore 地図情報専用製品を提供 高速で柔軟なデータの前処理 豊富なフィルタ機能 Share HTML を含めた様々なファイル形式でのレポート生成 Amazon Web Service / Bring Your Own License 14
Scalability MapReduce を含め並列実行による解析作業の高速化 Scale-up ローカルホスト上のマルチコア / マルチ CPU を利用した解析作業の並列化 Parallel Computing Toolbox Scale-out ネットワークを介したクラスタ環境上での大規模な解析作業 MATLAB Distributed Computing Server Desktop Computer Local MATLAB Desktop (Client) Computer Cluster Scheduler 15
車両計測データ解析エコシステム豊富な計算機能と柔軟な API を活かした解析システムの構築 16
異常検出とは? データの中に潜む珍妙な振る舞いを見つけ出す 異常 もいろいろ 外れ値 (Outlier) 変化点 (Change point) 逸脱 (Deviation) 誤作動 (Fault) 侵入 (Intrusion) 詐欺 (Fraud) : センサーデータから非破壊で異常を発見した様子 目標は 自動 検出 17
時系列データの異常検出人の目には明らかな異常たち どこを異常と判断しますか? 自動判定したい!! 参考文献 : 井手剛 (2015) 入門機械学習による異常検知 18
時系列の異常検出 最近傍法を応用した変化点検出 ( 上 ) 主成分分析を応用した変化点 + 逸脱検出 ( 下 ) 19
事例 :Daimler AG データベースへのアクセス 解析 マップ上の可視化まで MATLAB の 1 ツールのみで完結 現場からの様々な解析要求に迅速に応答 100 時間以上かかっていたマニュアルによる解析が自動化 http://www.mathworks.co.jp/company/newsletters/articles/analyzing-test-data-from-a-worldwide-fleet-of-fuel-cell-vehicles-at-daimler-ag.html 20
Agenda Introduction デモンストレーション Data Summary on Amazon Redshift Triggered Data Capturing & Calibration 終わりに まとめ 21
データ解析ワークフロー データへのアクセス ファイル アルゴリズムの探求 データ解析 結果の共有 /IP 化 ドキュメント生成 ソフトウェア 数理モデリング x E = V2 R y アプリケーション配布 コードやアプリケーション ハードウェア アルゴリズム開発 ウェブサービス JSON XML HTML アプリケーション開発 組み込み開発 Integrate 22
データ解析ワークフロー データへのアクセス アルゴリズムの探求 結果の共有 /IP 化 ファイルソフトウェアハードウェアウェブサービス データ解析アルゴリズム開発数理モデリングアプリケーション開発 ドキュメント生成 アプリケーション配布 組み込み開発 計測機器 Calibration (Track Optimization) 大規模テキストファイル 非 MATLAB ユーザへの配布 23
データへのアクセス特定のイベントを捕らえるためのストリーミング処理 Triggered Data Capturing 2 つのチャンネルを流れる信号を必要な分だけ捕捉 CH1 : ギアポジション (1~6) を示す離散的な波形 CH2 : 別のセンサーが出力する連続的な波形 ストリーミング処理 計測機器と繋げたオンライン処理 エクスポートされた CSV ファイルに対するオフライン処理 24
オンライン ストリーミング処理をサポートする様々な製品計測ハードウェアとのインターフェース Data Acquisition Toolbox プラグインデータ収集ボード Instrument Control Toolbox オシロスコープ 信号発生器 etc. Image Acquisition Toolbox イメージキャプチャーデバイス Others Vehicle Network Toolbox DSP System Toolbox MATLAB 25
Demo : オンライン ストリーミング処理 Triggered Data Capturing CH1 を流れる信号が特定の状態に変化した時刻前後の CH1/CH2 の信号を捕捉 CH1 が 3 4 に変化した際の CH1 および CH2 を流れる信号を捕らえた様子 デモへ 26
データ解析ワークフローデータへのアクセス データへのアクセス アルゴリズムの探求 結果の共有 /IP 化 ファイルソフトウェアハードウェアウェブサービス データ解析アルゴリズム開発数理モデリングアプリケーション開発 ドキュメント生成 アプリケーション配布 組み込み開発 計測機器 Calibration (Track Optimization) 大規模テキストファイル 非 MATLAB ユーザへの配布 27
オフライン ストリーミング処理をサポートする様々な機能 テキストファイルならば MATLAB datastore 大規模データ向けに設計されたオブジェクト データベースにも対応 ReadSize プロパティと read メソッド reset メソッドで初期化 ( 巻き戻し ) >> ds = datastore('sampleascii.csv'); >> whos ds Name Size Bytes Class ds 1x1 112 matlab.io.datastore.tabulartextdatastore >> ds.readsize = 3; >> while hasdata(ds) read(ds); : end >> >> reset(ds); データストアを作成してもデータは未取得 Time Position 0 0 0.01 0 0.02 0 0.03 0 0.04 0 cursor メモリに余裕があれば readall メソッドで全てインポート バイナリファイルの場合は 音声であれば DSP System Toolbox 動画であれば Computer Vision System Toolbox その他であれば MATLAB ImageDatastore 登場 (R2015b~) 0.05 0 0.06 0 0.07 0 : : : 199.99 0 200.00 0 28
Demo : オフライン ストリーミング処理 10KHz で 30 分間サンプリングされた 2 チャンネル分のセンサーデータをストリーミング処理 CH1 側で発生したイベントを監視し イベント発生時刻前後の CH2 側のデータを抽出 29
データ解析ワークフローアルゴリズムの探求 データへのアクセス アルゴリズムの探求 結果の共有 /IP 化 ファイルソフトウェアハードウェアウェブサービス データ解析アルゴリズム開発数理モデリングアプリケーション開発 ドキュメント生成 アプリケーション配布 組み込み開発 計測機器 Calibration (Track Optimization) 大規模テキストファイル 非 MATLAB ユーザへの配布 30
Demo: Calibration (Tracking Problem) Optimization Toolbox Global Optimization Toolbox Simulink Design Optimization 理想波形に近づけるためのパラメータ最適化 31
データ解析ワークフロー結果の共有 /IP 化 データへのアクセス アルゴリズムの探求 結果の共有 /IP 化 ファイルソフトウェアハードウェアウェブサービス データ解析アルゴリズム開発数理モデリングアプリケーション開発 ドキュメント生成 アプリケーション配布 組み込み開発 計測機器 Calibration (Track Optimization) 大規模テキストファイル 非 MATLAB ユーザへの配布 32
Application Deployment アプリケーション展開を支える製品群 MATLAB MATLAB Compiler MATLAB Compiler SDK Standalone Application Excel Add-in C/C ++ Java.NET Python MATLAB Production Server MATLAB アプリケーションの再配布は Royalty-free 各アプリケーションはランタイム上で動作 管理は ローカルまたはサーバの両方に対応 33
サーバで管理する場合の構成 Web Browser Microsoft Excel MATLAB Production Server Load Balancer End User License Manager MATLAB Toolboxes MATLAB Compiler MATLAB Compiler SDK Shared Directory Java C/C++ 34
まとめ製品開発のためのセンサーデータ解析 ストリーミング処理を取り入れたデータ解析 次々送信されるデータに対するオンライン処理 取り溜めた巨大ファイルへのオフライン処理 最適化 / 機械学習など豊富な解析機能 横展開を支えるアプリケーション配布機能 スタンドアロン / サーバ運用 既存システムとの統合 Standalone Application MATLAB Production Server 35
Agenda Introduction デモンストレーション Data Summary on Amazon Redshift Triggered Data Capturing & Calibration 終わりに まとめ 36
まとめ Batch vs. Streaming Batch Processing Batch Processing ある程度のデータをためて処理する 対象データは大規模 処理に時間をかけてもよい ポイントはデータストレージへのアクセス Stream Processing 次々生成されるデータを処理する 対象データは小規模 処理に時間はかけられない ポイントは低遅延性 Stream Processing 37
IoT を使った遠隔診断 DEMO ~ 心電図のリモート (Cloud) 診断 ~ 生体信号モニタリング デバイス Kinesis JAVA SDK MATLAB Amazon EC2 MATLAB Kinesis JAVA SDK Amazon Kinesis ニューラルネットワークによる機械学習 (MATLAB からの実装 ) Edge 処理 心拍データのキャプチャ 特徴の抽出 38