自己対局を2世代回しても伸び悩んだため、学習量不足の仮説を検証した

前回は、教師あり学習で構築した policy-value モデルをPUCT探索に接続し、自己対局データから挑戦者モデル(challenger)を学習させ、初回のモデル昇格(promotion)を果たすところまでパイプラインを開通させた。

しかし、たった1回の昇格に成功したからといって、「自己対局ループを回し続けさえすれば自動的に強くなり続ける」とは到底言い切れない。

そこで今回は、データ規模を抑えた小規模な世代交代を2世代連続で実行してみた。

結論から述べると、今度は2世代続けて挑戦者モデルが現行モデル(incumbent)の壁を破ることができず、連続で昇格が棄却(reject)される結果となった。

さらに「1エポックしか学習させていないため、学習量が不足しているのではないか」という仮説のもとで学習エポック数を引き上げてみたものの、状況は好転するどころか過学習によって明確な弱体化を招く事態となった。

本稿では、最初の昇格成功の直後に直面した性能停滞の現実と、その要因をどのように検証・分析していったのかをまとめる。

小規模な2世代連続ループの実行

初回の昇格実験では、1,024通りの初期盤面から先後を入れ替えた計2,048局の自己対局データを生成していた。

今回はその半分の規模となる512組(1,024局)を1世代分のデータ予算とし、2世代にわたって自己対局ループを連続で回した。

学習設定としては、前回同様に教師あり学習データをアンカー(正則化の拠り所)として残し、自己対局データは直近2世代分をリプレイバッファに保持する運用とした。

各世代の実行フローは以下の通りである。

現行モデル(incumbent)
↓
自己対局 1,024局の生成
↓
アンカーデータ + リプレイバッファを用いて挑戦者モデルを1エポック学習
↓
挑戦者モデル vs 現行モデルの昇格対戦
↓
昇格(promote)または棄却(reject)の判定

いずれの世代においても、全局が通常のゲーム終了条件を満たして決着し、最大手数(160手)による打ち切り局は発生しなかった。

生成された自己対局データの統計値を見ても、前回と目立った差異は見当たらなかった。

評価指標第0世代(Generation 0)第1世代(Generation 1)
自己対局の総局数1,024局1,024局
学習対象となった自己対局局面数59,368局面59,066局面
平均ゲーム手数(decisions)57.98手57.68手
方策ターゲットの正規化エントロピー0.32610.3282
最多訪問手の平均選択確率0.62540.6229

第1世代の学習時には2世代分のリプレイデータが蓄積されるため、学習データ全体に占める割合は教師ありアンカーが約79.9%、自己対局リプレイが約20.1%となった。

この比率は、初回の昇格成功時における約80:20の構成比とほぼ完全に一致している。

しかし、事態は期待通りには進まなかった。

2世代連続でほぼ互角にとどまり昇格を逃す

各世代で学習した挑戦者モデルと現行モデルを、100通りの初期盤面から先後を入れ替えた計200局で直接対戦(arena)させた。

その結果は、驚くべきことに両世代ともに全く同一の96勝2分102敗となった。

評価指標第0世代第1世代
挑戦者勝ち / 分け / 現行勝ち96 / 2 / 10296 / 2 / 102
ペアスコア(pair score)0.48500.4850
片側95%信頼区間の下限0.41490.4156
昇格判定棄却(reject)棄却(reject)

昇格基準は信頼区間の下限値が0.5を上回ることであるため、両世代とも基準には遠く及ばなかった。

注目すべきは、学習損失そのものはきちんと低下していた点である。

第1世代の挑戦者モデルは、第0世代のリプレイデータに対する方策KL情報量を0.5135から0.4572へと着実に減少させていた。すなわち、新しい自己対局ターゲットの特徴をある程度は学習していたのである。

しかし、その損失の減少は、実戦における対局強度の向上には一切結びついていなかった。

ここで自然と浮かび上がったのが次の仮説である。

「1エポックだけの学習では、自己対局から得られた改善シグナルをモデルが十分に吸収しきれていないのではないか?」

「1エポック不足説」を8エポック学習で検証

この仮説は、新規の自己対局データを追加生成することなく即座に検証できる。

第1世代で実際に使用したデータセットをそのまま固定し、現行モデルからファインチューニングする学習レシピにおいて、最大エポック数(max_epochs)を1から8へと引き上げた。

ここで変更されるのは単なるステップ数だけではない。コサインアニーリングによる学習率スケジュールも、8エポック全体の時間軸に合わせて再設計される。すなわち「固定されたスケジュールのまま追加で7エポック回す」のではなく、「8エポックを想定した学習レシピへと本質的に変更した場合の挙動」を検証している。

元の第1世代モデルを1エポック条件の対照群とし、新たに学習した8エポックモデルを実験群として比較した。

ところが、未見のリプレイデータに対する方策KL情報量は、学習を重ねても改善し続けることはなかった。

エポック数リプレイデータの方策KLリプレイデータの局面評価損失
0(現行モデル)0.49630.6706
10.47620.7215
30.46661.0320
80.55752.2897

方策のKL情報量は第3エポック付近でわずかに改善したものの、第8エポックではむしろ悪化に転じた。

そしてそれ以上に深刻な崩壊を見せたのが局面評価(value)だった。

