第5話. TANREN — Breakout で「トンネル戦法」を自力発見し、届かない理由も計測で確定させた

画面右の AI は、読める数十行の Python です。誰も「トンネルを掘れ」と教えていません。ブロックの端に穴を開け、天井裏にボールを送り込み、一気に数十連続で破壊する——Breakout 攻略の定石「トンネル戦法」を、進化の途中で自力発見しました。

本記事は TANREN 連載の第5話です。プロジェクト全体像は こちら、第1話(Atari Pong 21–0)は こちら。vLLM 実機編(第3話第4話)から、ゲームの題材に戻ります。

TANREN を 30 秒で

TANREN は、LLM の「重み」を莫大なコストをかけて学習させる代わりに、追加学習なしの安価な LLM に候補コードを書かせ、そのプログラムを自動採点しながら「進化」させていく仕組みです。大規模計算が数億フレームの学習の末に到達した水準に、手元の PC 1台・数日間の探索・数ドルの API 代で迫ることを目指しています。

第1話の Pong では、この仕組みが理論上限(40 試合 21–0)に届きました。今回は同じ仕組みを Breakout に投入します——2 日間・約 $13 で。ただし、この記事の中心は「できたこと」ではありません。「できなかったこと」の理由を、計測で確定させたことです。

進化が自力で獲得していった戦略

進化の系譜をたどると、誰にも教わらないまま、段階的に戦略を獲得していく様子が見えます。

flowchart LR
    A["1. 追跡<br/>ボールを追って生存"] --> B["2. サーブ管理<br/>ボールは各命の約4ヒット目で加速する<br/>——環境のルールに適応"]
    B --> C["3. 端を狙う<br/>バースト志向の芽生え"]
    C --> D["4. トンネル戦法<br/>天井裏ラリーが得点の本体だと『気づく』<br/>(36連発 = 300点超)"]
    style D fill:#d1fae5,stroke:#059669

さらに興味深いのは、この過程でこの仕組みが Breakout という環境そのものをリバースエンジニアリングしていたことです。RAM のどのバイトがボールの位置か、加速はいつ起きるか、トンネルの「着火」(天井裏ラリーの開始)は累計 35〜46 ヒットという狭い臨界窓に全件集中する——ニューラルネットワークの内部からは決して読み取れない形、つまり数字と規則の形で、環境の物理法則が抽出されました。LLM による進化は「環境のデバッガ」としても働く、というのが今回の発見のひとつです。

結果 — できたこと、できなかったこと

Atari Breakout — 公表スコアとの対比(高いほど良い・満点 864)
人間テスター
30.5
TANREN(数十行 Python)
187.3
DQN(2015・2億フレーム学習)
401.2
Agent57(2020)
790.4
MuZero(2020・満点)
864.0
ランダムプレイは 1.7。TANREN は最終評価用に取り置いた 500 エピソードの1回限り評価で平均 187.3 ±10.2(中央値 128・最大 430)、トンネル着火率 28.8%。DQN との比較はプロトコル差あり(後述)。
指標値(すべて実測)
最終評価 500 エピソード(1回限り)平均 187.3 ±10.2 / 中央値 128 / 最大 430
トンネル着火率28.8% ±4.0%
人間基準(公表値 30.5)比約 6.1 倍(ノイズ付きプロトコル)
対 DQN 2015(401.2・プロトコル差あり)平均で約 47% — 届かず
コスト約 $13・2 日・進化 run 15 本+計測用プローブ 12 本

人間基準の約 6.1 倍には到達しました。一方で、2 億フレームの学習を経た DQN には届いていません。ここで終わらせず、届かなかった理由を計測で確定させたのがこの取り組みの中心です。

届かない理由を、憶測ではなく計測で

原因分析の結論はこうです。残りの得点は「高速球(vy=13)に対する最後の 2 ピクセルの微調整 × あらゆる局面 × 5% のノイズ」という数百万通りの微修正の集合に宿っており、読める数十行の if-else には物理的に収まりません。

決め手になったのは clone-state 実験です。トンネル着火直前の同一状態を 30 個用意し、そこから行動だけを変えて分岐再生したところ、どの行動を選んでも着火率は変わりませんでした(ばらつきの中央値 0.00)。つまり、その局面には「もっと上手い判断」の余地がそもそも存在しないのです。ここから先は判断の問題ではなく反射の問題で、それはニューラルネットワークの得意分野です。

この実験から学んだこと — 手法の適用範囲

TANREN は「判断の規則」を作る仕組みであり、「知覚と反射」を置き換える仕組みではない。 価値が少数の構造的な洞察に集中する課題(Pong のキルショット、キャッシュ、スケジューリング)では、数十行のコードで頂点に届く。価値が無数の微調整に分散する課題(高速球への反射、関節制御)はニューラルネットワークの領分。実システムでは両者は階層構造で共存でき、TANREN が担うのは、NN の上に載る「読める判断層」を作る部分です。

「6.1 倍に届いた」と「47% で止まった」を同じ精度で報告し、適用範囲の境界線そのものを成果物にする。手法の宣伝としては遠回りですが、この境界線が分かっているからこそ、第2話〜第4話の実務適用(キャッシュ・スケジューラ=判断の規則が支配する課題)を安心して選べています。

正直な注記

  • 入力は RAM(128 バイトの内部状態)であり、ピクセルではありません。ゲームごとの専用コードです。対戦相手は標準の内蔵 AI です。
  • DQN 401.2 との比較にはプロトコル差があります(DQN 側は 30 エピソード・no-op 開始・ε=0.05・sticky なし。こちらは sticky p=0.05・最終評価 500 エピソード)。数字を並べるときは必ずこの注記を付けます。
  • 「最大 430」は全評価エピソード中の最大観測値です。
  • sticky p=0.05(一定確率で直前の行動が繰り返される設定)は暗記対策の独自プロトコルです(ALE 標準の 0.25 とは区別します)。

連載の次回は、深層強化学習が 20 年苦しんできた Atari Skiing で、読める Python が公表されている全 RL エージェントに勝った第6話です。プロジェクト全体像に戻る。

この記事をシェア

関連記事