第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と人間基準に全勝

Atari Skiing — 公表スコアとの対比(スコア=−(時間+ペナルティ)、−3272 に近いほど良い。バーは 最良走÷|スコア|)
MuZero(Breakout 満点勢)
−29,968
ランダム
−17,098
人間基準
−4,337
Agent57(約780億フレーム)
−4,203
R2D2(Bandit)=公表最強
−3,851
TANREN(約130行・1日・数ドル)
−3,310.7
理論上の最良走(論文本文)
−3,272
TANREN は進化に使っていないシード 10 本での最終判定(1回限り)で平均 −3310.7。公表最強の R2D2(Bandit) に 10/10 シードで勝ち(符号検定 p=0.000977)。理論上の最良走まで残り 38.7 で、シード単位では 10 本中 6 本が最良走の値より良いスコアを出しています。
指標値(すべて実測)
最終判定 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で議論する

関連記事