自己改善するAI — 共進化・自己対戦・カリキュラム生成の系譜
外から教師データを足さずにモデルが強くなる、という現象がどういう条件で成立するのかを1から分解する。AlphaZeroの自己対戦が成立した三つの条件を取り出し、それが言語モデルでどこから壊れるか、共進化とカリキュラム生成がその穴をどう埋めようとしているか、そして自己改善の主張をどう評価すべきかまでを扱う。
Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
一次資料 — この記事の根拠
この解説の公開 2026-09-03
Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning AlgorithmarXiv:1712.01815論文ページ·PDFIntrinsic Motivation and Automatic Curricula via Asymmetric Self-PlayarXiv:1703.05407論文ページ·PDF
Paired Open-Ended Trailblazer (POET): Endlessly Generating Increasingly Complex and Diverse Learning Environments and Their SolutionsarXiv:1901.01753論文ページ·PDF
STaR: Bootstrapping Reasoning With ReasoningarXiv:2203.14465論文ページ·PDF
Self-Instruct: Aligning Language Models with Self-Generated InstructionsarXiv:2212.10560論文ページ·PDF
The Curse of Recursion: Training on Generated Data Makes Models ForgetarXiv:2305.17493論文ページ·PDF
「自分で強くなる」が特別な理由
機械学習の常識では、モデルを強くしたければデータを足します。人間がラベルを付け、人間が正解を書き、人間が良し悪しを判定する。性能はだいたい、注ぎ込んだ人間の労力に比例します。
自己改善(self-improvement)と呼ばれる系統の手法は、この比例関係を切ろうとするものです。外からデータを足さずに、モデルが自分の出力を材料にして強くなる。うまくいけば、人間の労力ではなく計算量が性能の上限を決めるようになります。これは経済的に非常に大きな違いです。
そして実際に、それが完璧に成立した例が一つあります。2017年のAlphaZeroは、囲碁・チェス・将棋のルールだけを与えられ、人間の棋譜を1局も使わずに、自分自身との対戦だけでその3つを学びました。
一方、同じことを言語モデルにやらせると、うまくいく場合と、静かに壊れる場合がはっきり分かれます。しかも壊れ方が厄介で、内部の指標は改善し続けているのに実際の能力は落ちている、という形を取ります。この記事は「AlphaZeroで成立していた何が、言語モデルでは成立しないのか」を条件として取り出し、共進化やカリキュラム生成がその穴をどう埋めようとしているかまでを追います。
比喩: 壁打ちはいつ練習になるのか
テニスの壁打ちを考えてください。壁は相手として無料で、無限に付き合ってくれます。でも壁打ちで強くなれるのはストロークのフォームまでで、試合には勝てるようになりません。壁は常に同じ返し方をするからです。
では素振りはどうでしょう。相手すらいない。それでも素振りが練習になるのは、鏡やコーチや自分の感覚という「良し悪しの判定」があるからです。判定なしに1万回振れば、悪いフォームが1万回強化されるだけです。
ここに自己改善の核心が2つ出ています。相手(自分と同じ強さで、自分が伸びると一緒に伸びるもの)と、判定(自分の出力の良し悪しを、自分より正確に言い当てるもの)。この2つが揃っているかどうかで、自己改善は「無限に強くなる装置」にも「同じ間違いを増幅する装置」にもなります。
AlphaZeroを分解する
AlphaZeroの学習ループは驚くほど単純です。現在のネットワークで自分自身と1局打つ。勝敗が出る。その1局で「どの局面でどう指したか」と「最終的に勝ったか」を記録し、それを教師にネットワークを更新する。これを延々と繰り返します。
ただし、ここには見落としやすい仕掛けがあります。自己対戦のとき、指し手はネットワークの出力をそのまま使うのではなく、モンテカルロ木探索(MCTS)で先を読んでから決めています。探索は時間を掛けて先を読む分、素のネットワークより強い。つまり探索後の指し手の分布は、今のネットワークより一段強い教師になっています。学習とは、その一段強い分布を素のネットワークに写し取る作業です。
記号を1つずつ。 は盤面、 はその対局の最終結果(勝ちなら 、負けなら )、 はネットワークが「この盤面はどのくらい有利か」と予想した値です。 は探索が実際に各手をどれだけ調べたかの割合、 はネットワークが探索なしで出した指し手の確率、 は重みが大きくなりすぎないようにする罰則です。
平たく言えばこの式は、「勝敗の予想を実際の勝敗に近づけろ。そして探索なしの直感を、探索した後の判断に近づけろ」という2つの命令です。前半が価値の学習、後半が「じっくり考えた結果を、考えなくても出せるようにする」蒸留にあたります。AlphaGoからAlphaZeroへの流れ全体はAlphaGoを1からで扱っているので、ここでは自己改善の観点だけを取り出します。
自己改善が成立する三条件
上の分解から、条件が3つ取り出せます。
条件1: 改善演算子がある。 今のモデルより良い出力を、同じモデルから作り出す手続きが要ります。AlphaZeroではMCTSがそれでした。計算時間を追加で払えば、追加の学習なしに一段強い答えが出る。この「払えば良くなる余地」がなければ、自分から学ぶものが何もありません。
条件2: 検証器がモデルより正確で、安い。 囲碁の勝敗判定はルールで決まり、間違えることがなく、コストはほぼゼロです。だから何百万局分の教師信号をタダで作れました。
条件3: 難易度が学習者に追従する。 自己対戦の相手は常に自分自身のコピーなので、自分が強くなると相手も同じだけ強くなります。永遠に互角、つまり永遠に「ちょうどいい難しさ」です。これは人手でカリキュラムを組まなくても勝手にそうなる、という点が重要でした。
この3つ目が効いていることは、逆から見ると分かります。もし相手が固定の弱いプログラムだったら、すぐ全勝して勝敗信号が飽和し、学習は止まります。壁打ちが試合の練習にならないのと同じ理屈です。
コメント
コメントにはログインが必要です