2025年の将棋AIは、知識蒸留という新たなるブレイクスルーで躍進した年だった。
将棋AIの強化学習の基礎が根底から変わりそうな件
https://yaneuraou.yaneu.com/2024/12/30/shogi-ai-may-transform-fundamentally/
NNUE評価関数の学習で知識蒸留が有効であることを発見したのは、野田さん(nodchip)で、野田さんは昨年末にこれを発表した。これを5月に開催されたWCSC35(第35回世界コンピュータ将棋選手権)まで秘匿しておけば、野田さんは優勝できたという見方がある。
というのも、WCSC35で、優勝は水匠チーム、準優勝はINUGAMI(野田さんのチーム)であったからだ。水匠チームは、この知識蒸留を実践した。その際に強いDL系将棋AIのモデル(評価関数ファイル)が使いたかったので、RyfamateのKomaさんにお願いして、Ryfamateのモデルを蒸留のために使わせてもらうことにした。これが野田さんのチームと決定的な差となってしまったように思う。
もう少し詳しく書くと、ここで言う知識蒸留とは、NNUE系の将棋AIに使う教師生成において、従来は、自己対局をさせてその棋譜から学習していた(強化学習)のだが、これをせずに従来の教師局面にDL系の将棋AIで評価値をつけなおして、そこから学習させたほうが強くなるというものである。これで済むなら、教師生成のための計算資源が圧倒的に節約できる。
ところが、その際、棋力の高いDL系のモデルが必要となる。
dlshogiの公開モデルより、強いDL系のモデルで一般的に入手できるものは、やねうら王プロジェクトがその支援者向けに頒布している、DL水匠ぐらいしか選択肢がなかった。結局、NNUE評価関数の学習のために、DL系のモデルを育成しないといけない話になってしまうのである。
そこで、すでに強いDL系モデルを持っている開発者とコンタクトをとり、そのモデルを知識蒸留のために使わせてもらう…使わせてもらえるかどうかが雌雄を決することになってしまったということだ。
それで、なぜ自己対局で生成した教師データより、まったくの異種ソフトであるDL系で、1手も読まずに評価をつけた(機械学習で言うところの推論1回だけで出てきた評価値をそのまま教師として用いている)ほうがマシなのかということである。
これについてはっきりしたことはわかっていない。
NNUE系の将棋AIではやねうら王の探索部を用いており、それはStockfishの探索部を参考に書かれているのだが、「その局面の2番目以降の指し手が確率的に1番目の指し手を優れてそうにないなら、枝刈りをする」といった枝刈りが多々あり、評価値自体がそれほど信頼できるものではないというのはある。一例としては、一つの局面で探索を続けていると評価値が10~60程度の間を振動するようなこともあり、このように評価値が上下にぶれるような性質があると学習する上で大きなノイズとなってしまうのではないかと思う。
ともかく、まったくの異種のソフトでつけられた評価値、しかも探索すらしていない状態の評価値のほうが元の教師データより学習に適しているというのは、特筆すべき性質であると思う。従来は、自分自身で生成した教師データでないと(自分の評価関数の表現からかけ離れていて)学習に適していないと考えられていたからである。
この問題をアンナ・カレーニナの法則(Anna Karenina principle)を通じて理解するのは間違っているだろうか。
この名称は、ロシアの文豪 レフ・トルストイ による長編小説 アンナ・カレーニナ の有名な書き出しに由来し、その冒頭には、「幸福な家庭はどれも互いによく似ているが、不幸な家庭はそれぞれが異なる不幸を抱えている」という一文が置かれている。幸福とは、愛情、信頼、経済的安定、社会的調和といった多くの条件が静かに、しかし確実に満たされた状態であり、その姿は驚くほど似通う。一方で、不幸はどこか一箇所の歯車が狂うだけで生じ、その壊れ方は家庭ごとに、人生ごとに、まったく異なる表情を見せる。
このことから、アンナ・カレーニナの法則とは、「成功するためには必要条件をすべて満たさなければならないが、失敗はたった一つの欠陥によって容易に起こる」という原則を指す。
これは、受験数学において正解の答案はだいたい似通っているが、間違いの答案は、生徒それぞれに個性があり、間違って理解している箇所も生徒により全く異なることがあるのとよく似ている。
将棋AIは強くなるとどんどん将棋の真理に近づいていく。将棋の真理はどのソフトで生成したところで互いに指し手はよく似ているのである。
アンナ・カレーニナの法則が示すように、成功には多くの条件が必要だが、その到達点は一つしかない。
知識蒸留が明らかにしたのは、教師データの生成元ではなく、その評価がどれほど将棋の真理に忠実であるか ——— その一点こそが、強さを決定づけるという現実ではないかと思う。
勝つだけの方向にピキピキに振ったソフトを作るためには、すでに相応に強いソフトが要るという、鶏卵とか本末とかそういう言葉が出てきそうな状態にしなければならないというよりは、負けるときに使った手筋だけを封印するだけのような学習をする、負けるのがうまい、あんな華麗にな的な古典が出るようなサンドバッグに良さそうなソフトもあった方が良いということなのかもしれないけど、すでにそれを高速で実行して錬成されてるのが今あるソフトすべてだったりするかもしれないし、うーんw