強化学習

強化学習とは、コンピューターのエージェントが環境とのやり取りを通じて試行錯誤を繰り返しながら、あるタスクのやり方を学んでいく機械学習手法の一つです。この学習手法により、エージェントは、タスクの報酬を最大化する一連の意思決定を行うことができます。人間が介入したり、タスクを達成するために明示的にプログラムしたりする必要はありません。

強化学習の仕組み

強化学習で使用される典型的な学習メカニズムには、実世界のシナリオが数多く反映されています。たとえば、正の強化によるペットのしつけについて考えてみましょう。

犬と訓練士がやり取りしている図。強化学習の用語では、犬はエージェントで、訓練士は環境を構成する要素の 1 つです。

犬のしつけにおける強化学習。

強化学習エージェントとして機能する車載コンピューターで、自律的に駐車方法を学習している自動車のイラスト。

自動駐車における強化学習。

強化学習の用語で説明すると、この場合の学習の目的は、犬 (エージェント) のしつけ (学習) を行い、ある環境の中でタスクを完了させることです。環境には、犬の周囲の環境や訓練士が含まれます。まず、訓練士が命令や合図を出し、それを犬が観察 (観測) します。続いて、犬は行動を起こすことで反応します。犬の行動が目的の行動に近い場合、訓練士は、おやつやおもちゃなどのごほうび (報酬) を与えますが、それ以外の場合、ごほうびは与えません。しつけ (学習) を始めたばかりの頃は、犬はランダムな行動を取る傾向にあります。犬は観測した特定の状況を行動やごほうび (報酬) と関連付けようとするため、与えられた指示が「おすわり」であっても、ローリングなど別の行動を取る場合があります。観測と行動の関連付け、つまりマッピングは、"方策" と呼ばれます。犬の立場から見ると、すべての合図に正しく反応して、おやつをできるだけ多くもらえるような状況が理想的です。そのため、簡単に言えば、強化学習のしつけ (学習) とは、犬が何らかのごぼうび (報酬) を最大化する理想的な行動を学習するように、犬の方策を「調整」することを指します。学習が完了すると、犬は飼い主を観察し、獲得した方策によって、その場にふさわしい行動 (「おすわり」と命令されたらおすわりをするなど) が取れるようになります。この時点で、おやつをあげれば喜びますが、理論的には必要ありません。

この犬のしつけの例を念頭に置き、自動運転システムを用いて車両を駐車するタスクについて考えてみましょう。目的は、強化学習によって、正しい駐車場に駐車することを車両コンピューター (エージェント) に学習させることです。犬のしつけの場合と同様に、この場合の環境はエージェントの外部にあるすべてのものを指します。たとえば、車両のダイナミクスや、近くにあるその他の車両、気象条件などがあります。学習中、エージェントはカメラ、GPS、LiDAR (観測) といったセンサーの読み取り値を使用して、ステアリング、ブレーキ、加速指令 (行動) を生成します。観測から正しい行動を生成する方法を学習するために (方策の調整)、エージェントは試行錯誤を重ねながら車両の駐車を試みます。試行の良さを評価し、学習プロセスを進めるために報酬信号が与えられます。

犬のしつけの例では、学習は犬の脳内で行われています。自動駐車の例では、学習は学習アルゴリズムによって処理されます。学習アルゴリズムは、収集したセンサーの読み取り値や行動、報酬に基づいてエージェントの方策を調整します。学習が完了すると、車両のコンピューターで、調整済みの方策とセンサーの読み取り値のみを使用して駐車できるようになります。なお、これらはいずれもモデルフリーの強化学習の例であり、どちらも環境とのやり取りを通じて試行錯誤を行い、データを蓄積していきます。

強化学習の主な構成要素 (方策、環境、エージェント、行動、報酬、観測) は、マルコフ決定過程と呼ばれるフレームワーク内で形式化されます。これは不確実性のある環境における意思決定のための数学的モデルを提供します。

