第6話. TANREN — 深層RL最難関の Atari Skiing で、読める Python が公表全RLに全勝した
左は反応を鈍らせた同型コード(実測 −4266 ≈ 公表の人間基準 −4337)。右が TANREN です。スラロームの旗門を 20/20 で通過しながら、タイムで人間を引き離します。右の中身はニューラルネットワークではなく、読める Python 約130行(核心は旗門追跡の数十行)です。
本記事は TANREN 連載の第6話です。プロジェクト全体像は こちら、前話(Breakout — 手法の適用範囲に境界線を引いた回)は こちら。今回は Atari 編の中心となる、深層強化学習が 20 年苦しんできた種目での完勝の記録です。
TANREN を 30 秒で
TANREN は、LLM の「重み」を莫大なコストをかけて学習させる代わりに、追加学習なしの安価な LLM に候補コードを書かせ、そのプログラムを自動採点しながら「進化」させていく仕組みです。大規模計算が数億フレームの学習の末に到達した水準に、手元の PC 1台・数日間の探索・数ドルの API 代で迫ることを目指しています。
今回の題材では、この対比が最も鮮明に出ました。DeepMind の Agent57 が人間基準超えに約 780 億フレームの学習を要した Skiing で、読める Python が事前測定 2 時間+進化 2.5 時間・API 数ドルで、公表されている全ての RL エージェントと人間基準を上回っています。
なぜ Skiing なのか — RL が 20 年苦しんできた種目
Skiing(スラローム)はスコアの構造が難物です。スコア=−(所要時間+ミスした旗門 × 5 秒ペナルティ)。ペナルティはゴールで一括精算されるため、「どの旗門のミスが悪かったのか」を報酬から逆算しにくい——深層強化学習が最も苦手とする「遅延クレジット割当」の典型例です。
実際、公表値は劇的に割れています。Breakout を 864 点(満点)で制する MuZero が、Skiing では −29,968 まで崩れます。Agent57 の論文は「全 57 ゲームで人間超え」を主題としていますが、その最後の壁のひとつがこの Skiing でした。つまりここは「人間には簡単で、深層RLには最難関」という珍しい種目です。読める判断規則(旗門を見て、先を読んで、舵を切る)がニューラルネットワークの物量に勝てる場所を意図的に選んだ、ということでもあります。
結果 — 公表全RLと人間基準に全勝
| 指標 | 値(すべて実測) |
|---|---|
| 最終判定 10 シード(未使用・1回限り) | 平均 −3310.7(シード別 −3179〜−3654) |
| vs R2D2(Bandit) −3851.44(公表最強) | 10/10 シード勝ち・符号検定 p=0.000977 |
| vs Agent57 −4202.6 / 人間 −4336.9 | 超え |
| vs 理論上の最良走 −3272 | 残り 38.7(シード別では 6/10 が最良走超え) |
| コスト | 事前測定 2 時間+進化 2.5 時間(60 世代)・API 数ドル |
対比をはっきり書きます。Agent57 は人間基準を超えるために約 780 億フレームの学習と大規模計算基盤を投じました。TANREN は、机上の 1 台と 1 日弱・API 数ドルで、その Agent57 を含む公表全RLを上回っています。 ただし、これは「TANREN が何にでも強い」ことを意味しません。価値が少数の判断規則に凝縮するこの種目を、次節の事前測定で選んだ結果です。
走る前に勝算を測った — 参入ゲート
TANREN は今回から「参入ゲート」を必須にしています。進化を走らせる前に、LLM を使わない数値探索(骨格コード+パラメータ探索・2 時間・ほぼ無料)で「このコード形式で到達できる天井」を実測し、公表最強値に届く見込みがあるときだけ参入する、という事前判定です。
- Skiing のゲート測定: 5 パラメータの比例操舵だけで −3619。この時点で既に Agent57 と人間基準を超えており、GO 判定。
- 同じ判定が Boxing と Tennis には「天井が公表値に遠く及ばない」という結果を出し、進化を 1 本も走らせずに撤退を決めています(このゲートが生まれた経緯は次話の Bowling 編で書きます)。
進化が足したもの
ゲートで用意した種(比例操舵)の −3619 から、60 世代・2.5 時間の進化で −3258(確認走)まで改良が進みました。最終コードを読むと、誰にも教えていない工夫が加わっています。
- 複数旗門の先読み: 直近の旗門だけでなく 2〜3 門先を重み付きで補間し、「通り筋」を作る。
- 速度の平滑化と到達予測: 自機の横速度を EMA(指数移動平均)で推定し、旗門到達時点の自位置を予測して舵を切る。
- 16 方位ヘディングのバンバン制御: 目標方位との差だけで左右を切り替える、読める操舵則。
RAM のどのバイトが旗門で、どれが自機の向きか——それもこの仕組みが実験で特定したものです(残り旗門カウンタが BCD 表記だと突き止めた、といった環境のリバースエンジニアリングも含まれます)。
正直な注記
- 入力は RAM(128 バイトの内部状態)であり、ピクセルではありません。ゲームごとの専用コードです。
- 比較プロトコルは公表側と同一です(no-op 開始分散・決定論・27,000 ステップ上限)。スコアの原典は arXiv:2003.13350 Table H.4 を確認済みです(二次資料は Agent57 を最強と書きがちですが、同論文の表での最強は R2D2(Bandit) −3851.44 です)。
- 「約 780 億フレーム」は Agent57 の公表学習量です。TANREN は重みの学習をしない(進化するのはコード側)ため、同じ軸の数字ではありません。対比はコストの規模感として提示しています。
- 汎用エージェントではありません。TANREN は「この課題専用の読めるアルゴリズム」を作る仕組みです。
連載の次回は、この完勝を陰で支えた「参入ゲート」が生まれた負け戦——Atari Bowling 編です。プロジェクト全体像に戻る。
この記事についてのLinkedIn投稿でコメントや意見を共有できます。
LinkedInで議論する