Deep Learning Toolbox

ディープラーニング ネットワークの設計、学習、解析

Deep Learning Toolbox™ には、アルゴリズム、事前学習済みモデル、およびアプリを使用したディープ ニューラル ネットワークの設計と実装のためのフレームワークが用意されています。畳み込みニューラル ネットワーク (ConvNets、CNN) および長期短期記憶 (LSTM) ネットワークを使用して、画像、時系列、およびテキストデータの分類および回帰を行えます。自動微分、カスタムの学習ループ、重み共有を使用して、敵対的生成ネットワーク (GAN) や Siamese ネットワークのようなネットワーク アーキテクチャを構築できます。Deep Network Designer アプリを使用すると、ネットワークをグラフィカルに設計、分析し、学習させることができます。実験マネージャーアプリでは、複数のディープラーニング実験の管理、学習パラメーターの追跡、結果の解析、およびさまざまな実験のコードの比較を行うことができます。層の活性化状態を可視化し、学習進行状況をグラフィックで監視することができます。

ONNX 形式を使用して TensorFlow™ や PyTorch とモデルを交換したり、TensorFlow-Keras や Caffe からモデルをインポートできます。ツールボックスは、DarkNet-53、ResNet-50、NASNet、SqueezeNet やその他多くの事前学習済みのモデルを用いた転移学習をサポートします。

Parallel Computing Toolbox™ を使用して、単一のまたは複数の GPU を持つワークステーションで学習速度を上げたり、MATLAB Parallel Server™を使用して、NVIDIA® GPU Cloud および Amazon EC2® GPU インスタンスを含むクラスターやクラウドにスケールアップすることができます。

今すぐ始める:

ネットワークおよびアーキテクチャ

画像、時系列、テキストデータの分類、回帰、および表現学習のためのディープラーニング ネットワークを学習します。

畳み込みニューラル ネットワーク

オブジェクト、顔、シーンを認識するために画像のパターンを学習します。特徴抽出や画像認識を行うために畳み込みニューラル ネットワーク (CNN) を構築し、学習させます。

長期短期記憶ネットワーク

信号、オーディオ、テキスト、およびその他の時系列データを含むシーケンスデータの長期依存性を学習します。分類と回帰を行うために長期短期記憶 (LSTM) ネットワークを構築し、学習します。

LSTM の操作

ネットワーク構造

有向非循環グラフ (DAG)、再帰型アーキテクチャなどを含む、さまざまなネットワーク構造を用いて、ディープラーニング ネットワークを構築します。カスタムの学習ループ、重み共有、自動微分を使用して、敵対的生成ネットワーク (GAN) や Siamese ネットワークのような高度なネットワーク アーキテクチャを構築します。

様々なネットワーク アーキテクチャを扱う

ネットワークの設計と解析

対話型アプリを使用して、ディープラーニング ネットワークを構築、可視化、実験、分析します。

ディープラーニング ネットワークの設計

ディープ ネットワーク デザイナー アプリを使用して、ディープネットワークを一から作成し、学習させます。事前学習済みのモデルのインポート、ネットワーク構造の可視化、層の編集、パラメーターの調整を行い、学習させます。

ディープラーニング ネットワークの解析

ネットワーク アーキテクチャを分析して、学習前にエラー、警告、および層の互換性の問題を検出し、デバッグします。ネットワークトポロジを可視化し、学習可能なパラメーターや活性化関数などの詳細を表示します。

ディープラーニング ネットワーク アーキテクチャの解析

ディープラーニング実験の管理

実験マネージャーアプリで複数のディープラーニング実験を管理します。学習パラメーターの追跡、結果の解析、およびさまざまな実験のコードの比較を行います。学習プロットや混同行列などの可視化ツールを使用して、実験結果の並べ替えおよびフィルタリングを行い、カスタム指標を定義して学習済みモデルを評価します。

ディープラーニング ネットワークを学習させて比較する実験を設計し、実行します。

転移学習モデルと事前学習済みのモデル

推論のために事前学習済みのモデルを MATLAB にインポートします。

転移学習

事前学習済みのネットワークにアクセスし、これを出発点として新しいタスクを学習します。転移学習を実行して、特定のタスク用にネットワークで学習した特徴量を使用します。

事前学習済みモデル

最新の研究で得られた事前学習済みのネットワークに1行のコードでアクセスできます。DarkNet-53、ResNet-50、SqueezeNet、NASNet、Inception-v3 などの事前学習済みモデルがインポート可能です。

事前学習済みモデルの分析

可視化とデバッグ

ディープラーニング ネットワークにおいて、学習進行状況、学習した特徴の活性化状態を可視化します。

学習進行状況

さまざまなメトリクスのプロットで、反復のたびに学習進行状況を表示します。検証メトリックを学習メトリクスに対してプロットして、ネットワークが過適合していないかを確認します。

モデルの学習進捗状況の監視

ネットワークの活性化状態

特定の層に対応する活性化状態を抽出し、学習された特徴を可視化したり、活性化状態を使用して機械学習分類器を学習させたりします。Grad-CAM のアプローチを用いると、ディープラーニング ネットワークが下した分類決定の理由を理解する助けになります。

活性化状態の可視化

フレームワークの相互運用性

MATLAB のディープラーニング フレームワークとの相互運用。

ONNX コンバーター