探索と活用

探索と活用のトレードオフは、強化学習にとって不可欠な要素であり、学習の質に大きく影響することがあります。要するに、エージェントは、報酬を最大にする既知の行動を選択して環境を活用すべきか、または環境の一部を探索する未知の行動を選択するべきかのいずれかを選ぶことになります。エージェントの選択によって受け取る情報が決まり、学習に使用できる情報もそれにより決まります。探索が多すぎると、エージェントは適切な方策に収束できなくなります。逆に活用が多すぎると、局所的で最適とは言えない解にとどまってしまう可能性があります。一般的に、エージェントは、活用できる情報が十分にない学習の初期段階では探索を多用し、学習の終わりまでに徐々に活用の役割を高めていくのが合理的です。

深層強化学習

深層強化学習は、強化学習とディープラーニングを組み合わせたものです。単純な問題の場合はルックアップテーブル形式の方策で十分であることもありますが、問題の規模が大きい場合や問題に連続的な性質がある場合は、この手法だとうまく対応できません。深層強化学習で学習を行ったディープ ニューラル ネットワークは、複雑な行動を符号化することができ、従来の手法では扱いが困難、あるいは実用的でないような応用分野に対しても、別の手法を提供します。たとえば、自動運転では、カメラフレームや LiDAR 測定などの複数のセンサーを同時に確認し、運転者に代わってニューラル ネットワークがハンドルの切り方を決めることができます。ニューラル ネットワークがなければ、この問題は通常、カメラフレームからの特徴抽出、LiDAR 測定値のフィルタリング、センサー出力の融合、センサー入力に基づく「運転」の意思決定などに細分化されます。こうした処理は、ルックアップテーブルや多項式関数といった従来型の方策表現を用いることで、より簡単に解決できる場合が多いでしょう。

強化学習のワークフロー

強化学習を使用してエージェントの学習を行うための一般的なワークフローには、次のステップが含まれます。

  1. 環境を作成します。まず、強化学習エージェントが動作する環境を定義する必要があります。環境には、シミュレーション モデル、または実際の物理システムを使用できますが、シミュレーション環境の方が安全で、実験も可能であるため、通常は最初のステップとして推奨されています。
  2. 報酬を定義します。次に、エージェントがタスクの目標に対する性能測定に使用する報酬信号と、環境からこの信号を計算する方法を指定します。報酬のシェイピングは扱いづらいため、適切に進めるには反復が複数回必要になる場合があります。
  3. エージェントを作成します。次に、エージェントを作成します。ここでは、方策表現 (ニューラル ネットワークやルックアップテーブルなど) を選択し、強化学習の学習アルゴリズムを選び、調整します。
  4. エージェントの学習と検証を行います。学習オプション (停止条件など) を設定し、方策を調整するためにエージェントの学習を行います。学習が完了したら、必ず学習済みの方策の性能の検証をします。
  5. 方策を展開します。生成された C/C++ コードや CUDA コードなどを使用して、学習済みの方策表現を展開します。この時点で、方策は、スタンドアロンの意思決定システムを指します。
強化学習ワークフローのステップ: 環境、報酬、エージェント、エージェントの学習、展開。

強化学習のワークフロー。

強化学習によるエージェントの学習は、反復的なプロセスです。学習ワークフロー後半の意思決定や結果によっては、ワークフローの初期段階に戻る必要があります。学習プロセスが妥当な時間内に最適な方策に収束しない場合、再度学習を行う前に立ち戻って、問題の定義 (ダイナミクス、観測、行動)、報酬信号、方策アーキテクチャ、アルゴリズムのハイパーパラメーターを見直す必要が生じることもあります。

このトピックについてさらに詳しく

強化学習アルゴリズムの種類

強化学習、機械学習、ディープラーニングの違い

