← ラボノート

トレーナーを教える:報酬を手調整せず進化させる

ある走行は1780 pxまで進んだのに、より慎重な1828 fitnessのチャンピオンに負けました。死亡ペナルティ-100が、遠くまで進む行動を強く罰し、その行動は二度捨てられました。私はペナルティを100から25へ手で下げ、学習が失敗するたびに適応度関数を開き直す必要があるトレーナーだと気づきました。

前回の制作記録では、最初の訓練を実行する前にSkyline Runの訓練報酬を固定しました。実際に動かしたシステムは、その修正だけでは終われない理由を示しました。次の制作では調整そのものを実験に入れ、AI Trainer AIの小さなネットワークが、内側のSkyline Run AIラボで使う報酬を設定します。

これは、報酬設計を機械へ渡して忘れてよいという主張ではありません。学習した報酬スケジュールと、それが置き換えようとする手調整のスケジュールを、対照条件の下で比べる方法です。

暗い訓練コンソールの上で、小さく光るシアンのニューラルネットワークがケーブルを通じてオレンジ色に点灯するノブやスライダーへ接続され、周囲の画面にはネオンの都市の屋上を跳ぶシアンのランナーのシルエットが映っています。
小さなコントローラーが訓練装置を変えますが、その設定を屋上で証明するのは、依然として大きな個体群です。

このサイトとAI Maker Labチャンネルは私が所有し、制作しています。これは制作記録であり、第三者による独立したレビューではありません。

手調整の修正が問題になった

報酬係数は普通の定数に見えていました。チェックポイントごとに250、クリアで1500、使わずに残した各ティックに0.5、そして死亡ごとのペナルティです。これらの値が、どの行動を次世代へ残すかを決めていました。一つ変えるだけでも、グラフではなくトレーナーにとっての「良い走り」の定義が変わります。

手作業の修正は一つの症状を直し、さらに大きな問題を明らかにしました。それまでの修正はすべて、人が訓練の失敗を見てから定数を編集する作業であり、編集のたびに過去のベースラインが無効になりました。報酬を繰り返し調整する必要があるなら、報酬設計は外部設定ではなく学習システムの一部です。

報酬も学習対象にできる

エージェントが学ぶための報酬は、設計者が最終的に重視する値と同じでなくても構いません。 Singh、Lewis、Bartoによる“Where Do Rewards Come From?”は、エージェントの一次報酬と、設計者の環境分布上の適応度を分けています。この枠組みでは、学習報酬そのものが設計変数です。その報酬から得られる方策が、別に定義した設計者の目的を最大化するよう選ばれます。二つの関数は、同じ形である必要さえありません。

AutoRLは、その枠組みを外側の進化探索に変えます。 Faust、Francis、Mehtaによる“Evolving Rewards to Automate Reinforcement Learning”は、報酬調整をハイパーパラメーター最適化として扱います。内側のRLエージェント群を候補報酬で訓練し、外側の層は課題目的を最大化する報酬を選びます。この分離は、自分で作ったシェーピング適応度ではなく、進行度とクリアでコントローラーを評価する設計の直接的な先例です。

Population Based Trainingは、有用な答えが定数ではなくスケジュールかもしれないと示します。 Jaderberg et al.による“Population Based Training of Neural Networks”は、訓練中にモデルとハイパーパラメーターを同時に適応させます。活用の段階では、より良い個体のモデルとハイパーパラメーターをコピーします。探索の段階では、ハイパーパラメーターを摂動させるか再抽出します。事前に一つの固定値を選ぶのではなく、学習の進行に応じて変化するハイパーパラメーターのスケジュールが得られます。PBT自体は報酬探索に限定した手法ではありませんが、内側のトレーナーとともに報酬係数を変える考えを支えます。

シェーピング報酬と学習パラメーターは共進化させられます。 Elfwing、Uchibe、Doya、Christensenによる“Co-evolution of Shaping Rewards and Meta-Parameters in Reinforcement Learning”は、ポテンシャルベースのシェーピング報酬を、学習率α、割引率γ、softmax温度τとともに進化させています。mountain carで実験し、進化させた報酬とメタパラメーターをシミュレーションからロボットの採餌ハードウェアへ移しています。確認できた要旨は、この同時最適化を裏付けます。一方、外側の選択が別に定義した正解尺度を使ったかどうかまでは示していないため、私たちの設計のその部分を支える証拠には使いません。

