先月、たややんさんのチャンネルで水匠10と氷彗がエキシビションマッチを行っていた。同じスペックのマシンをAWSで用意して、それで対局されるというものだ。
氷彗がかなり強いことは事前情報で知っていたのだが、今年の5月に行われた世界コンピュータ将棋選手権で優勝した水匠10がぼこぼこにされていた。おまけにちらっと見たときには全駒されていた。
私は評価関数の差で強くなったのだと思っていたのだが、氷彗の作者の大森さんが言うには、探索部の貢献のほうが大きいのだそうだ。
探索部を刷新する必要があると感じた私は、全駒されてぼこぼこになっている水匠10を尻目に、「やねうら王2025年夏の大改修」を開始したのであった。
この大改修で、なかなか大改修前より強くならなかったのだが、前回書いたSPSAというパラメーター調整を経て、ようやく大改修前より強いところまで持ってこれた。
それが、やねうら王V9.00β2である。(支援者向けにFANBOXで今月11日に配布した。)
それも、どうも長い時間になるほど以前のバージョンとの差が広がるようで、1手1秒でR50程度、2秒でR70程度、4、8秒でR90程度強いようだ。
それより長い時間でどれくらい強くなっているのかはわからないが、ここまで短期間でこれだけ強くなったことはいままで一度もなかった。
計測環境にもよるのかな?と思っていたのだが、その後、複数の開発者が計測したところ、どの開発者も大改修前よりR90~120程度上がっているという結論に達した。
強くなった要因は、大きく2つある。
ここ近年、探索部のお手本にしているStockfishのほうでは、強くなっているのに、やねうら王の探索部にその改良を取り込んでも強くならないことが多かった。これはおそらく全体的な探索のパラメーターがチェスと将棋とでミスマッチしていたのではないかと思う。だから、SPSAのような方法で探索部のパラメーター調整をすれば本当は強くなっているのに、SPSAしないものだから、弱くなっているように見えていたというのはある。
2つ目の要因として、Stockfishに近年導入されたアイデアのうち、Correction Historyがかなり棋力に貢献していることがわかっている。
Correction Historyとは、探索中に評価値を修正しようというものである。
例えば機械学習では、教師データーからパラメーターの勾配(調整すべき方向)を求めて、その勾配に従ってパラメーターを調整(学習)させていく。これを実際の探索中にもリアルタイムに、探索中に得られた統計データーからやってしまおうというのが、Correction Historyの考え方である。
これはまだまだ伸びしろのある、夢のある技術だと思う。他のゲームAIでも使えそうで、今後他のゲームAIにも波及するのではないかと思う。