教師なし/教師あり機械学習とは異なり、強化学習は静的なデータセットを利用する必要がなく、動的な環境で動作可能で、収集した経験から学習できます。データポイント、すなわち経験は、環境とソフトウェア エージェントの間での試行錯誤しながらのやりとりを通して学習中に収集できます。これは強化学習の重要な特徴と言えます。これにより、教師あり学習や教師なし学習では必要とされる、学習前のデータ収集や前処理、ラベル付けが不要になるからです。

ディープラーニングの適用範囲は 3 種類の機械学習すべてに及び、そして強化学習とディープラーニングは相互に排他的なものではありません。複雑な強化学習の問題では、ディープ ニューラル ネットワークと深層強化学習に依存することも少なくありません。

教師なし学習、教師あり学習、強化学習の図。それぞれがクラスタリング、分類、報酬ベースのパスシステムを示しています。

機械学習の 3 つの広義のカテゴリ: 教師なし学習、教師あり学習、強化学習。

強化学習アルゴリズムの主要な 3 つの種類を示しているベン図。価値ベースのアルゴリズムと方策ベースのアルゴリズムが重なり合っており、重なりが actor-critic アルゴリズムを表しています。

強化学習アルゴリズムの主要な 3 つのカテゴリ。

強化学習アルゴリズム

強化学習アルゴリズムは、学習と意思決定の方法に基づいて、いくつかのカテゴリに分類して整理できます。

価値ベース・方策ベース・Actor-Critic 強化学習アルゴリズム

強化学習アルゴリズムには、次の主要な 3 つの種類があります。

  • 価値ベースの手法は、Q 関数のような価値関数の学習に焦点を当てます。ある状態で特定の行動をとり、その後特定の方策に従った場合に得られる期待累積報酬を推定します。最もよく知られる例は Q 学習です。方策は、各状態で最も価値の高い行動を選択する (つまり、価値関数に対して貪欲に行動する) ことで、価値関数から間接的に導出されます。価値ベースの手法は一般的に単純でサンプル効率が良いですが、適度なサイズの一連の離散行動に限られます (行動空間が高次元の場合、価値関数から方策を抽出するのにどれほど時間がかかるかを考えてみてください)。
  • 方策ベースの手法では、状態を行動にマッピングするパラメーター化された方策を直接学習し、方策パラメーターを最適化して期待報酬を最大化します。この最適化は、従来の勾配降下法と非常によく似た方法で行われます。例には、REINFORCE などの方策勾配法が含まれます。これらの手法は、必然的に連続行動空間または大規模な行動空間に適しており、確率的方策も学習できるため、探索やドメインランダム化に役立ちます。方策ベースの手法の欠点には、学習が遅く不安定になりやすいこと、低いサンプル効率、局所最適解に対する感度などが挙げられます。
  • actor-critic 法は、価値ベースの手法と方策ベースの手法の長所を組み合わせたものです。actor は方策を直接更新し、critic は価値関数を推定することで行動を評価します。critic のフィードバックにより、方策勾配推定値の分散が低減され、より安定した効率的な更新が可能になります。また、方策を直接表現する actor により、高次元や連続的な行動空間の問題にも柔軟に対応できます。これらの手法の主な欠点は、実装や調整が必要な構成要素 (actor と critic) が増えることです。actor-critic アルゴリズムの例には、深層決定論的方策勾配法 (DDPG)、近傍方策最適化 (PPO)、soft actor-critic (SAC) などがあります。
actor-critic 強化学習アルゴリズムの大まかな 4 つのステップ: 1) actor が行動を選択します。2) critic がその行動の価値を予測します。3) critic がその行動を実行して得られた報酬をもとに自身を更新します。4) actor が critic からのレスポンスを使って自身を更新します。

actor-critic 強化学習の動作例。

モデルベース vs. モデルフリー強化学習アルゴリズム

