強化学習とは
これだけは知っておきたい 3 つのこと
これだけは知っておきたい 3 つのこと
強化学習とは、コンピューターのエージェントが環境とのやり取りを通じて試行錯誤を繰り返しながら、あるタスクのやり方を学んでいく機械学習手法の一つです。この学習手法により、エージェントは、タスクの報酬を最大化する一連の意思決定を行うことができます。人間が介入したり、タスクを達成するために明示的にプログラムしたりする必要はありません。
強化学習で使用される典型的な学習メカニズムには、実世界のシナリオが数多く反映されています。たとえば、正の強化によるペットのしつけについて考えてみましょう。
強化学習の用語で説明すると、この場合の学習の目的は、犬 (エージェント) のしつけ (学習) を行い、ある環境の中でタスクを完了させることです。環境には、犬の周囲の環境や訓練士が含まれます。まず、訓練士が命令や合図を出し、それを犬が観察 (観測) します。続いて、犬は行動を起こすことで反応します。犬の行動が目的の行動に近い場合、訓練士は、おやつやおもちゃなどのごほうび (報酬) を与えますが、それ以外の場合、ごほうびは与えません。しつけ (学習) を始めたばかりの頃は、犬はランダムな行動を取る傾向にあります。犬は観測した特定の状況を行動やごほうび (報酬) と関連付けようとするため、与えられた指示が「おすわり」であっても、ローリングなど別の行動を取る場合があります。観測と行動の関連付け、つまりマッピングは、"方策" と呼ばれます。犬の立場から見ると、すべての合図に正しく反応して、おやつをできるだけ多くもらえるような状況が理想的です。そのため、簡単に言えば、強化学習のしつけ (学習) とは、犬が何らかのごぼうび (報酬) を最大化する理想的な行動を学習するように、犬の方策を「調整」することを指します。学習が完了すると、犬は飼い主を観察し、獲得した方策によって、その場にふさわしい行動 (「おすわり」と命令されたらおすわりをするなど) が取れるようになります。この時点で、おやつをあげれば喜びますが、理論的には必要ありません。
この犬のしつけの例を念頭に置き、自動運転システムを用いて車両を駐車するタスクについて考えてみましょう。目的は、強化学習によって、正しい駐車場に駐車することを車両コンピューター (エージェント) に学習させることです。犬のしつけの場合と同様に、この場合の環境はエージェントの外部にあるすべてのものを指します。たとえば、車両のダイナミクスや、近くにあるその他の車両、気象条件などがあります。学習中、エージェントはカメラ、GPS、LiDAR (観測) といったセンサーの読み取り値を使用して、ステアリング、ブレーキ、加速指令 (行動) を生成します。観測から正しい行動を生成する方法を学習するために (方策の調整)、エージェントは試行錯誤を重ねながら車両の駐車を試みます。試行の良さを評価し、学習プロセスを進めるために報酬信号が与えられます。
犬のしつけの例では、学習は犬の脳内で行われています。自動駐車の例では、学習は学習アルゴリズムによって処理されます。学習アルゴリズムは、収集したセンサーの読み取り値や行動、報酬に基づいてエージェントの方策を調整します。学習が完了すると、車両のコンピューターで、調整済みの方策とセンサーの読み取り値のみを使用して駐車できるようになります。なお、これらはいずれもモデルフリーの強化学習の例であり、どちらも環境とのやり取りを通じて試行錯誤を行い、データを蓄積していきます。
強化学習の主な構成要素 (方策、環境、エージェント、行動、報酬、観測) は、マルコフ決定過程と呼ばれるフレームワーク内で形式化されます。これは不確実性のある環境における意思決定のための数学的モデルを提供します。
探索と活用のトレードオフは、強化学習にとって不可欠な要素であり、学習の質に大きく影響することがあります。要するに、エージェントは、報酬を最大にする既知の行動を選択して環境を活用すべきか、または環境の一部を探索する未知の行動を選択するべきかのいずれかを選ぶことになります。エージェントの選択によって受け取る情報が決まり、学習に使用できる情報もそれにより決まります。探索が多すぎると、エージェントは適切な方策に収束できなくなります。逆に活用が多すぎると、局所的で最適とは言えない解にとどまってしまう可能性があります。一般的に、エージェントは、活用できる情報が十分にない学習の初期段階では探索を多用し、学習の終わりまでに徐々に活用の役割を高めていくのが合理的です。
深層強化学習は、強化学習とディープラーニングを組み合わせたものです。単純な問題の場合はルックアップテーブル形式の方策で十分であることもありますが、問題の規模が大きい場合や問題に連続的な性質がある場合は、この手法だとうまく対応できません。深層強化学習で学習を行ったディープ ニューラル ネットワークは、複雑な行動を符号化することができ、従来の手法では扱いが困難、あるいは実用的でないような応用分野に対しても、別の手法を提供します。たとえば、自動運転では、カメラフレームや LiDAR 測定などの複数のセンサーを同時に確認し、運転者に代わってニューラル ネットワークがハンドルの切り方を決めることができます。ニューラル ネットワークがなければ、この問題は通常、カメラフレームからの特徴抽出、LiDAR 測定値のフィルタリング、センサー出力の融合、センサー入力に基づく「運転」の意思決定などに細分化されます。こうした処理は、ルックアップテーブルや多項式関数といった従来型の方策表現を用いることで、より簡単に解決できる場合が多いでしょう。
強化学習を使用してエージェントの学習を行うための一般的なワークフローには、次のステップが含まれます。
強化学習によるエージェントの学習は、反復的なプロセスです。学習ワークフロー後半の意思決定や結果によっては、ワークフローの初期段階に戻る必要があります。学習プロセスが妥当な時間内に最適な方策に収束しない場合、再度学習を行う前に立ち戻って、問題の定義 (ダイナミクス、観測、行動)、報酬信号、方策アーキテクチャ、アルゴリズムのハイパーパラメーターを見直す必要が生じることもあります。
教師なし/教師あり機械学習とは異なり、強化学習は静的なデータセットを利用する必要がなく、動的な環境で動作可能で、収集した経験から学習できます。データポイント、すなわち経験は、環境とソフトウェア エージェントの間での試行錯誤しながらのやりとりを通して学習中に収集できます。これは強化学習の重要な特徴と言えます。これにより、教師あり学習や教師なし学習では必要とされる、学習前のデータ収集や前処理、ラベル付けが不要になるからです。
ディープラーニングの適用範囲は 3 種類の機械学習すべてに及び、そして強化学習とディープラーニングは相互に排他的なものではありません。複雑な強化学習の問題では、ディープ ニューラル ネットワークと深層強化学習に依存することも少なくありません。
強化学習アルゴリズムは、学習と意思決定の方法に基づいて、いくつかのカテゴリに分類して整理できます。
強化学習アルゴリズムには、次の主要な 3 つの種類があります。
モデルベースの強化学習では、環境のダイナミクス (遷移確率と報酬関数) のモデルを作成または使用して、計画や意思決定を行います。この「計画」が重要で、これらのアルゴリズムは内部モデルを使って将来の状態をシミュレーションするため、通常、環境とのやりとりは最小限で済むか、まったく必要ない場合もあります。内部モデルは、事前に与えられる場合もあれば (この場合、エージェントは環境とのやりとりは不要)、実際に環境とやりとりして得られたデータをもとに学習を行う場合もあります。モデルベースの強化学習は、モデルを使って大量の学習データを素早く生成できるため、通常、モデルフリーの場合よりもサンプル効率が向上します。ただし、内部モデルが利用可能なのか学習を行うのかに応じて、モデルベースの手法はモデルフリーの手法よりも多くの計算リソースが必要になる場合があります。なぜなら、基本となるエージェントの学習に加えて、環境モデルの学習や学習データの生成も行わなければならないからです。
モデルベースのアルゴリズムとは異なり、モデルフリーの手法では環境の明示的なモデルを構築しません。代わりに、試行錯誤によって、直接的なやりとりを通じて最適な行動を学習します (前のセクションの犬のしつけと自動駐車の例を思い出してください)。この手法はより単純で、高次元環境や非構造化環境に適していますが、通常、データの使用に関しては効率性が低下します。最先端の強化学習アルゴリズムの大半はモデルフリーです。
オンライン強化学習では、エージェントが学習中に環境と積極的にやりとりします。エージェントは経験を収集して、方策を更新し、新しいデータが利用可能になると継続的に適応します。前述の犬のしつけと自動駐車のシナリオは、オンライン強化学習の例です。
対照的に、オフライン (バッチ) 強化学習では、環境とさらにやりとりすることなく、記録済みの経験 (人間によるデモや過去の方策など) の静的データセットのみから学習します。オフライン手法は、現実世界でのやりとりにコストがかかったり安全でなかったりする場合に適しており、データが一貫性や専門性を欠いている場合でも有用な情報を抽出できます (ただし、学習の質は専門性の高いデータやさらに構造化されたデータよりも劣ります)。実際には、オフライン強化学習は、オンライン強化学習に移行する前に方策の事前学習を行うのに適した選択肢になることがよくあります。オンライン強化学習はサンプル効率は低いものの、新しいデータを使用して継続的に適応できるため、通常はより優れた性能を発揮します。
SARSA、PPO、TRPO など、On-Policy 強化学習アルゴリズムでは、学習データの生成に使用された同じ方策を更新して評価します。つまり、エージェントは実際の行動に基づいて現在の方策の値を学習します。この手法では、Off-Policy 手法のように行動とターゲットの方策の違いを調整しようとしないため、更新の安定性と信頼性がより高くなることがよくあります。また、単一の方策のみが保持・更新されるため、計算がそれほど複雑にはならない傾向があります。
一方、Off-Policy 手法 (Q 学習や DQN など) では、1 つの方策 (行動方策) で収集されたデータが、別のターゲットの方策 (貪欲戦略や最適戦略など) の学習や改善に活用されます。そのため、過去の経験 (データ) をリプレイバッファーに保存し、何度も再利用することができます。方策の更新ごとにデータを破棄してしまう On-Policy 手法と比べて、この方法はサンプル効率を大幅に向上させます。Off-Policy 手法のもう 1 つの利点は、どんな方策で得られたデータでも学習に利用できることです。たとえば、ランダムな行動を取ったときや過去の方策、さらには人間が作ったデータなどです。この柔軟性が、オフライン データ セットやデモからの学習を可能にします。
勾配ベースのアルゴリズムは、多くの現代的な深層強化学習アルゴリズムの主力であり、方策勾配のノイズを含む推定値 (逆伝播による) を利用することで、高速かつサンプル効率の高い学習を実現します。一方、ハイパーパラメーターの影響を受けやすく、局所最適解に陥りやすく、微分可能性を前提とするという制約があります。
対照的に、進化的強化学習は方策をブラックボックスとして扱い、勾配が利用できない、あるいは信頼できない場合や、大規模な並列計算が可能な場合、または複雑な探索空間で幅広い探索が必要な場合に強力なツールとなります。進化的戦略は、母集団ベースの突然変異や選択を通じて大域的に探索を行い、疎 (スパース) または微分化不可能な報酬信号に対して堅牢性を発揮しますが、サンプル効率がはるかに低く、収束が遅いという欠点があります。
最近では、両者の利点を活かすハイブリッド手法も増えてきており、進化的手法で探索や大域的探索を行い、有望な方策を勾配ベースの更新で洗練させることで、全体としてより高い性能を発揮することが多くなっています。
通常、扱う問題の性質によって、どちらのアルゴリズムが適切か判断します。環境の状態空間や行動空間が離散的で、かつその数が少ない場合、単純なテーブルを用いて方策を表現することができます。Q 学習や SARSA は、代表的なテーブル形式アルゴリズムの例です。状態や行動の組み合わせが無限に増えていくと、方策パラメーターをテーブルで表現するのは現実的ではありません。これは「次元の呪い」と呼ばれている現象で、ここでニューラル ネットワークの出番となります。一般的に、最新の強化学習アルゴリズムの多くはニューラル ネットワークに依存しています。なぜなら、ニューラル ネットワークは大規模な状態/行動空間や複雑な問題に適しているからです。
シングルエージェント強化学習では、1 つのエージェントだけが環境とやりとりするため、学習が単純で安定しており、解析しやすくなります。対照的に、マルチエージェント強化学習 (MARL) では、複数のエージェントが同じ環境内でやりとりします。エージェント同士が互いに影響し合うため、環境は非定常となり、マルコフ性の仮定に違反し、学習プロセスが不安定になります。MARL は、より複雑なタスクの解決や協調・交渉といった創発的行動の発現が可能ですが、同時に収束の問題、計算リソースの増大、各エージェントが単独で更新した場合の不安定性など、さまざまな課題も生じます。
強化学習は決して新しい概念ではありませんが、近年のディープラーニングや計算能力の進歩により、人工知能 (AI) の分野で目覚ましい成果をもたらしています。
強化学習の利点には、次のようなものがあります。
強化学習は強力な手法ですが、次のような課題もあります。
強化学習は近年、AI チャットボットや大規模言語モデル (LLM)、レコメンドシステム、マーケティングや広告、ゲームなど、さまざまな分野で活用されています。しかし、実運用への適用は大部分がまだ評価段階にあり、特にエンジニアード システムではその傾向が顕著です。一方で、前述の利点により、この技術の活用はゆっくりではあるものの着実にさまざまな分野へと広がりつつあります。エンジニアード システムにおける強化学習の実際の応用例は、主に次の分野に分類されます。
MATLAB®、Simulink®、Reinforcement Learning Toolbox™ を使用して、強化学習タスクを簡略化できます。同じエコシステム内で強化学習ワークフローのすべてのステップを進めることで、コントローラーと意思決定アルゴリズムを実装できます。具体的には、以下を行うことができます。
強化学習デザイナーアプリで強化学習エージェントを対話的に作成します。(ドキュメンテーションを参照)
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 を使用することで、主要な学習データをログに記録して可視化し、解析とデバッグを容易にすることができます。
シミュレーションベースの検証は、強化学習を用いた方策を検証するための最も一般的な手法であり、Simulink を使用すると簡単に実行できます。モデルベースデザイン (MBD、モデルベース開発) を用いるとシミュレーションベースの検証を従来型の検証と妥当性確認を通じて拡張できます。たとえば、Requirements Toolbox™ を使用して方策の要件を形式化し、整合性、完全性、正確性の観点から解析できます。さらに、Deep Learning Toolbox Verification Library で提供される形式的手法を使用して、堅牢性やネットワーク出力境界など、ニューラル ネットワークの方策の特定のプロパティを評価することもできます。
最後に、複雑な問題を小さな部分問題に分割することで、このセクションで挙げた課題全般への対応が容易になります。デバッグや解釈可能性がより扱いやすくなり (問題が小さいほど方策アーキテクチャも単純になります)、検証要件を軽減できる場合もあります。このような状況では、強化学習を従来の (制御) 手法と組み合わせることができます。このアーキテクチャの基本的な考え方は、検証可能な手法や従来の手法でセーフティクリティカルな部分に対応し、ブラックボックスの強化学習方策で、より高レベルで重要度の低い可能性がある部分を扱うことです。検討すべき別のアーキテクチャとしては、従来の手法を強化学習と並行実行するハイブリッド手法や、強化学習で従来の手法を補完または修正する手法があります。MATLAB なら、このようなアーキテクチャを簡単に実装できます。強化学習や AI ベースの手法に加え、さまざまな従来手法をすぐに利用でき、単一のシミュレーション プラットフォームである Simulink 上で組み合わせることができます。
ドキュメンテーション、例、ビデオなどを通じて知識を広げましょう。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