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 に展開できます。このツールボックスには、初めての方にも使いやすい参照例が付属しています。
詳細を見る:
強化学習アルゴリズム
Deep Q-Network (DQN)、深層決定論的方策勾配法 (DDPG)、近傍方策最適化 (PPO) などの組み込みアルゴリズムを使用して、エージェントを作成します。テンプレートを使用して、方策の学習のためのカスタムエージェントを開発します。
強化学習デザイナーアプリ
強化学習エージェントの設計、学習、シミュレーションを対話的に行います。後で使用したり展開できるように、学習済みのエージェントを MATLAB にエクスポートします。
ディープ ニューラル ネットワークによる方策と価値関数の表現
大きな状態行動空間を持つ複雑なシステムでは、ディープ ニューラル ネットワークの方策をプログラムで定義します。この場合、Deep Learning Toolbox の層を使用するか、ディープ ネットワーク デザイナーを使用して対話的に定義します。または、このツールボックスで提案される既定のネットワーク アーキテクチャを使用します。模倣学習を使用して方策を初期化し、学習を高速化します。他のディープラーニング フレームワークとの相互運用のために ONNX モデルのインポートおよびエクスポートを行います。
Simulink によるシングルエージェントおよびマルチエージェントの強化学習
Simulink で RL Agent ブロックを使用して、強化学習エージェントの作成と学習を行います。Simulink で RL Agent ブロックの複数のインスタンスを使用して、複数のエージェントの学習を同時に行います (マルチエージェントの強化学習)。
Simulink および Simscape 環境
Simulink および Simscape™ を使用して、環境のモデルを作成します。モデル内で観測信号、行動信号、報酬信号を指定します。
MATLAB 環境
MATLAB の関数やクラスを使用して、環境をモデル化します。MATLAB ファイル内で、観測変数、行動変数、報酬変数を指定します。
分散コンピューティングおよびマルチコアによる高速化
学習を高速化するために、Parallel Computing Toolbox や MATLAB Parallel Server を使用して、マルチコア コンピューター、クラウドリソース、または計算クラスター上で並列シミュレーションを実行します。
GPU による高速化
高性能な NVIDIA® GPU を使用して、ディープ ニューラル ネットワークの学習と推論を高速化します。Parallel Computing Toolbox と共に、Compute Capability 3.0 以上のほとんどの CUDA 対応 NVIDIA GPU で MATLAB を使用できます。
コード生成
学習済みの方策を表現する MATLAB コードから最適化された CUDA コードを生成するには GPU Coder™ を使用します。方策を展開するための C/C++ コードの生成には MATLAB Coder™ を使用します。
MATLAB Compiler のサポート
MATLAB Compiler™ や MATLAB Compiler SDK™ を使用して、学習済みの方策をスタンドアロンのアプリケーション、C/C++ 共有ライブラリ、Microsoft® .NET アセンブリ、Java® クラス、Python® パッケージとして展開します。
入門
単純な振子の倒立、グリッドワールドのナビゲート、カートポールシステムのバランス制御、一般的なマルコフ決定過程の求解などの問題に対する強化学習方策の開発方法をご覧ください。
自動運転
アダプティブ クルーズ コントロール、車線逸脱防止支援、自動駐車などの自動運転用途のための強化学習方策を設計します。
調整、キャリブレーション、およびスケジューリング
調整、キャリブレーション、およびスケジューリングの用途向けに強化学習方策を設計します。
製品リソース:
強化学習ビデオシリーズ
このビデオシリーズを見て、強化学習について学習しましょう。