モデルベースの強化学習では、環境のダイナミクス (遷移確率と報酬関数) のモデルを作成または使用して、計画や意思決定を行います。この「計画」が重要で、これらのアルゴリズムは内部モデルを使って将来の状態をシミュレーションするため、通常、環境とのやりとりは最小限で済むか、まったく必要ない場合もあります。内部モデルは、事前に与えられる場合もあれば (この場合、エージェントは環境とのやりとりは不要)、実際に環境とやりとりして得られたデータをもとに学習を行う場合もあります。モデルベースの強化学習は、モデルを使って大量の学習データを素早く生成できるため、通常、モデルフリーの場合よりもサンプル効率が向上します。ただし、内部モデルが利用可能なのか学習を行うのかに応じて、モデルベースの手法はモデルフリーの手法よりも多くの計算リソースが必要になる場合があります。なぜなら、基本となるエージェントの学習に加えて、環境モデルの学習や学習データの生成も行わなければならないからです。

モデルベースのアルゴリズムとは異なり、モデルフリーの手法では環境の明示的なモデルを構築しません。代わりに、試行錯誤によって、直接的なやりとりを通じて最適な行動を学習します (前のセクションの犬のしつけと自動駐車の例を思い出してください)。この手法はより単純で、高次元環境や非構造化環境に適していますが、通常、データの使用に関しては効率性が低下します。最先端の強化学習アルゴリズムの大半はモデルフリーです。

オンライン vs. オフライン強化学習アルゴリズム

オンライン強化学習では、エージェントが学習中に環境と積極的にやりとりします。エージェントは経験を収集して、方策を更新し、新しいデータが利用可能になると継続的に適応します。前述の犬のしつけと自動駐車のシナリオは、オンライン強化学習の例です。

対照的に、オフライン (バッチ) 強化学習では、環境とさらにやりとりすることなく、記録済みの経験 (人間によるデモや過去の方策など) の静的データセットのみから学習します。オフライン手法は、現実世界でのやりとりにコストがかかったり安全でなかったりする場合に適しており、データが一貫性や専門性を欠いている場合でも有用な情報を抽出できます (ただし、学習の質は専門性の高いデータやさらに構造化されたデータよりも劣ります)。実際には、オフライン強化学習は、オンライン強化学習に移行する前に方策の事前学習を行うのに適した選択肢になることがよくあります。オンライン強化学習はサンプル効率は低いものの、新しいデータを使用して継続的に適応できるため、通常はより優れた性能を発揮します。

On-Policy vs. Off-Policy 強化学習アルゴリズム

SARSA、PPO、TRPO など、On-Policy 強化学習アルゴリズムでは、学習データの生成に使用された同じ方策を更新して評価します。つまり、エージェントは実際の行動に基づいて現在の方策の値を学習します。この手法では、Off-Policy 手法のように行動とターゲットの方策の違いを調整しようとしないため、更新の安定性と信頼性がより高くなることがよくあります。また、単一の方策のみが保持・更新されるため、計算がそれほど複雑にはならない傾向があります。

一方、Off-Policy 手法 (Q 学習や DQN など) では、1 つの方策 (行動方策) で収集されたデータが、別のターゲットの方策 (貪欲戦略や最適戦略など) の学習や改善に活用されます。そのため、過去の経験 (データ) をリプレイバッファーに保存し、何度も再利用することができます。方策の更新ごとにデータを破棄してしまう On-Policy 手法と比べて、この方法はサンプル効率を大幅に向上させます。Off-Policy 手法のもう 1 つの利点は、どんな方策で得られたデータでも学習に利用できることです。たとえば、ランダムな行動を取ったときや過去の方策、さらには人間が作ったデータなどです。この柔軟性が、オフライン データ セットやデモからの学習を可能にします。

勾配ベース vs. 進化的強化学習アルゴリズム

勾配ベースのアルゴリズムは、多くの現代的な深層強化学習アルゴリズムの主力であり、方策勾配のノイズを含む推定値 (逆伝播による) を利用することで、高速かつサンプル効率の高い学習を実現します。一方、ハイパーパラメーターの影響を受けやすく、局所最適解に陥りやすく、微分可能性を前提とするという制約があります。

