MATLAB による 大規模フリートデータ解析 アプリケーションエンジニアリング部齊藤甲次朗 2015 The MathWorks, Inc. 1
アジェンダ はじめに ビッグデータ解析の課題 MATLAB を活用したフリートデータ解析事例 フリートデータ解析実践 デスクトップでの解析 クラスターへのスケールアウト MATLAB 解析のシステムへの統合 まとめ 2
25 GB / 1hour 4
フリートデータ解析を含むビッグデータ解析の課題 1. ビッグデータのための新しいツールを学ぶコストが掛かる 2. 大規模な計算に移行するために プロトタイプで書いたコードの書き直しが必要になる 3. データ解析をシステム化するのに時間と工数が掛かる 5
MATLABを活用したフリートデータ解析事例 Volkswagen Data Lab 目的 運転行動から個々の運転者を特定し 運転者の安全性の向上や自動車保険 などに役立つサービスを開発 課題 少ない学習データを使って多くの 運転者を分類 環境状況に依らない解析の堅牢性 計算時間 Connected Car Fahrererkennung mit MATLAB Julia Fumbarev, Volkswagen Data Lab (2017年6月MATLAB EXPO Germanyでの講演) 6
フリートデータ解析実践 7
フリートデータ解析実践使用するデータ 車に OBD ドングルを付け走行データを記録 トリップ数 :1300 以上車両 : 21 台チャネル数 :39 データ収集期間 : 約 1.5 年 8
フリートデータ解析実践使用するデータ 4G LTE MATLAB Production Server TM Request Broker & Program Manager データの整形 ファイル生成 データベース OBD II スマートフォン 全てのデータをダウンロードして MAT ファイルに変換 Bluetooth 9
フリートデータ解析のワークフロー データへのアクセス データの前処理 予測モデルの開発 システムへの統合 ファイル 異常 欠損データの扱い モデルの作成 ( 機械学習 ) デスクトップアプリケーション データベース データ削減 / 変換 パラメータ最適化 エンタープライズシステム センサー 特徴抽出 モデルの検証 組込デバイスとハードウェア 10
ビッグデータの扱いフリートデータ解析 サマリー ステップ 1 ステップ 2 デスクトップ PC での解析 Hadoop クラスターでの解析 11
フリートデータ解析実践デスクトップでの解析 ステップ 1 フリートデータ解析アルゴリズムを検討するために まずはデスクトップで試行錯誤 今後のクラスターへのスケールアウトを意識してコードを書く 12
フリートデータ解析実践データへのアクセス 生データを見てみる 1 ファイル 経度 MATLAB 上でファイルをダブルクリック 13
フリートデータ解析実践データへのアクセス 約 1300 のファイルを読み込むには? 14
フリートデータ解析実践クイズ どれが一番良いアプローチでしょうか? 15
フリートデータ解析実践データへのアクセス datastore: データ ファイルの集合体を読み取るオブジェクト特に機械学習やディープラーニングで使用 対象データ表形式のテキストファイル (CSVなど) Excel 形式のスプレッドシート (XLSXなど) 画像リレーショナルデータベースのデータカスタム形式のファイル MDF 形式のファイル データストアの種類 TabularTextDatastore SpreadsheetDatastore ImageDatastore DatabaseDatastore FileDatastore mdfdatastore など https://jp.mathworks.com/help/matlab/import_export/what-is-a-datastore.html 16
フリートデータ解析実践データへのアクセス カスタムの読込関数 ワイルドカードで指定可能 datastore の作成 17
フリートデータ解析実践データへのアクセス tall 1 台のメモリ tall 配列 処理 1 台のメモリ メモリに収まる小さな塊にデータを自動的に分割 処理 1 台のメモリ データアクセスを最適化して実行 並列演算もサポート クラスターのメモリ 処理 1 台のメモリ 処理 1 台のメモリ 18
フリートデータ解析実践データへのアクセス tall MATLAB 関連ツール + Parallel Computing Toolbox tall 処理 tall でできること ローカルマシンでの並列 tall 処理 + MATLAB Distributed Computing Server TM クラスターでの並列 tall 処理 + Apache TM Hadoop / Apache Spark TM ( サードパーティ ) Hadoop/Spark クラスター上での並列 tall 処理 ステップ 1 ステップ 2 19
フリートデータ解析実践ビッグデータの可視化 データ全てを使って可視化 histogram tall 配列の可視化 https://www.mathworks.com/help/matlab/import_export/tall-data-visualization.html 20
フリートデータ解析実践 tall 配列の保存 ビッグデータ処理において 生データの読み込みを繰り返したくない ローカルフォルダー Hadoop Distributed File System (HDFS ) Amazon S3 Azure Storage Blob に保存 22
フリートデータ解析実践保存した tall 配列の読み込み TallDatastore として読み込み 23
フリートデータ解析実践ビッグデータの可視化 データの散らばりを見たい scatter メンバーを抽出 24
フリートデータ解析実践ビッグデータの可視化 地図上にプロットするにはメモリに取り込んでから geoscatter tall 配列をメモリに取り込み 25
フリートデータ解析実践ビッグデータの可視化 全トリップのトリップ時間を調べる 26
フリートデータ解析実践ビッグデータの可視化 不自然なトリップ時間を詳しく見てみる 半年ほど間隔が空いている 27
フリートデータ解析実践ビッグデータの前処理 前処理 28
フリートデータ解析実践ビッグデータの前処理 時刻が異なるデータを同期 (synchronize) 29
フリートデータ解析実践クラスターへのスケールアウト ステップ 2 デスクトップの限界 処理時間 データコピーの手間 ディスク容量 30
フリートデータ解析実践クラスターへのスケールアウト Hadoop ビッグデータのためのプラットフォーム HDFS: 分散ファイルシステム YARN: リソース管理やスケジューリング Hadoop MapReduce: MapReduce フレームワークの実装 Spark クラスター計算のフレームワーク フォールトトレラントな分散処理 機械学習のような繰り返し演算に適性あり Hadoop YARN と連携可能 31
フリートデータ解析実践クラスターへのスケールアウト Hadoop/Spark との 2 つの連携方法 用途使用する製品対象ユーザー MATLAB から tall 配列の処理を Spark で実行 MATLAB Distributed Computing Server 試行錯誤でアルゴリズムを検討するユーザー tall 配列の処理を Spark 上でスタンドアロンアプリで実行 MATLAB Compiler TM 定形処理を利用するユーザー Spark API を使ったスタンドアロンアプリの実行 MATLAB Runtime Spark の API を詳細に制御した処理を作成したいユーザー 32
フリートデータ解析実践クラスターへのスケールアウト 凡例 MDCS を使った Hadoop/Spark 連携 Edge ノード MATLAB クライアントライブラリ ジョブの投入 Master Name ノード YARN Worker ノード Executor Cache Worker ノード Executor Cache Worker ノード Executor Cache Task Task Task ワーカー ワーカー ワーカー データノード データノード データノード HDFS 33
フリートデータ解析実践クラスターへのスケールアウト MATLAB デスクトップでの処理 Hadoop/Spark クラスターでの処理 クラスターの設定とファイルパスの変更だけで MATLAB の処理は書き直さずにスケールアウト 34
フリートデータ解析実践クラスターへのスケールアウト 35
フリートデータ解析実践走行データ解析 目的 : 停止イベントを検出する 停止したイベント 36
フリートデータ解析実践走行データ解析 目的 : ドライバーの運転の特徴を調べる 39
MATLAB 解析のシステムへの統合 40
MATLAB 解析のシステムへの統合 MATLAB で作成したアルゴリズムを広く使ってもらいたい 41
MATLAB 解析のシステムへの統合コンパイル コンパイル スタンドアロンアプリ Excel Add-in Hadoop/ Spark Web アプリ MATLAB Compiler C/C++ Java ++ Python.NET MATLAB Production Server TM MATLAB Runtime MATLAB Runtime MATLAB Compiler SDK TM 42
MATLAB 解析のシステムへの統合エンタープライズへの展開 Web ブラウザからアクセス.m コンパイル MATLAB Compiler SDK でパッケージ化 MATLAB Production Server Request Broker & Program Manager MATLAB Runtime Web サーバー Excel や BI ツールからアクセス 43
まとめ 44
Key Takeaways 1. 大規模なフリートデータを datastore や tall を用いて簡単に処理 2. デスクトップ PC から Hadoop/Spark クラスターへ コードを書き直さずに スケールアウトが容易 3. MATLAB によるデータ解析をすぐにエンタープライズシステムに統合 眠っているビッグデータを MATLAB で解析してみませんか? 45
2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 2018 The MathWorks, Inc. 46
参考 : 使用した Toolbox 項目 datastoreでのデータ読み込み tall 配列を用いた処理データのプロット Hadoop/Sparkクラスターでの処理 (MATLAB) 使用した製品 (MATLAB) Parallel Computing Toolbox Statistics and Machine Learning Toolbox TM (MATLAB) Mapping Toolbox TM MATLAB Distributed Computing Server 47