他のディープラーニング フレームワークとの相互運用性のための MATLAB® 内での ONNX モデルのインポートおよびエクスポート。ONNXは、あるフレームワークで学習されたモデルを、推論のために他のフレームワークに転移することを可能にします。GPU Coder™ を使用して、最適化された NVIDIA® CUDA® コードを生成し、MATLAB Coder™ を使用して、インポート済みモデル用に C++ コードを生成します。

ディープラーニング フレームワークとの相互運用

TensorFlow-Keras インポーター

推論と転移学習のために、TensorFlow-Keras から MATLAB にモデルをインポートします。GPU Coder を使用して、最適化された CUDA コードを生成し、MATLAB Coder を使用して、インポート済みモデル用に C++ コードを生成します。

Caffe インポーター

推論と転移学習のために、Caffe Model Zoo から MATLAB にモデルをインポートします。

Caffe Model Zoo から MATLAB へのモデルのインポート

学習の加速

GPU、クラウド、分散コンピューティングにより、ディープラーニング学習を加速します。 

GPU での高速化

高性能の NVIDIA GPU によりディープラーニング学習と推論を加速します。単一のワークステーション GPU で学習を実行したり、データセンターまたはクラウド上の DGX システムで複数の GPU に拡張したりすることができます。MATLAB は、Parallel Computing Toolbox と共にcompute capability3.0 以上の ほとんどのCUDA 対応NVIDIA GPU で使用できます。

GPU による高速化

クラウドでの高速化

クラウドインスタンスでディープラーニングに必要な学習時間を短縮します。最良の結果を得るために、高性能 GPU インスタンスを使用します。

Parallel Computing Toolbox および MATLAB Parallel Server を使用してクラウドでの学習を高速化します。

分散コンピューティング

MATLAB Parallel Server を使用し、ネットワークで接続した複数のコンピューターの複数のプロセッサでディープラーニング学習を実行できます。

ディープラーニングを並列に、クラウド上にスケールアップ

コードの生成と展開

学習済みネットワークを組み込みシステムに配置したり、実際の環境に組み込みます。

コード生成

GPU Coder を使用して、ディープラーニング、組み込みビジョン、および自律システムのための最適化された CUDA コードをMATLAB コードから生成します。MATLAB Coderを使用して C++ コードを生成し、ディープラーニング ネットワークを Intel® Xeon® および ARM® Cortex®-A プロセッサに展開します。生成されたコードを NVIDIA Jetson™、DRIVE™ プラットフォーム、および Raspberry Pi™ ボードに自動的にクロスコンパイルして展開します。

スタンドアロン アプリケーションの展開

MATLAB Compiler™ および MATLAB Compiler SDK™ を使用して、ディープラーニング モデルを備えた MATLAB プログラムから、学習済みのネットワークを、C++ 共有ライブラリ、Microsoft® .NET アセンブリ、Java® クラス、Python® パッケージとして展開します。

MATLAB Compiler を使用したスタンドアロン MATLAB プログラムの共有

ディープラーニングの量子化

ディープラーニング ネットワークを int8 に量子化し、Model Quantization Library のサポート パッケージを使用して、選択した層の重みとバイアスを量子化する精度のトレードオフを解析します。

浅いニューラル ネットワーク

教師ありと教師なしのさまざまな浅いネットワーク アーキテクチャで、ニューラル ネットワークを使用します。

教師ありネットワーク

動的システムをモデル化および制御し、ノイズの多いデータを分類し、将来のイベントを予測するために、教師ありの浅いニューラル ネットワークを学習させます。 

浅いニューラル ネットワーク

教師なしネットワーク

データ内の関係を見つけ、浅いネットワークを新しい入力に絶えず適応させることによって、分類スキームを自動的に定義します。自己組織化された教師なしネットワークと、競合層、自己組織化マップを使用します。

自己組織化マップ

スタックされたオートエンコーダー

オートエンコーダーを使用して、データセットから低次元の特徴量を抽出することで、教師なしの特徴量変換を実行します。また、複数のエンコーダーを学習させ、スタックすることにより、スタックされたオートエンコーダーを教師あり学習に使用することもできます。

スタックされたエンコーダー。

新機能

実験マネージャーアプリ

複数のディープラーニングの実験を管理して、学習パラメーターを追跡し、結果とコードを解析して比較

ディープ ネットワーク デザイナー・アプリ

画像分類のためのネットワークを対話的に学習し、学習用 MATLAB コードを生成、学習済みモデルにアクセス

カスタム学習ループ

複数の入出力や、3-D CNN 層を持つネットワークを学習

ディープラーニングの例

注意機構 (Attention) を使用して画像キャプション ネットワークを学習し、データ ラベルと属性を使用して条件付き GAN を学習

事前学習済みのネットワーク

DarkNet-19 および DarkNet-53 を用いた転移学習の実行

ONNX のサポート

ONNX モデルコンバーターを用いて複数入出力のネットワークをインポート

学習の柔軟性:

カスタムの学習ループ用にカスタム層の関数 backward を指定

これらの機能および対応する関数の詳細については、リリースノートをご覧ください。

MATLAB によるディープラーニング

わずか数行の MATLAB コードで、アルゴリズムの設計、データの準備とラベル付け、もしくはコード生成と組み込みシステムへの展開などの作業の有無に関わらず、ディープラーニングをご活用いただけます。