[新製品・サービス]
ディープラーニング開発工程をカバーする「Deep Learning Toolbox」─数値解析ソフト「MATLAB」のMathWorks
2018年9月13日(木)日川 佳三(IT Leaders編集部)
数値解析ソフト「MATLAB」とモデリング/シミュレーションソフト「Simulink」を主力製品とするMathWorks Japanは2018年9月12日、MATLABとSimulinkの新版「R2018b」の販売を開始した。新版では、MATLABとSimulinkの機能を特定用途向けに強化する追加ソフト「Toolbox」の1つで、ディープラーニング開発の機能をまとめて提供する「Deep Learning Toolbox」を追加した。
拡大画像表示
MATLABは、金融業や製造業を中心とした各種の業界で使われている数値解析ソフトである。数値解析アプリケーションの開発環境であり、開発したアプリケーションを実行形式ファイルとしてシステムに配布できる。一方のSimulinkは、制御系システムのモデリングやシミュレーションに使う。
米MathWorksでは、これら2つのソフトをコアにしつつ、特定の用途に特化した機能を、「Toolbox」として多数用意している。MATLABの新版「R2018b」では、バージョンアップに合わせて、これまで様々な形で提供してきたディープラーニング(深層学習)に関する機能群をまとめて提供する「Deep Learning Toolbox」を新たに用意した。
ディープラーニングの開発工程をカバー
Deep Learning Toolboxは、ディープラーニングの開発工程を一通りカバーする。データを取得する機能、学習できるように前処理でデータを整備する機能、学習してモデルを作る機能、トレーニングによってモデルの精度を高める機能、作成したモデルをシステムや機器に実装する機能などである。
「ディープラーニングをシステムに容易に実装できるようにすることがDeep Learning Toolboxの役割」と、米MathWorksでFellow(フェロー)を務めるJim Tung氏はアピールする。用途は広く、画像/映像処理のモデル作成だけでなく、テキストや信号を処理するモデルも作成できる。対象ユーザーも広く、組み込み機器の開発者から、企業業務システムのエンドユーザーまでカバーする。
Deep Learning Toolboxで重視したポイントの1つは、開発環境としての使いやすさを重視したこと。「プログラミングコードを書かなくてもできることが多い」(同社)としている。例えば、GUI画面をマウスで対話型に操作するだけで、アルゴリズムを選んだり、学習結果の精度を確認したりできる。
ニューラルネットを1からスクラッチで開発する用途に向けたデザイナ機能や、ある用途のために開発したモデルを転用して取り込むことで別の用途のモデルの開発生産性を高める機能なども用意した。自動運転など特定の用途に特化した開発機能も用意している。
拡大画像表示
他のフレームワークとモデルを共有可能な相互運用性を重視
ディープラーニングのモデル開発の課題の1つとしてJim Tung氏は、異なるフレームワーク(アプリケーション開発ライブラリ)同士の間でアイディアや成果物(開発したモデル)のやり取りがし辛い点を指摘する。こうした背景からMATLABは、他のフレームワークと情報を共有できるように相互運用性に注力している。
具体的には、ONNX(Open Neural Network Exchange)と呼ぶ、ディープラーニングのモデルを表現するための共通フォーマットに対応した。フレームワークがONNXに対応すれば、ONNXに対応した別のフレームワークとの間で、作成したモデルを受け渡せるようになる。
Deep Learning Toolboxでは、ONNX形式のモデルを取り込んだり、反対にONNX形式でモデルを出力したりできる。これにより、Caffe2やTensorFlowなど代表的なフレームワーク群とMATLABの間でモデルを共有できるようになった。
ディープラーニングの学習とトレーニングを高速化する手段にも注力している。例えば、クラウドを用いて処理性能を高められる。クラウドを活用する例として、AWS(Amazon Web Services)やMicrosoft Azureをクラウド基盤に利用したリファレンスアーキテクチャ(参照実装)を提供している。
業務システムや機器に実装したモデルを高速に実行することにも注力している。米NVIDIAのGPU(グラフィックス処理ユニット)を汎用的な浮動小数点演算の計算資源として利用して高速化を図るためのCUDAコードを自動生成できる。汎用CPU向けには、Intel CPUのライブラリ「MKL-DMN」やARM CPUのライブラリを使って高速化するコードを出力できる。
拡大画像表示