対照的に、進化的強化学習は方策をブラックボックスとして扱い、勾配が利用できない、あるいは信頼できない場合や、大規模な並列計算が可能な場合、または複雑な探索空間で幅広い探索が必要な場合に強力なツールとなります。進化的戦略は、母集団ベースの突然変異や選択を通じて大域的に探索を行い、疎 (スパース) または微分化不可能な報酬信号に対して堅牢性を発揮しますが、サンプル効率がはるかに低く、収束が遅いという欠点があります。

最近では、両者の利点を活かすハイブリッド手法も増えてきており、進化的手法で探索や大域的探索を行い、有望な方策を勾配ベースの更新で洗練させることで、全体としてより高い性能を発揮することが多くなっています。

テーブル形式 vs. ニューラル ネットワークベース強化学習アルゴリズム

通常、扱う問題の性質によって、どちらのアルゴリズムが適切か判断します。環境の状態空間や行動空間が離散的で、かつその数が少ない場合、単純なテーブルを用いて方策を表現することができます。Q 学習や SARSA は、代表的なテーブル形式アルゴリズムの例です。状態や行動の組み合わせが無限に増えていくと、方策パラメーターをテーブルで表現するのは現実的ではありません。これは「次元の呪い」と呼ばれている現象で、ここでニューラル ネットワークの出番となります。一般的に、最新の強化学習アルゴリズムの多くはニューラル ネットワークに依存しています。なぜなら、ニューラル ネットワークは大規模な状態/行動空間や複雑な問題に適しているからです。

シングルエージェント vs. マルチエージェント強化学習アルゴリズム

シングルエージェント強化学習では、1 つのエージェントだけが環境とやりとりするため、学習が単純で安定しており、解析しやすくなります。対照的に、マルチエージェント強化学習 (MARL) では、複数のエージェントが同じ環境内でやりとりします。エージェント同士が互いに影響し合うため、環境は非定常となり、マルコフ性の仮定に違反し、学習プロセスが不安定になります。MARL は、より複雑なタスクの解決や協調・交渉といった創発的行動の発現が可能ですが、同時に収束の問題、計算リソースの増大、各エージェントが単独で更新した場合の不安定性など、さまざまな課題も生じます。

強化学習の利点と課題

強化学習の利点

強化学習は決して新しい概念ではありませんが、近年のディープラーニングや計算能力の進歩により、人工知能 (AI) の分野で目覚ましい成果をもたらしています。

強化学習の利点には、次のようなものがあります。

  • 複雑で逐次的なタスクを解決する能力。強化学習は、長期的な目標をさまざまな段階にわたり最適化できるため、従来の手法では解決が困難な問題にも対処できる新たな手段を提供します。深層強化学習は、ニューラル ネットワークの特徴表現能力を活用することで、高度あるいは複雑なセンサーを用いたエンドツーエンドのソリューションを生み出す可能性を秘めています。
  • ラベル付きデータへの依存の低減。教師あり学習と異なり、強化学習は報酬やペナルティといった環境からのフィードバックだけで学習できるため、コストのかかるラベル付きデータセットの利用を軽減できます。
  • 既存データセットへの依存度の低さ。強化学習は通常、順次生成されるデータから学習しますが、これは既存のデータセットを使用できないことを意味するわけではありません。実際、教師あり学習とは異なり、オフライン強化学習では、専門性を欠いたデータや、学習させたい理想の行動を含まないデータからでも有用な情報を抽出できます。
  • 適応性、自己修正、堅牢性。強化学習は試行錯誤を通じて行動を継続的に洗練させるため、エージェントは展開後もパフォーマンスに基づいて戦略を修正することができます。また、強化学習は結果が予測できないような非決定的な状況にも対応できるように設計されており、これは現実世界の複雑さに適しています。

強化学習の課題

