Reinforcement Learning Toolbox

強化学習エージェント

MATLAB や Simulink で方策を学習させるための強化学習エージェントの作成および構成を行います。組み込みの強化学習アルゴリズムを使用するか、カスタムの強化学習アルゴリズムを開発します。

強化学習アルゴリズム

Deep Q-Network (DQN)、深層決定論的方策勾配法 (DDPG)、近傍方策最適化 (PPO) などの組み込みアルゴリズムを使用して、エージェントを作成します。テンプレートを使用して、方策の学習のためのカスタムエージェントを開発します。

さまざまな学習アルゴリズム (SARSA、SAC、DDPG など)。

Reinforcement Learning Toolbox で使用できる学習アルゴリズム。

強化学習デザイナーアプリ

強化学習エージェントの設計、学習、シミュレーションを対話的に行います。後で使用したり展開できるように、学習済みのエージェントを MATLAB にエクスポートします。

ディープ ニューラル ネットワークによる方策と価値関数の表現

大きな状態行動空間を持つ複雑なシステムでは、ディープ ニューラル ネットワークの方策をプログラムで定義します。この場合、Deep Learning Toolbox の層を使用するか、ディープ ネットワーク デザイナーを使用して対話的に定義します。または、このツールボックスで提案される既定のネットワーク アーキテクチャを使用します。模倣学習を使用して方策を初期化し、学習を高速化します。他のディープラーニング フレームワークとの相互運用のために ONNX モデルのインポートおよびエクスポートを行います。

Simulink によるシングルエージェントおよびマルチエージェントの強化学習

Simulink で RL Agent ブロックを使用して、強化学習エージェントの作成と学習を行います。Simulink で RL Agent ブロックの複数のインスタンスを使用して、複数のエージェントの学習を同時に行います (マルチエージェントの強化学習)。

RL Agent ブロックを使用した Simulink モデル。

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

環境のモデル化

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

Simulink および Simscape 環境

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

二足歩行ロボットのための Simulink 環境モデル。

二足歩行ロボットのための Simulink 環境モデル。

MATLAB 環境

MATLAB の関数やクラスを使用して、環境をモデル化します。MATLAB ファイル内で、観測変数、行動変数、報酬変数を指定します。

3 自由度のロケット向け MATLAB 環境。

3 自由度のロケット向け MATLAB 環境。

学習の高速化

GPU、クラウド、分散コンピューティング リソースを使用して学習を高速化します。

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

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

複数のシミュレーションを並行実行して学習を高速化するために使用されるマルチワーカーのブロック線図。

並列計算を使用して、学習を高速化。

GPU による高速化

高性能な NVIDIA® GPU を使用して、ディープ ニューラル ネットワークの学習と推論を高速化します。Parallel Computing Toolbox と共に、Compute Capability 3.0 以上のほとんどの CUDA 対応 NVIDIA GPU で MATLAB を使用できます。

GPU ハードウェア。

GPU を使用した学習の高速化。

コードの生成と展開

学習済みの方策を、組み込みデバイスに展開したり、さまざまな実稼働システムに統合できます。

コード生成

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

GPU Coder 構成画面。

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

MATLAB Compiler のサポート

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

スタンドアロン アプリケーションを作成するための MATLAB Compiler 画面。

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

参照例

ロボティクス、自動運転、キャリブレーション、スケジューリングなどの用途向けにコントローラーや意思決定アルゴリズムを設計します。

調整、キャリブレーション、およびスケジューリング

調整、キャリブレーション、およびスケジューリングの用途向けに強化学習方策を設計します。

3 台のポンプ、貯留層、タンクを備えた配水システム。

配水のリソース割り当ての問題。