1© 2013 The MathWorks, Inc.
MATLAB
Technical Computing Workflowのご紹介
アプリケーションエンジニアリング部 (テクニカルコンピューティング)
部長
大谷卓也
2
データ解析モデリング
アルゴリズム開発
アプリケーション開発
処理方法アルゴリズムの探求
MATLABを使用した、データ解析ワークフロー
ドキュメント生成
組み込み開発
アプリケーションとして配布
結果の共有/IP化データへのアクセス
ファイル
ソフトウェア
ハードウェア
C/C++/Javaなど
ウェブサービス
XML
JSON
HTML
3
MATLABを使用した、データ解析ワークフロー~データへのアクセス~
データの取り込み
• 主要データフォーマットへの対応
• 各種HWデバイスへの対応
• 特殊フォーマットファイルへのアクセス
• インターネットからのデータ収集
データへのアクセス
ファイル
ソフトウェア
ハードウェア
C/C++/Javaなど
ウェブサービス
XML
JSON
HTML
4
ファイルI/O機能&ハードウェアとのリンク各種ファイルI/Oや計測器/データ収集ボードからのデータ取り込み
Data 2001/03/02
data_1
0.9501 0.0579 0.8381
0.2311 0.3529 0.0196
0.6068 0.8132 0.6813
0.4966 0.7948 0.9568
・・・・・・・・・・・・・・・・・・・・
画像ファイル(.jpeg .tiff .bmp等)
Excelファイル(.xls)
ASCII,
バイナリデータファイル(.dat .txt .csv)
音声ファイル(.wav .au)
Data
Acquisition
Toolbox
Instrument
Control
Toolbox
Image
Acquisition
Toolbox
5
Big Data に対する対応
メモリとデータへのアクセス 64-bit プロセッササポート
メモリ/Diskマップド変数
データベースアクセス
大規模テキストサポート
プラットフォームサポート マルチコア、GPU
クラスタへの対応
クラウドコンピューティング
Hadoop
プログラミング手法 ストリーミング
ブロック処理
CPU/GPUを使った並列処理
MapReduce
6
インターネットからのデータ収集
RESTful Web サービスへのアクセス– HTTP を通してWeb ブラウザを利用し、サーバから情報を取得
– Restful なWeb サービスの例:
Amazon
Yahoo!
– オンラインデータへのアクセス (webread, websave)
– JSON, XML, CSV, 画像データなどを取得可能
http://www.mathworks.co.jp/matlabcentral/answers/?
language=ja&term=MATLAB
7
データ解析モデリング
アルゴリズム開発
アプリケーション開発
処理方法アルゴリズムの探求
MATLABを使用した、データ解析ワークフロー
ドキュメント生成
組み込み開発
アプリケーションとして配布
結果の共有/IP化データへのアクセス
ファイル
ソフトウェア
ハードウェア
C/C++/Javaなど
ウェブサービス
XML
JSON
HTML
8
MATLABを使用した、データ解析ワークフロー~処理方法アルゴリズムの探求~
迅速なアルゴリズムの開発
• インタープリタ言語による、
インタラクティブな開発・デバッグ環境
• 専門分野毎に用意されたToolbox
• ドキュメント、ユーザコミュニティの活用
データ解析モデリング
アルゴリズム開発
アプリケーション開発
処理方法アルゴリズムの探求
9
信号処理設計・画像処理オプション
Signal Processing Toolbox
信号生成
フィルタ設計解析
アナログフィルタ
ディジタルフィルタ
スペクトル解析
線形予測
Wavelet Toolbox
ウェーブレット変換による処理
信号、画像の解析、合成、ノイズ除去、圧縮
ウェーブメニューGUI
>> wavemenu
Image Processing Toolbox
コントラスト調整
幾何学変換
各種フィルタ
モルフォロジー処理
セグメンテーション
物体の定量評価
Computer Vision System Toolbox
高速な動画 I/O
特徴点ベースのマッチング
トラッキング
ステレオビジョン
10
MATLABにおける機械学習Statistics Toolbox, Neural Network Toolbox
機械学習
教師なし学習
教師あり学習
クラスタリング
分類
回帰
K-平均クラスタリング階層クラスタリングニューラルネット混合ガウス分布自己組織化マップ
線形判別・2次判別K-最近傍識別単純ベイズ分類決定木アンサンブル学習ニューラルネットサポートベクターマシン
線形回帰モデル一般化線形回帰モデル非線形回帰モデル回帰木アンサンブル学習ニューラルネット
訓練データあり
訓練データなし
…
…
…
11
データの曲線・面の近似Curve Fitting Toolbox
• カスタム方程式への線形・非線形の回帰
• 補完:Bスプライン、薄板スプライン、およびテンソル積スプラインなど
• 平滑化:スプライン、局所回帰、Savitzky-Golay フィルター、および移動平均など
• 異常値の除去、データの分割、スケーリング、重み付けなどの前処理ルーチン
• 補間、外挿、信頼区間、積分と導関数などの後処理ルーチン
12
データの最適化Optimization Toolbox
最適化問題の定義・解析・評価: 線形・非線形計画法 二次計画法 多目的最適化 非線形最小二乗、データ近似 非線型方程式の求解 線形整数混合計画問題
13
大域的最適解の探索Global Optimization Toolbox
Optimization Toolboxで解を求めにくい目的関数に対応: 不連続 非線形成が強い 確率的関数 離散化された問題 微分不可能な問題 複数の極大・極小値
14
の利用
File Exchangeには様々
な分野のアルゴリズム、サンプル等が多数登録されています
共有されているほとんどのファイルは、BSDライセンス
R2012bより、Apps機能も使用可能
15
データ解析モデリング
アルゴリズム開発
アプリケーション開発
処理方法アルゴリズムの探求
MATLABを使用した、データ解析ワークフロー
ドキュメント生成
組み込み開発
アプリケーションとして配布
結果の共有/IP化データへのアクセス
ファイル
ソフトウェア
ハードウェア
C/C++/Javaなど
ウェブサービス
XML
JSON
HTML
16
MATLABを使用した、データ解析ワークフロー~レポート、プログラムの共有・IP化~
開発したアルゴリズムのレポート、共有、IP化
• 処理結果のレポート、ドキュメント化
• アプリケーション配布
• C/C++ アプリケーションに向けたIP化
• 処理の高速化
ドキュメント生成
組み込み開発
アプリケーションとして配布
結果の共有/IP化
18
MATLAB Compiler
.exe .dll
アプリケーション配布と、他言語との連携
MATLAB Coder
.exe .lib .dll
MATLABBuilder
EX JA NE
JavaExcel .NET
19
並列/分散処理・GPGPUによる高速・大規模データ処理Parallel Computing Toolbox
• 並列・分散処理による高速化
• MATLAB 関数のGPUによる実行
• 2次元FFT等 150以上のMATLAB基本関数
• Image Processing ToolboxのGPUサポート関数
imrotate(), imfilter(), imdilate(), imerode(),
imopen(), imclose(), imtophat(), imbothat(),
imshow(), padarray() ......
• MATLAB Distributed Computing Server との併
用によりコンピュータークラスタの使用が可能
20
まとめ
MATLABは単なるプログラミングツールでは無く、「環境」
多彩なデータ入力手段
インタープリタならではの迅速なアルゴリズム開発
簡単・柔軟な高速化手段
アプリケーション開発、共有、組み込み開発まで視野に入れたコード開発
21
© 2014 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.