「右に曲がる/左に曲がる」なら選択肢は2つ。でも「ハンドルを何度切るか」なら選択肢は無限にあります。ロボットの関節や車の速度のように、行動が連続的な数値になる強化学習の問題が「連続値制御」です。DQNのような離散行動向けの手法がそのまま使えないため、Actor-Critic法やSACといった専用のアプローチが発展してきました。
📖 ひと言でいうと
連続値制御とは、エージェントが取る行動が「関節を23.5度曲げる」「時速42.3kmまで加速する」のような連続的な値を持つ強化学習の問題設定(およびその制御)のことです。
ゲームのコマンド選択が「メニューから技を選ぶ」型だとすれば、連続値制御は「アナログスティックの倒し加減」型です。選択肢が有限個のリストにならず、無限の中間値があり得るため、「全部の行動を試して一番良いものを選ぶ」という離散型の作戦が根本的に通用しなくなります。
🖼 1枚でわかる連続値制御
📘 公式テキストの説明
エージェントが取る行動が連続的な値を持つ場合、これを「連続値制御」と呼ぶ。例えば、ロボットの関節角度や車両の速度制御など、行動が連続的な範囲を持つ問題が該当する。従来の強化学習手法は、行動が離散的な選択肢を持つ環境で効果的に機能するよう設計されていた。しかし、連続的な行動空間を持つ環境では、これらの手法を直接適用することが難しい。そのため、連続値制御に適した手法が開発されてきた。代表的な手法の一つに、Actor-Critic法がある。この手法では、Actorが状態に基づいて連続的な行動を生成し、Criticがその行動の価値を評価する。特に、Soft Actor-Critic(SAC)は、エントロピー項を目的関数に追加することで、探索の多様性を確保しつつ学習を進める手法として知られている。SACは、学習時の選択肢の幅を広げ、学習の安定性を向上させる効果がある。また、方策勾配法を連続行動空間に適用する際には、行動を確率分布としてモデル化し、その分布のパラメータを学習するアプローチが取られる。例えば、行動をガウス分布に従うと仮定し、平均と分散を学習することで、連続的な行動を生成することが可能となる。さらに、Normalized Advantage Function(NAF)を用いた手法も提案されている。これは、連続的な行動空間において、Q関数を効率的に学習するための手法であり、特に高次元の行動空間を持つ問題に対して有効であるとされる。連続値制御の課題として、行動空間が無限に広がるため、探索の効率性や学習の安定性が挙げられる。これらの課題に対処するため、エントロピー正則化や経験再生バッファの活用など、さまざまな手法が研究されている。
この説明の骨組みは「問題の定義→なぜ従来手法で困るか→解決手法の系譜」です。定義は冒頭のとおり、行動が連続的な値を持つこと。困る理由は、DQNをはじめとする従来手法が「有限個の選択肢からQ値最大の行動を選ぶ」前提で設計されていることです。
解決の主役はActor-Critic法で、行動を「選ぶ」のではなく「生成する」方向に発想を切り替えます。さらにその発展形としてSACやNAF、行動を確率分布(ガウス分布)としてモデル化する方策勾配法のアプローチが紹介されています。
🔍 しっかり理解する
なぜDQNは連続行動に使えないのか
DQNは、状態を入力すると「各行動のQ値」を出力し、その中で最大のものを選びます。この仕組みは行動が有限個(たとえばゲームのボタン操作18種類)だから成り立ちます。行動が「0度から90度の任意の角度」のような連続値だと、行動の候補が無限にあるため、全候補のQ値を並べて最大を探すことが原理的にできません。
「細かく区切って離散化すればよいのでは」と思うかもしれませんが、精度を上げようと区切りを細かくすると選択肢が爆発します。さらにロボットのように関節が多数ある場合、行動の次元数に対して組み合わせが指数的に増えるため、離散化は高次元の制御では実用になりません。
Actor-Criticという役割分担
そこで連続値制御では、行動を直接「生成」する方策(ポリシー)を学習します。代表がActor-Critic法で、2つの役割を分担させます。
- 状態に基づいて連続的な行動を生成する
- 行動をガウス分布などの確率分布でモデル化し、平均と分散を学習
- Criticの評価をもとに方策を改善
- Actorが生成した行動の価値を評価する
- 価値関数を学習し「その行動は良かったか」を採点
- 採点結果がActorの学習信号になる
Actorが「ハンドルを12度切ろう」と行動を出し、Criticが「その判断は価値が高い/低い」と採点する。この分業により、無限の選択肢を列挙することなく、連続的な行動を直接改善していけます。行動をガウス分布として表現すれば、平均(狙いの値)と分散(ばらつき=探索の幅)という有限個のパラメータを学習するだけで、連続値の行動を生成できます。
SACとNAF——安定と効率を求めて
行動空間が無限に広がる連続値制御では、探索の効率と学習の安定性が大きな課題です。Soft Actor-Critic(SAC)は、目的関数にエントロピー項(方策のランダムさの指標)を追加し、「報酬を稼ぎつつ、行動の多様性もなるべく保つ」ように学習します。これにより探索の幅が確保され、学習が安定しやすくなります。
また、Normalized Advantage Function(NAF)は、連続行動空間でもQ関数を効率的に学習できるように工夫された手法で、高次元の行動空間を持つ問題に有効とされます。ほかにも、エントロピー正則化や経験再生バッファの活用など、課題に対処する研究が続いています。
💡 具体例で考える
多関節ロボットの歩行学習
連続値制御の代表的なベンチマークが、物理シミュレータ上で多関節のロボットに歩行や走行を学ばせるタスクです。行動は「各関節にかけるトルク(力)」の組で、たとえば関節が十数個あれば、行動は十数次元の連続値ベクトルになります。1つの関節でさえ無限の選択肢があるのに、全関節の組み合わせとなれば離散化は完全に破綻します。SACなどのActor-Critic系手法は、まさにこうしたタスクで性能と安定性を発揮し、標準的な選択肢になっています。
自動運転のハンドル・アクセル操作
自動運転も本質的に連続値制御です。「車線変更する/しない」のような上位の判断は離散的でも、実際の運転はハンドルの切り角、アクセル・ブレーキの踏み込み量という連続量の調整です。時速40.0kmと40.1kmの間にも無数の選択があり、滑らかな乗り心地はきめ細かな連続制御があってこそ実現します。ロボットの関節角度と並んで、公式テキストが挙げる「車両の速度制御」がこれにあたります。
⚠️ よくある誤解・紛らわしい用語
- 「状態が連続」ではなく「行動が連続」 — DQNも入力(状態)は画像のような連続的なデータを扱えます。連続値制御で問題になるのは、出力する「行動」が連続値であることです。
- DQNが「少し工夫すれば使える」わけではない — Q値最大の行動を選ぶ操作が無限の行動候補では実行できない、という原理的な問題です。だからこそActor-Critic系の別アプローチが必要になります。
- SACのエントロピー項の役割 — エントロピーは「行動のランダムさ・多様性」の指標で、これを目的関数に加えるのは探索の幅を保ち学習を安定させるためです。「ノイズを減らすため」ではありません。
- 離散化という選択肢の限界 — 粗く離散化すれば従来手法も使えますが、精度が犠牲になり、高次元では選択肢が爆発するため、本格的な制御には向きません。
📝 試験でのポイント
- 定義問題では「行動が連続的な値を持つ」「ロボットの関節角度や車両の速度制御」という言い回しが目印です。
- 「従来の(離散行動向け)強化学習手法を直接適用することが難しい」理由と、その解決としてのActor-Critic法(Actorが行動生成・Criticが価値評価)という対応関係が問われやすいポイントです。
- SACの特徴は「エントロピー項を目的関数に追加し、探索の多様性を確保しつつ学習の安定性を向上」。DQNの改良手法と混同しないようにしましょう。
- 行動をガウス分布でモデル化し「平均と分散を学習する」というアプローチ、高次元行動空間に有効なNAFという用語も選択肢に登場し得ます。
📚 まとめ
- 連続値制御は、ロボットの関節角度や車両の速度のように、エージェントの行動が連続的な値を持つ強化学習の問題です。
- 行動候補が無限にあるため、有限の選択肢からQ値最大を選ぶDQNなどの従来手法は直接適用できません。
- 代表的な解決策がActor-Critic法で、Actorが連続的な行動を生成し、Criticがその価値を評価する分業で学習します。
- SACはエントロピー項により探索の多様性と学習の安定性を高めた手法で、ほかにガウス分布による方策のモデル化やNAFなどのアプローチがあります。