探索対象は係数だけでなく、報酬プログラムにも広げられます。 Niekum、Barto、Spectorによる“Genetic Programming for Reward Function Search”は、学習性能を改善するため、遺伝的プログラミングを使って代替報酬関数を探索します。確認できたDOIレコードは報酬関数探索の存在を裏付けますが、その遺伝的プログラミングの適応度が別の課題目的だったのか、シェーピング済みのリターンから導いたものだったのかを判断できるだけの手法本文は含んでいません。これは探索空間の先例であり、外側の評価規則の根拠ではありません。

Eurekaは、LLM時代の報酬探索です。 Ma et al.による“Eureka: Human-Level Reward Design via Coding Large Language Models”は、コードを書くLLMで報酬コードを生成し、進化的な改善によって洗練します。その形式的な問題は、学習した方策が別の適応度関数F(π)を最大化するような報酬Rを探索し、正解となる課題報酬または疎な課題報酬を評価に使います。生成器は変わっても、二層の分離は残っています。

報酬シェーピングには安全条件があります。 Ng、Harada、Russellによる“Policy Invariance Under Reward Transformations”は、正の線形変換に加えて、ポテンシャル差F(s, s') = γΦ(s') - Φ(s)の形を持つシェーピングが、該当する一般的な設定で最適方策を保存することを示します。無制約の報酬探索は、元の課題を学びやすくするだけでなく、どの方策が最適かを変えてしまう可能性があります。私たちの倍率制限[0.25×, 4×]は、極端な係数を避けるための実用上の防護策です。方策不変性の証明ではありません。

一つのコントローラーが四つの報酬を変える

設計には二層進化を使います。外側のループが報酬を進化させ、内側のループがその報酬で訓練します。外側の個体群はNEATですが、各ゲノムはSkyline Runを走るプレイヤーではありません。内側のNEAT訓練を一回観測し、チェックポイントボーナス、クリアボーナス、時間ボーナス、死亡ペナルティの倍率を出力する、12入力・4出力のコントローラーです。初期トポロジーは密で平坦です。すべての入力がすべての出力へ接続します。

十二個の観測値は、意図的に小さく、有界にしています。内側の世代0では、まだ世代統計が存在しないため、入力1–7を強制的にゼロにします。現在の各倍率が1から始まるため、入力8–11もゼロから始まります。

入力テレメトリー符号化範囲
0内側の予算に対する進行度gen / innerGenerations[0, 1]
1完了した世代全体での最高進行度bestPx / levelWidthPx[0, 1]
2前回のコントローラー呼び出し以降の進行度増加(bestPx - pxAtLastCall) / 200[0, 1]
3最高進行度が改善してからの世代数gensSinceBestImproved / 20[0, 1]
4シェーピング適応度の平均と最高値の比mean / max(1, best)[-1, 1]
5平均死亡率meanDeaths / MAX_DEATHS[0, 1]
6クリア率completions / innerPopulationSize[0, 1]
7種分化の負荷species / (2 * innerTargetSpecies)[0, 1]
8現在のチェックポイントボーナス倍率log2(multiplier) / 2[-1, 1]
9現在のクリアボーナス倍率log2(multiplier) / 2[-1, 1]
10現在の時間ボーナス倍率log2(multiplier) / 2[-1, 1]
11現在の死亡ペナルティ倍率log2(multiplier) / 2[-1, 1]

各出力は2 ** (2 * tanh(output))へ変換します。これにより、有限のネットワーク出力は0.25×からまでの倍率になります。出力がゼロなら正確にとなるため、四つのゼロ出力は特別な分岐なしで手調整の係数を再現します。

コントローラーは内側の世代0が始まる前に報酬を出力し、その後は完了した内側の世代5回ごとに再出力します。シェーピング適応度は世代終了時にだけ計算されるため、NeatTrainer.setRewardsは新しい値を次の世代境界で適用します。進行中の個体群を、走行途中で変わった規則によって再評価することはありません。

コントローラーは生み出したエージェントで評価する

