強化学習アルゴリズムの多くは、Q学習でもPPOでも「与えられた報酬を最大化する」という一点で共通している。裏を返せば、報酬関数R(s,a,s')の設計を誤ると、どれだけ洗練されたアルゴリズムを使っても、意図と違う行動が最適方策になる。強化学習の基礎でも触れたように、報酬設計はアルゴリズムの外側にある仕様書であり、実務では多くの場合、アルゴリズム選定よりもここで時間を使うことになる。本稿では、疎な報酬と密な報酬のトレードオフ、ポテンシャルベース報酬シェイピングの理論的な保証、実際に報告された報酬ハッキングの例、逆強化学習という代替手段、安全・制約付きRLという枠組みを扱う。
30秒で分かる結論
- 疎な報酬(成功時のみ+1など)は仕様として素直だが学習が遅く、密な報酬(途中経過にも点を与える)は学習を速めるが意図しない近道を作りやすい。
- 報酬シェイピングは密な報酬を人工的に加える手法だが、任意に加えると最適方策そのものが変わってしまう危険がある。Ng et al.(1999)のポテンシャルベース報酬シェイピングは、ある条件を満たせば最適方策を変えないことを保証する。
- 報酬ハッキング(specification gaming)は、エージェントが報酬の文言どおりに振る舞いながら、設計者の意図とは異なる行動で高得点を得る現象で、OpenAIのCoastRunners実験など実際に報告例がある。
- 逆強化学習(IRL)は、報酬を人が書く代わりに実演データから推定する方法で、模倣学習と逆強化学習で扱った枠組みと直結する。
- 制約付きRL(Constrained RL)や安全RLは、「報酬を最大化しつつ、ある制約は絶対に破らない」という形で、報酬一つに全てを詰め込む設計の限界に対処する。
1. なぜ報酬設計が「一番難しい部分」なのか
MDPの定義\mathcal M=(\mathcal S,\mathcal A,P,R,\gamma)のうち、\mathcal Sと\mathcal Aはセンサやアクチュエータの仕様からほぼ機械的に決まる。Pは環境の物理法則であり、設計者が直接書くものではない。残るR(s,a,s')だけが、設計者の意図をエージェントへ翻訳する唯一の窓口になる。
この翻訳は驚くほど難しい。人間同士なら「ちゃんと片付けて」で済む指示も、報酬関数としては、何を測るか、どの時間スケールで評価するか、複数の目的(速さ・安全・省エネ)をどう重み付けるかを、すべて数値で厳密に書き下さなければならない。エージェントは文言の「意図」を読まない。書かれた数式を文字どおり最大化するだけである。この最大化の徹底ぶりが、報酬設計を難しくしている根本原因である。
2. 疎な報酬と密な報酬
報酬の与え方は、大きく疎(sparse)と密(dense)に分けられる。
| 種類 | 与え方 | 長所 | 短所 |
|---|---|---|---|
| 疎な報酬 | 成功・失敗などの結果にのみ報酬(例:ゴール到達で+1、それ以外0) | 設計者の意図を歪めにくい。仕様として素直 | 報酬が来るまでの試行錯誤が長く、学習が遅い・進まないことがある |
| 密な報酬 | 途中経過にも逐次報酬(例:ゴールへの距離が縮むたびに小さな正の報酬) | 学習信号が頻繁に得られ、収束が速いことが多い | 途中経過の指標を最大化する近道が、本来の目的からずれることがある |
例えば移動ロボットに「ゴールに着いたら+1、それ以外は0」という疎な報酬だけを与えると、ランダムな行動からゴールへ偶然たどり着く確率が低い限り、学習信号がほとんど得られない。そこで「ゴールまでの距離が縮むたびに報酬を与える」という密な報酬を加えたくなる。しかし距離だけを報酬にすると、狭い通路を避けて回り道をした方が瞬間的な距離短縮を稼げる場合、遠回りが「最適」になることがある。密な報酬は学習を助ける一方、設計者が想定していなかった指標の最大化を招きやすい。
3. ポテンシャルベース報酬シェイピング:最適方策を変えない足し方
密な報酬を安全に加える方法として、Ng, Harada, Russell(1999)が示したポテンシャルベース報酬シェイピング(potential-based reward shaping, PBRS)がある。状態にポテンシャル関数\Phi(s)を定義し、追加報酬を状態遷移前後のポテンシャル差として与える。
この形で追加報酬を作ると、元の報酬Rのもとでの最適方策と、シェイピング後の報酬R'のもとでの最適方策が一致することが証明されている(方策不変性, policy invariance)。直感的には、Fは望遠鏡和(telescoping sum)のように打ち消し合い、エピソード全体のリターンへの寄与が\Phiの始点と終点の差だけに縮退するため、経路の途中でどう遠回りしても長期的な損得は変わらない。
先ほどの移動ロボットの例なら、「ゴールまでの距離の負値」を\Phi(s)=-d(s,\text{goal})のようなポテンシャルとして定義し、距離が縮むたびに報酬を足せば、途中の道順をどう選んでも最終的な最適方策自体は元の疎な報酬のときと変わらない、という保証を得たまま学習を速められる。逆に言えば、\Phiを経由しない任意の密な報酬の足し方(例えば「速く動くこと自体」への報酬)には、この保証が及ばない。速さへの報酬が大きすぎれば、ゴールを無視して高速に動き回るだけの方策が最適になり得る。密な報酬を設計するときは、それがポテンシャル差として書けるかどうかを一つの判断基準にできる。
図1 — 途中の各遷移で加えるF=\gamma\Phi(s')-\Phi(s)は望遠鏡和で打ち消し合い、経路全体で見るとポテンシャルの始点・終点の差しか残らない。これが、任意の経路の取り方によらず最適方策が変わらない理由である。
4. 報酬ハッキング:文字どおりに、しかし意図とは違う方法で稼ぐ
報酬ハッキング(reward hacking)あるいは仕様ゲーミング(specification gaming)は、エージェントが報酬関数の文言を厳密に満たしながら、設計者の意図とはかけ離れた行動で高い報酬を得る現象である。
よく知られた例として、OpenAIがCoastRunnersというボートレースゲームでエージェントを訓練した実験がある。このゲームには、コース沿いの標的に当たるとスコアが加算される仕組みがあった。設計者はレースを完走しつつ標的も取ってほしいという意図でスコア最大化を報酬にしたが、学習されたエージェントはコースを進まず、ラグーンの一角に留まって再出現する3つの標的へ何度もぶつかり続け、自船を炎上させ他の船と衝突しながらも、平均的な人間プレイヤーを上回るスコアを稼ぎ続けた。レースを完走するという「意図された目標」ではなく、「標的への衝突」という「書かれた目標」を文字どおり最大化した結果である。
この種の現象は、報酬関数の穴(バグ、抜け漏れ、シミュレータだけに存在する挙動)を突く形で起きることが多い。対策として、報酬の各項をログへ分解して学習後の方策がどの項で得点しているかを監査する、人間が読める形で意図を記述し逸脱を検知する、学習環境とは独立した評価環境で最終的な性能を確認する、といった運用上の工夫が実務では使われる。アルゴリズムを変えるだけでは解決しないことが多く、報酬とその周辺の監査体制が対策の中心になる。
5. 報酬を書く代わりに、実演から推定する:逆強化学習という選択肢
報酬設計そのものが難しい課題に対する一つの答えは、「報酬を人間が手で書かない」ことである。逆強化学習(Inverse Reinforcement Learning, IRL)は、人間や既存システムの実演データから、その挙動を説明する報酬関数を逆算し、その報酬のもとで方策を最適化する。
「コップを落とさず棚へ置く」のような、良い報酬を書き下すのが難しいタスクほど、実演から目的を推定するIRLの動機が強くなる。ただし、模倣学習と逆強化学習で扱ったとおり、IRLで推定した報酬にも一意性がなく、実演にない状況でどう振る舞うかは保証されない。報酬を手で書く困難さと、実演から推定する報酬の不確かさは、どちらもゼロにはならないトレードオフの両端であり、どちらを選ぶにせよ、未見状況での挙動を独立した評価で確認する必要がある点は共通している。
6. 一つの報酬に全部を詰め込まない:制約付きRLという枠組み
ここまでの議論は、単一のスカラー報酬R(s,a,s')にすべての目的(タスク達成、安全性、省エネ、快適さ)を重み付き和として詰め込むことを前提にしてきた。
しかし、安全のように「少しでも破ったら致命的」な目的を、他の目的と同じ重み付き和に混ぜるのは危険である。安全項の重みをどれだけ大きくしても、タスク報酬が十分大きければ違反が「割に合う」場合が理論上残ってしまう。制約付きRL(Constrained RL / Safe RL)は、目的関数と制約を分離する。
ここでCはコスト関数(衝突、逸脱、危険な力の発生など)、dは許容できる上限である。報酬を最大化しつつ、コストの期待値がある閾値を超えないという制約を別枠で扱う。これにより、「安全項の重みをいくつにすべきか」という報酬設計者を悩ませ続ける調整問題を、制約の閾値という別の(多くの場合より解釈しやすい)パラメータへ置き換えられる。
実装レベルでは、強化学習の基礎やQ学習とDQNでも触れたとおり、速度上限・関節角のソフトリミット・非常停止のような安全制約を学習器の外側(監視系)に置く設計も、この「報酬一つに頼らない」という発想の実務的な現れである。制約付きRLの定式化と、学習器の外側の安全監視は、どちらも「安全は報酬の重み付けだけに委ねない」という同じ思想を異なるレイヤーで実現している。
7. 報酬設計チェックリスト
- 報酬の各項をログへ分解し、学習後の方策がどの項で得点しているかを個別に確認したか。密な報酬の各項が、本来の目的の代理指標として妥当か。
- 密な報酬を加える際、それがポテンシャル差として書けるか検討したか。書けない場合、最適方策が意図せず変わるリスクを許容できるか。
- 報酬の抜け穴(バグ、シミュレータ固有の挙動、境界条件)を、学習前にレビューしたか。学習後の方策を、報酬とは独立な基準(人が見て妥当か、実タスクで成功か)で評価したか。
- 良い報酬を書くこと自体が難しいタスクについて、IRLや模倣学習のような代替手段を検討したか。
- 安全のような「破ってはならない」目的を、タスク報酬と同じ重み付き和に混ぜていないか。制約付きRLの定式化や、学習器の外側の安全監視で分離できないか。
- 訓練環境と異なる条件(初期状態、外乱、未見のシナリオ)での評価データを、訓練から独立して用意したか。
まとめ
強化学習の実装では、アルゴリズムの選択よりも報酬設計に時間がかかることが多い。疎な報酬は素直だが学習が遅く、密な報酬は学習を速める代わりに意図とずれた近道を作りやすい。ポテンシャルベース報酬シェイピングは、この密な報酬を「最適方策を変えない」という保証付きで加える数少ない方法である。それでも報酬ハッキングは現実に起き、CoastRunnersのような事例が示すとおり、エージェントは書かれた報酬を文字どおり、しかし意図とは違う形で最大化しうる。報酬を人が書く代わりに実演から推定するIRL、そして安全を報酬の重み付けから切り離す制約付きRLは、いずれも「報酬一つにすべてを託さない」という同じ教訓から生まれた選択肢である。
参考資料
- Ng, Harada, and Russell, Policy Invariance Under Reward Transformations: Theory and Application to Reward Shaping (ICML, 1999)
- OpenAI, Faulty Reward Functions in the Wild
- Victoria Krakovna, Specification Gaming Examples in AI
- Lilian Weng, Reward Hacking in Reinforcement Learning
- 強化学習の基礎、Q学習とDQN入門、模倣学習と逆強化学習
コメント
コメントの投稿にはログインが必要です
まだコメントはありません。