強化学習は強力な手法ですが、次のような課題もあります。

  • 参入障壁の高さ。強化学習は、アルゴリズムや概念が複雑なため、参入障壁が高くなりがちです。
  • データと計算リソースの増大 (サンプル効率の低さ)。学習にはしばしば大量のデータが必要になり、環境とのやりとりやシミュレーションの回数も膨大になります。そのため、複雑な問題では、収束までに数日間の学習期間を要することも珍しくありません。
  • 設計パラメーターの多さ。強化学習には、報酬信号、ニューラル ネットワーク アーキテクチャ、エージェント固有のハイパーパラメーターなど、調整すべきハイパーパラメーターが多数あります。これらのパラメーターを少し変更するだけでも、学習成果に大きな影響を与えることがあり、納得のいく方策を得るために何度も学習をやり直す必要が生じることも少なくありません。
  • 汎化と転移の課題。エージェントは、学習シナリオ外での実行や、シミュレーションから現実世界への効率的な転移学習に苦戦することが多くあります (いわゆる sim2real ギャップ)。
  • 検証、解釈可能性、デバッグの課題。深層強化学習はいかに強力でも、ニューラル ネットワーク特有の注意点が伴います。複雑なニューラル ネットワークの方策は説明やトラブルシューティングが難しく、透明性が低下します。さらに、ニューラル ネットワークの形式的検証は依然として研究途上であるため、セーフティクリティカルなシステムへの深層強化学習の適用には課題があります。

エンジニアード システムにおける強化学習の応用

強化学習は近年、AI チャットボットや大規模言語モデル (LLM)、レコメンドシステム、マーケティングや広告、ゲームなど、さまざまな分野で活用されています。しかし、実運用への適用は大部分がまだ評価段階にあり、特にエンジニアード システムではその傾向が顕著です。一方で、前述の利点により、この技術の活用はゆっくりではあるものの着実にさまざまな分野へと広がりつつあります。エンジニアード システムにおける強化学習の実際の応用例は、主に次の分野に分類されます。

  • 高度な制御: 非線形システムや複雑なシステム、または高度なセンサー フィードバックを伴うシステムの制御は難しく、しばしば追加の事前作業が必要になります (例: 異なる動作点での線形化、画像などのセンサーデータからの特徴抽出)。このような場合、強化学習は追加の事前作業なしで直接適用できます。応用分野には、自動運転 (例: カメラ入力に基づく運転判断) やロボティクス (例: ロボットアームによるピックアンドプレース作業やロボットの歩行動作の学習) が含まれます。
  • スケジューリング: スケジューリングの問題は、信号機の制御、工場内でのリソース調整など多岐にわたります。強化学習は、進化的手法の代替として、こうした高次元の組合せ最適化問題の解決に有効です。
  • キャリブレーション: 電子コントロール ユニット (ECU) やエンジンのキャリブレーションなど、手動でのパラメーター調整が必要な分野や、生産ラインの最適化のように人為的ミスが起こりやすい分野では、強化学習が有効な場合があります。
  • 敵対的問題: 機械学習における敵対的応用では、他のモデル、システム、環境の弱点を突くことを目的に、意図的に作成された入力 (敵対的サンプルという) を用います。敵対的強化学習の例としては、反例を特定し、システムの脆弱性を評価するために、別の方策 (さらには他のアルゴリズム) を「破る」ことを試みる方策検証エージェントを設計することが挙げられます。敵対的強化学習はサイバーセキュリティの分野でも特に有効で、攻撃をシミュレーションして防御をテストしたり、その逆を行ったりすることができます。
  • 設計最適化: 強化学習から大きなメリットを得られる分野の一つが、シミュレーション ベースの設計最適化です。特に、シミュレーションのコストが高い場合に有効です。強化学習エージェントは設計空間をスマートに探索できるため、必要な学習データの量とシミュレーションの回数を削減できます。具体的な応用例には、レーダー設計やチップ配置の最適化などがあります。