外側の選択は、シェーピング適応度を自分の得点として使いません。候補のメタ適応度、つまり報酬関数の良さを、その報酬が生み出したエージェントで採点した値は、次の式で求めます。

評価対象の内側世代にわたる runningMax(bestMaxPx) の終盤重み付き平均
  (世代 g の重みは g)
+ いずれかの内側世代でクリアが出れば 2000
+ 500 * (最終世代のクリア数 / innerPopulationSize)

第1項は実行の最後まで持続する進行を評価します。後の世代ほど線形に大きい重みを持ち、各候補は名目ホライズンの25%先まで評価されるため、コントローラーは実際の展開先である飽和したホライズン超過領域で学習します。(以下のスモークテストはこの改訂より前のもので、名目ホライズン上の単純平均で採点されています。)残りの項は、クリアを正解となる事象にします。手調整の報酬を一切変えないベースラインは、各メタ世代で候補0として最初に実行するため、どのコントローラーを評価するより前に得点が分かります。このベースラインと同じメタ世代の全コントローラーは、ハッシュから得た同一の内側の乱数種を使います。これは共通乱数という方法です。同じ乱数種を候補間で再利用し、比較を運任せにしません。最初の走行は、古いレベルや別の乱数種で測った値ではなく、同時点の対照条件となるbaselineFitnessを提供します。

乱数種が変わると残すべきチャンピオンも変わった

一方、内側seedはinnerSeed = hashSeed(seed, metaGen, 0x1177)によってメタ世代ごとに変わるため、異なるメタ世代の生の適応度は比較できません。全期間のチャンピオンには、best - baselineFitnessの優位幅が最大のコントローラーを残し、種の停滞判定にも同じ尺度を使います。今回の実行は、その理由を具体的に示しました。生の適応度で選ぶと、メタ世代1のコントローラーは生の値が1274.04で、優位幅は+25.90にすぎないのに残り、メタ世代2の生の値1043.85、優位幅+91.60のコントローラーが捨てられます。原因はメタ世代1が、より簡単な内側seedを引いただけです。

スモークテストは手掛かりであり、結論ではない

createDistrict01()、技能expert、seed 7で、意図的に小さいスモークテストを実行しました。メタ個体数は6、候補ごとの内側の世代数は10、コントローラーの周期は5、内側の個体数は150です。candidateCount7で、最初の一つが手調整のベースライン、続く六つがコントローラーでした。以下はスモークテストの計測値であり、学習したトレーナーが汎化する証拠ではありません。

メタ世代最高平均手調整のベースライン優位幅
0877.43850.42845.02+32.41
11274.041242.251248.14+25.90
21043.85978.66952.26+91.60

実行時間は、21回の内側の訓練に対して合計16.92 s、総ティック数は231781でした。全期間のチャンピオンはメタ世代2から得られ、bestMetaFitness1043.85championBaselineFitness952.26で、同じ世代内の優位幅が最大でした。内側の世代0でテレメトリーをゼロにして評価すると、[1.05, 0.68, 0.94, 0.81]を出力し、チェックポイントボーナス261.64、クリアボーナス1016.50、ティックごとの時間ボーナス0.47、死亡ペナルティ20.34になりました。

実行の記録から、トポロジーに安全な初期条件があることも分かりました。内側の世代0ではテレメトリーベクトルがすべてゼロなので、出力する倍率は出力バイアスだけで決まります。初期個体群のバイアスはすべてゼロです。そのため、メタ世代0の各コントローラーは正確に[1, 1, 1, 1]から始まり、最初の周期5の呼び出しで初めて値を変えられます。世代0で単位値ではない倍率が現れるのは、バイアスの変異後だけです。手調整の係数が出発点になるのは、偶然ではなく構造によるものです。

最高のコントローラーは、三つのメタ世代すべてで、同じ世代にある自身の手調整の対照条件を上回りました。個体群の平均がベースラインを下回ったのはメタ世代1だけです。10世代の予算内では、内側のどの世代もクリアを一度も生みませんでした。すべてのチャンピオンは、隠れノード0、接続48の、密で平坦なトポロジーのままでした。同じ条件で二度目を実行すると、MetaGenStatsの系列はバイト単位で一致しました。異なったのは実時間の項目だけです。