第8エポック終了時点において、リプレイデータに対する局面評価損失は0.6706から2.2897へと3倍以上に跳ね上がった。学習データに対する損失は下がり続けているにもかかわらず、検証損失が急上昇するという、典型的な過学習(overfitting)の挙動である。

実対局における評価結果も、この損失の推移と完全に一致していた。

対戦カードペアスコア
1エポックモデル vs 現行モデル0.5008
8エポック最終モデル vs 1エポックモデル0.4150
8エポック最終モデル vs 現行モデル0.4608

1エポックモデルと現行モデルとの対決は、対戦数を300ペア(600局)まで増やして精査してもスコア0.5008と、ほぼ完全に五分の実力だった。

一方で、8エポック学習を完走した最終チェックポイントは、1エポックモデルに対してスコア0.4150と大敗し、現行モデルに対しても0.4608と明確に負け越した。

すなわち、「真の実力は向上しているのに、1エポックの学習では吸収しきれていなかった」という仮説は完全に否定された。

なお、実際の運用パイプラインでは検証損失が最良だったチェックポイントを自動選択するため、8エポック学習させたとしても採用されるのは第1エポックのモデルとなる。むやみにエポック数を増やす変更は、単に計算リソースを浪費した上で、早期のエポックへと巻き戻るだけの結果をもたらす。

長期学習において局面評価ヘッドが先に崩壊するメカニズム

なぜ方策よりも局面評価ヘッドの方が圧倒的に早く過学習に陥るのか。その根本的な原因は、両者に与えられる教師信号の「粒度」の違いにある。

方策のターゲットは、毎手の意思決定ごとに木探索から新たな訪問回数分布が生成される。

一方、局面評価のターゲットはゲーム終了時の最終勝敗結果(WDL)であるため、同一の対局内に現れるすべての局面がまったく同一の勝敗ラベルを共有することになる。

対局エピソードを ee、その最終結果を zez_e と置くと、各手番 tt に対する局面評価の学習ターゲットは次のように表される。

ye,tvalue=zey^{\text{value}}_{e,t} = z_e

今回のデータセットでは、1対局あたり平均約58手の手番が存在する。

全体として方策ヘッドが約537,000個の局面単位のきめ細かなターゲットを見ているのに対し、局面評価ヘッドが参照している勝敗結果は10,240対局分しか存在しない。同一の勝敗シグナルが、平均して約58回ずつ異なる盤面へ機械的に割り当てられているのである。

もちろん局面自体の配置は手番ごとに異なるため、実効サンプルサイズが単純に58分の1になるわけではない。しかし教師信号の多様性という観点において、局面評価は方策に比べて圧倒的に粗いシグナルしか受け取っていない。

実際、8エポックの長期学習において、勝敗の正解率そのものが大きく崩れるよりも先に、クロスエントロピー損失やブライアスコアの急激な悪化が確認された。これは勝敗の識別能力を失ったというよりも、判断を誤っている局面に対してモデルが異常な過信(自信過剰)を持つ方向へパラメータが歪んでしまったことを意味している。

この検証結果から得られた明確な知見は、「現行のレシピのまま学習期間を延ばすと局面評価ヘッドが深刻な過学習に陥る」という点である。

ただし、これだけで2世代連続の昇格失敗の真因がすべて解明されたわけではない。

1エポック終了時点の局面評価指標はまだ大きく崩れておらず、実際の1エポック挑戦者モデルは未見局面の約90%において現行モデルと完全に同一の着手を選択していた。

すなわち自己対局ループで実際に観測されていた本質的な現象は、「劣化した挑戦者が生成された」ことではなく、「現行モデルと瓜二つの挑戦者しか生成されなかった」ことだったのである。

次の課題:「学習量」ではなく「改善シグナルそのものの強度」を検証する

ここまでの検証によって、少なくとも単純な仮説を1つ明確に排除することができた。

2世代連続で昇格できない
↓
1エポックでは学習量が足りないのでは?
↓
8エポック学習の実験を実施
↓
方策は改善せず、局面評価は深刻な過学習を起こして弱体化
↓
単なる学習ステップ数の不足では説明がつかない

では、そもそも自己対局によって生成されるターゲットの中に、現行モデルを打ち破るだけの「改善シグナル」がどれほど含まれているのだろうか。

現在の自己対局では、現行モデルの方策確率をそのまま教師にしているわけではない。現行モデルにPUCT探索をかけ、その訪問回数分布を次の学習ターゲットとして用いている。

もし探索を行っても素の方策(raw policy)とほとんど強さが変わらないのであれば、その探索結果をいくら学習したところで、現行モデルの写し鏡のようなモデルしか生まれないのは当然である。

逆に、探索をかけるだけで劇的な実力向上が確認できるのであれば、改善シグナルは十分に存在しているにもかかわらず、学習側がそれをモデルパラメータへうまく蒸留・転移できていないという問題に絞り込める。

次に検証すべき本質的な論点は、「同一のモデルを固定したままシミュレーション回数のみを変動させた際、PUCT探索がプレイヤーの実力をどれだけ増幅(amplify)できているか」の測定である。

次回の記事では、この探索による実力増幅度の厳密な測定実験について報告する。


この記事は、実装・実験記録をもとに、本文の大部分をLLMが執筆し、筆者が内容を確認・編集しています。