MATLAB®、Simulink®Reinforcement Learning Toolbox™ を使用して、強化学習タスクを簡略化できます。同じエコシステム内で強化学習ワークフローのすべてのステップを進めることで、コントローラーと意思決定アルゴリズムを実装できます。具体的には、以下を行うことができます。

  1. MATLAB と Simulink で学習環境と報酬信号を作成できます。MATLAB 関数や Simulink ブロックを通じて、作成した環境と簡単に連動させることができます。
  2. ニューラル ネットワーク ベースの方策は、プログラムによって作成することも、ディープ ネットワーク デザイナーを使って対話的に作成することもできます。他にも、ルックアップテーブルや多項式も利用可能です。
  3. DQN、DDPG、PPO、SAC などの代表的な価値ベース、方策ベース、actor-critic 型アルゴリズムを、わずかなコード変更だけで切り替え、評価、比較できます。独自のアルゴリズムの作成も可能です。シングルエージェント/マルチエージェント、勾配ベース/進化的手法、オンライン/オフライン、モデルベース/モデルフリーなど、さまざまな学習方法をすぐに試すことができます。
  4. 強化学習デザイナーアプリで、エージェントを対話的に設計して、学習とシミュレーションを行うことができます。
  5. 運用システムと組み込みデバイスに強化学習方策を展開できます (自動コード生成ツールを使用)。必要に応じて、展開前にニューラル ネットワーク方策のメモリ使用量を圧縮技術で削減することもできます。
強化学習デザイナーアプリでエージェントのハイパーパラメーターを設定するための対話型ダイアログを示しているスクリーンショット。

強化学習デザイナーアプリで強化学習エージェントを対話的に作成します。(ドキュメンテーションを参照)

MATLAB と Simulink による強化学習の一般的な課題への対応

MATLAB と Simulink を使用することで、強化学習でよく見られる多くの課題に対処できます。

高い参入障壁

簡単に強化学習を導入できます。アルゴリズムを自分で一から開発する必要はなく、追加設定なしでアルゴリズムを試せます。参照例から問題設定のアイデアを得ることができ、無料の学習リソーストレーニングコースでスキルを素早く習得できます。

データと計算リソースの増大 (サンプル効率の低さ)

Parallel Computing Toolbox™MATLAB Parallel Server™ により、複数の GPU や CPU、コンピューター クラスター、クラウドリソースを活用して強化学習方策の学習を高速化できます。たとえば、複数のシミュレーションを並列実行して学習データを素早く生成したり、勾配計算をスピードアップして学習を加速させたりすることができます。

Reinforcement Learning Toolbox には、モデルベース強化学習の機能も用意されており、サンプル効率の向上に役立ちます。

モデルベースの方策最適化 (MBPO) エージェントは、モデルを使って多様な経験データを大量に生成できるため、モデルフリー エージェントよりも高いサンプル効率を実現できます。

強化学習を高速化し、最適な方策により早く到達するために、並列計算を用いて問題を複数のマシンで実行する仕組みを示す図。

並列計算を利用した、サンプル効率の低い学習問題の学習。

設計パラメーターの多さ

Reinforcement Learning Toolbox を使用すると、手動で調整しなければならないハイパーパラメーターの数を削減できます。たとえば、ニューラル ネットワーク方策のアーキテクチャを手動で指定せずにエージェントを作成したり、強化学習デザイナーアプリでベイズ最適化を使用してエージェントのハイパーパラメーターを対話的に調整したりできます。また、Model Predictive Control Toolbox™ の仕様や、Simulink Design Optimization™ のモデル検証ブロックで性能の制約が既に設定されている場合は、報酬関数を自動的に生成することもできます。

汎化と転移の課題

強化学習においてシミュレーションは重要な役割を果たします。Simulink と密接に連携することで、さまざまなシナリオでエージェントを学習させ、ドメインランダム化により方策の汎化性を容易に高めることができます。これには、現実世界では再現が難しい極端な条件や危険な条件も含まれます。