三つのメタ世代だけでは、結論を出すには短すぎます。新しいチャンピオンはチェックポイントボーナスを1.05×とほぼ変えず、クリアボーナスを0.68×へ最も強く下げ、死亡ペナルティを0.81×へ弱めました。この方向は、この乱数種で何が役立ったかという仮説です。良い報酬設計についての結果ではありません。

このスモークテストで決まったのは評価手順であり、学習した報酬が機能するかどうかではありません。決定論的に再現できることと、対応する手調整の対照条件を三つの短いメタ世代すべてで上回るコントローラーは確認できました。しかし、内側の世代では一度もレベルをクリアしていません。次の計測は、AI Trainer AIのページで、反復した未見の内側の乱数種を使う完全な訓練です。

クリアを生み出し、対応する対照条件を上回り続け、後のメタ世代でもその優位を保てた場合だけ、この設計を証拠として扱います。未見の乱数種で負ける、進行度だけで勝つ、長い探索で優位が消える、のいずれかなら結果は反証されます。比較を再現するには、書き出したコントローラー、設定、乱数種の集合、世代ごとのベースライン、クリア記録を、すべて利用できる状態で残しておく必要があります。

次の制作記録「ゲノムはネットワークが学んだことを残すべきか? 勾配と進化を組み合わせる三つの方法」では、各ゲノムの評価後に学習をどう扱うべきかを検討します。

出典

  • Singh, Satinder; Lewis, Richard L.; Barto, Andrew G. “Where Do Rewards Come From?” Proceedings of the 31st Annual Conference of the Cognitive Science Society, 2009. https://all.cs.umass.edu/pubs/2009/singh_l_b_09.pdf. 2026-08-21閲覧。
  • Faust, Aleksandra; Francis, Anthony; Mehta, Dar. “Evolving Rewards to Automate Reinforcement Learning.” arXiv:1905.07628, 2019年5月18日。 https://arxiv.org/abs/1905.07628. 2026-08-21閲覧。
  • Jaderberg, Max; Dalibard, Valentin; Osindero, Simon; Czarnecki, Wojciech M.; Donahue, Jeff; Razavi, Ali; Vinyals, Oriol; Green, Tim; Dunning, Iain; Simonyan, Karen; Fernando, Chrisantha; Kavukcuoglu, Koray. “Population Based Training of Neural Networks.” arXiv:1711.09846, 2017年11月27日。 https://arxiv.org/abs/1711.09846. 2026-08-21閲覧。
  • Elfwing, Stefan; Uchibe, Eiji; Doya, Kenji; Christensen, Henrik I. “Co-evolution of Shaping Rewards and Meta-Parameters in Reinforcement Learning.” Adaptive Behavior, 2008年12月。 DOI:10.1177/1059712308092835. https://doi.org/10.1177/1059712308092835. 2026-08-21閲覧。
  • Niekum, Scott; Barto, Andrew G.; Spector, Lee. “Genetic Programming for Reward Function Search.” IEEE Transactions on Autonomous Mental Development 2(2):83–90, 2010年6月。 DOI:10.1109/TAMD.2010.2051436. https://doi.org/10.1109/TAMD.2010.2051436. 2026-08-21閲覧。
  • Ma, Yecheng Jason; Liang, William; Wang, Guanzhi; Huang, De-An; Bastani, Osbert; Jayaraman, Dinesh; Zhu, Yuke; Fan, Linxi; Anandkumar, Anima. “Eureka: Human-Level Reward Design via Coding Large Language Models.” arXiv:2310.12931, 2023年10月19日。 https://arxiv.org/abs/2310.12931. 2026-08-21閲覧。
  • Ng, Andrew Y.; Harada, Daishi; Russell, Stuart. “Policy Invariance Under Reward Transformations: Theory and Application to Reward Shaping.” Proceedings of the Sixteenth International Conference on Machine Learning, 1999. http://robotics.stanford.edu/~ang/papers/shaping-icml99.ps. 2026-08-21閲覧。

このサイトとAI Maker Labチャンネルは私が所有し、制作しています。これは制作記録であり、第三者による独立したレビューではありません。

あわせて読む