Reinforcement Learning Toolbox

強化学習を用いて方策を設計および学習

Reinforcement Learning Toolbox™ では、DQN、A2C、および DDPG などの強化学習アルゴリズムを使用した方策の学習のための関数とブロックが提供されます。これらの方策を使用して、ロボットや自律システムなどの複雑なシステムのためのコントローラーと意思決定アルゴリズムを実装できます。ディープ ニューラル ネットワーク、多項式、またはルックアップテーブルを使用して方策を実装できます。

このツールボックスで、MATLAB® または Simulink® モデルで表現された環境に作用させ、方策を学習させることができます。アルゴリズムの評価、ハイパーパラメーター設定での実験、および学習進捗の監視が可能です。学習のパフォーマンス改善のため、クラウド、コンピューター クラスター、および GPU 上でシミュレーションを並列実行できます (Parallel Computing Toolbox™ と MATLAB Parallel Server™ を使用)。

ONNX™ モデルフォーマットで既存の方策を TensorFlow™、Keras、および PyTorch などのディープラーニング フレームワークからインポートできます (Deep Learning Toolbox™ を使用)。最適化された C、C++、および CUDA コードを生成して、学習済み方策をマイクロコントローラーと GPU に展開できます。

このツールボックスには、強化学習を用いてロボットや自動運転アプリケーションのコントローラーを設計する、リファレンスサンプルが付属します。

詳細を見る:

強化学習エージェント

MATLAB と Simulink エージェントを実装して、ディープ ニューラル ネットワークで表現される方策を学習させます。組み込みまたはカスタムの強化学習アルゴリズムを使用します。

強化学習アルゴリズム

Deep Q-Network (DQN)、Advantage Actor Critic (A2C)、Deep Deterministic Policy Gradients (DDPG)、および他の組み込みアルゴリズムを使用してエージェントを実装します。テンプレートを使用して方策の学習のためのカスタムエージェントを実装します。

方策とアルゴリズムから構成されるエージェント。

ディープ ニューラル ネットワークを使用した方策と価値関数の表現

大きな状態行動空間を持つ複雑なシステムのためディープ ニューラル ネットワークを使用します。Deep Learning Toolbox のネットワークとアーキテクチャを使用して方策を定義します。他のディープラーニング フレームワークとの相互運用性のため ONNX モデルをインポートします。

エージェント用の Simulink ブロック

Simulink で強化学習エージェントを実装し学習させます。

強化学習エージェントの Simulink ブロック。

環境のモデル化

MATLAB と Simulink 環境モデルを作成します。システムダイナミクスを記述して学習エージェントに観測および報酬信号を供給します。

Simulink と Simscape 環境

Simulink と Simscape™ モデルを使用して環境を表現します。モデル内で観測、行動、および報酬信号を指定します。

倒立振子のための Simulink 環境モデル。

MATLAB 環境

MATLAB の関数とクラスを使用して環境を表現します。MATLAB ファイル内で観測、行動、および報酬変数を指定します。

棒立てシステムのための MATLAB 環境。

学習の高速化

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

分散コンピューティングおよびマルチコアによる高速化

Parallel Computing Toolbox と MATLAB Parallel Server を使用してマルチコア コンピューター、クラウドリソース、またはコンピューター クラスターで並列シミュレーションを実行して学習を高速化します。 

並列処理を使用した学習の高速化。

GPU 高速化

高性能 NVIDIA® GPU によりディープ ニューラル ネットワーク学習と推論を加速します。Parallel Computing Toolbox と、3.0 以上の計算能力を持つ、最大限 CUDA® に対応した NVIDIA GPU で MATLAB を使用できます。 

GPU を使用して学習を高速化。

コードの生成と展開

学習させた方策を組み込みデバイスに配布するか、またはそれらを幅広い生産システムと統合します。

コード生成

 GPU Coder™ を使用して、学習させた方策を表現する MATLAB コードから最適化された CUDA コードを生成します。MATLAB Coder™ を使用して C/C++ コードを生成し、方策を展開します。

GPU Coder を使用して CUDA コードを生成。

MATLAB Compiler のサポート

 MATLAB Compiler™ および  MATLAB Compiler SDK™ を使用して、学習済みの方策を C/C++ 共有ライブラリ、Microsoft® .NET アセンブリ、Java® クラス、Python® パッケージとして展開します。

方策をスタンドアロンのプログラムとしてパッケージ化して共有。

リファレンスサンプル

ロボット、自動運転車、および他のシステムのための強化学習を用いてコントローラーを設計します。

格子世界における迷路の経路を解決。

車線逸脱防止支援システムの学習。

強化学習を用いた歩行ロボットの学習。

Tuning, Calibration, and Scheduling

Design reinforcement learning policies for tuning, calibration, and scheduling applications.

Resource allocation problem for water distribution.

Reinforcement Learning Video Series

Watch the videos in this series to learn more about reinforcement learning.