Reinforcement Learning Toolbox を使用すると、利用可能なすべてのデータソースを最大限に活用して汎化性を高め、シミュレーションと実環境 (sim2real) のギャップを埋めることができます。オフライン強化学習では、既存のデータ (ターゲット ハードウェアからのデータなど) を使用して方策の事前学習を行うことができます。その後、シミュレーション環境での学習によって方策を改善し、ドメインランダム化を適用することで、不確実な要因やシナリオに対する堅牢性を高めることができます。シミュレーション モデルが現実世界のシステムを正確に表現していることを確実にするために、システム同定を利用できます。プロセスの最後のステップとして、必要に応じて、実際のハードウェアを使って直接学習を行うことで、学習済み方策を微調整できます。実際のハードウェアを学習ループに含めることは通常リスクが高く、危険を伴いますが、このワークフローの最初の 2 ステップにより、方策の微調整に必要な物理ハードウェアとのやりとりの回数を最小限に抑えることができます。この機能はリアルタイム アプリケーションにも利用できます。

オフライン強化学習、システム同定、実際のハードウェアシステムに対する直接学習を示す図。

Reinforcement Learning Toolbox を使い、あらゆるデータソースを活用して汎化性を高める sim2real 転移ワークフロー。

検証、解釈可能性、デバッグの課題

強化学習は「サイレントエラー」という学習中や実行中に発生して、気づきにくく検出が難しい問題を伴うことがよくあります。Reinforcement Learning Toolbox を使用することで、主要な学習データをログに記録して可視化し、解析とデバッグを容易にすることができます。

解釈可能性と検証は、特にニューラル ネットワークに関して、研究コミュニティにおいて依然として未解決で活発に研究されている分野です。Deep Learning Toolbox™ には、ネットワークがどこに着目しているかを視覚的に示してネットワークの予測を説明する、解釈可能性手法の一種であるさまざまな可視化手法が用意されています。別の手法としてファジー論理があり、ファジー推論システム (FIS) を学習して (深層) 強化学習方策の行動を再現することで、FIS 規則を使用してその行動を説明できるようになります。

シミュレーションベースの検証は、強化学習を用いた方策を検証するための最も一般的な手法であり、Simulink を使用すると簡単に実行できます。モデルベースデザイン (MBD、モデルベース開発) を用いるとシミュレーションベースの検証を従来型の検証と妥当性確認を通じて拡張できます。たとえば、Requirements Toolbox™ を使用して方策の要件を形式化し、整合性、完全性、正確性の観点から解析できます。さらに、Deep Learning Toolbox Verification Library で提供される形式的手法を使用して、堅牢性やネットワーク出力境界など、ニューラル ネットワークの方策の特定のプロパティを評価することもできます。

最後に、複雑な問題を小さな部分問題に分割することで、このセクションで挙げた課題全般への対応が容易になります。デバッグや解釈可能性がより扱いやすくなり (問題が小さいほど方策アーキテクチャも単純になります)、検証要件を軽減できる場合もあります。このような状況では、強化学習を従来の (制御) 手法と組み合わせることができます。このアーキテクチャの基本的な考え方は、検証可能な手法や従来の手法でセーフティクリティカルな部分に対応し、ブラックボックスの強化学習方策で、より高レベルで重要度の低い可能性がある部分を扱うことです。検討すべき別のアーキテクチャとしては、従来の手法を強化学習と並行実行するハイブリッド手法や、強化学習で従来の手法を補完または修正する手法があります。MATLAB なら、このようなアーキテクチャを簡単に実装できます。強化学習や AI ベースの手法に加え、さまざまな従来手法をすぐに利用でき、単一のシミュレーション プラットフォームである Simulink 上で組み合わせることができます。

強化学習と従来のコントローラーを組み合わせたブロック線図。

強化学習と従来の手法を組み合わせることで、セーフティクリティカルなシステムへの適用が容易になります。