Reinforcement Learning Toolbox

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

Reinforcement Learning Toolbox™ には、DQN や PPO、SAC、DDPG などの強化学習アルゴリズムを使用して方策を学習させるためのアプリや関数、Simulink® ブロックが用意されています。これらの方策を使用して、リソース割り当てやロボティクス、自律システムなどの複雑な用途向けにコントローラーと意思決定アルゴリズムを実装できます。

このツールボックスでは、ディープ ニューラル ネットワークやルックアップテーブルを使用して、方策や価値関数を表現し、MATLAB® や Simulink でモデル化された環境との交互作用を通じてそれらを学習させることができます。ツールボックスに含まれるシングルエージェントまたはマルチエージェントの強化学習アルゴリズムを評価したり、独自に開発を行ったりできます。また、ハイパーパラメーター設定の実験や、学習の進行状況の監視が可能であるほか、学習済みエージェントをアプリから対話的にまたはプログラム上でシミュレーションできます。学習の性能を向上させるには、シミュレーションを複数の CPU、GPU、コンピューター クラスター、およびクラウドで並列実行します (Parallel Computing Toolbox™ および MATLAB Parallel Server™ を使用)。

既存の方策は、ONNX™ モデル形式を使用して、TensorFlow™ Keras や PyTorch などのディープラーニング フレームワークからインポートできます (Deep Learning Toolbox™ を使用)。最適化された C、C++、および CUDA® コードを生成し、学習済みの方策をマイクロコントローラーや GPU に展開できます。このツールボックスには、初めての方にも使いやすい参照例が付属しています。

 

詳細を見る:

強化学習エージェント

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

強化学習アルゴリズム

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

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

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

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

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

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

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

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

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

環境のモデル化

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

Simulink および Simscape 環境

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

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

MATLAB 環境

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

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

学習の高速化

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

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

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

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

GPU による高速化

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

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

コードの生成と展開

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

コード生成

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

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

MATLAB Compiler のサポート

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

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

参照例

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

入門

単純な振子の倒立、グリッドワールドのナビゲート、カートポールシステムのバランス制御、一般的なマルコフ決定過程の求解などの問題に対する強化学習方策の開発方法をご覧ください。

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

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

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

強化学習ビデオシリーズ

このビデオシリーズを見て、強化学習について学習しましょう。

その他の Reinforcement Learning Toolbox リソース